Diff of the two buildlogs: -- --- b1/build.log 2024-01-06 22:41:35.329016375 +0000 +++ b2/build.log 2024-01-07 00:09:49.535748794 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Feb 7 16:36:04 -12 2025 -I: pbuilder-time-stamp: 1738989364 +I: Current time: Sun Jan 7 12:41:39 +14 2024 +I: pbuilder-time-stamp: 1704580899 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -18,7 +18,7 @@ I: copying [./gcl_2.6.12-102.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.Th3rhQFO/trustedkeys.kbx': General error +gpgv: keyblock resource '/tmp/dpkg-verify-sig.mNR48HOG/trustedkeys.kbx': General error gpgv: Signature made Sat Jan 30 17:37:27 2021 gpgv: using RSA key FE214F363697773242E816ECB845CE510F9B714D gpgv: Can't check signature: No public key @@ -149,49 +149,80 @@ dpkg-source: info: applying Version_2_6_13pre99 I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2055380/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jan 6 22:42 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=16 ' - DISTRIBUTION='bullseye' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=15 ' + DIRSTACK=() + DISTRIBUTION=bullseye + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='84831c3acbcf4a8d8384432ec6e41841' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='2055380' - PS1='# ' - PS2='> ' + INVOCATION_ID=f9b21dc3a37f44a7b4952a579c0da2a6 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=3186022 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.OhE3Io84/pbuilderrc_U9Cz --distribution bullseye --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.OhE3Io84/b1 --logfile b1/build.log gcl_2.6.12-102.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.OhE3Io84/pbuilderrc_r0UG --distribution bullseye --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.OhE3Io84/b2 --logfile b2/build.log gcl_2.6.12-102.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos5-amd64 6.5.0-0.deb12.4-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.10-1~bpo12+1 (2023-11-23) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux I: ls -l /bin total 5476 -rwxr-xr-x 1 root root 1234376 Mar 27 2022 bash @@ -251,7 +282,7 @@ -rwxr-xr-x 1 root root 52032 Sep 24 2020 rmdir -rwxr-xr-x 1 root root 27472 Sep 27 2020 run-parts -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jan 8 15:46 sh -> dash + lrwxrwxrwx 1 root root 9 Jan 6 22:42 sh -> /bin/bash -rwxr-xr-x 1 root root 43808 Sep 24 2020 sleep -rwxr-xr-x 1 root root 84928 Sep 24 2020 stty -rwsr-xr-x 1 root root 71912 Jan 20 2022 su @@ -277,7 +308,7 @@ -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew -I: user script /srv/workspace/pbuilder/2055380/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -436,7 +467,7 @@ Get: 103 http://deb.debian.org/debian bullseye/main amd64 tcl8.6-dev amd64 8.6.11+dfsg-1 [1018 kB] Get: 104 http://deb.debian.org/debian bullseye/main amd64 tk8.6 amd64 8.6.11-2 [72.3 kB] Get: 105 http://deb.debian.org/debian bullseye/main amd64 tk8.6-dev amd64 8.6.11-2 [777 kB] -Fetched 36.2 MB in 1s (47.0 MB/s) +Fetched 36.2 MB in 2s (16.0 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 17743 files and directories currently installed.) @@ -777,8 +808,8 @@ Setting up tzdata (2021a-1+deb11u10) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Feb 8 04:36:30 UTC 2025. -Universal Time is now: Sat Feb 8 04:36:30 UTC 2025. +Local time is now: Sat Jan 6 22:43:00 UTC 2024. +Universal Time is now: Sat Jan 6 22:43:00 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up xtrans-dev (1.4.0-1) ... @@ -887,7 +918,11 @@ fakeroot is already the newest version (1.25.3-1.1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/gcl-2.6.12/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../gcl_2.6.12-102_source.changes +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bullseye +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/gcl-2.6.12/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../gcl_2.6.12-102_source.changes dpkg-buildpackage: info: source package gcl dpkg-buildpackage: info: source version 2.6.12-102 dpkg-buildpackage: info: source distribution unstable @@ -1040,7 +1075,7 @@ checking working gprof... ok checking for CFLAG -pg... yes checking for makeinfo... no -checking system version (for dynamic loading)... Linux-6.5.0-0.deb12.4-amd64 +checking system version (for dynamic loading)... Linux-6.1.0-17-amd64 checking setjmp.h usability... yes checking setjmp.h presence... yes checking for setjmp.h... yes @@ -3357,13 +3392,13 @@ cd info && /usr/bin/make make[2]: Entering directory '/build/reproducible-path/gcl-2.6.12/info' TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl-si.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl-si.dvi make[2]: dvipdfm: No such file or directory make[2]: [makefile:36: gcl-si.pdf] Error 127 (ignored) TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl.dvi make[2]: dvipdfm: No such file or directory @@ -3631,7 +3666,7 @@ checking working gprof... ok checking for CFLAG -pg... yes checking for makeinfo... no -checking system version (for dynamic loading)... Linux-6.5.0-0.deb12.4-amd64 +checking system version (for dynamic loading)... Linux-6.1.0-17-amd64 checking setjmp.h usability... yes checking setjmp.h presence... yes checking for setjmp.h... yes @@ -6244,20 +6279,20 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_fixup.o. Loading binary of GCL_PCL_FIXUP... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_fixup.o" -Compiling gazonk_2261448_0.lsp. +Compiling gazonk_3388002_0.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_0.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_0.o" -start address -T 0xc67950 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_0.o" -Compiling gazonk_2261448_1.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_0.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_0.o" +start address -T 0xc67950 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_0.o" +Compiling gazonk_3388002_1.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_1.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_1.o" -start address -T 0xc67ef0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_1.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_1.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_1.o" +start address -T 0xc67ef0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_1.o" start address -T 0xc677e0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_fixup.o" Compiling GCL_PCL_DEFCOMBIN... Compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.lisp. @@ -6267,34 +6302,34 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.o. Loading binary of GCL_PCL_DEFCOMBIN... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.o" -Compiling gazonk_2261448_2.lsp. +Compiling gazonk_3388002_2.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_2.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_2.o" -start address -T 0xc6c880 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_2.o" -Compiling gazonk_2261448_3.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_2.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_2.o" +start address -T 0xc6c880 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_2.o" +Compiling gazonk_3388002_3.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_3.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_3.o" -start address -T 0xc6daa0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_3.o" -Compiling gazonk_2261448_4.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_3.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_3.o" +start address -T 0xc6daa0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_3.o" +Compiling gazonk_3388002_4.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_4.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_4.o" -start address -T 0xc6e8b0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_4.o" -Compiling gazonk_2261448_5.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_4.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_4.o" +start address -T 0xc6e8b0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_4.o" +Compiling gazonk_3388002_5.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_5.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_5.o" -start address -T 0xc6f100 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_5.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_5.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_5.o" +start address -T 0xc6f100 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_5.o" start address -T 0xc68470 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.o" Compiling GCL_PCL_CTYPES... Compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.lisp. @@ -6304,13 +6339,13 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.o. Loading binary of GCL_PCL_CTYPES... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.o" -Compiling gazonk_2261448_6.lsp. +Compiling gazonk_3388002_6.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_6.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_6.o" -start address -T 0xc70200 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_6.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_6.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_6.o" +start address -T 0xc70200 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_6.o" start address -T 0xc6fb80 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.o" Compiling GCL_PCL_ENV... Compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.lisp. @@ -6323,13 +6358,13 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.o. Loading binary of GCL_PCL_ENV... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.o" -Compiling gazonk_2261448_7.lsp. +Compiling gazonk_3388002_7.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_7.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_7.o" -start address -T 0xc76b80 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2261448_7.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_7.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_7.o" +start address -T 0xc76b80 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3388002_7.o" Warning: DESCRIBE is being redefined. start address -T 0xc70a50 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.o" Compiling GCL_PCL_COMPAT... @@ -6660,7 +6695,7 @@ T COMPILER> -Warning: equal is not tail recursive 4096 0 +Warning: equal is not tail recursive 4096 1 NIL COMPILER>6873068544 heap words available @@ -7025,7 +7060,7 @@ T COMPILER> -Warning: SIMPLE-WARNING: equal is not tail recursive 4096 1 +Warning: SIMPLE-WARNING: equal is not tail recursive 4096 0 NIL COMPILER>6873081856 heap words available @@ -7201,7 +7236,7 @@ /tmp/ >;; Loading "../tkl.o" -start address -T 0xf1fc50 ;; Finished loading "../tkl.o" +start address -T 0xf18750 ;; Finished loading "../tkl.o" 80848 > @@ -7211,13 +7246,13 @@ cd info && /usr/bin/make make[2]: Entering directory '/build/reproducible-path/gcl-2.6.12/info' TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl-si.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl-si.dvi make[2]: dvipdfm: No such file or directory make[2]: [makefile:36: gcl-si.pdf] Error 127 (ignored) TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl.dvi make[2]: dvipdfm: No such file or directory @@ -7483,7 +7518,7 @@ checking for gawk... no checking for nawk... nawk checking for makeinfo... no -checking system version (for dynamic loading)... Linux-6.5.0-0.deb12.4-amd64 +checking system version (for dynamic loading)... Linux-6.1.0-17-amd64 checking setjmp.h usability... yes checking setjmp.h presence... yes checking for setjmp.h... yes @@ -9800,13 +9835,13 @@ cd info && /usr/bin/make make[2]: Entering directory '/build/reproducible-path/gcl-2.6.12/info' TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl-si.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl-si.dvi make[2]: dvipdfm: No such file or directory make[2]: [makefile:36: gcl-si.pdf] Error 127 (ignored) TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl.dvi make[2]: dvipdfm: No such file or directory @@ -10059,7 +10094,7 @@ checking for gawk... no checking for nawk... nawk checking for makeinfo... no -checking system version (for dynamic loading)... Linux-6.5.0-0.deb12.4-amd64 +checking system version (for dynamic loading)... Linux-6.1.0-17-amd64 checking setjmp.h usability... yes checking setjmp.h presence... yes checking for setjmp.h... yes @@ -12672,20 +12707,20 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_fixup.o. Loading binary of GCL_PCL_FIXUP... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_fixup.o" -Compiling gazonk_2520748_0.lsp. +Compiling gazonk_3770752_0.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_0.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_0.o" -start address -T 0xc5a430 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_0.o" -Compiling gazonk_2520748_1.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_0.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_0.o" +start address -T 0xc5a430 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_0.o" +Compiling gazonk_3770752_1.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_1.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_1.o" -start address -T 0xc5a9b0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_1.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_1.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_1.o" +start address -T 0xc5a9b0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_1.o" start address -T 0xc5a2d0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_fixup.o" Compiling GCL_PCL_DEFCOMBIN... Compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.lisp. @@ -12695,34 +12730,34 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.o. Loading binary of GCL_PCL_DEFCOMBIN... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.o" -Compiling gazonk_2520748_2.lsp. +Compiling gazonk_3770752_2.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_2.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_2.o" -start address -T 0xc5f260 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_2.o" -Compiling gazonk_2520748_3.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_2.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_2.o" +start address -T 0xc5f260 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_2.o" +Compiling gazonk_3770752_3.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_3.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_3.o" -start address -T 0xc60480 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_3.o" -Compiling gazonk_2520748_4.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_3.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_3.o" +start address -T 0xc60480 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_3.o" +Compiling gazonk_3770752_4.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_4.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_4.o" -start address -T 0xc61250 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_4.o" -Compiling gazonk_2520748_5.lsp. +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_4.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_4.o" +start address -T 0xc61250 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_4.o" +Compiling gazonk_3770752_5.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_5.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_5.o" -start address -T 0xc61a90 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_5.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_5.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_5.o" +start address -T 0xc61a90 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_5.o" start address -T 0xc5af20 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_defcombin.o" Compiling GCL_PCL_CTYPES... Compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.lisp. @@ -12732,13 +12767,13 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.o. Loading binary of GCL_PCL_CTYPES... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.o" -Compiling gazonk_2520748_6.lsp. +Compiling gazonk_3770752_6.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_6.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_6.o" -start address -T 0xc62b50 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_6.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_6.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_6.o" +start address -T 0xc62b50 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_6.o" start address -T 0xc624e0 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_ctypes.o" Compiling GCL_PCL_ENV... Compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.lisp. @@ -12751,13 +12786,13 @@ Finished compiling /build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.o. Loading binary of GCL_PCL_ENV... ;; Loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.o" -Compiling gazonk_2520748_7.lsp. +Compiling gazonk_3770752_7.lsp. End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_7.o. -;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_7.o" -start address -T 0xc69400 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_2520748_7.o" +Finished compiling /build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_7.o. +;; Loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_7.o" +start address -T 0xc69400 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/pcl/gazonk_3770752_7.o" Warning: DESCRIBE is being redefined. start address -T 0xc63390 ;; Finished loading #p"/build/reproducible-path/gcl-2.6.12/unixport/../pcl/gcl_pcl_env.o" Compiling GCL_PCL_COMPAT... @@ -13088,7 +13123,7 @@ T COMPILER> -Warning: equal is not tail recursive 4096 0 +Warning: equal is not tail recursive 4096 1 NIL COMPILER>6873061888 heap words available @@ -13629,7 +13664,7 @@ /tmp/ >;; Loading "../tkl.o" -start address -T 0xf1ba50 ;; Finished loading "../tkl.o" +start address -T 0xf1ab00 ;; Finished loading "../tkl.o" 80424 > @@ -13639,13 +13674,13 @@ cd info && /usr/bin/make make[2]: Entering directory '/build/reproducible-path/gcl-2.6.12/info' TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl-si.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl-si.dvi make[2]: dvipdfm: No such file or directory make[2]: [makefile:36: gcl-si.pdf] Error 127 (ignored) TEXINPUTS=.:$TEXINPUTS tex --interaction nonstopmode gcl.texi || true -/bin/sh: 1: tex: not found +/bin/sh: line 1: tex: command not found rm -f *.cp *.ky *.vr *.tp *.pg *.toc *.aux *.log *.fn dvipdfm gcl.dvi make[2]: dvipdfm: No such file or directory @@ -13802,28 +13837,6 @@ ;; Note: Tail-recursive call of EQUALP-WITH-CASE was replaced by iteration. End of Pass 2. tail: 'ansi-tests/test_results' has appeared; following new file -OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/rt.o. -;; Loading #p"rt.o" -start address -T 0xf1ba50 ;; Finished loading #p"rt.o" -;; Loading "cl-test-package.lsp" -;; Finished loading "cl-test-package.lsp" -;; Loading "universe.lsp" -;; Finished loading "universe.lsp" -Compiling random-aux.lsp. -End of Pass 1. -End of Pass 2. -OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 -Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/random-aux.o. -;; Loading #p"random-aux.o" -start address -T 0xf31e40 ;; Finished loading #p"random-aux.o" -Compiling ansi-aux.lsp. -; (DEFUN CHECK-VALUES-LENGTH ...) is being compiled. -;; Warning: The ignored variable E is used. -; (DEFUN PRINTABLE-P ...) is being compiled. -;; Warning: The variable *READ-EVAL* is not used. -End of Pass 1. -End of Pass 2. GCL (GNU Common Lisp) 2.6.12 ANSI Fri Apr 22 15:51:11 UTC 2016 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC) @@ -13849,7 +13862,7 @@ OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/rt.o. ;; Loading #p"rt.o" -start address -T 0xf1ba50 ;; Finished loading #p"rt.o" +start address -T 0xf1ab00 ;; Finished loading #p"rt.o" ;; Loading "cl-test-package.lsp" ;; Finished loading "cl-test-package.lsp" ;; Loading "universe.lsp" @@ -13858,9 +13871,29 @@ End of Pass 1. End of Pass 2. OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/rt.o. +;; Loading #p"rt.o" +start address -T 0xf1ab00 ;; Finished loading #p"rt.o" +;; Loading "cl-test-package.lsp" +;; Finished loading "cl-test-package.lsp" +;; Loading "universe.lsp" +;; Finished loading "universe.lsp" +Compiling random-aux.lsp. +End of Pass 1. +End of Pass 2. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 +Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/random-aux.o. +;; Loading #p"random-aux.o" +start address -T 0xf2eef0 ;; Finished loading #p"random-aux.o" +Compiling ansi-aux.lsp. +; (DEFUN CHECK-VALUES-LENGTH ...) is being compiled. +;; Warning: The ignored variable E is used. +; (DEFUN PRINTABLE-P ...) is being compiled. +;; Warning: The variable *READ-EVAL* is not used. +OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3 Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/random-aux.o. ;; Loading #p"random-aux.o" -start address -T 0xf31e40 ;; Finished loading #p"random-aux.o" +start address -T 0xf2eef0 ;; Finished loading #p"random-aux.o" Compiling ansi-aux.lsp. ; (DEFUN CHECK-VALUES-LENGTH ...) is being compiled. ;; Warning: The ignored variable E is used. @@ -13868,17 +13901,19 @@ ;; Warning: The variable *READ-EVAL* is not used. End of Pass 1. End of Pass 2. +End of Pass 1. +End of Pass 2. OPTIMIZE levels: Safety=3, Space=0, Speed=3 Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/ansi-aux.o. ;; Loading #p"ansi-aux.o" -start address -T 0xf42430 ;; Finished loading #p"ansi-aux.o" +start address -T 0xf3f4e0 ;; Finished loading #p"ansi-aux.o" ;; Loading "cl-symbol-names.lsp" ;; Finished loading "cl-symbol-names.lsp" ;; Finished loading "gclload1.lsp" OPTIMIZE levels: Safety=3, Space=0, Speed=3 Finished compiling /build/reproducible-path/gcl-2.6.12/ansi-tests/ansi-aux.o. ;; Loading #p"ansi-aux.o" -start address -T 0xf42430 ;; Finished loading #p"ansi-aux.o" +start address -T 0xf3f4e0 ;; Finished loading #p"ansi-aux.o" ;; Loading "cl-symbol-names.lsp" ;; Finished loading "cl-symbol-names.lsp" ;; Finished loading "gclload1.lsp" @@ -15246,388 +15281,6 @@ Form: (NOT-MV (TYPEP #'(SETF FUNCTION-7-ACCESSOR) 'FUNCTION)) Expected value: NIL Actual value: #. - FUNCTION.8 COMPILE.1 COMPILE.2 COMPILE.3 COMPILE.4 COMPILE.5 COMPILE.6 COMPILE.7 - COMPILE.8 COMPILE.9 -Test COMPILE.ERROR.1 failed -Form: (CLASSIFY-ERROR (COMPILE)) -Expected value: PROGRAM-ERROR -Actual value: ERROR. -Test COMPILE.ERROR.2 failed -Form: (CLASSIFY-ERROR (COMPILE NIL '(LAMBDA () NIL) 'GARBAGE)) -Expected value: PROGRAM-ERROR -Actual values: # - NIL - NIL. - CONSTANTP.ERROR.1 CONSTANTP.ERROR.2 CONSTANTP.1 CONSTANTP.2 - CONSTANTP.3 CONSTANTP.4 CONSTANTP.5 -Test CONSTANTP.6 failed -Form: (CONSTANTP-MACRO CONSTANTP-TEST-SYMBOL) -Expected value: T -Actual value: #. - CONSTANTP.7 -Test CONSTANTP.8 failed -Form: (NOTNOT-MV (CONSTANTP 1 NIL)) -Expected value: T -Actual value: #. - CONSTANTP.9 CONSTANTP.10 CONSTANTP.ORDER.1 -Test CONSTANTP.ORDER.2 failed -Form: (LET ((I 0) X Y) - (VALUES (NOTNOT (CONSTANTP (PROGN (SETF X (INCF I)) 1) - (PROGN (SETF Y (INCF I)) NIL))) - I X Y)) -Expected values: T - 2 - 1 - 2 -Actual value: #. - LAMBDA.1 LAMBDA.2 LAMBDA.3 LAMBDA.4 LAMBDA.5 LAMBDA.6 LAMBDA.7 - LAMBDA.8 LAMBDA.9 LAMBDA.10 LAMBDA.MACRO.1 LAMBDA.MACRO.2 -Test DCF-FUNS failed -Form: (REMOVE-IF #'FBOUNDP *DCF-FNS*) -Expected value: NIL -Actual value: (FUNCTION-LAMBDA-EXPRESSION). -Test DCF-MACROS failed -Form: (REMOVE-IF #'MACRO-FUNCTION *DCF-MACROS*) -Expected value: NIL -Actual value: (DEFINE-SETF-EXPANDER). - SETF-ORDER SETF-ORDER.2 PUSH-ORDER PUSHNEW-ORDER PUSHNEW-ORDER.2 - REMF-ORDER INCF-ORDER DECF-ORDER SHIFTF-ORDER.1 SHIFTF-ORDER.2 - ROTATEF-ORDER.1 ROTATEF-ORDER.2 PSETF-ORDER PSETF-ORDER.2 POP-ORDER - SETF-VAR SETF-VALUES.1 SETF-VALUES.2 SETF-VALUES.3 SETF-VALUES.4 -Test SETF-VALUES.5 failed -Form: (LET ((A (VECTOR NIL NIL)) (I 0) X Y Z) - (SETF (VALUES (AREF A (PROGN (SETF X (INCF I)) 0)) - (AREF A (PROGN (SETF Y (INCF I)) 1))) - (PROGN (SETF Z (INCF I)) (VALUES 'FOO 'BAR))) - (VALUES A I X Y Z)) -Expected values: #(FOO BAR) - 3 - 1 - 2 - 3 -Actual values: #(FOO BAR) - 3 - 2 - 3 - 1. - SETF-VALUES.6 SETF-THE.1 SETF-THE.2 SETF-APPLY.1 SETF-APPLY.2 - SETF-APPLY.3 SETF-APPLY.4 SETF-EXPANDER.1 SETF-MACRO.1 SETF-MACRO.2 - SETF-MACRO.3 SETF-MACRO.4 SETF-SYMBOL-MACRO.1 SETF-SYMBOL-MACRO.2 - SETF-SYMBOL-MACRO.3 SETQ.1 SETQ.2 SETQ.3 SETQ.4 SETF.1 SETF.2 SETF.3 - SETF.4 PSETQ.1 PSETQ.2 PSETQ.3 PSETQ.4 PSETQ.5 PSETQ.6 -Test PSETQ.7 failed -Form: (SYMBOL-MACROLET ((X (AREF A (INCF I))) (Y (AREF A (INCF I)))) - (LET ((A (COPY-SEQ #(0 1 2 3 4 5 6 7 8 9))) (I 0)) - (PSETQ X (AREF A (INCF I)) Y (AREF A (INCF I))) - (VALUES A I))) -Expected values: #(0 2 2 4 4 5 6 7 8 9) - 4 -Actual values: #(0 1 2 1 2 5 6 7 8 9) - 4. - PSETF.1 PSETF.2 PSETF.3 PSETF.4 PSETF.5 PSETF.6 -Test PSETF.7 failed -Form: (SYMBOL-MACROLET ((X (AREF A (INCF I))) (Y (AREF A (INCF I)))) - (LET ((A (COPY-SEQ #(0 1 2 3 4 5 6 7 8 9))) (I 0)) - (PSETF X (AREF A (INCF I)) Y (AREF A (INCF I))) - (VALUES A I))) -Expected values: #(0 2 2 4 4 5 6 7 8 9) - 4 -Actual values: #(0 1 2 1 2 5 6 7 8 9) - 4. - PSETF.8 PSETF.9 AND.1 AND.2 AND.3 AND.4 AND.5 AND.6 AND.7 AND.8 AND.9 - AND.ORDER.1 AND.ORDER.2 APPLY.ERROR.1 APPLY.ERROR.2 APPLY.ERROR.3 - APPLY.ERROR.4 APPLY.1 APPLY.2 APPLY.3 APPLY.4 APPLY.5 APPLY.ORDER.1 - BLOCK.1 BLOCK.2 BLOCK.3 BLOCK.4 BLOCK.5 BLOCK.6 BLOCK.7 BLOCK.8 - BLOCK.9 BLOCK.10 CALL-ARGUMENTS-LIMIT.1 CALL-ARGUMENTS-LIMIT.2 - CALL-ARGUMENTS-LIMIT.3 CALL-ARGUMENTS-LIMIT.4 CALL-ARGUMENTS-LIMIT.5 - CASE.1 CASE.2 CASE.3 CASE.4 CASE.5 CASE.6 CASE.7 CASE.8 CASE.9 CASE.10 - CASE.11 CASE.12 CASE.13 CASE.14 CASE.15 CASE.16 CASE.17 CASE.18 - CASE.19 CASE.20 CASE.21 CASE.22 CASE.23 CASE.24 CASE.25 CASE.26 - CASE.27 CASE.28 CASE.29 CASE.30 CASE.31 CASE.32 CASE.33 CASE.34 - CATCH.1 CATCH.2 CATCH.3 CATCH.4 CATCH.5 CATCH.6 CATCH.7 CATCH.8 - CATCH.9 CATCH.10 CATCH.11 CATCH.12 -Test THROW-ERROR failed -Form: (CLASSIFY-ERROR (THROW (GENSYM) NIL)) -Expected value: CONTROL-ERROR -Actual value: ERROR. - CCASE.1 CCASE.2 CCASE.3 CCASE.4 CCASE.5 CCASE.6 CCASE.7 CCASE.8 - CCASE.9 CCASE.10 CCASE.11 CCASE.12 CCASE.13 CCASE.14 CCASE.15 CCASE.16 - CCASE.17 CCASE.19 CCASE.20 CCASE.21 CCASE.23 CCASE.25 CCASE.26 - CCASE.27 CCASE.28 CCASE.29 CCASE.30 CCASE.31 COMPILED-FUNCTION-P.1 - COMPILED-FUNCTION-P.2 COMPILED-FUNCTION-P.3 - COMPILED-FUNCTION-P.ORDER.1 COMPILED-FUNCTION-P.ERROR.1 - COMPILED-FUNCTION-P.ERROR.2 COMPLEMENT.1 COMPLEMENT.2 COMPLEMENT.3 - COMPLEMENT.4 COMPLEMENT.5 COMPLEMENT.ORDER.1 COMPLEMENT.ERROR.1 - COMPLEMENT.ERROR.2 COMPLEMENT.ERROR.3 COMPLEMENT.ERROR.4 COND.1 COND.2 - COND.3 COND.4 COND.5 COND.6 COND.7 COND.8 COND.9 COND.10 COND.11 - COND.12 COND.13 COND.14 CONSTANTLY.1 CONSTANTLY.2 CONSTANTLY.3 - CONSTANTLY.ERROR.1 CONSTANTLY.ERROR.2 CTYPECASE.1 CTYPECASE.2 - CTYPECASE.3 CTYPECASE.4 CTYPECASE.5 CTYPECASE.6 CTYPECASE.7 - CTYPECASE.8 CTYPECASE.9 CTYPECASE.10 CTYPECASE.11 CTYPECASE.12 - CTYPECASE.13 DEFCONSTANT.1 DEFCONSTANT.2 DEFCONSTANT.3 DEFCONSTANT.4 - DEFCONSTANT.5 DEFINE-MODIFY-MACRO.1 DEFINE-MODIFY-MACRO.2 - DEFINE-MODIFY-MACRO.3 DEFINE-MODIFY-MACRO.4 DEFPARAMETER.1 - DEFPARAMETER.2 DEFPARAMETER.3 DEFPARAMETER.4 DEFPARAMETER.5 DEFVAR.1 - DEFVAR.2 DEFVAR.3 DEFVAR.4 DEFVAR.5 DESTRUCTURING-BIND.1 - DESTRUCTURING-BIND.2 DESTRUCTURING-BIND.3 DESTRUCTURING-BIND.4 - DESTRUCTURING-BIND.5 DESTRUCTURING-BIND.6 DESTRUCTURING-BIND.7 - DESTRUCTURING-BIND.8 DESTRUCTURING-BIND.9 DESTRUCTURING-BIND.10 - DESTRUCTURING-BIND.11 DESTRUCTURING-BIND.12 DESTRUCTURING-BIND.13 - DESTRUCTURING-BIND.14 DESTRUCTURING-BIND.15 DESTRUCTURING-BIND.16 - DESTRUCTURING-BIND.17 DESTRUCTURING-BIND.18 ECASE.1 ECASE.2 ECASE.3 - ECASE.4 ECASE.5 ECASE.6 ECASE.7 ECASE.8 ECASE.9 ECASE.10 ECASE.11 - ECASE.12 ECASE.13 ECASE.14 ECASE.15 ECASE.16 ECASE.17 ECASE.18 - ECASE.19 ECASE.20 ECASE.21 ECASE.23 ECASE.25 ECASE.26 ECASE.27 - ECASE.28 ECASE.29 ECASE.31 ECASE.32 EQL.1 EQL.2 EQL.3 EQL.4 EQL.5 - EQL.7 EQL.8 EQL.9 EQL.10 EQL.11 EQL.ORDER.1 EQL.ERROR.1 EQL.ERROR.2 - EQL.ERROR.3 EQ.ERROR.1 EQ.ERROR.2 EQ.ERROR.3 EQUAL.1 EQUAL.2 EQUAL.3 - EQUAL.4 EQUAL.5 EQUAL.6 EQUAL.7 EQUAL.8 EQUAL.9 EQUAL.10 EQUAL.11 - EQUAL.12 EQUAL.ORDER.1 EQUAL.ERROR.1 EQUAL.ERROR.2 EQUAL.ERROR.3 - EQUALP.1 EQUALP.2 EQUALP.3 EQUALP.4 EQUALP.ORDER.1 EQUALP.ERROR.1 - EQUALP.ERROR.2 EQUALP.ERROR.3 ETYPECASE.1 ETYPECASE.2 ETYPECASE.3 - ETYPECASE.4 ETYPECASE.5 ETYPECASE.6 ETYPECASE.7 ETYPECASE.8 - ETYPECASE.9 ETYPECASE.10 ETYPECASE.11 ETYPECASE.12 EVERY.1 EVERY.2 - EVERY.3 EVERY.4 EVERY.5 EVERY.6 EVERY.7 EVERY.8 EVERY.9 EVERY.10 - EVERY.11 EVERY.12 EVERY.13 EVERY.14 EVERY.15 EVERY.16 EVERY.ORDER.1 - EVERY.ORDER.2 EVERY.ERROR.1 EVERY.ERROR.2 EVERY.ERROR.3 EVERY.ERROR.4 - EVERY.ERROR.5 EVERY.ERROR.6 EVERY.ERROR.7 EVERY.ERROR.9 EVERY.ERROR.10 - EVERY.ERROR.11 EVERY.ERROR.12 EVERY.ERROR.13 FBOUNDP.1 FBOUNDP.2 - FBOUNDP.3 FBOUNDP.4 FBOUNDP.5 -Test FBOUNDP.6 failed -Form: (NOT-MV (FBOUNDP '(SETF FBOUNDP-6-ACCESSOR))) -Expected value: NIL -Actual value: #. -Test FBOUNDP.7 failed -Form: (LET ((G (GENSYM))) (FBOUNDP (LIST 'SETF G))) -Expected value: NIL -Actual value: #. - FBOUNDP.ORDER.1 FBOUNDP.ERROR.1 FBOUNDP.ERROR.2 FBOUNDP.ERROR.3 - FBOUNDP.ERROR.4 FBOUNDP.ERROR.5 FBOUNDP.ERROR.6 -Test FDEFINITION.ERROR.1 failed -Form: (CLASSIFY-ERROR (FDEFINITION)) -Expected value: PROGRAM-ERROR -Actual value: UNDEFINED-FUNCTION. -Test FDEFINITION.ERROR.2 failed -Form: (CLASSIFY-ERROR (FDEFINITION 'CONS NIL)) -Expected value: PROGRAM-ERROR -Actual value: UNDEFINED-FUNCTION. - FDEFINITION.ERROR.3 -Test FDEFINITION.ERROR.4 failed -Form: (CLASSIFY-ERROR (FDEFINITION 10)) -Expected value: TYPE-ERROR -Actual value: UNDEFINED-FUNCTION. - FDEFINITION.ERROR.5 -Test FDEFINITION.ERROR.6 failed -Form: (CLASSIFY-ERROR (LOCALLY (FDEFINITION 10) T)) -Expected value: TYPE-ERROR -Actual value: UNDEFINED-FUNCTION. -Test FDEFINITION.1 failed -Form: (LET ((FUN (FDEFINITION 'CONS))) (FUNCALL FUN 'A 'B)) -Expected value: (A . B) -Actual value: #. -Test FDEFINITION.2 failed -Form: (PROGN (FDEFINITION 'COND) :GOOD) -Expected value: :GOOD -Actual value: #. -Test FDEFINITION.3 failed -Form: (PROGN (FDEFINITION 'SETQ) :GOOD) -Expected value: :GOOD -Actual value: #. -Test FDEFINITION.4 failed -Form: (LET ((SYM (GENSYM))) - (VALUES (FBOUNDP SYM) - (PROGN - (SETF (FDEFINITION SYM) (FDEFINITION 'CONS)) - (FUNCALL (SYMBOL-FUNCTION SYM) 'A 'B)) - (NOTNOT (FBOUNDP SYM)))) -Expected values: NIL - (A . B) - T -Actual value: #. -Test FDEFINITION.5 failed -Form: (LET* ((SYM (GENSYM)) (FNAME (LIST 'SETF SYM))) - (VALUES (FBOUNDP FNAME) - (PROGN - (SETF (FDEFINITION FNAME) (FDEFINITION 'CONS)) - (EVAL (LIST 'SETF (LIST SYM ''A) ''B))) - (NOTNOT (FBOUNDP FNAME)))) -Expected values: NIL - (B . A) - T -Actual value: #. -Test FDEFINITION.ORDER.1 failed -Form: (LET ((I 0)) (FDEFINITION (PROGN (INCF I) 'SETQ)) I) -Expected value: 1 -Actual value: #. - FLET.1 FLET.2 FLET.3 FLET.4 FLET.5 FLET.6 FLET.7 FLET.8 FLET.9 FLET.10 - FLET.11 FLET.12 FLET.13 FLET.14 FLET.15 FLET.16 -Test FLET.17 failed -Form: (FLET (((SETF %F) (X Y) (SETF (CAR Y) X))) - (LET ((Z (LIST 1 2))) (SETF (%F Z) 'A) Z)) -Expected value: (A 2) -Actual value: #. - FLET.18 FLET.19 FLET.20 FLET.21 FLET.22 FLET.23 FLET.24 FLET.25 - FLET.26 FLET.27 FLET.28 FLET.29 FLET.30 FLET.31 FLET.32 FLET.33 - FLET.34 FLET.35 FLET.36 FLET.37 FLET.38 FLET.39 FLET.40 FLET.45 - FLET.46 FLET.47 FLET.48 FLET.49 FLET.50 -Test FLET.51 failed -Form: (LOOP - FOR - S - IN - *CL-NON-FUNCTION-MACRO-SPECIAL-OPERATOR-SYMBOLS* - FOR - FORM - = - (LIST 'CLASSIFY-ERROR - (LIST 'FLET - (LIST (LIST* (LIST 'SETF S) - '((&REST ARGS) (DECLARE (IGNORE ARGS)) - 'A))) - (LIST 'SETF (LIST S) 10))) - UNLESS - (EQ (EVAL FORM) 'A) - COLLECT - S) -Expected value: NIL -Actual value: (&ALLOW-OTHER-KEYS &AUX &BODY &ENVIRONMENT &KEY &OPTIONAL - &REST &WHOLE ** *** *BREAK-ON-SIGNALS* - *COMPILE-FILE-PATHNAME* *COMPILE-FILE-TRUENAME* - *COMPILE-PRINT* *COMPILE-VERBOSE* *DEBUG-IO* - *DEBUGGER-HOOK* *DEFAULT-PATHNAME-DEFAULTS* - *ERROR-OUTPUT* *FEATURES* *GENSYM-COUNTER* - *LOAD-PATHNAME* *LOAD-PRINT* *LOAD-TRUENAME* - *LOAD-VERBOSE* *MACROEXPAND-HOOK* *MODULES* *PACKAGE* - *PRINT-ARRAY* *PRINT-BASE* *PRINT-CASE* - *PRINT-CIRCLE* *PRINT-ESCAPE* *PRINT-GENSYM* - *PRINT-LENGTH* *PRINT-LEVEL* *PRINT-LINES* - *PRINT-MISER-WIDTH* *PRINT-PPRINT-DISPATCH* - *PRINT-PRETTY* *PRINT-RADIX* *PRINT-READABLY* - *PRINT-RIGHT-MARGIN* *QUERY-IO* *RANDOM-STATE* - *READ-BASE* *READ-DEFAULT-FLOAT-FORMAT* *READ-EVAL* - *READ-SUPPRESS* *READTABLE* *STANDARD-INPUT* - *STANDARD-OUTPUT* *TERMINAL-IO* *TRACE-OUTPUT* ++ +++ - // /// ARITHMETIC-ERROR ARRAY ARRAY-DIMENSION-LIMIT - ARRAY-RANK-LIMIT ARRAY-TOTAL-SIZE-LIMIT BASE-CHAR - BASE-STRING BIGNUM BIT-VECTOR BOOLE-1 BOOLE-2 - BOOLE-AND BOOLE-ANDC1 BOOLE-ANDC2 BOOLE-C1 BOOLE-C2 - BOOLE-CLR BOOLE-EQV BOOLE-IOR BOOLE-NAND BOOLE-NOR - BOOLE-ORC1 BOOLE-ORC2 BOOLE-SET BOOLE-XOR BOOLEAN - BROADCAST-STREAM BUILT-IN-CLASS CALL-ARGUMENTS-LIMIT - CELL-ERROR CHAR-CODE-LIMIT CLASS COMPILATION-SPEED - COMPILED-FUNCTION COMPILER-MACRO CONCATENATED-STREAM - CONDITION CONTROL-ERROR DEBUG DECLARATION - DIVISION-BY-ZERO DOUBLE-FLOAT DOUBLE-FLOAT-EPSILON - DOUBLE-FLOAT-NEGATIVE-EPSILON DYNAMIC-EXTENT - ECHO-STREAM ED END-OF-FILE EXTENDED-CHAR FILE-ERROR - FILE-STREAM FILE-STRING-LENGTH FILL FIXNUM - FLOATING-POINT-INEXACT - FLOATING-POINT-INVALID-OPERATION - FLOATING-POINT-OVERFLOW FLOATING-POINT-UNDERFLOW - FTYPE GENERIC-FUNCTION HASH-TABLE IGNORABLE IGNORE - INLINE INTEGER INTERNAL-TIME-UNITS-PER-SECOND KEYWORD - LAMBDA-LIST-KEYWORDS LAMBDA-PARAMETERS-LIMIT - LEAST-NEGATIVE-DOUBLE-FLOAT LEAST-NEGATIVE-LONG-FLOAT - LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT - LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT - LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT - LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT - LEAST-NEGATIVE-SHORT-FLOAT - LEAST-NEGATIVE-SINGLE-FLOAT - LEAST-POSITIVE-DOUBLE-FLOAT LEAST-POSITIVE-LONG-FLOAT - LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT - LEAST-POSITIVE-NORMALIZED-LONG-FLOAT - LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT - LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT - LEAST-POSITIVE-SHORT-FLOAT - LEAST-POSITIVE-SINGLE-FLOAT LONG-FLOAT - LONG-FLOAT-EPSILON LONG-FLOAT-NEGATIVE-EPSILON METHOD - METHOD-COMBINATION MOST-NEGATIVE-DOUBLE-FLOAT - MOST-NEGATIVE-FIXNUM MOST-NEGATIVE-LONG-FLOAT - MOST-NEGATIVE-SHORT-FLOAT MOST-NEGATIVE-SINGLE-FLOAT - MOST-POSITIVE-DOUBLE-FLOAT MOST-POSITIVE-FIXNUM - MOST-POSITIVE-LONG-FLOAT MOST-POSITIVE-SHORT-FLOAT - MOST-POSITIVE-SINGLE-FLOAT MULTIPLE-VALUES-LIMIT NIL - NOTINLINE NUMBER OPTIMIZE OTHERWISE PACKAGE - PACKAGE-ERROR PARSE-ERROR PI PRINT-NOT-READABLE - PROGRAM-ERROR RANDOM RANDOM-STATE RATIO READER-ERROR - READTABLE REAL RESTART SAFETY SATISFIES SEQUENCE - SERIOUS-CONDITION SHORT-FLOAT SHORT-FLOAT-EPSILON - SHORT-FLOAT-NEGATIVE-EPSILON SIGNED-BYTE SIMPLE-ARRAY - SIMPLE-BASE-STRING SIMPLE-BIT-VECTOR SIMPLE-CONDITION - SIMPLE-ERROR SIMPLE-STRING SIMPLE-TYPE-ERROR - SIMPLE-VECTOR SIMPLE-WARNING SINGLE-FLOAT - SINGLE-FLOAT-EPSILON SINGLE-FLOAT-NEGATIVE-EPSILON - SPACE SPECIAL SPEED STANDARD STANDARD-CHAR - STANDARD-CLASS STANDARD-GENERIC-FUNCTION - STANDARD-METHOD STANDARD-OBJECT STORAGE-CONDITION - STREAM STREAM-ERROR STRING-STREAM STRUCTURE - STRUCTURE-CLASS STRUCTURE-OBJECT STYLE-WARNING SYMBOL - SYNONYM-STREAM T TWO-WAY-STREAM TYPE TYPE-ERROR - UNBOUND-SLOT UNBOUND-VARIABLE UNDEFINED-FUNCTION - UNSIGNED-BYTE VARIABLE WARNING). - FMAKUNBOUND.1 FMAKUNBOUND.2 FMAKUNBOUND.3 -Test FMAKUNBOUND.4 failed -Form: (LET* ((G (GENSYM)) (N (LIST 'SETF G))) - (AND (NOT (FBOUNDP N)) (EVAL (LIST* 'DEFUN N '(NIL NIL))) - (FBOUNDP N) - (VALUES (EQUAL (CHECK-VALUES (FMAKUNBOUND N)) N) - (FBOUNDP N)))) -Expected values: T - NIL -Actual value: #. - FMAKUNBOUND.ERROR.1 FMAKUNBOUND.ERROR.2 FMAKUNBOUND.ERROR.3 - FMAKUNBOUND.ERROR.4 FMAKUNBOUND.ERROR.5 FMAKUNBOUND.ERROR.6 FUNCALL.1 - FUNCALL.2 FUNCALL.3 FUNCALL.4 FUNCALL.5 FUNCALL.6 FUNCALL.7 FUNCALL.8 - FUNCALL.9 FUNCALL.ORDER.1 FUNCALL.ORDER.2 FUNCALL.ERROR.1 - FUNCALL.ERROR.2 -Test FUNCALL.ERROR.3 failed -Form: (CLASSIFY-ERROR (FUNCALL 'DEFCONSTANT '(DEFCONSTANT X 10))) -Expected value: UNDEFINED-FUNCTION -Actual value: PROGRAM-ERROR. - FUNCALL.ERROR.4 FUNCALL.ERROR.5 FUNCALL.ERROR.6 FUNCALL.ERROR.7 -Test FUNCTION-LAMBDA-EXPRESSION.1 failed -Form: (LENGTH (MULTIPLE-VALUE-LIST (FUNCTION-LAMBDA-EXPRESSION #'CONS))) -Expected value: 3 -Actual value: #. -Test FUNCTION-LAMBDA-EXPRESSION.2 failed -Form: (LET ((X NIL)) - (FLET ((%F NIL X)) - (LET ((RET-VALS - (MULTIPLE-VALUE-LIST - (FUNCTION-LAMBDA-EXPRESSION #'%F)))) - (VALUES (LENGTH RET-VALS) (NOTNOT (SECOND RET-VALS)))))) -Expected values: 3 - T -Actual value: #. -Test FUNCTION-LAMBDA-EXPRESSION.ORDER.1 failed -Form: (LET ((I 0)) - (FUNCTION-LAMBDA-EXPRESSION (PROGN (INCF I) #'CONS)) - I) -Expected value: 1 -Actual value: #. -Test FUNCTION-LAMBDA-EXPRESSION.ERROR.1 failed -Form: (CLASSIFY-ERROR (FUNCTION-LAMBDA-EXPRESSION)) -Expected value: PROGRAM-ERROR -Actual value: UNDEFINED-FUNCTION. -Test FUNCTION-LAMBDA-EXPRESSION.ERROR.2 failed -Form: (CLASSIFY-ERROR (FUNCTION-LAMBDA-EXPRESSION #'CONS NIL)) -Expected value: PROGRAM-ERROR -Actual value: UNDEFINED-FUNCTION. - FUNCTION.1 -Test FUNCTION.2 failed -Form: (TYPEP 'IDENTITY 'FUNCTION) -Expected value: NIL -Actual value: T. - FUNCTION.3 FUNCTION.4 FUNCTION.5 -Test FUNCTION.6 failed -Form: (TYPEP '(LAMBDA (X) X) 'FUNCTION) -Expected value: NIL -Actual value: T. -Test FUNCTION.7 failed -Form: (NOT-MV (TYPEP #'(SETF FUNCTION-7-ACCESSOR) 'FUNCTION)) -Expected value: NIL -Actual value: #. FUNCTION.8 FUNCTION.9 Test FUNCTION.10 failed Form: (LOOP @@ -16861,110 +16514,389 @@ RASSOC-IF.ALLOW-OTHER-KEYS.2 RASSOC-IF.ALLOW-OTHER-KEYS.3 RASSOC-IF.ALLOW-OTHER-KEYS.4 RASSOC-IF.ALLOW-OTHER-KEYS.5 RASSOC-IF.KEYWORDS.6 RASSOC-IF.ERROR.1 RASSOC-IF.ERROR.2 - RASSOC-IF.ERROR.3 RASSOC-IF.ERROR.4 RASSOC-IF.ERROR.5 - RASSOC-IF.ERROR.6 RASSOC-IF.ERROR.7 RASSOC-IF.ERROR.8 - RASSOC-IF.ERROR.9 RASSOC-IF.ERROR.10 RASSOC-IF-NOT.1 RASSOC-IF-NOT.2 - RASSOC-IF-NOT.3 RASSOC-IF-NOT.4 RASSOC-IF-NOT.ORDER.1 - RASSOC-IF-NOT.ORDER.2 RASSOC-IF-NOT.ALLOW-OTHER-KEYS.1 - RASSOC-IF-NOT.ALLOW-OTHER-KEYS.2 RASSOC-IF-NOT.ALLOW-OTHER-KEYS.3 - RASSOC-IF-NOT.ALLOW-OTHER-KEYS.4 RASSOC-IF-NOT.ALLOW-OTHER-KEYS.5 - RASSOC-IF-NOT.ALLOW-OTHER-KEYS.6 RASSOC-IF-NOT.KEYWORDS.7 - RASSOC-IF-NOT.ERROR.1 RASSOC-IF-NOT.ERROR.2 RASSOC-IF-NOT.ERROR.3 - RASSOC-IF-NOT.ERROR.4 RASSOC-IF-NOT.ERROR.5 RASSOC-IF-NOT.ERROR.6 - RASSOC-IF-NOT.ERROR.7 RASSOC-IF-NOT.ERROR.8 RASSOC-IF-NOT.ERROR.9 - RASSOC-IF-NOT.ERROR.10 GET-PROPERTIES.1 GET-PROPERTIES.2 - GET-PROPERTIES.3 GET-PROPERTIES.4 GET-PROPERTIES.5 GET-PROPERTIES.6 - GET-PROPERTIES.7 -Test GET-PROPERTIES.8 failed -Form: (GET-PROPERTIES '(1000000000000 B C D) (LIST (1+ 999999999999))) + RASSOC-IF.ERROR.3 COMPILE.1 COMPILE.2 COMPILE.3 COMPILE.4 COMPILE.5 COMPILE.6 COMPILE.7 + COMPILE.8 COMPILE.9 +Test COMPILE.ERROR.1 failed +Form: (CLASSIFY-ERROR (COMPILE)) +Expected value: PROGRAM-ERROR +Actual value: ERROR. +Test COMPILE.ERROR.2 failed +Form: (CLASSIFY-ERROR (COMPILE NIL '(LAMBDA () NIL) 'GARBAGE)) +Expected value: PROGRAM-ERROR +Actual values: # + NIL + NIL. + CONSTANTP.ERROR.1 CONSTANTP.ERROR.2 CONSTANTP.1 CONSTANTP.2 + CONSTANTP.3 CONSTANTP.4 CONSTANTP.5 +Test CONSTANTP.6 failed +Form: (CONSTANTP-MACRO CONSTANTP-TEST-SYMBOL) +Expected value: T +Actual value: #. + CONSTANTP.7 +Test CONSTANTP.8 failed +Form: (NOTNOT-MV (CONSTANTP 1 NIL)) +Expected value: T +Actual value: #. + CONSTANTP.9 CONSTANTP.10 CONSTANTP.ORDER.1 +Test CONSTANTP.ORDER.2 failed +Form: (LET ((I 0) X Y) + (VALUES (NOTNOT (CONSTANTP (PROGN (SETF X (INCF I)) 1) + (PROGN (SETF Y (INCF I)) NIL))) + I X Y)) +Expected values: T + 2 + 1 + 2 +Actual value: #. + LAMBDA.1 LAMBDA.2 LAMBDA.3 LAMBDA.4 LAMBDA.5 LAMBDA.6 LAMBDA.7 + LAMBDA.8 LAMBDA.9 LAMBDA.10 LAMBDA.MACRO.1 LAMBDA.MACRO.2 +Test DCF-FUNS failed +Form: (REMOVE-IF #'FBOUNDP *DCF-FNS*) +Expected value: NIL +Actual value: (FUNCTION-LAMBDA-EXPRESSION). +Test DCF-MACROS failed +Form: (REMOVE-IF #'MACRO-FUNCTION *DCF-MACROS*) +Expected value: NIL +Actual value: (DEFINE-SETF-EXPANDER). + SETF-ORDER SETF-ORDER.2 PUSH-ORDER PUSHNEW-ORDER PUSHNEW-ORDER.2 + REMF-ORDER INCF-ORDER DECF-ORDER SHIFTF-ORDER.1 SHIFTF-ORDER.2 + ROTATEF-ORDER.1 ROTATEF-ORDER.2 PSETF-ORDER PSETF-ORDER.2 POP-ORDER + SETF-VAR SETF-VALUES.1 SETF-VALUES.2 SETF-VALUES.3 SETF-VALUES.4 +Test SETF-VALUES.5 failed +Form: (LET ((A (VECTOR NIL NIL)) (I 0) X Y Z) + (SETF (VALUES (AREF A (PROGN (SETF X (INCF I)) 0)) + (AREF A (PROGN (SETF Y (INCF I)) 1))) + (PROGN (SETF Z (INCF I)) (VALUES 'FOO 'BAR))) + (VALUES A I X Y Z)) +Expected values: #(FOO BAR) + 3 + 1 + 2 + 3 +Actual values: #(FOO BAR) + 3 + 2 + 3 + 1. + SETF-VALUES.6 SETF-THE.1 SETF-THE.2 SETF-APPLY.1 SETF-APPLY.2 + SETF-APPLY.3 SETF-APPLY.4 SETF-EXPANDER.1 SETF-MACRO.1 SETF-MACRO.2 + SETF-MACRO.3 SETF-MACRO.4 SETF-SYMBOL-MACRO.1 SETF-SYMBOL-MACRO.2 + SETF-SYMBOL-MACRO.3 SETQ.1 SETQ.2 SETQ.3 SETQ.4 SETF.1 SETF.2 SETF.3 + SETF.4 PSETQ.1 PSETQ.2 PSETQ.3 PSETQ.4 PSETQ.5 PSETQ.6 +Test PSETQ.7 failed +Form: (SYMBOL-MACROLET ((X (AREF A (INCF I))) (Y (AREF A (INCF I)))) + (LET ((A (COPY-SEQ #(0 1 2 3 4 5 6 7 8 9))) (I 0)) + (PSETQ X (AREF A (INCF I)) Y (AREF A (INCF I))) + (VALUES A I))) +Expected values: #(0 2 2 4 4 5 6 7 8 9) + 4 +Actual values: #(0 1 2 1 2 5 6 7 8 9) + 4. + PSETF.1 PSETF.2 PSETF.3 PSETF.4 PSETF.5 PSETF.6 +Test PSETF.7 failed +Form: (SYMBOL-MACROLET ((X (AREF A (INCF I))) (Y (AREF A (INCF I)))) + (LET ((A (COPY-SEQ #(0 1 2 3 4 5 6 7 8 9))) (I 0)) + (PSETF X (AREF A (INCF I)) Y (AREF A (INCF I))) + (VALUES A I))) +Expected values: #(0 2 2 4 4 5 6 7 8 9) + 4 +Actual values: #(0 1 2 1 2 5 6 7 8 9) + 4. + PSETF.8 PSETF.9 AND.1 AND.2 AND.3 AND.4 AND.5 AND.6 AND.7 AND.8 AND.9 + AND.ORDER.1 AND.ORDER.2 APPLY.ERROR.1 APPLY.ERROR.2 APPLY.ERROR.3 + APPLY.ERROR.4 APPLY.1 APPLY.2 APPLY.3 APPLY.4 APPLY.5 APPLY.ORDER.1 + BLOCK.1 BLOCK.2 BLOCK.3 BLOCK.4 BLOCK.5 BLOCK.6 BLOCK.7 BLOCK.8 + BLOCK.9 BLOCK.10 CALL-ARGUMENTS-LIMIT.1 CALL-ARGUMENTS-LIMIT.2 + CALL-ARGUMENTS-LIMIT.3 CALL-ARGUMENTS-LIMIT.4 CALL-ARGUMENTS-LIMIT.5 + CASE.1 CASE.2 CASE.3 CASE.4 CASE.5 CASE.6 CASE.7 CASE.8 CASE.9 CASE.10 + CASE.11 CASE.12 CASE.13 CASE.14 CASE.15 CASE.16 CASE.17 CASE.18 + CASE.19 CASE.20 CASE.21 CASE.22 CASE.23 CASE.24 CASE.25 CASE.26 + CASE.27 CASE.28 CASE.29 CASE.30 CASE.31 CASE.32 CASE.33 CASE.34 + CATCH.1 CATCH.2 CATCH.3 CATCH.4 CATCH.5 CATCH.6 CATCH.7 CATCH.8 + CATCH.9 CATCH.10 CATCH.11 CATCH.12 +Test THROW-ERROR failed +Form: (CLASSIFY-ERROR (THROW (GENSYM) NIL)) +Expected value: CONTROL-ERROR +Actual value: ERROR. + CCASE.1 CCASE.2 CCASE.3 CCASE.4 CCASE.5 CCASE.6 CCASE.7 CCASE.8 + CCASE.9 CCASE.10 CCASE.11 CCASE.12 CCASE.13 CCASE.14 CCASE.15 CCASE.16 + CCASE.17 CCASE.19 CCASE.20 CCASE.21 CCASE.23 CCASE.25 CCASE.26 + CCASE.27 CCASE.28 CCASE.29 CCASE.30 CCASE.31 COMPILED-FUNCTION-P.1 + COMPILED-FUNCTION-P.2 COMPILED-FUNCTION-P.3 + COMPILED-FUNCTION-P.ORDER.1 COMPILED-FUNCTION-P.ERROR.1 + COMPILED-FUNCTION-P.ERROR.2 COMPLEMENT.1 COMPLEMENT.2 COMPLEMENT.3 + COMPLEMENT.4 COMPLEMENT.5 COMPLEMENT.ORDER.1 COMPLEMENT.ERROR.1 + COMPLEMENT.ERROR.2 COMPLEMENT.ERROR.3 COMPLEMENT.ERROR.4 COND.1 COND.2 + COND.3 COND.4 COND.5 COND.6 COND.7 COND.8 COND.9 COND.10 COND.11 + COND.12 COND.13 COND.14 CONSTANTLY.1 CONSTANTLY.2 CONSTANTLY.3 + CONSTANTLY.ERROR.1 CONSTANTLY.ERROR.2 CTYPECASE.1 CTYPECASE.2 + CTYPECASE.3 CTYPECASE.4 CTYPECASE.5 CTYPECASE.6 CTYPECASE.7 + CTYPECASE.8 CTYPECASE.9 CTYPECASE.10 CTYPECASE.11 CTYPECASE.12 + CTYPECASE.13 DEFCONSTANT.1 DEFCONSTANT.2 DEFCONSTANT.3 DEFCONSTANT.4 + DEFCONSTANT.5 DEFINE-MODIFY-MACRO.1 DEFINE-MODIFY-MACRO.2 + DEFINE-MODIFY-MACRO.3 DEFINE-MODIFY-MACRO.4 DEFPARAMETER.1 + DEFPARAMETER.2 DEFPARAMETER.3 DEFPARAMETER.4 DEFPARAMETER.5 DEFVAR.1 + DEFVAR.2 DEFVAR.3 DEFVAR.4 DEFVAR.5 DESTRUCTURING-BIND.1 + DESTRUCTURING-BIND.2 DESTRUCTURING-BIND.3 DESTRUCTURING-BIND.4 + DESTRUCTURING-BIND.5 DESTRUCTURING-BIND.6 DESTRUCTURING-BIND.7 + DESTRUCTURING-BIND.8 DESTRUCTURING-BIND.9 DESTRUCTURING-BIND.10 + DESTRUCTURING-BIND.11 DESTRUCTURING-BIND.12 DESTRUCTURING-BIND.13 + DESTRUCTURING-BIND.14 DESTRUCTURING-BIND.15 DESTRUCTURING-BIND.16 + DESTRUCTURING-BIND.17 DESTRUCTURING-BIND.18 ECASE.1 ECASE.2 ECASE.3 + ECASE.4 ECASE.5 ECASE.6 ECASE.7 ECASE.8 ECASE.9 ECASE.10 ECASE.11 + ECASE.12 ECASE.13 ECASE.14 ECASE.15 ECASE.16 ECASE.17 ECASE.18 + ECASE.19 ECASE.20 ECASE.21 ECASE.23 ECASE.25 ECASE.26 ECASE.27 + ECASE.28 ECASE.29 ECASE.31 ECASE.32 EQL.1 EQL.2 EQL.3 EQL.4 EQL.5 + EQL.7 EQL.8 EQL.9 EQL.10 EQL.11 EQL.ORDER.1 EQL.ERROR.1 EQL.ERROR.2 + EQL.ERROR.3 EQ.ERROR.1 EQ.ERROR.2 EQ.ERROR.3 EQUAL.1 EQUAL.2 EQUAL.3 + EQUAL.4 EQUAL.5 EQUAL.6 EQUAL.7 EQUAL.8 EQUAL.9 EQUAL.10 EQUAL.11 + EQUAL.12 EQUAL.ORDER.1 EQUAL.ERROR.1 EQUAL.ERROR.2 EQUAL.ERROR.3 + EQUALP.1 EQUALP.2 EQUALP.3 EQUALP.4 EQUALP.ORDER.1 EQUALP.ERROR.1 + EQUALP.ERROR.2 EQUALP.ERROR.3 ETYPECASE.1 ETYPECASE.2 ETYPECASE.3 + ETYPECASE.4 ETYPECASE.5 ETYPECASE.6 ETYPECASE.7 ETYPECASE.8 + ETYPECASE.9 ETYPECASE.10 ETYPECASE.11 ETYPECASE.12 EVERY.1 EVERY.2 + EVERY.3 EVERY.4 EVERY.5 EVERY.6 EVERY.7 EVERY.8 EVERY.9 EVERY.10 + EVERY.11 EVERY.12 EVERY.13 EVERY.14 EVERY.15 EVERY.16 EVERY.ORDER.1 + EVERY.ORDER.2 EVERY.ERROR.1 EVERY.ERROR.2 EVERY.ERROR.3 EVERY.ERROR.4 + EVERY.ERROR.5 EVERY.ERROR.6 EVERY.ERROR.7 EVERY.ERROR.9 EVERY.ERROR.10 + EVERY.ERROR.11 EVERY.ERROR.12 EVERY.ERROR.13 FBOUNDP.1 FBOUNDP.2 + FBOUNDP.3 FBOUNDP.4 FBOUNDP.5 +Test FBOUNDP.6 failed +Form: (NOT-MV (FBOUNDP '(SETF FBOUNDP-6-ACCESSOR))) +Expected value: NIL +Actual value: #. +Test FBOUNDP.7 failed +Form: (LET ((G (GENSYM))) (FBOUNDP (LIST 'SETF G))) +Expected value: NIL +Actual value: #. + FBOUNDP.ORDER.1 FBOUNDP.ERROR.1 FBOUNDP.ERROR.2 FBOUNDP.ERROR.3 + FBOUNDP.ERROR.4 FBOUNDP.ERROR.5 FBOUNDP.ERROR.6 +Test FDEFINITION.ERROR.1 failed +Form: (CLASSIFY-ERROR (FDEFINITION)) +Expected value: PROGRAM-ERROR +Actual value: UNDEFINED-FUNCTION. +Test FDEFINITION.ERROR.2 failed +Form: (CLASSIFY-ERROR (FDEFINITION 'CONS NIL)) +Expected value: PROGRAM-ERROR +Actual value: UNDEFINED-FUNCTION. + FDEFINITION.ERROR.3 +Test FDEFINITION.ERROR.4 failed +Form: (CLASSIFY-ERROR (FDEFINITION 10)) +Expected value: TYPE-ERROR +Actual value: UNDEFINED-FUNCTION. + FDEFINITION.ERROR.5 +Test FDEFINITION.ERROR.6 failed +Form: (CLASSIFY-ERROR (LOCALLY (FDEFINITION 10) T)) +Expected value: TYPE-ERROR +Actual value: UNDEFINED-FUNCTION. +Test FDEFINITION.1 failed +Form: (LET ((FUN (FDEFINITION 'CONS))) (FUNCALL FUN 'A 'B)) +Expected value: (A . B) +Actual value: #. +Test FDEFINITION.2 failed +Form: (PROGN (FDEFINITION 'COND) :GOOD) +Expected value: :GOOD +Actual value: #. +Test FDEFINITION.3 failed +Form: (PROGN (FDEFINITION 'SETQ) :GOOD) +Expected value: :GOOD +Actual value: #. +Test FDEFINITION.4 failed +Form: (LET ((SYM (GENSYM))) + (VALUES (FBOUNDP SYM) + (PROGN + (SETF (FDEFINITION SYM) (FDEFINITION 'CONS)) + (FUNCALL (SYMBOL-FUNCTION SYM) 'A 'B)) + (NOTNOT (FBOUNDP SYM)))) Expected values: NIL + (A . B) + T +Actual value: #. +Test FDEFINITION.5 failed +Form: (LET* ((SYM (GENSYM)) (FNAME (LIST 'SETF SYM))) + (VALUES (FBOUNDP FNAME) + (PROGN + (SETF (FDEFINITION FNAME) (FDEFINITION 'CONS)) + (EVAL (LIST 'SETF (LIST SYM ''A) ''B))) + (NOTNOT (FBOUNDP FNAME)))) +Expected values: NIL + (B . A) + T +Actual value: #. +Test FDEFINITION.ORDER.1 failed +Form: (LET ((I 0)) (FDEFINITION (PROGN (INCF I) 'SETQ)) I) +Expected value: 1 +Actual value: #. + FLET.1 FLET.2 FLET.3 FLET.4 FLET.5 FLET.6 FLET.7 FLET.8 FLET.9 FLET.10 + FLET.11 FLET.12 FLET.13 FLET.14 FLET.15 FLET.16 +Test FLET.17 failed +Form: (FLET (((SETF %F) (X Y) (SETF (CAR Y) X))) + (LET ((Z (LIST 1 2))) (SETF (%F Z) 'A) Z)) +Expected value: (A 2) +Actual value: #. + FLET.18 FLET.19 FLET.20 FLET.21 FLET.22 FLET.23 FLET.24 FLET.25 + FLET.26 FLET.27 FLET.28 FLET.29 FLET.30 FLET.31 FLET.32 FLET.33 + FLET.34 FLET.35 FLET.36 FLET.37 FLET.38 FLET.39 FLET.40 FLET.45 + FLET.46 FLET.47 FLET.48 FLET.49 FLET.50 +Test FLET.51 failed +Form: (LOOP + FOR + S + IN + *CL-NON-FUNCTION-MACRO-SPECIAL-OPERATOR-SYMBOLS* + FOR + FORM + = + (LIST 'CLASSIFY-ERROR + (LIST 'FLET + (LIST (LIST* (LIST 'SETF S) + '((&REST ARGS) (DECLARE (IGNORE ARGS)) + 'A))) + (LIST 'SETF (LIST S) 10))) + UNLESS + (EQ (EVAL FORM) 'A) + COLLECT + S) +Expected value: NIL +Actual value: (&ALLOW-OTHER-KEYS &AUX &BODY &ENVIRONMENT &KEY &OPTIONAL + &REST &WHOLE ** *** *BREAK-ON-SIGNALS* + *COMPILE-FILE-PATHNAME* *COMPILE-FILE-TRUENAME* + *COMPILE-PRINT* *COMPILE-VERBOSE* *DEBUG-IO* + *DEBUGGER-HOOK* *DEFAULT-PATHNAME-DEFAULTS* + *ERROR-OUTPUT* *FEATURES* *GENSYM-COUNTER* + *LOAD-PATHNAME* *LOAD-PRINT* *LOAD-TRUENAME* + *LOAD-VERBOSE* *MACROEXPAND-HOOK* *MODULES* *PACKAGE* + *PRINT-ARRAY* *PRINT-BASE* *PRINT-CASE* + *PRINT-CIRCLE* *PRINT-ESCAPE* *PRINT-GENSYM* + *PRINT-LENGTH* *PRINT-LEVEL* *PRINT-LINES* + *PRINT-MISER-WIDTH* *PRINT-PPRINT-DISPATCH* + *PRINT-PRETTY* *PRINT-RADIX* *PRINT-READABLY* + *PRINT-RIGHT-MARGIN* *QUERY-IO* *RANDOM-STATE* + *READ-BASE* *READ-DEFAULT-FLOAT-FORMAT* *READ-EVAL* + *READ-SUPPRESS* *READTABLE* *STANDARD-INPUT* + *STANDARD-OUTPUT* *TERMINAL-IO* *TRACE-OUTPUT* ++ +++ + // /// ARITHMETIC-ERROR ARRAY ARRAY-DIMENSION-LIMIT + ARRAY-RANK-LIMIT ARRAY-TOTAL-SIZE-LIMIT BASE-CHAR + BASE-STRING BIGNUM BIT-VECTOR BOOLE-1 BOOLE-2 + BOOLE-AND BOOLE-ANDC1 BOOLE-ANDC2 BOOLE-C1 BOOLE-C2 + BOOLE-CLR BOOLE-EQV BOOLE-IOR BOOLE-NAND BOOLE-NOR + BOOLE-ORC1 BOOLE-ORC2 BOOLE-SET BOOLE-XOR BOOLEAN + BROADCAST-STREAM BUILT-IN-CLASS CALL-ARGUMENTS-LIMIT + CELL-ERROR CHAR-CODE-LIMIT CLASS COMPILATION-SPEED + COMPILED-FUNCTION COMPILER-MACRO CONCATENATED-STREAM + CONDITION CONTROL-ERROR DEBUG DECLARATION + DIVISION-BY-ZERO DOUBLE-FLOAT DOUBLE-FLOAT-EPSILON + DOUBLE-FLOAT-NEGATIVE-EPSILON DYNAMIC-EXTENT + ECHO-STREAM ED END-OF-FILE EXTENDED-CHAR FILE-ERROR + FILE-STREAM FILE-STRING-LENGTH FILL FIXNUM + FLOATING-POINT-INEXACT + FLOATING-POINT-INVALID-OPERATION + FLOATING-POINT-OVERFLOW FLOATING-POINT-UNDERFLOW + FTYPE GENERIC-FUNCTION HASH-TABLE IGNORABLE IGNORE + INLINE INTEGER INTERNAL-TIME-UNITS-PER-SECOND KEYWORD + LAMBDA-LIST-KEYWORDS LAMBDA-PARAMETERS-LIMIT + LEAST-NEGATIVE-DOUBLE-FLOAT LEAST-NEGATIVE-LONG-FLOAT + LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT + LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT + LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT + LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT + LEAST-NEGATIVE-SHORT-FLOAT + LEAST-NEGATIVE-SINGLE-FLOAT + LEAST-POSITIVE-DOUBLE-FLOAT LEAST-POSITIVE-LONG-FLOAT + LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT + LEAST-POSITIVE-NORMALIZED-LONG-FLOAT + LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT + LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT + LEAST-POSITIVE-SHORT-FLOAT + LEAST-POSITIVE-SINGLE-FLOAT LONG-FLOAT + LONG-FLOAT-EPSILON LONG-FLOAT-NEGATIVE-EPSILON METHOD + METHOD-COMBINATION MOST-NEGATIVE-DOUBLE-FLOAT + MOST-NEGATIVE-FIXNUM MOST-NEGATIVE-LONG-FLOAT + MOST-NEGATIVE-SHORT-FLOAT MOST-NEGATIVE-SINGLE-FLOAT + MOST-POSITIVE-DOUBLE-FLOAT MOST-POSITIVE-FIXNUM + MOST-POSITIVE-LONG-FLOAT MOST-POSITIVE-SHORT-FLOAT + MOST-POSITIVE-SINGLE-FLOAT MULTIPLE-VALUES-LIMIT NIL + NOTINLINE NUMBER OPTIMIZE OTHERWISE PACKAGE + PACKAGE-ERROR PARSE-ERROR PI PRINT-NOT-READABLE + PROGRAM-ERROR RANDOM RANDOM-STATE RATIO READER-ERROR + READTABLE REAL RESTART SAFETY SATISFIES SEQUENCE + SERIOUS-CONDITION SHORT-FLOAT SHORT-FLOAT-EPSILON + SHORT-FLOAT-NEGATIVE-EPSILON SIGNED-BYTE SIMPLE-ARRAY + SIMPLE-BASE-STRING SIMPLE-BIT-VECTOR SIMPLE-CONDITION + SIMPLE-ERROR SIMPLE-STRING SIMPLE-TYPE-ERROR + SIMPLE-VECTOR SIMPLE-WARNING SINGLE-FLOAT + SINGLE-FLOAT-EPSILON SINGLE-FLOAT-NEGATIVE-EPSILON + SPACE SPECIAL SPEED STANDARD STANDARD-CHAR + STANDARD-CLASS STANDARD-GENERIC-FUNCTION + STANDARD-METHOD STANDARD-OBJECT STORAGE-CONDITION + STREAM STREAM-ERROR STRING-STREAM STRUCTURE + STRUCTURE-CLASS STRUCTURE-OBJECT STYLE-WARNING SYMBOL + SYNONYM-STREAM T TWO-WAY-STREAM TYPE TYPE-ERROR + UNBOUND-SLOT UNBOUND-VARIABLE UNDEFINED-FUNCTION + UNSIGNED-BYTE VARIABLE WARNING). + FMAKUNBOUND.1 FMAKUNBOUND.2 FMAKUNBOUND.3 +Test FMAKUNBOUND.4 failed +Form: (LET* ((G (GENSYM)) (N (LIST 'SETF G))) + (AND (NOT (FBOUNDP N)) (EVAL (LIST* 'DEFUN N '(NIL NIL))) + (FBOUNDP N) + (VALUES (EQUAL (CHECK-VALUES (FMAKUNBOUND N)) N) + (FBOUNDP N)))) +Expected values: T NIL - NIL -Actual values: 1000000000000 - B - (1000000000000 B C D). - GET-PROPERTIES.9 GET-PROPERTIES.ORDER.1 GET-PROPERTIES.ERROR.1 - GET-PROPERTIES.ERROR.2 GET-PROPERTIES.ERROR.3 GETF.1 GETF.2 GETF.3 - GETF.4 GETF.5 GETF.ORDER.1 GETF.ORDER.2 SETF-GETF.1 SETF-GETF.2 - SETF-GETF.3 SETF-GETF.4 SETF-GETF.5 SETF-GETF.ORDER.1 -Test SETF-GETF.ORDER.2 failed -Form: (LET ((P (LIST (COPY-LIST '(A 1 B 2)))) (I 0) X Y Z W) - (SETF (GETF (CAR (PROGN (SETF X (INCF I)) P)) - (PROGN (SETF Y (INCF I)) 'C) (SETF Z (INCF I))) - (PROGN (SETF W (INCF I)) 3)) - (AND (EQLT I 4) (EQLT X 1) (EQLT Y 2) (EQLT Z 3) (EQLT W 4) - (EQLT (GETF (CAR P) 'A) 1) (EQLT (GETF (CAR P) 'B) 2) - (EQLT (GETF (CAR P) 'C) 3) - (EQLT (LOOP - FOR - PTR - ON - (CAR P) - BY - #'CDDR - COUNT - (NOT (MEMBER (CAR PTR) '(A B C)))) - 0) - T)) -Expected value: T -Actual value: NIL. - INCF-GETF.1 INCF-GETF.2 PUSH-GETF.1 GETF.ERROR.1 GETF.ERROR.2 - GETF.ERROR.3 REMF.1 REMF.2 REMF.3 REMF.4 REMF.ORDER.1 INTERSECTION.1 - INTERSECTION.2 INTERSECTION.3 INTERSECTION.4 INTERSECTION.5 - INTERSECTION.6 INTERSECTION.7 INTERSECTION.8 INTERSECTION.9 - INTERSECTION.9-A INTERSECTION.9-B INTERSECTION.10 INTERSECTION.11 - INTERSECTION.11-A INTERSECTION.12 INTERSECTION.13 INTERSECTION.13-A - INTERSECTION.14 INTERSECTION.15 INTERSECTION.16 INTERSECTION.17 - INTERSECTION.18 INTERSECTION.ORDER.1 INTERSECTION.ORDER.2 - INTERSECTION.ORDER.3 INTERSECTION.ORDER.4 INTERSECTION.ORDER.5 - INTERSECTION.ALLOW-OTHER-KEYS.1 INTERSECTION.ALLOW-OTHER-KEYS.2 - INTERSECTIONALLOW-OTHER-KEYS.3 INTERSECTION.ALLOW-OTHER-KEYS.4 - INTERSECTION.ALLOW-OTHER-KEYS.5 INTERSECTION.ALLOW-OTHER-KEYS.6 - INTERSECTION.ALLOW-OTHER-KEYS.7 INTERSECTION.KEYWORDS.8 - INTERSECTION.ERROR.1 INTERSECTION.ERROR.2 INTERSECTION.ERROR.3 - INTERSECTION.ERROR.4 INTERSECTION.ERROR.5 INTERSECTION.ERROR.6 - INTERSECTION.ERROR.7 INTERSECTION.ERROR.8 INTERSECTION.ERROR.9 - INTERSECTION.ERROR.10 NINTERSECTION.1 NINTERSECTION.2 NINTERSECTION.3 - NINTERSECTION.4 NINTERSECTION.5 NINTERSECTION.6 NINTERSECTION.7 - NINTERSECTION.8 NINTERSECTION.9 NINTERSECTION.9-A NINTERSECTION.9-B - NINTERSECTION.10 NINTERSECTION.11 NINTERSECTION.12 NINTERSECTION.13 - NINTERSECTION.14 NINTERSECTION.15 NINTERSECTION.16 NINTERSECTION.17 - NINTERSECTION.18 NINTERSECTION.ORDER.1 NINTERSECTION.ORDER.2 - NINTERSECTION.ORDER.3 NINTERSECTION.ORDER.4 NINTERSECTION.ORDER.5 - NINTERSECTION.ALLOW-OTHER-KEYS.1 NINTERSECTION.ALLOW-OTHER-KEYS.2 - NINTERSECTION.ALLOW-OTHER-KEYS.3 NINTERSECTION.ALLOW-OTHER-KEYS.4 - NINTERSECTION.ALLOW-OTHER-KEYS.5 NINTERSECTION.ALLOW-OTHER-KEYS.6 - NINTERSECTION.ALLOW-OTHER-KEYS.7 NINTERSECTION.KEYWORDS.8 - NINTERSECTION.ALLOW-OTHER-KEYS.9 NINTERSECTION.ERROR.1 - NINTERSECTION.ERROR.2 NINTERSECTION.ERROR.3 NINTERSECTION.ERROR.4 - NINTERSECTION.ERROR.5 NINTERSECTION.ERROR.6 NINTERSECTION.ERROR.7 - NINTERSECTION.ERROR.8 NINTERSECTION.ERROR.9 NINTERSECTION.ERROR.10 - UNION.1 UNION.2 UNION.3 UNION-4 UNION.5 UNION.6 UNION.6-A UNION.7 - UNION.8 UNION.9 UNION.10 UNION.11 UNION.12 UNION.13 UNION.14 UNION.15 - UNION.16 UNION.17 UNION.18 UNION.19 UNION.20 UNION.21 UNION.22 - UNION.23 UNION.24 UNION.25 UNION.26 UNION.27 UNION.28 UNION.29 - UNION.30 UNION.31 UNION.ORDER.1 UNION.ORDER.2 UNION.ORDER.3 - UNION.ALLOW-OTHER-KEYS.1 UNION.ALLOW-OTHER-KEYS.2 - UNION.ALLOW-OTHER-KEYS.3 UNION.ALLOW-OTHER-KEYS.4 - UNION.ALLOW-OTHER-KEYS.5 UNION.ALLOW-OTHER-KEYS.6 - UNION.ALLOW-OTHER-KEYS.7 UNION.KEYWORDS.9 UNION.ERROR.1 UNION.ERROR.2 - UNION.ERROR.3 UNION.ERROR.4 UNION.ERROR.5 UNION.ERROR.6 UNION.ERROR.7 - UNION.ERROR.8 UNION.ERROR.9 UNION.ERROR.10 NUNION.1 NUNION.2 NUNION.3 - NUNION.4 NUNION.5 NUNION.6 NUNION.6-A NUNION.7 NUNION.8 NUNION.9 - NUNION.10 NUNION.11 NUNION.12 NUNION.13 NUNION.14 NUNION.15 NUNION.16 - NUNION.17 NUNION.18 NUNION.19 NUNION.20 NUNION.21 NUNION.22 NUNION.23 - NUNION.24 NUNION.25 NUNION.26 NUNION.27 NUNION.28 NUNION.29 NUNION.30 - NUNION.31 NUNION.ORDER.1 NUNION.ORDER.2 NUNION.ORDER.3 - NUNION.ALLOW-OTHER-KEYS.1 NUNION.ALLOW-OTHER-KEYS.2 - NUNION.ALLOW-OTHER-KEYS.3 NUNION.ALLOW-OTHER-KEYS.4 - NUNION.ALLOW-OTHER-KEYS.5 NUNION.ALLOW-OTHER-KEYS.6 - NUNION.ALLOW-OTHER-KEYS.7 NUNION.KEYWORDS.9 NUNION.ERROR.1 - NUNION.ERROR.2 NUNION.ERROR.3 NUNION.ERROR.4 NUNION.ERROR.5 - NUNION.ERROR.6 NUNION.ERROR.7 NUNION.ERROR.8 NUNION.ERROR.9 - NUNION.ERROR.10 SET-DIFFERENCE.1 SET-DIFFERENCE.2 SET-DIFFERENCE.3 - SET-DIFFERENCE.4 SET-DIFFERENCE.5 SET-DIFFERENCE.6 SET-DIFFERENCE.7 - SET-DIFFERENCE.8 SET-DIFFERENCE.9 SET-DIFFERENCE.10 SET-DIFFERENCE.11 - SET-DIFFERENCE.12 FUNCTION.9 +Actual value: #. + FMAKUNBOUND.ERROR.1 FMAKUNBOUND.ERROR.2 FMAKUNBOUND.ERROR.3 + FMAKUNBOUND.ERROR.4 FMAKUNBOUND.ERROR.5 FMAKUNBOUND.ERROR.6 FUNCALL.1 + FUNCALL.2 FUNCALL.3 FUNCALL.4 FUNCALL.5 FUNCALL.6 FUNCALL.7 FUNCALL.8 + FUNCALL.9 FUNCALL.ORDER.1 FUNCALL.ORDER.2 FUNCALL.ERROR.1 + FUNCALL.ERROR.2 +Test FUNCALL.ERROR.3 failed +Form: (CLASSIFY-ERROR (FUNCALL 'DEFCONSTANT '(DEFCONSTANT X 10))) +Expected value: UNDEFINED-FUNCTION +Actual value: PROGRAM-ERROR. + FUNCALL.ERROR.4 FUNCALL.ERROR.5 FUNCALL.ERROR.6 FUNCALL.ERROR.7 +Test FUNCTION-LAMBDA-EXPRESSION.1 failed +Form: (LENGTH (MULTIPLE-VALUE-LIST (FUNCTION-LAMBDA-EXPRESSION #'CONS))) +Expected value: 3 +Actual value: #. +Test FUNCTION-LAMBDA-EXPRESSION.2 failed +Form: (LET ((X NIL)) + (FLET ((%F NIL X)) + (LET ((RET-VALS + (MULTIPLE-VALUE-LIST + (FUNCTION-LAMBDA-EXPRESSION #'%F)))) + (VALUES (LENGTH RET-VALS) (NOTNOT (SECOND RET-VALS)))))) +Expected values: 3 + T +Actual value: #. +Test FUNCTION-LAMBDA-EXPRESSION.ORDER.1 failed +Form: (LET ((I 0)) + (FUNCTION-LAMBDA-EXPRESSION (PROGN (INCF I) #'CONS)) + I) +Expected value: 1 +Actual value: #. +Test FUNCTION-LAMBDA-EXPRESSION.ERROR.1 failed +Form: (CLASSIFY-ERROR (FUNCTION-LAMBDA-EXPRESSION)) +Expected value: PROGRAM-ERROR +Actual value: UNDEFINED-FUNCTION. +Test FUNCTION-LAMBDA-EXPRESSION.ERROR.2 failed +Form: (CLASSIFY-ERROR (FUNCTION-LAMBDA-EXPRESSION #'CONS NIL)) +Expected value: PROGRAM-ERROR +Actual value: UNDEFINED-FUNCTION. + FUNCTION.1 +Test FUNCTION.2 failed +Form: (TYPEP 'IDENTITY 'FUNCTION) +Expected value: NIL +Actual value: T. + FUNCTION.3 FUNCTION.4 FUNCTION.5 +Test FUNCTION.6 failed +Form: (TYPEP '(LAMBDA (X) X) 'FUNCTION) +Expected value: NIL +Actual value: T. +Test FUNCTION.7 failed +Form: (NOT-MV (TYPEP #'(SETF FUNCTION-7-ACCESSOR) 'FUNCTION)) +Expected value: NIL +Actual value: #. + FUNCTION.8 FUNCTION.9 Test FUNCTION.10 failed Form: (LOOP FOR @@ -18196,8 +18128,7 @@ RASSOC-IF.ORDER.1 RASSOC-IF.ORDER.2 RASSOC-IF.ALLOW-OTHER-KEYS.1 RASSOC-IF.ALLOW-OTHER-KEYS.2 RASSOC-IF.ALLOW-OTHER-KEYS.3 RASSOC-IF.ALLOW-OTHER-KEYS.4 RASSOC-IF.ALLOW-OTHER-KEYS.5 - RASSOC-IF.KEYWORDS.6 RASSOC-IF.ERROR.1 RASSOC-IF.ERROR.2 - RASSOC-IF.ERROR.3 RASSOC-IF.ERROR.4 RASSOC-IF.ERROR.5 + RASSOC-IF.KEYWORDS.6 RASSOC-IF.ERROR.1 RASSOC-IF.ERROR.2 RASSOC-IF.ERROR.4 RASSOC-IF.ERROR.5 RASSOC-IF.ERROR.6 RASSOC-IF.ERROR.7 RASSOC-IF.ERROR.8 RASSOC-IF.ERROR.9 RASSOC-IF.ERROR.10 RASSOC-IF-NOT.1 RASSOC-IF-NOT.2 RASSOC-IF-NOT.3 RASSOC-IF-NOT.4 RASSOC-IF-NOT.ORDER.1 @@ -18333,27 +18264,111 @@ SET-EXCLUSIVE-OR.5 SET-EXCLUSIVE-OR.6 SET-EXCLUSIVE-OR.7 SET-EXCLUSIVE-OR.7-A SET-EXCLUSIVE-OR.8 SET-EXCLUSIVE-OR.8-A SET-EXCLUSIVE-OR.8-B SET-EXCLUSIVE-OR.9 SET-EXCLUSIVE-OR.10 - SET-EXCLUSIVE-OR.11 SET-EXCLUSIVE-OR.12 SET-EXCLUSIVE-OR.13 - SET-EXCLUSIVE-OR.14 SET-EXCLUSIVE-OR.15 SET-EXCLUSIVE-OR.16 - SET-EXCLUSIVE-OR.17 SET-EXCLUSIVE-OR.17-A SET-EXCLUSIVE-OR.18 - SET-EXCLUSIVE-OR.18-A SET-EXCLUSIVE-OR.ORDER.1 - SET-EXCLUSIVE-OR.ORDER.2 SET-EXCLUSIVE-OR.ORDER.3 - SET-EXCLUSIVE-OR.ORDER.4 SET-EXCLUSIVE-OR.ORDER.5 - SET-EXCLUSIVE.ALLOW-OTHER-KEYS.1 SET-EXCLUSIVE.ALLOW-OTHER-KEYS.2 - SET-EXCLUSIVE.ALLOW-OTHER-KEYS.3 SET-EXCLUSIVE.ALLOW-OTHER-KEYS.4 - SET-EXCLUSIVE.ALLOW-OTHER-KEYS.5 SET-EXCLUSIVE.ALLOW-OTHER-KEYS.6 - SET-EXCLUSIVE.ALLOW-OTHER-KEYS.7 SET-EXCLUSIVE.KEYWORDS.8 - SET-EXCLUSIVE.KEYWORDS.9 SET-EXCLUSIVE-OR.ERROR.1 - SET-EXCLUSIVE-OR.ERROR.2 SET-EXCLUSIVE-OR.ERROR.3 - SET-EXCLUSIVE-OR.ERROR.4 SET-EXCLUSIVE-OR.ERROR.5 - SET-EXCLUSIVE-OR.ERROR.6 SET-EXCLUSIVE-OR.ERROR.7 - SET-EXCLUSIVE-OR.ERROR.8 SET-EXCLUSIVE-OR.ERROR.9 - SET-EXCLUSIVE-OR.ERROR.10 NSET-EXCLUSIVE-OR.1 NSET-EXCLUSIVE-OR.2 - NSET-EXCLUSIVE-OR.3 NSET-EXCLUSIVE-OR.4 NSET-EXCLUSIVE-OR.5 - NSET-EXCLUSIVE-OR.6 NSET-EXCLUSIVE-OR.7 NSET-EXCLUSIVE-OR.7-A - NSET-EXCLUSIVE-OR.8 NSET-EXCLUSIVE-OR.8-A NSET-EXCLUSIVE-OR.8-B - NSET-EXCLUSIVE-OR.9 NSET-EXCLUSIVE-OR.10 NSET-EXCLUSIVE-OR.11 - NSET-EXCLUSIVE-OR.12 SET-DIFFERENCE.13 SET-DIFFERENCE.14 + SET-EXCLUSIVE-OR.11 SET-EXCLUSIVE-OR.12 + RASSOC-IF.ERROR.3 RASSOC-IF.ERROR.4 RASSOC-IF.ERROR.5 + RASSOC-IF.ERROR.6 RASSOC-IF.ERROR.7 RASSOC-IF.ERROR.8 + RASSOC-IF.ERROR.9 RASSOC-IF.ERROR.10 RASSOC-IF-NOT.1 RASSOC-IF-NOT.2 + RASSOC-IF-NOT.3 RASSOC-IF-NOT.4 RASSOC-IF-NOT.ORDER.1 + RASSOC-IF-NOT.ORDER.2 RASSOC-IF-NOT.ALLOW-OTHER-KEYS.1 + RASSOC-IF-NOT.ALLOW-OTHER-KEYS.2 RASSOC-IF-NOT.ALLOW-OTHER-KEYS.3 + RASSOC-IF-NOT.ALLOW-OTHER-KEYS.4 RASSOC-IF-NOT.ALLOW-OTHER-KEYS.5 + RASSOC-IF-NOT.ALLOW-OTHER-KEYS.6 RASSOC-IF-NOT.KEYWORDS.7 + RASSOC-IF-NOT.ERROR.1 RASSOC-IF-NOT.ERROR.2 RASSOC-IF-NOT.ERROR.3 + RASSOC-IF-NOT.ERROR.4 RASSOC-IF-NOT.ERROR.5 RASSOC-IF-NOT.ERROR.6 + RASSOC-IF-NOT.ERROR.7 RASSOC-IF-NOT.ERROR.8 RASSOC-IF-NOT.ERROR.9 + RASSOC-IF-NOT.ERROR.10 GET-PROPERTIES.1 GET-PROPERTIES.2 + GET-PROPERTIES.3 GET-PROPERTIES.4 GET-PROPERTIES.5 GET-PROPERTIES.6 + GET-PROPERTIES.7 +Test GET-PROPERTIES.8 failed +Form: (GET-PROPERTIES '(1000000000000 B C D) (LIST (1+ 999999999999))) +Expected values: NIL + NIL + NIL +Actual values: 1000000000000 + B + (1000000000000 B C D). + GET-PROPERTIES.9 GET-PROPERTIES.ORDER.1 GET-PROPERTIES.ERROR.1 + GET-PROPERTIES.ERROR.2 GET-PROPERTIES.ERROR.3 GETF.1 GETF.2 GETF.3 + GETF.4 GETF.5 GETF.ORDER.1 GETF.ORDER.2 SETF-GETF.1 SETF-GETF.2 + SETF-GETF.3 SETF-GETF.4 SETF-GETF.5 SETF-GETF.ORDER.1 +Test SETF-GETF.ORDER.2 failed +Form: (LET ((P (LIST (COPY-LIST '(A 1 B 2)))) (I 0) X Y Z W) + (SETF (GETF (CAR (PROGN (SETF X (INCF I)) P)) + (PROGN (SETF Y (INCF I)) 'C) (SETF Z (INCF I))) + (PROGN (SETF W (INCF I)) 3)) + (AND (EQLT I 4) (EQLT X 1) (EQLT Y 2) (EQLT Z 3) (EQLT W 4) + (EQLT (GETF (CAR P) 'A) 1) (EQLT (GETF (CAR P) 'B) 2) + (EQLT (GETF (CAR P) 'C) 3) + (EQLT (LOOP + FOR + PTR + ON + (CAR P) + BY + #'CDDR + COUNT + (NOT (MEMBER (CAR PTR) '(A B C)))) + 0) + T)) +Expected value: T +Actual value: NIL. + INCF-GETF.1 INCF-GETF.2 PUSH-GETF.1 GETF.ERROR.1 GETF.ERROR.2 + GETF.ERROR.3 REMF.1 REMF.2 REMF.3 REMF.4 REMF.ORDER.1 INTERSECTION.1 + INTERSECTION.2 INTERSECTION.3 INTERSECTION.4 INTERSECTION.5 + INTERSECTION.6 INTERSECTION.7 INTERSECTION.8 INTERSECTION.9 + INTERSECTION.9-A INTERSECTION.9-B INTERSECTION.10 INTERSECTION.11 + INTERSECTION.11-A INTERSECTION.12 INTERSECTION.13 INTERSECTION.13-A + INTERSECTION.14 INTERSECTION.15 INTERSECTION.16 INTERSECTION.17 + INTERSECTION.18 INTERSECTION.ORDER.1 INTERSECTION.ORDER.2 + INTERSECTION.ORDER.3 INTERSECTION.ORDER.4 INTERSECTION.ORDER.5 + INTERSECTION.ALLOW-OTHER-KEYS.1 INTERSECTION.ALLOW-OTHER-KEYS.2 + INTERSECTIONALLOW-OTHER-KEYS.3 INTERSECTION.ALLOW-OTHER-KEYS.4 + INTERSECTION.ALLOW-OTHER-KEYS.5 INTERSECTION.ALLOW-OTHER-KEYS.6 + INTERSECTION.ALLOW-OTHER-KEYS.7 INTERSECTION.KEYWORDS.8 + INTERSECTION.ERROR.1 INTERSECTION.ERROR.2 INTERSECTION.ERROR.3 + INTERSECTION.ERROR.4 INTERSECTION.ERROR.5 INTERSECTION.ERROR.6 + INTERSECTION.ERROR.7 INTERSECTION.ERROR.8 INTERSECTION.ERROR.9 + INTERSECTION.ERROR.10 NINTERSECTION.1 NINTERSECTION.2 NINTERSECTION.3 + NINTERSECTION.4 NINTERSECTION.5 NINTERSECTION.6 NINTERSECTION.7 + NINTERSECTION.8 NINTERSECTION.9 NINTERSECTION.9-A NINTERSECTION.9-B + NINTERSECTION.10 NINTERSECTION.11 NINTERSECTION.12 NINTERSECTION.13 + NINTERSECTION.14 NINTERSECTION.15 NINTERSECTION.16 NINTERSECTION.17 + NINTERSECTION.18 NINTERSECTION.ORDER.1 NINTERSECTION.ORDER.2 + NINTERSECTION.ORDER.3 NINTERSECTION.ORDER.4 NINTERSECTION.ORDER.5 + NINTERSECTION.ALLOW-OTHER-KEYS.1 NINTERSECTION.ALLOW-OTHER-KEYS.2 + NINTERSECTION.ALLOW-OTHER-KEYS.3 NINTERSECTION.ALLOW-OTHER-KEYS.4 + NINTERSECTION.ALLOW-OTHER-KEYS.5 NINTERSECTION.ALLOW-OTHER-KEYS.6 + NINTERSECTION.ALLOW-OTHER-KEYS.7 NINTERSECTION.KEYWORDS.8 + NINTERSECTION.ALLOW-OTHER-KEYS.9 NINTERSECTION.ERROR.1 + NINTERSECTION.ERROR.2 NINTERSECTION.ERROR.3 NINTERSECTION.ERROR.4 + NINTERSECTION.ERROR.5 NINTERSECTION.ERROR.6 NINTERSECTION.ERROR.7 + NINTERSECTION.ERROR.8 NINTERSECTION.ERROR.9 NINTERSECTION.ERROR.10 + UNION.1 UNION.2 UNION.3 UNION-4 UNION.5 UNION.6 UNION.6-A UNION.7 + UNION.8 UNION.9 UNION.10 UNION.11 UNION.12 UNION.13 UNION.14 UNION.15 + UNION.16 UNION.17 UNION.18 UNION.19 UNION.20 UNION.21 UNION.22 + UNION.23 UNION.24 UNION.25 UNION.26 UNION.27 UNION.28 UNION.29 + UNION.30 UNION.31 UNION.ORDER.1 UNION.ORDER.2 UNION.ORDER.3 + UNION.ALLOW-OTHER-KEYS.1 UNION.ALLOW-OTHER-KEYS.2 + UNION.ALLOW-OTHER-KEYS.3 UNION.ALLOW-OTHER-KEYS.4 + UNION.ALLOW-OTHER-KEYS.5 UNION.ALLOW-OTHER-KEYS.6 + UNION.ALLOW-OTHER-KEYS.7 UNION.KEYWORDS.9 UNION.ERROR.1 UNION.ERROR.2 + UNION.ERROR.3 UNION.ERROR.4 UNION.ERROR.5 UNION.ERROR.6 UNION.ERROR.7 + UNION.ERROR.8 UNION.ERROR.9 UNION.ERROR.10 NUNION.1 NUNION.2 NUNION.3 + NUNION.4 NUNION.5 NUNION.6 NUNION.6-A NUNION.7 NUNION.8 NUNION.9 + NUNION.10 NUNION.11 NUNION.12 NUNION.13 NUNION.14 NUNION.15 NUNION.16 + NUNION.17 NUNION.18 NUNION.19 NUNION.20 NUNION.21 NUNION.22 NUNION.23 + NUNION.24 NUNION.25 NUNION.26 NUNION.27 NUNION.28 NUNION.29 NUNION.30 + NUNION.31 NUNION.ORDER.1 NUNION.ORDER.2 NUNION.ORDER.3 + NUNION.ALLOW-OTHER-KEYS.1 NUNION.ALLOW-OTHER-KEYS.2 + NUNION.ALLOW-OTHER-KEYS.3 NUNION.ALLOW-OTHER-KEYS.4 + NUNION.ALLOW-OTHER-KEYS.5 NUNION.ALLOW-OTHER-KEYS.6 + NUNION.ALLOW-OTHER-KEYS.7 NUNION.KEYWORDS.9 NUNION.ERROR.1 + NUNION.ERROR.2 NUNION.ERROR.3 NUNION.ERROR.4 NUNION.ERROR.5 + NUNION.ERROR.6 NUNION.ERROR.7 NUNION.ERROR.8 NUNION.ERROR.9 + NUNION.ERROR.10 SET-DIFFERENCE.1 SET-DIFFERENCE.2 SET-DIFFERENCE.3 + SET-DIFFERENCE.4 SET-DIFFERENCE.5 SET-DIFFERENCE.6 SET-DIFFERENCE.7 + SET-DIFFERENCE.8 SET-DIFFERENCE.9 SET-DIFFERENCE.10 SET-DIFFERENCE.11 + SET-DIFFERENCE.12 SET-DIFFERENCE.13 SET-DIFFERENCE.14 SET-DIFFERENCE.15 SET-DIFFERENCE.16 SET-DIFFERENCE.17 SET-DIFFERENCE.18 SET-DIFFERENCE.19 SET-DIFFERENCE.ORDER.1 SET-DIFFERENCE.ORDER.2 SET-DIFFERENCE.ORDER.3 @@ -19727,10 +19742,10 @@ #(1.0S0 2.0S0 3.0S0 4.0S0 5.0S0) #(1.0 2.0 3.0 4.0 5.0) #(1.0 2.0 3.0 4.0 5.0) #(1.0 2.0 3.0 4.0 5.0) - # - # - # - # #p"foo" #p"foo" + # + # + # + # #p"foo" #p"foo" #p"bar" #p"foo.txt" #p"bar.txt" #p"xyz.txt" #p"" #p"*" #p".txt" #p"*.txt" #p"*.txt" #p"*.ABC" #p"/**/" #p".*" #p"" #p"" @@ -19738,7 +19753,7 @@ # # # - # + # #S(FOO-STRUCTURE X 1 Y A Z NIL) #S(FOO-STRUCTURE X 1 Y A Z NIL) #S(BAR-STRUCTURE X 1 Y A Z NIL) @@ -19747,7 +19762,7 @@ # # (SYSTEM:LAMBDA-CLOSURE () () () (X) X) - #$26084411590371721254083871438193996777113409700468028213536115444222450648547549301344559429546053692526111726519492899547890722937555171690332736890020685011035014399847028703875774772225666934597493261000986196985164534608372032206886348188502143495967066908854824601247011162111136632632650853290825060030371240426462854240231990275128217288003643344112745406594221270459632526329390047390785625528283907527930548787824669433663583373028207499237935544537193871364050092439435584878762175253715507302254497359964503759290130891000200581832028260619612905512423583746207608671855274233060527808282436314252954829987398353317190156239921914859943984368473451624648092786299652485512801213339220326139096086182341767599263117483282814675137835247122810459373710258363706074474454008028037235808268735569125732327787818784641515073340859992349808268649152352273273038558936210720185981118777271968108266313797587046984980594178647110333156618121407327085149799292314088645469310609255135919690093468605555404851053799197776264351443579552011761853157884916001708899432270957224858510191765035398543362199262981512540132469655168857494281969336505935335662330153668866346474152475106518347821500694530490156946250090873767090091036756921400233800740628158928776650394627227772088709205696277192290654634817971432246632773592083140532035913613690219470279775181708859004104533431466947412693758819795526761409289668900637884192543109479102134211980232010863575270787811593638725667669180177922377270175962445692269768653557685112910835945781433874849234068984126923716117375530129072280056048610615114442531687211490439443799236212608190318000696458050797795706148376935808236273631421860674432080367344343275569953325699068689754454469056292788870815885149621660153026991563619751047011410711189846121876986471067231600140778545942247216649963192744632317545537276226557476996877314811970720316301182747632257948085454823347057724974953855131423679336577972028147791113253842686451366708126320718022374627611216409043224488660196035937530804911752199287812779206898821368481589245783392733042877643780148873188652995949468179226703487177327766224279416821219986401858901213957840197563673337062670507356778294731069451686504151781037410294098561636422188484403203057833072541511594510150379854481630758628769687396731923840535194243943335393951655533988758739737673526014133987499541170594554387229827722106263457769716022105221058896237851729187446450762111196435631542428121747837971743238381209422947832957007979240396494875207895655471525024245681569221287950978950841013261613016377829295199354568712449941424842540650696811604410308633582059826697571204872828938340494522727063108368925742320739032596831594912078280324750868682799240498308737442463433019607140569868898954713445119035356605211015882047767775045179175131157178882629066118280775096174631718760804983613912937769616731358811891979774366186865835069643793821948664937781677956779520872832945473732939265283718664536189696737394466233312754541871367601790902115784241395551614765556121922352461795566128964421144582284487393650600856793520614380401398012509358614939046712210449984111001365072865238426354002756646146267489762489820559053277720578669728533422883984499967243415555788051580299638427049314139649760469720389251449130728401783797191048186720279238038192207573779901965330928732188717796579343578550683113297525632085315950808153791129243773373635581574420985332297775601833137745387032763955353962756242252517980523092329345683764430516343162397573528796787906843675110884992137317890208534024257213050582355142459820107852976163959620517328054068095693999882016942421492423163426886636359469654068773590258477294745386398581160639187414930317246185930034376470541562273699852339645207884487418299316253592565589538420864967999774710747118761788801502121000295601966291233954686035278749240693406387714181594360088546009570186462361488950631410725592176528721407202298938414710160334209402777865214775790722072310561933274806722565441032109398360974961312544833741568723769159435158597065712348239748276215961565704741084901664955947959577167047884620287372754664205064227046937081544384509293549829761394199521306164091604999729482454092295456864892121263218940936468292986269752094722486784996664745516524633660975073517699245056472424599358764386511972901247328028465026559241831624419077353508276084383690302138102544413253754954340841824468450790924224143109289888347351518586403705457817322043877933981814725275432578436456551465479788604515762366245390072342019330399707495938916323578593752885017659972525104578562424503123097596773059789381596994212388869007620717735119498332691815148525817362906201474961164998465256522007184884002671723598192292462281634568221620609638777291927504739546800638738687179483256861844211281430818358901172012479887904365127743358891098864878114899603717244589861642983367764990523340303384699305835597171768836844814196082710035896863907592878594742139267025516924433483455257828123403765811684151109423303730837864240487688601514922861544646366779824828655382659949584782858457624352502218482571474885287749989645519209329614311762412738876605131013671688339023406713334590374874931383679706115998749549102819025325935718042065666784164493085671052870865302830930890952598116751117629635632608203065133176668947840920979783884950448536114100881738581747660520774454352506272069389576454791768440604263356804680631754460340122237075602117563772997843210288535217994898178101940519928543322235589574569301267277980189828809254413797038893611069115663159838345626538172856731994527651993128999228582911007888018761486539256193252905515445116594532243528000789709607549539884502640093788092808708637588475554600620757200084526450495954619085773963354423397848994779398551263585916345479891419230759685873646701676569771889980093167778182142001283492365510604410561181099040324961881462376126890553949287294722190622052190393032815483949677589912079434030958842787827605784520992826823377317867). + #$55851119330897566597864248541594946777687411471405975296671391165970691606528863695112424529319765978800248819622438688989117819948623338194115117078722276791692926854003013915658732197747720968876642707798478544900901691571077733300054295060703176702909415327013072672009319997956590345711218128041566203220694724488661421764341383394689909536124419048776929391508030772649161500960211933064814735669781184175255082198161420460609934725238481945182651822588339305764310488975751021000085273871951322154972716374215338188254642363130516735149537245092406991250945042385885306192659851913771419743984819959573139275360970617403380701353730359904697576921201737738368962615332731803028344763838776339164595391803561475773098586484575764075678687403662749883601934368414511089173588877484777991784886574931151082305596839011950335845649421638893412490997638360885212601409434794678472407257874991381900728274536893517119698962053204816848603692323295419348723914106476485218527489727375873420031064138132965025728097932478182539114059007753306200499942872820023013125804001997361453156960927534740720446905257377880272037150761672030450568152173412677917228970167044135243872045741119926755220992868128888462934511079859521123502922013168972949454327045240340175059962266024392019144656653449737858284301121991378824262750570228660829741886558972237723991133485706454312923521244031815374141611661866972288631282395482167450976613467046244770565419569583397515760916866448170495830540351113323783949287720376060371238679554752999882398925568187833514593187603128101283858663755296500497502082804981523294507984580631112218831200032364137630156574628067122155068114919306683504828500091001797729723515679471105738376769083561616385086308018307626942186649744527805855485431821189122568293472054255898437163798296183264706899876587628760214911893210439568120815925706007334409074560283025740002710351615897783366137030572248348806022733790631248603155741667542236602782052079940625874163169580705813745058946067486078876428286964771524008342219694458588088770811217255448773517644838902193411109563677592171367660123341424834658562846231215830518248827247548197807126822352763369457228366772280516780686663858629802347188763893894621498189403296905542041760659597302211129652002072323157297689203617342336074203312241653438892128543613280244861928647488449089524292353288660005254717289691166766418722907670623814944197529807612966294279873559387019210439156689453252537946501560754998515048340982742546704569460326963901774460669674585691572544247961042948411232998412771586647284653423162229632957027769180283756872498030934716129754230034973790969426229824384845909288959563652364239461263245539509995952331898253517980732121971972107035193087090959016926448581597774832043862288730942429486034151468354723761151977864465451603133574487697513046605660443990767909755761314570568785507667536943021259906190192700029148955035300437619124936899362360206330471299368861351675864356156448926602377682109159937336422254106909335845176872666557159767544101837279557460945951859593347766194994945778944660477034825795257190314361660937327987108868800917805067316138695274833677497020348481149279945535888455338409721775216791980057442289026775248514793444641745073279332337633696301136441362040328170199876319239919961641572497507008682636081354914216518624089776321727031494783266834340544915589128930439620417802509323745155839633025611363663496856787098444449710017417280238144905713585215704720860723888425544783697057939787843650470825407013961535698187536525780251023253883431464445606599596734105012572701814786408771017722929019050366385729244572037475613201288271491067678878279377197664212919333495906822197697721707659848598092399792583799268241628430172834835981197716892409526288506293597711008024297808296045785909261107550003668661648256772482844551728428315590589430858172823009627310411071689246875077494032769508905330330809153197124502829764765519353070707862851873779211731526710756323804282431470411590321204462999543690263989061232591582485323913373923908235015111386690665496608873799411614898353785296864889656316541999866885512878984405431029272355493850924490146659470729809625532878712983361033657165981086242879291759089304279861467294951496782662398398441617931172895294058388330595730459869869017080884736241002891725992491820745894188525630047764144382456011643965747707588660301579992842510390224173632493935683733379073988078021389469764532295302511768050507039686122631837244454375495071469073136477003068400017261648970493755183058701169267977700597383038828927986210798560515635293083159076545486712817376226844599600635636842873866515494075972693090469514461623247044673297750256340301982932891262688181136433941396572872591871430184029147411646104245448194416524151130115237138761250095778182091129168300725975965814927630556066172459626759414063607571536107457633008940218729043975939799473521272643798238915680392637516681043821853314209494603886925378720072321407940905072077313898973346489811725096321653351942844777072156886431511171818930949651142830945244408866926851652964912493948957342789922303350245235189399469211868343221280904289045297910888697508549053768833788099888315129732867677492120559339471599143768245807012536315747766233523467131805817695634710933893700861332055501696119413540754902195593244590554259563026368088584610181661995357239286756581292948046107459650706317578589164735106399886718368462213619635195527061855851097965144853605074025451275465317951333923256930888403870612257773557797763491146366783069380354164730842185017715344477383678785428747253158232142166987024743076459942133945376057113296102076455304432911636676966212514038427518624180121160090975555562675029830586139865994621516739622412048734012751349728267224969754366559465986741638069584501651172938050053733526030551378063466880749092876625730946161927638483014461958972486935366217751348601262690327517671079283626605913032489299470298310075228298774189469750309844538793968935663461). UPGRADED-ARRAY-ELEMENT-TYPE.ERROR.1 UPGRADED-ARRAY-ELEMENT-TYPE.ERROR.2 VECTOR.TYPE.1 VECTOR.TYPE.2 VECTOR.TYPE.3 VECTOR.TYPE.4 VECTOR.TYPE.5 VECTOR.TYPE.6 VECTOR.TYPE.7 @@ -20071,59 +20086,27 @@ Package #<"LOOP.CL-TEST.1" package> Package #<"CL-TEST" package> Package #<"REGRESSION-TEST" package> -Package #<"CONDITIONS" package> -Package #<"SLOT-ACCESSOR-NAME" package> -Package #<"PCL" package> -Package #<"ITERATE" package> -Package #<"WALKER" package> -Package #<"XLIB" package> -Package #<"CLTL1-COMPAT" package> -Package #<"FPE" package> -Package #<"TK" package> -Package #<"DEFPACKAGE" package> -Package #<"ANSI-LOOP" package> -Package #<"SLOOP" package> -Package #<"COMPILER" package> -Package #<"SYSTEM" package> -Package #<"KEYWORD" package> -Package #<"COMMON-LISP-USER" package> -Package #<"COMMON-LISP" package> - WITH-PACKAGE-ITERATOR.14 UNEXPORT.1 UNEXPORT.2 UNEXPORT.3 UNEXPORT.4 - UNEXPORT.5 UNEXPORT.6 UNEXPORT.ERROR.1 UNEXPORT.ERROR.2 UNINTERN.1 - UNINTERN.2 UNINTERN.3 UNINTERN.4 UNINTERN.5 UNINTERN.6 UNINTERN.7Properly threw an error: # - UNINTERN.8 UNINTERN.9 UNINTERN.ERROR.1 UNINTERN.ERROR.2 IN-PACKAGE.1 -Test IN-PACKAGE.2 failed -Form: (LET ((*PACKAGE* *PACKAGE*)) - (DECLARE (SPECIAL *PACKAGE*)) - (LET ((P2 (IN-PACKAGE A))) - (AND (EQT P2 (FIND-PACKAGE "A")) (EQT *PACKAGE* P2)))) -Expected value: T -Actual value: #. - IN-PACKAGE.3 IN-PACKAGE.4 -Test IN-PACKAGE.5 failed -Form: (LET ((*PACKAGE* *PACKAGE*)) - (DECLARE (SPECIAL *PACKAGE*)) - (SAFELY-DELETE-PACKAGE "H") - (HANDLER-CASE (EVAL '(IN-PACKAGE "H")) - (PACKAGE-ERROR NIL 'PACKAGE-ERROR) (ERROR (C) C))) -Expected value: PACKAGE-ERROR -Actual value: #<"H" package>. - UNUSE-PACKAGE.1 UNUSE-PACKAGE.2 UNUSE-PACKAGE.3 UNUSE-PACKAGE.4 - UNUSE-PACKAGE.5 UNUSE-PACKAGE.6 UNUSE-PACKAGE.7 UNUSE-PACKAGE.8 - UNUSE-PACKAGE.9 UNUSE-PACKAGE.ERROR.1 UNUSE-PACKAGE.ERROR.2 - USE-PACKAGE.1 USE-PACKAGE.2 USE-PACKAGE.3 USE-PACKAGE.4 USE-PACKAGE.5 - USE-PACKAGE.6 USE-PACKAGE.ERROR.1 USE-PACKAGE.ERROR.2 DEFPACKAGE.1 - DEFPACKAGE.2 DEFPACKAGE.3 DEFPACKAGE.4 DEFPACKAGE.5 DEFPACKAGE.6 - DEFPACKAGE.7 DEFPACKAGE.8 DEFPACKAGE.9 DEFPACKAGE.10 DEFPACKAGE.11 - DEFPACKAGE.12 DEFPACKAGE.13 DEFPACKAGE.14 DEFPACKAGE.15 DEFPACKAGE.16 - DEFPACKAGE.17 DEFPACKAGE.18 DEFPACKAGE.19 DEFPACKAGE.20 DEFPACKAGE.21 - DEFPACKAGE.22 DEFPACKAGE.23 DEFPACKAGE.24 DEFPACKAGE.25Making G1... -Making G2... -Making G3... -Making G1... -Making G2... -Making G3... - DEFPACKAGE.26 DO-SYMBOLS.1 DO-SYMBOLS.2 DO-SYMBOLS.3 DO-SYMBOLS.4 NSET-EXCLUSIVE-OR.13 NSET-EXCLUSIVE-OR.14 + SET-EXCLUSIVE-OR.13 + SET-EXCLUSIVE-OR.14 SET-EXCLUSIVE-OR.15 SET-EXCLUSIVE-OR.16 + SET-EXCLUSIVE-OR.17 SET-EXCLUSIVE-OR.17-A SET-EXCLUSIVE-OR.18 + SET-EXCLUSIVE-OR.18-A SET-EXCLUSIVE-OR.ORDER.1 + SET-EXCLUSIVE-OR.ORDER.2 SET-EXCLUSIVE-OR.ORDER.3 + SET-EXCLUSIVE-OR.ORDER.4 SET-EXCLUSIVE-OR.ORDER.5 + SET-EXCLUSIVE.ALLOW-OTHER-KEYS.1 SET-EXCLUSIVE.ALLOW-OTHER-KEYS.2 + SET-EXCLUSIVE.ALLOW-OTHER-KEYS.3 SET-EXCLUSIVE.ALLOW-OTHER-KEYS.4 + SET-EXCLUSIVE.ALLOW-OTHER-KEYS.5 SET-EXCLUSIVE.ALLOW-OTHER-KEYS.6 + SET-EXCLUSIVE.ALLOW-OTHER-KEYS.7 SET-EXCLUSIVE.KEYWORDS.8 + SET-EXCLUSIVE.KEYWORDS.9 SET-EXCLUSIVE-OR.ERROR.1 + SET-EXCLUSIVE-OR.ERROR.2 SET-EXCLUSIVE-OR.ERROR.3 + SET-EXCLUSIVE-OR.ERROR.4 SET-EXCLUSIVE-OR.ERROR.5 + SET-EXCLUSIVE-OR.ERROR.6 SET-EXCLUSIVE-OR.ERROR.7 + SET-EXCLUSIVE-OR.ERROR.8 SET-EXCLUSIVE-OR.ERROR.9 + SET-EXCLUSIVE-OR.ERROR.10 NSET-EXCLUSIVE-OR.1 NSET-EXCLUSIVE-OR.2 + NSET-EXCLUSIVE-OR.3 NSET-EXCLUSIVE-OR.4 NSET-EXCLUSIVE-OR.5 + NSET-EXCLUSIVE-OR.6 NSET-EXCLUSIVE-OR.7 NSET-EXCLUSIVE-OR.7-A + NSET-EXCLUSIVE-OR.8 NSET-EXCLUSIVE-OR.8-A NSET-EXCLUSIVE-OR.8-B + NSET-EXCLUSIVE-OR.9 NSET-EXCLUSIVE-OR.10 NSET-EXCLUSIVE-OR.11 + NSET-EXCLUSIVE-OR.12 NSET-EXCLUSIVE-OR.13 NSET-EXCLUSIVE-OR.14 NSET-EXCLUSIVE-OR.15 NSET-EXCLUSIVE-OR.16 NSET-EXCLUSIVE-OR.17 NSET-EXCLUSIVE-OR.17-A NSET-EXCLUSIVE-OR.18 NSET-EXCLUSIVE-OR.18-A NSET-EXCLUSIVE-OR.ORDER.1 NSET-EXCLUSIVE-OR.ORDER.2 @@ -20503,7 +20486,8 @@ #\a #\A #\0 #\9 #\. #\( #\) #\[ #\] "" "" "" "A" "a" "0" "abcdef" "~!@#$%^&*()_+`1234567890-=<,>.?/:;\"'{[}]|\\ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ" - "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg" + "ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggPackage #<"CONDITIONS" package> +gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg" "  !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (A B) (NIL) (1 2 3 4 5 6) @@ -21444,10 +21428,10 @@ #(1.0S0 2.0S0 3.0S0 4.0S0 5.0S0) #(1.0 2.0 3.0 4.0 5.0) #(1.0 2.0 3.0 4.0 5.0) #(1.0 2.0 3.0 4.0 5.0) - # - # - # - # #p"foo" #p"foo" + # + # + # + # #p"foo" #p"foo" #p"bar" #p"foo.txt" #p"bar.txt" #p"xyz.txt" #p"" #p"*" #p".txt" #p"*.txt" #p"*.txt" #p"*.ABC" #p"/**/" #p".*" #p"" #p"" @@ -21455,7 +21439,7 @@ # # # - # + # #S(FOO-STRUCTURE X 1 Y A Z NIL) #S(FOO-STRUCTURE X 1 Y A Z NIL) #S(BAR-STRUCTURE X 1 Y A Z NIL) @@ -21464,7 +21448,7 @@ # # (SYSTEM:LAMBDA-CLOSURE () () () (X) X) - #$26084411590371721254083871438193996777113409700468028213536115444222450648547549301344559429546053692526111726519492899547890722937555171690332736890020685011035014399847028703875774772225666934597493261000986196985164534608372032206886348188502143495967066908854824601247011162111136632632650853290825060030371240426462854240231990275128217288003643344112745406594221270459632526329390047390785625528283907527930548787824669433663583373028207499237935544537193871364050092439435584878762175253715507302254497359964503759290130891000200581832028260619612905512423583746207608671855274233060527808282436314252954829987398353317190156239921914859943984368473451624648092786299652485512801213339220326139096086182341767599263117483282814675137835247122810459373710258363706074474454008028037235808268735569125732327787818784641515073340859992349808268649152352273273038558936210720185981118777271968108266313797587046984980594178647110333156618121407327085149799292314088645469310609255135919690093468605555404851053799197776264351443579552011761853157884916001708899432270957224858510191765035398543362199262981512540132469655168857494281969336505935335662330153668866346474152475106518347821500694530490156946250090873767090091036756921400233800740628158928776650394627227772088709205696277192290654634817971432246632773592083140532035913613690219470279775181708859004104533431466947412693758819795526761409289668900637884192543109479102134211980232010863575270787811593638725667669180177922377270175962445692269768653557685112910835945781433874849234068984126923716117375530129072280056048610615114442531687211490439443799236212608190318000696458050797795706148376935808236273631421860674432080367344343275569953325699068689754454469056292788870815885149621660153026991563619751047011410711189846121876986471067231600140778545942247216649963192744632317545537276226557476996877314811970720316301182747632257948085454823347057724974953855131423679336577972028147791113253842686451366708126320718022374627611216409043224488660196035937530804911752199287812779206898821368481589245783392733042877643780148873188652995949468179226703487177327766224279416821219986401858901213957840197563673337062670507356778294731069451686504151781037410294098561636422188484403203057833072541511594510150379854481630758628769687396731923840535194243943335393951655533988758739737673526014133987499541170594554387229827722106263457769716022105221058896237851729187446450762111196435631542428121747837971743238381209422947832957007979240396494875207895655471525024245681569221287950978950841013261613016377829295199354568712449941424842540650696811604410308633582059826697571204872828938340494522727063108368925742320739032596831594912078280324750868682799240498308737442463433019607140569868898954713445119035356605211015882047767775045179175131157178882629066118280775096174631718760804983613912937769616731358811891979774366186865835069643793821948664937781677956779520872832945473732939265283718664536189696737394466233312754541871367601790902115784241395551614765556121922352461795566128964421144582284487393650600856793520614380401398012509358614939046712210449984111001365072865238426354002756646146267489762489820559053277720578669728533422883984499967243415555788051580299638427049314139649760469720389251449130728401783797191048186720279238038192207573779901965330928732188717796579343578550683113297525632085315950808153791129243773373635581574420985332297775601833137745387032763955353962756242252517980523092329345683764430516343162397573528796787906843675110884992137317890208534024257213050582355142459820107852976163959620517328054068095693999882016942421492423163426886636359469654068773590258477294745386398581160639187414930317246185930034376470541562273699852339645207884487418299316253592565589538420864967999774710747118761788801502121000295601966291233954686035278749240693406387714181594360088546009570186462361488950631410725592176528721407202298938414710160334209402777865214775790722072310561933274806722565441032109398360974961312544833741568723769159435158597065712348239748276215961565704741084901664955947959577167047884620287372754664205064227046937081544384509293549829761394199521306164091604999729482454092295456864892121263218940936468292986269752094722486784996664745516524633660975073517699245056472424599358764386511972901247328028465026559241831624419077353508276084383690302138102544413253754954340841824468450790924224143109289888347351518586403705457817322043877933981814725275432578436456551465479788604515762366245390072342019330399707495938916323578593752885017659972525104578562424503123097596773059789381596994212388869007620717735119498332691815148525817362906201474961164998465256522007184884002671723598192292462281634568221620609638777291927504739546800638738687179483256861844211281430818358901172012479887904365127743358891098864878114899603717244589861642983367764990523340303384699305835597171768836844814196082710035896863907592878594742139267025516924433483455257828123403765811684151109423303730837864240487688601514922861544646366779824828655382659949584782858457624352502218482571474885287749989645519209329614311762412738876605131013671688339023406713334590374874931383679706115998749549102819025325935718042065666784164493085671052870865302830930890952598116751117629635632608203065133176668947840920979783884950448536114100881738581747660520774454352506272069389576454791768440604263356804680631754460340122237075602117563772997843210288535217994898178101940519928543322235589574569301267277980189828809254413797038893611069115663159838345626538172856731994527651993128999228582911007888018761486539256193252905515445116594532243528000789709607549539884502640093788092808708637588475554600620757200084526450495954619085773963354423397848994779398551263585916345479891419230759685873646701676569771889980093167778182142001283492365510604410561181099040324961881462376126890553949287294722190622052190393032815483949677589912079434030958842787827605784520992826823377317867). + #$55851119330897566597864248541594946777687411471405975296671391165970691606528863695112424529319765978800248819622438688989117819948623338194115117078722276791692926854003013915658732197747720968876642707798478544900901691571077733300054295060703176702909415327013072672009319997956590345711218128041566203220694724488661421764341383394689909536124419048776929391508030772649161500960211933064814735669781184175255082198161420460609934725238481945182651822588339305764310488975751021000085273871951322154972716374215338188254642363130516735149537245092406991250945042385885306192659851913771419743984819959573139275360970617403380701353730359904697576921201737738368962615332731803028344763838776339164595391803561475773098586484575764075678687403662749883601934368414511089173588877484777991784886574931151082305596839011950335845649421638893412490997638360885212601409434794678472407257874991381900728274536893517119698962053204816848603692323295419348723914106476485218527489727375873420031064138132965025728097932478182539114059007753306200499942872820023013125804001997361453156960927534740720446905257377880272037150761672030450568152173412677917228970167044135243872045741119926755220992868128888462934511079859521123502922013168972949454327045240340175059962266024392019144656653449737858284301121991378824262750570228660829741886558972237723991133485706454312923521244031815374141611661866972288631282395482167450976613467046244770565419569583397515760916866448170495830540351113323783949287720376060371238679554752999882398925568187833514593187603128101283858663755296500497502082804981523294507984580631112218831200032364137630156574628067122155068114919306683504828500091001797729723515679471105738376769083561616385086308018307626942186649744527805855485431821189122568293472054255898437163798296183264706899876587628760214911893210439568120815925706007334409074560283025740002710351615897783366137030572248348806022733790631248603155741667542236602782052079940625874163169580705813745058946067486078876428286964771524008342219694458588088770811217255448773517644838902193411109563677592171367660123341424834658562846231215830518248827247548197807126822352763369457228366772280516780686663858629802347188763893894621498189403296905542041760659597302211129652002072323157297689203617342336074203312241653438892128543613280244861928647488449089524292353288660005254717289691166766418722907670623814944197529807612966294279873559387019210439156689453252537946501560754998515048340982742546704569460326963901774460669674585691572544247961042948411232998412771586647284653423162229632957027769180283756872498030934716129754230034973790969426229824384845909288959563652364239461263245539509995952331898253517980732121971972107035193087090959016926448581597774832043862288730942429486034151468354723761151977864465451603133574487697513046605660443990767909755761314570568785507667536943021259906190192700029148955035300437619124936899362360206330471299368861351675864356156448926602377682109159937336422254106909335845176872666557159767544101837279557460945951859593347766194994945778944660477034825795257190314361660937327987108868800917805067316138695274833677497020348481149279945535888455338409721775216791980057442289026775248514793444641745073279332337633696301136441362040328170199876319239919961641572497507008682636081354914216518624089776321727031494783266834340544915589128930439620417802509323745155839633025611363663496856787098444449710017417280238144905713585215704720860723888425544783697057939787843650470825407013961535698187536525780251023253883431464445606599596734105012572701814786408771017722929019050366385729244572037475613201288271491067678878279377197664212919333495906822197697721707659848598092399792583799268241628430172834835981197716892409526288506293597711008024297808296045785909261107550003668661648256772482844551728428315590589430858172823009627310411071689246875077494032769508905330330809153197124502829764765519353070707862851873779211731526710756323804282431470411590321204462999543690263989061232591582485323913373923908235015111386690665496608873799411614898353785296864889656316541999866885512878984405431029272355493850924490146659470729809625532878712983361033657165981086242879291759089304279861467294951496782662398398441617931172895294058388330595730459869869017080884736241002891725992491820745894188525630047764144382456011643965747707588660301579992842510390224173632493935683733379073988078021389469764532295302511768050507039686122631837244454375495071469073136477003068400017261648970493755183058701169267977700597383038828927986210798560515635293083159076545486712817376226844599600635636842873866515494075972693090469514461623247044673297750256340301982932891262688181136433941396572872591871430184029147411646104245448194416524151130115237138761250095778182091129168300725975965814927630556066172459626759414063607571536107457633008940218729043975939799473521272643798238915680392637516681043821853314209494603886925378720072321407940905072077313898973346489811725096321653351942844777072156886431511171818930949651142830945244408866926851652964912493948957342789922303350245235189399469211868343221280904289045297910888697508549053768833788099888315129732867677492120559339471599143768245807012536315747766233523467131805817695634710933893700861332055501696119413540754902195593244590554259563026368088584610181661995357239286756581292948046107459650706317578589164735106399886718368462213619635195527061855851097965144853605074025451275465317951333923256930888403870612257773557797763491146366783069380354164730842185017715344477383678785428747253158232142166987024743076459942133945376057113296102076455304432911636676966212514038427518624180121160090975555562675029830586139865994621516739622412048734012751349728267224969754366559465986741638069584501651172938050053733526030551378063466880749092876625730946161927638483014461958972486935366217751348601262690327517671079283626605913032489299470298310075228298774189469750309844538793968935663461). UPGRADED-ARRAY-ELEMENT-TYPE.ERROR.1 UPGRADED-ARRAY-ELEMENT-TYPE.ERROR.2 VECTOR.TYPE.1 VECTOR.TYPE.2 VECTOR.TYPE.3 VECTOR.TYPE.4 VECTOR.TYPE.5 VECTOR.TYPE.6 VECTOR.TYPE.7 @@ -22269,7 +22253,60 @@ SEARCH.ERROR.10 SEARCH.ORDER.1 SEARCH.ORDER.2 SEARCH-VECTOR.1 SEARCH-VECTOR.2 SEARCH-VECTOR.3 SEARCH-VECTOR.4 SEARCH-VECTOR.5 SEARCH-VECTOR.6 SEARCH-VECTOR.7 SEARCH-VECTOR.8 SEARCH-VECTOR.9 - SEARCH-VECTOR.10 SEARCH-VECTOR.11 SEARCH-VECTOR.12 + SEARCH-VECTOR.10 SEARCH-VECTOR.11 SEARCH-VECTOR.12 SEARCH-VECTOR.13 + SEARCH-VECTOR.14 SEARCH-VECTOR.15 SEARCH-VECTOR.16 SEARCH-BITVECTOR.1 + SEARCH-BITVECTOR.2 SEARCH-BITVECTOR.3Package #<"SLOT-ACCESSOR-NAME" package> +Package #<"PCL" package> +Package #<"ITERATE" package> +Package #<"WALKER" package> +Package #<"XLIB" package> +Package #<"CLTL1-COMPAT" package> +Package #<"FPE" package> +Package #<"TK" package> +Package #<"DEFPACKAGE" package> +Package #<"ANSI-LOOP" package> +Package #<"SLOOP" package> +Package #<"COMPILER" package> +Package #<"SYSTEM" package> +Package #<"KEYWORD" package> +Package #<"COMMON-LISP-USER" package> +Package #<"COMMON-LISP" package> + WITH-PACKAGE-ITERATOR.14 UNEXPORT.1 UNEXPORT.2 UNEXPORT.3 UNEXPORT.4 + UNEXPORT.5 UNEXPORT.6 UNEXPORT.ERROR.1 UNEXPORT.ERROR.2 UNINTERN.1 + UNINTERN.2 UNINTERN.3 UNINTERN.4 UNINTERN.5 UNINTERN.6 UNINTERN.7Properly threw an error: # + UNINTERN.8 UNINTERN.9 UNINTERN.ERROR.1 UNINTERN.ERROR.2 IN-PACKAGE.1 +Test IN-PACKAGE.2 failed +Form: (LET ((*PACKAGE* *PACKAGE*)) + (DECLARE (SPECIAL *PACKAGE*)) + (LET ((P2 (IN-PACKAGE A))) + (AND (EQT P2 (FIND-PACKAGE "A")) (EQT *PACKAGE* P2)))) +Expected value: T +Actual value: #. + IN-PACKAGE.3 IN-PACKAGE.4 +Test IN-PACKAGE.5 failed +Form: (LET ((*PACKAGE* *PACKAGE*)) + (DECLARE (SPECIAL *PACKAGE*)) + (SAFELY-DELETE-PACKAGE "H") + (HANDLER-CASE (EVAL '(IN-PACKAGE "H")) + (PACKAGE-ERROR NIL 'PACKAGE-ERROR) (ERROR (C) C))) +Expected value: PACKAGE-ERROR +Actual value: #<"H" package>. + UNUSE-PACKAGE.1 UNUSE-PACKAGE.2 UNUSE-PACKAGE.3 UNUSE-PACKAGE.4 + UNUSE-PACKAGE.5 UNUSE-PACKAGE.6 UNUSE-PACKAGE.7 UNUSE-PACKAGE.8 + UNUSE-PACKAGE.9 UNUSE-PACKAGE.ERROR.1 UNUSE-PACKAGE.ERROR.2 + USE-PACKAGE.1 USE-PACKAGE.2 USE-PACKAGE.3 USE-PACKAGE.4 USE-PACKAGE.5 + USE-PACKAGE.6 USE-PACKAGE.ERROR.1 USE-PACKAGE.ERROR.2 DEFPACKAGE.1 + DEFPACKAGE.2 DEFPACKAGE.3 DEFPACKAGE.4 DEFPACKAGE.5 DEFPACKAGE.6 + DEFPACKAGE.7 DEFPACKAGE.8 DEFPACKAGE.9 DEFPACKAGE.10 DEFPACKAGE.11 + DEFPACKAGE.12 DEFPACKAGE.13 DEFPACKAGE.14 DEFPACKAGE.15 DEFPACKAGE.16 + DEFPACKAGE.17 DEFPACKAGE.18 DEFPACKAGE.19 DEFPACKAGE.20 DEFPACKAGE.21 + DEFPACKAGE.22 DEFPACKAGE.23 DEFPACKAGE.24 DEFPACKAGE.25Making G1... +Making G2... +Making G3... +Making G1... +Making G2... +Making G3... + DEFPACKAGE.26 DO-SYMBOLS.1 DO-SYMBOLS.2 DO-SYMBOLS.3 DO-SYMBOLS.4 DO-SYMBOLS.5 DO-EXTERNAL-SYMBOLS.1 DO-EXTERNAL-SYMBOLS.2 DO-EXTERNAL-SYMBOLS.3 DO-EXTERNAL-SYMBOLS.4 DO-EXTERNAL-SYMBOLS.5 DO-SYMBOLS.6 DO-EXTERNAL-SYMBOLS.6 DO-SYMBOLS.7 DO-EXTERNAL-SYMBOLS.7 @@ -23228,9 +23265,8 @@ DELETE-BIT-VECTOR.2 DELETE-BIT-VECTOR.3 REMOVE.ORDER.1 REMOVE.ORDER.2 DELETE.ORDER.1 DELETE.ORDER.2 REMOVE-IF.ORDER.1 REMOVE-IF.ORDER.2 DELETE-IF.ORDER.1 DELETE-IF.ORDER.2 REMOVE-IF-NOT.ORDER.1 - REMOVE-IF-NOT.ORDER.2 DELETE-IF-NOT.ORDER.1 DELETE-IF-NOT.ORDER.2 SEARCH-VECTOR.13 - SEARCH-VECTOR.14 SEARCH-VECTOR.15 SEARCH-VECTOR.16 SEARCH-BITVECTOR.1 - SEARCH-BITVECTOR.2 SEARCH-BITVECTOR.3 SEARCH-BITVECTOR.4 + REMOVE-IF-NOT.ORDER.2 DELETE-IF-NOT.ORDER.1 DELETE-IF-NOT.ORDER.2 + REMOVE-RANDOM SEARCH-BITVECTOR.4 SEARCH-BITVECTOR.5 SEARCH-BITVECTOR.6 SEARCH-BITVECTOR.7 SEARCH-BITVECTOR.8 SEARCH-BITVECTOR.9 SEARCH-BITVECTOR.10 SEARCH-BITVECTOR.11 SEARCH-BITVECTOR.12 SEARCH-BITVECTOR.13 @@ -23759,8 +23795,8 @@ DELETE.ORDER.1 DELETE.ORDER.2 REMOVE-IF.ORDER.1 REMOVE-IF.ORDER.2 DELETE-IF.ORDER.1 DELETE-IF.ORDER.2 REMOVE-IF-NOT.ORDER.1 REMOVE-IF-NOT.ORDER.2 DELETE-IF-NOT.ORDER.1 DELETE-IF-NOT.ORDER.2 - REMOVE-RANDOM REMOVE-IF-RANDOM REMOVE-IF-NOT-RANDOM REMOVE-RANDOM REMOVE-IF-RANDOM REMOVE-IF-NOT-RANDOM DELETE-RANDOM + DELETE-IF-RANDOM REMOVE-IF-RANDOM REMOVE-IF-NOT-RANDOM DELETE-RANDOM DELETE-IF-RANDOM DELETE-IF-NOT-RANDOM REMOVE-IF-LIST.1 REMOVE-IF-LIST.2 REMOVE-IF-NOT-LIST.1 REMOVE-IF-NOT-LIST.2 DELETE-IF-LIST.1 DELETE-IF-LIST.2 DELETE-IF-NOT-LIST.1 @@ -23775,8 +23811,8 @@ REMOVE.ERROR.5 REMOVE.ERROR.6 REMOVE.ERROR.7 REMOVE.ERROR.8 REMOVE.ERROR.9 REMOVE.ERROR.10 DELETE.ERROR.1 DELETE.ERROR.2 DELETE.ERROR.3 DELETE.ERROR.4 DELETE.ERROR.5 DELETE.ERROR.6 - DELETE.ERROR.7 DELETE.ERROR.8 DELETE.ERROR.9 DELETE.ERROR.10 DELETE-RANDOM - DELETE-IF-RANDOM DELETE-IF-NOT-RANDOM REMOVE-IF-LIST.1 + DELETE.ERROR.7 DELETE.ERROR.8 DELETE.ERROR.9 DELETE.ERROR.10 + RANDOM-REMOVE-DUPLICATES DELETE-IF-NOT-RANDOM REMOVE-IF-LIST.1 REMOVE-IF-LIST.2 REMOVE-IF-NOT-LIST.1 REMOVE-IF-NOT-LIST.2 DELETE-IF-LIST.1 DELETE-IF-LIST.2 DELETE-IF-NOT-LIST.1 DELETE-IF-NOT-LIST.2 DELETE-LIST.1 DELETE-LIST.2 @@ -23791,7 +23827,6 @@ REMOVE.ERROR.9 REMOVE.ERROR.10 DELETE.ERROR.1 DELETE.ERROR.2 DELETE.ERROR.3 DELETE.ERROR.4 DELETE.ERROR.5 DELETE.ERROR.6 DELETE.ERROR.7 DELETE.ERROR.8 DELETE.ERROR.9 DELETE.ERROR.10 - RANDOM-REMOVE-DUPLICATES RANDOM-REMOVE-DUPLICATES RANDOM-DELETE-DUPLICATES REMOVE-DUPLICATES.1 DELETE-DUPLICATES.1 REMOVE-DUPLICATES.ORDER.1 REMOVE-DUPLICATES.ORDER.2 REMOVE-DUPLICATES.ALLOW-OTHER-KEYS.1 @@ -25703,17 +25738,17 @@ '(NOT STRUCTURE-OBJECT)) ==> NIL T) ((SUBTYPEP 'ARITHMETIC-ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'ARITHMETIC-ERROR) ==> NIL T) ((SUBTYPEP '(NOT ARITHMETIC-ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT ARITHMETIC-ERROR)) ==> NIL T) ((SUBTYPEP 'SYMBOL @@ -25809,17 +25844,17 @@ '(NOT ARRAY)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-INEXACT - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-INEXACT) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-INEXACT) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-INEXACT)) ==> NIL T) ((SUBTYPEP 'NUMBER @@ -25848,31 +25883,31 @@ '(NOT #) '(NOT NULL)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-UNDERFLOW - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-UNDERFLOW) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-UNDERFLOW) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-UNDERFLOW)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-OVERFLOW - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-OVERFLOW) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-OVERFLOW) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-OVERFLOW)) ==> NIL T) ((SUBTYPEP 'RATIONAL @@ -25958,16 +25993,16 @@ '(NOT UNBOUND-SLOT)) ==> NIL T) ((SUBTYPEP 'ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # 'ERROR) + # 'ERROR) ==> NIL T) ((SUBTYPEP '(NOT ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT ERROR)) ==> NIL T) ((SUBTYPEP 'STANDARD-GENERIC-FUNCTION @@ -25998,17 +26033,17 @@ '(NOT CHARACTER)) ==> NIL T) ((SUBTYPEP 'DIVISION-BY-ZERO - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'DIVISION-BY-ZERO) ==> NIL T) ((SUBTYPEP '(NOT DIVISION-BY-ZERO) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT DIVISION-BY-ZERO)) ==> NIL T) ((SUBTYPEP 'SEQUENCE @@ -26053,17 +26088,17 @@ '(NOT UNDEFINED-FUNCTION)) ==> NIL T) ((SUBTYPEP 'END-OF-FILE - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'END-OF-FILE) ==> NIL T) ((SUBTYPEP '(NOT END-OF-FILE) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT END-OF-FILE)) ==> NIL T) ((SUBTYPEP 'INTEGER @@ -26106,17 +26141,17 @@ '(NOT BIT-VECTOR)) ==> NIL T) ((SUBTYPEP 'STYLE-WARNING - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'STYLE-WARNING) ==> NIL T) ((SUBTYPEP '(NOT STYLE-WARNING) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT STYLE-WARNING)) ==> NIL T) ((SUBTYPEP 'SIMPLE-TYPE-ERROR @@ -26134,16 +26169,16 @@ '(NOT SIMPLE-TYPE-ERROR)) ==> NIL T) ((SUBTYPEP 'CELL-ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # 'CELL-ERROR) + # 'CELL-ERROR) ==> NIL T) ((SUBTYPEP '(NOT CELL-ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT CELL-ERROR)) ==> NIL T) ((SUBTYPEP 'FILE-ERROR @@ -26160,16 +26195,16 @@ '(NOT FILE-ERROR)) ==> NIL T) ((SUBTYPEP 'RESTART - #) + #) ==> NIL T) ((SUBTYPEP - # 'RESTART) + # 'RESTART) ==> NIL T) ((SUBTYPEP '(NOT RESTART) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT RESTART)) ==> NIL T) ((SUBTYPEP 'TYPE-ERROR @@ -26244,17 +26279,17 @@ '(NOT #) '(NOT CONS)) ==> NIL T) ((SUBTYPEP 'SIMPLE-CONDITION - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'SIMPLE-CONDITION) ==> NIL T) ((SUBTYPEP '(NOT SIMPLE-CONDITION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT SIMPLE-CONDITION)) ==> NIL T) ((SUBTYPEP 'SIMPLE-WARNING @@ -26300,16 +26335,16 @@ '(NOT PARSE-ERROR)) ==> NIL T) ((SUBTYPEP 'WARNING - #) + #) ==> NIL T) ((SUBTYPEP - # 'WARNING) + # 'WARNING) ==> NIL T) ((SUBTYPEP '(NOT WARNING) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT WARNING)) ==> NIL T) ((SUBTYPEP 'STORAGE-CONDITION @@ -26327,17 +26362,17 @@ '(NOT STORAGE-CONDITION)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-INVALID-OPERATION - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-INVALID-OPERATION) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-INVALID-OPERATION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-INVALID-OPERATION)) ==> NIL T) ((SUBTYPEP 'PROGRAM-ERROR @@ -26410,31 +26445,31 @@ '(NOT STREAM-ERROR)) ==> NIL T) ((SUBTYPEP 'SERIOUS-CONDITION - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'SERIOUS-CONDITION) ==> NIL T) ((SUBTYPEP '(NOT SERIOUS-CONDITION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT SERIOUS-CONDITION)) ==> NIL T) ((SUBTYPEP 'READER-ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'READER-ERROR) ==> NIL T) ((SUBTYPEP '(NOT READER-ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT READER-ERROR)) ==> NIL T) ((SUBTYPEP 'VECTOR @@ -26451,16 +26486,16 @@ '(NOT VECTOR)) ==> NIL T) ((SUBTYPEP 'CONDITION - #) + #) ==> NIL T) ((SUBTYPEP - # 'CONDITION) + # 'CONDITION) ==> NIL T) ((SUBTYPEP '(NOT CONDITION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT CONDITION)) ==> NIL T) ((SUBTYPEP 'UNBOUND-VARIABLE @@ -26671,7 +26706,309 @@ BIT-VECTOR-IS-NOT-SIMPLE-VECTOR SIMPLE-BIT-VECTOR-IS-NOT-SIMPLE-VECTOR SUBTYPEP.EXTENDED-CHAR.1 SUBTYPEP.AND/OR.1 SUBTYPEP.AND/OR.2 SUBTYPEP.AND.1 SUBTYPEP.OR.1 SUBTYPEP.AND.2 SUBTYPEP.OR.2 - SUBTYPEP.AND.3 SUBTYPEP.OR.3 SUBTYPEP.AND.4 RANDOM-DELETE-DUPLICATES REMOVE-DUPLICATES.1 + SUBTYPEP.AND.3 SUBTYPEP.OR.3 SUBTYPEP.AND.4 SUBTYPEP.OR.4 + SUBTYPEP.NIL.1 SUBTYPEP.NIL.2 SUBTYPEP.FIXNUM-OR-BIGNUM + SUBTYPEP.FIXNUM.INTEGER +Test SUBTYPEP.BIGNUM.INTEGER failed +Form: (CHECK-EQUIVALENCE + (LIST 'OR (LIST 'INTEGER '* (LIST MOST-NEGATIVE-FIXNUM)) + (LIST 'INTEGER (LIST MOST-POSITIVE-FIXNUM) '*)) + 'BIGNUM) +Expected value: NIL +Actual value: (((SUBTYPEP + '(OR (INTEGER * (-9223372036854775808)) + (INTEGER (9223372036854775807) *)) + 'BIGNUM) + ==> NIL T) + ((SUBTYPEP '(NOT BIGNUM) + '(NOT (OR (INTEGER * (-9223372036854775808)) + (INTEGER (9223372036854775807) *)))) + ==> NIL T)). + SUBTYPEP.INTEGER.1 SUBTYPEP.INTEGER.2 SUBTYPEP.INTEGER.3 + SUBTYPEP.INTEGER.3A SUBTYPEP.INTEGER.3B SUBTYPEP.INTEGER.3C + SUBTYPEP.INTEGER.4 SUBTYPEP.INTEGER.4A SUBTYPEP.INTEGER.4B + SUBTYPEP.INTEGER.4C SUBTYPEP.INTEGER.5 SUBTYPEP.INTEGER.5A + SUBTYPEP.INTEGER.5B SUBTYPEP.INTEGER.5C SUBTYPEP.INTEGER.6 + SUBTYPEP.INTEGER.6A SUBTYPEP.INTEGER.6B SUBTYPEP.INTEGER.6C + SUBTYPEP.INTEGER.7 SUBTYPEP.INTEGER.7A SUBTYPEP.INTEGER.7B + SUBTYPEP.INTEGER.7C SUBTYPEP.INTEGER.8 SUBTYPEP.INTEGER.8A + SUBTYPEP.INTEGER.8B SUBTYPEP.INTEGER.8C SUBTYPEP.INTEGER.9 + SUBTYPEP.INTEGER.9A SUBTYPEP.INTEGER.9B SUBTYPEP.INTEGER.9C + SUBTYPEP.INTEGER.10 SUBTYPEP.INTEGER.10A SUBTYPEP.INTEGER.10B + SUBTYPEP.INTEGER.10C SUBTYPEP.INTEGER.11 SUBTYPEP.INTEGER.12 + SUBTYPEP.INTEGER.13 SUBTYPEP.INTEGER.14 SUBTYPEP.INTEGER.15 + SUBTYPEP.INTEGER.16 SUBTYPEP.INTEGER.17 SUBTYPEP.INTEGER.18 + SUBTYPEP.INTEGER.19 SUBTYPEP.INTEGER.20 SUBTYPEP.INTEGER.21 + SUBTYPEP.INTEGER.22 +Test SUBTYPEP.INTEGER.23 failed +Form: (CHECK-EQUIVALENCE '(INTEGER (9)) '(INTEGER 10)) +Expected value: NIL +Actual value: (((SUBTYPEP '(INTEGER (9)) '(INTEGER 10)) ==> NIL T) + ((SUBTYPEP '(NOT (INTEGER 10)) '(NOT (INTEGER (9)))) ==> + NIL T)). +Test SUBTYPEP.INTEGER.24 failed +Form: (CHECK-EQUIVALENCE '(INTEGER * (11)) '(INTEGER * 10)) +Expected value: NIL +Actual value: (((SUBTYPEP '(INTEGER * (11)) '(INTEGER * 10)) ==> NIL T) + ((SUBTYPEP '(NOT (INTEGER * 10)) + '(NOT (INTEGER * (11)))) + ==> NIL T)). + SUBTYPEP.INTEGER.25 SUBTYPEP.INTEGER.26 SUBTYPEP.INTEGER.27 + SUBTYPEP.INTEGER.28 SUBTYPEP.INTEGER.29 SUBTYPEP.INTEGER.30 + SUBTYPEP.INTEGER.REAL.1 SUBTYPEP.INTEGER.REAL.2 + SUBTYPEP.INTEGER.REAL.3 SUBTYPEP.INTEGER.REAL.4 + SUBTYPEP.INTEGER.REAL.5 SUBTYPEP.INTEGER.REAL.6 + SUBTYPEP.INTEGER.REAL.7 SUBTYPEP.INTEGER.REAL.8 + SUBTYPEP.INTEGER.REAL.9 SUBTYPEP.INTEGER.REAL.10 + SUBTYPEP.INTEGER.REAL.11 SUBTYPEP.INTEGER.RATIONAL.1 + SUBTYPEP.INTEGER.RATIONAL.2 SUBTYPEP.INTEGER.RATIONAL.3 + SUBTYPEP.INTEGER.RATIONAL.4 SUBTYPEP.INTEGER.RATIONAL.5 + SUBTYPEP.INTEGER.RATIONAL.6 SUBTYPEP.INTEGER.RATIONAL.7 + SUBTYPEP.INTEGER.RATIONAL.8 SUBTYPEP.INTEGER.RATIONAL.9 + SUBTYPEP.INTEGER.RATIONAL.10 SUBTYPEP.FLOAT.1 SUBTYPEP.FLOAT.2 + SUBTYPEP.FLOAT.3 SUBTYPEP.FLOAT.4 SUBTYPEP.FLOAT.5 SUBTYPEP.FLOAT.6 + SUBTYPEP.FLOAT.7 SUBTYPEP.FLOAT.8 SUBTYPEP.FLOAT.9 SUBTYPEP.FLOAT.10 + SUBTYPEP.FLOAT.11 SUBTYPEP.FLOAT.12 SUBTYPEP.FLOAT.13 + SUBTYPEP.FLOAT.14 SUBTYPEP.FLOAT.15 SUBTYPEP.FLOAT.16 + SUBTYPEP.FLOAT.17 SUBTYPEP.FLOAT.18 SUBTYPEP.FLOAT.19 + SUBTYPEP.FLOAT.20 SUBTYPEP.FLOAT.21 SUBTYPEP.FLOAT.22 + SUBTYPEP.FLOAT.23 SUBTYPEP.FLOAT.24 SUBTYPEP.FLOAT.25 + SUBTYPEP.FLOAT.26 SUBTYPEP.FLOAT.27 SUBTYPEP.RATIONAL.1 + SUBTYPEP.RATIONAL.2 SUBTYPEP.RATIONAL.3 SUBTYPEP.RATIONAL.4 + SUBTYPEP.RATIONAL.5 SUBTYPEP.RATIONAL.6 SUBTYPEP.RATIONAL.7 + SUBTYPEP.RATIONAL.8 SUBTYPEP.RATIONAL.9 SUBTYPEP.RATIONAL.10 + SUBTYPEP.RATIONAL.11 SUBTYPEP.RATIONAL.12 SUBTYPEP.RATIONAL.13 + SUBTYPEP.RATIONAL.14 SUBTYPEP.RATIONAL.15 SUBTYPEP.RATIONAL.16 + SUBTYPEP.RATIONAL.17 SUBTYPEP.RATIONAL.18 SUBTYPEP.REAL.1 + SUBTYPEP.REAL.2 SUBTYPEP.REAL.3 SUBTYPEP.REAL.4 SUBTYPEP.REAL.5 + SUBTYPEP.REAL.6 SUBTYPEP.REAL.7 SUBTYPEP.REAL.8 SUBTYPEP.REAL.9 + SUBTYPEP.REAL.10 SUBTYPEP.REAL.11 SUBTYPEP.REAL.12 SUBTYPEP.REAL.13 + SUBTYPEP.REAL.14 SUBTYPEP.REAL.15 SUBTYPEP.REAL.16 SUBTYPEP.REAL.17 + SUBTYPEP.REAL.18 SUBTYPEP.REAL.19 SUBTYPEP.REAL.20 SUBTYPEP.REAL.21 + SUBTYPEP.REAL.22 SUBTYPEP.REAL.23 SUBTYPEP.REAL.24 SUBTYPEP.CONS.1 +Test SUBTYPEP.CONS.2 failed +Form: (LOOP + FOR + T1 + IN + '((CONS NIL) (CONS NIL *) (CONS NIL T) (CONS * NIL) + (CONS T NIL) (CONS NIL NIL)) + UNLESS + (SUBTYPEP T1 NIL) + COLLECT + T1) +Expected value: NIL +Actual value: ((CONS NIL) (CONS NIL *) (CONS NIL T) (CONS * NIL) + (CONS T NIL) (CONS NIL NIL)). + SUBTYPEP.CONS.3 SUBTYPEP.CONS.4 SUBTYPEP.CONS.5 SUBTYPEP.CONS.6 + SUBTYPEP.CONS.7 SUBTYPEP.CONS.8 SUBTYPEP.CONS.9 SUBTYPEP.CONS.10 + SUBTYPEP.CONS.11 +Test SUBTYPEP.CONS.12 failed +Form: (CHECK-ALL-NOT-SUBTYPEP + '(CONS (OR INTEGER SYMBOL) (OR INTEGER SYMBOL)) + '(OR (CONS INTEGER SYMBOL) (CONS SYMBOL INTEGER))) +Expected value: NIL +Actual value: (((SUBTYPEP + '(CONS (OR INTEGER SYMBOL) (OR INTEGER SYMBOL)) + '(OR (CONS INTEGER SYMBOL) (CONS SYMBOL INTEGER))) + ==> T T) + ((SUBTYPEP + '(NOT (OR (CONS INTEGER SYMBOL) + (CONS SYMBOL INTEGER))) + '(NOT (CONS (OR INTEGER SYMBOL) + (OR INTEGER SYMBOL)))) + ==> T T)). + SUBTYPEP.CONS.13 SUBTYPEP.CONS.14 SUBTYPEP.CONS.15 SUBTYPEP.CONS.16 + SUBTYPEP.CONS.17 SUBTYPEP.CONS.18 SUBTYPEP.CONS.19 SUBTYPEP.CONS.20 + SUBTYPEP.MEMBER.1 SUBTYPEP.MEMBER.2 SUBTYPEP.MEMBER.3 + SUBTYPEP.MEMBER.4 SUBTYPEP.MEMBER.5 SUBTYPEP.MEMBER.6 + SUBTYPEP.MEMBER.7 SUBTYPEP.MEMBER.8 SUBTYPEP.MEMBER.9 + SUBTYPEP.MEMBER.10 SUBTYPEP.MEMBER.11 SUBTYPEP.MEMBER.12 + SUBTYPEP.MEMBER.13 SUBTYPEP.MEMBER.14 SUBTYPEP.MEMBER.15 + SUBTYPEP.MEMBER.16 +Test SUBTYPEP.MEMBER.17 failed +Form: (LET ((S1 (COPY-SEQ "abc")) (S2 (COPY-SEQ "abc"))) + (LET ((T1 (LIST 'MEMBER S1)) (T2 (LIST 'MEMBER S2))) + (COND + ((SUBTYPEP T1 T2) "T1 is subtype of T2") + ((SUBTYPEP T2 T1) "T2 is subtype of T1") + (T (CHECK-DISJOINTNESS T1 T2))))) +Expected value: NIL +Actual value: "T1 is subtype of T2". +Test SUBTYPEP.MEMBER.18 failed +Form: (LET ((S1 (COPY-SEQ '(A B C))) (S2 (COPY-SEQ '(A B C)))) + (LET ((T1 (LIST 'MEMBER S1)) (T2 (LIST 'MEMBER S2))) + (COND + ((SUBTYPEP T1 T2) "T1 is subtype of T2") + ((SUBTYPEP T2 T1) "T2 is subtype of T1") + (T (CHECK-DISJOINTNESS T1 T2))))) +Expected value: NIL +Actual value: "T1 is subtype of T2". + SUBTYPEP.MEMBER.19 SUBTYPEP.MEMBER.20 SUBTYPEP.MEMBER.21 + SUBTYPEP.MEMBER.22 SUBTYPEP.MEMBER.23 SUBTYPEP.MEMBER.24 + SUBTYPEP.MEMBER.25 SUBTYPEP.MEMBER.26 SUBTYPEP.MEMBER.27 + SUBTYPEP.MEMBER.28 SUBTYPEP.MEMBER.29 SUBTYPEP.MEMBER.30 + SUBTYPEP.MEMBER.31 SUBTYPEP.MEMBER.32 SUBTYPEP.MEMBER.33 + SUBTYPEP.MEMBER.34 SUBTYPEP.MEMBER.35 SUBTYPEP.MEMBER.36 + SUBTYPEP.MEMBER.37 SUBTYPEP.MEMBER.38 SUBTYPEP.MEMBER.39 + SUBTYPEP.MEMBER.40 SUBTYPEP.MEMBER.41 SUBTYPEP.MEMBER.42 + SUBTYPEP.MEMBER.43 SUBTYPEP.MEMBER.44 +Test SUBTYPEP.EQL.1 failed +Form: (LET ((S1 (COPY-SEQ "abc")) (S2 (COPY-SEQ "abc"))) + (LET ((T1 (LIST 'EQL S1)) (T2 (LIST 'EQL S2))) + (COND + ((SUBTYPEP T1 T2) "T1 is subtype of T2") + ((SUBTYPEP T2 T1) "T2 is subtype of T1") + (T (CHECK-DISJOINTNESS T1 T2))))) +Expected value: NIL +Actual value: "T1 is subtype of T2". +Test SUBTYPEP.EQL.2 failed +Form: (LET ((S1 (COPY-SEQ '(A B C))) (S2 (COPY-SEQ '(A B C)))) + (LET ((T1 (LIST 'EQL S1)) (T2 (LIST 'EQL S2))) + (COND + ((SUBTYPEP T1 T2) "T1 is subtype of T2") + ((SUBTYPEP T2 T1) "T2 is subtype of T1") + (T (CHECK-DISJOINTNESS T1 T2))))) +Expected value: NIL +Actual value: "T1 is subtype of T2". + SUBTYPEP.EQL.3 SUBTYPEP.EQL.4 SUBTYPEP.EQL.5 SUBTYPEP.EQL.6 + SUBTYPEP.EQL.7 SUBTYPEP.EQL.8 +Test SUBTYPEP.ARRAY.1 failed +Form: (LET ((ARRAY-TYPES + (CONS (FIND-CLASS 'ARRAY) + '(ARRAY (ARRAY) (ARRAY *) (ARRAY * *))))) + (LOOP + FOR + TP1 + IN + ARRAY-TYPES + APPEND + (LOOP + FOR + TP2 + IN + ARRAY-TYPES + UNLESS + (SUBTYPEP TP1 TP2) + COLLECT + (LIST TP1 TP2)))) +Expected value: NIL +Actual value: ((# ARRAY) + (# (ARRAY)) + (# (ARRAY *)) + (# (ARRAY * *)) + (ARRAY #) + ((ARRAY) + #) + ((ARRAY *) + #) + ((ARRAY * *) + #)). + SUBTYPEP.ARRAY.2 +Test SUBTYPEP.ARRAY.3 failed +Form: (LOOP + FOR + I + FROM + 0 + BELOW + (MIN 16 ARRAY-RANK-LIMIT) + FOR + TYPE + = + (LIST 'ARRAY '* I) + FOR + TYPE2 + = + (LIST 'ARRAY '* (MAKE-LIST I :INITIAL-ELEMENT '*)) + UNLESS + (AND (SUBTYPEP TYPE 'ARRAY) (SUBTYPEP TYPE '(ARRAY)) + (SUBTYPEP TYPE '(ARRAY *)) (SUBTYPEP TYPE '(ARRAY * *)) + (SUBTYPEP TYPE TYPE2)) + COLLECT + TYPE) +Expected value: NIL +Actual value: #. +Test SUBTYPEP.ARRAY.4 failed +Form: (LOOP + FOR + I + FROM + 0 + BELOW + (MIN 16 ARRAY-RANK-LIMIT) + FOR + TYPE + = + (LIST 'ARRAY T I) + FOR + TYPE2 + = + (LIST 'ARRAY T (MAKE-LIST I :INITIAL-ELEMENT '*)) + UNLESS + (AND (SUBTYPEP TYPE '(ARRAY T)) (SUBTYPEP TYPE '(ARRAY T *)) + (SUBTYPEP TYPE TYPE2)) + COLLECT + TYPE) +Expected value: NIL +Actual value: #. +Test SUBTYPEP.ARRAY.5 failed +Form: (LOOP + FOR + ELEMENT-TYPE + IN + (CONS '* *ARRAY-ELEMENT-TYPES*) + NCONC + (LOOP + FOR + I + FROM + 0 + BELOW + (MIN 16 ARRAY-RANK-LIMIT) + FOR + TYPE + = + (LIST 'ARRAY ELEMENT-TYPE I) + FOR + TYPE2 + = + (LIST 'ARRAY ELEMENT-TYPE (MAKE-LIST I :INITIAL-ELEMENT '0)) + FOR + TYPE3 + = + (LIST 'ARRAY ELEMENT-TYPE (MAKE-LIST I :INITIAL-ELEMENT '1)) + UNLESS + (AND (SUBTYPEP TYPE2 TYPE) (SUBTYPEP TYPE3 TYPE) + (LOOP + FOR + J + FROM + 0 + TO + I + ALWAYS + (AND (SUBTYPEP + (LIST 'ARRAY ELEMENT-TYPE + (APPEND (MAKE-LIST J :INITIAL-ELEMENT + '*) + (MAKE-LIST (- I J) + :INITIAL-ELEMENT 2))) + TYPE) + (SUBTYPEP + (LIST 'ARRAY ELEMENT-TYPE + (APPEND (MAKE-LIST J :INITIAL-ELEMENT + 2) + (MAKE-LIST (- I J) + :INITIAL-ELEMENT '*))) + TYPE)))) + COLLECT + TYPE)) +Expected value: NIL +Actual value: #. + SUBTYPEP.ARAY.6 SUBTYPEP.ARAY.7 READTABLE-VALID READTABLEP.1 + READ-SYMBOL.1 READ-SYMBOL.2 READ-SYMBOL.3 READ-SYMBOL.4 READ-SYMBOL.5 + READ-SYMBOL.6 READ-SYMBOL.7 RANDOM-DELETE-DUPLICATES REMOVE-DUPLICATES.1 DELETE-DUPLICATES.1 REMOVE-DUPLICATES.ORDER.1 REMOVE-DUPLICATES.ORDER.2 REMOVE-DUPLICATES.ALLOW-OTHER-KEYS.1 REMOVE-DUPLICATES.ALLOW-OTHER-KEYS.2 @@ -28582,17 +28919,17 @@ '(NOT STRUCTURE-OBJECT)) ==> NIL T) ((SUBTYPEP 'ARITHMETIC-ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'ARITHMETIC-ERROR) ==> NIL T) ((SUBTYPEP '(NOT ARITHMETIC-ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT ARITHMETIC-ERROR)) ==> NIL T) ((SUBTYPEP 'SYMBOL @@ -28688,17 +29025,17 @@ '(NOT ARRAY)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-INEXACT - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-INEXACT) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-INEXACT) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-INEXACT)) ==> NIL T) ((SUBTYPEP 'NUMBER @@ -28727,31 +29064,31 @@ '(NOT #) '(NOT NULL)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-UNDERFLOW - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-UNDERFLOW) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-UNDERFLOW) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-UNDERFLOW)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-OVERFLOW - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-OVERFLOW) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-OVERFLOW) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-OVERFLOW)) ==> NIL T) ((SUBTYPEP 'RATIONAL @@ -28837,16 +29174,16 @@ '(NOT UNBOUND-SLOT)) ==> NIL T) ((SUBTYPEP 'ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # 'ERROR) + # 'ERROR) ==> NIL T) ((SUBTYPEP '(NOT ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT ERROR)) ==> NIL T) ((SUBTYPEP 'STANDARD-GENERIC-FUNCTION @@ -28877,17 +29214,17 @@ '(NOT CHARACTER)) ==> NIL T) ((SUBTYPEP 'DIVISION-BY-ZERO - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'DIVISION-BY-ZERO) ==> NIL T) ((SUBTYPEP '(NOT DIVISION-BY-ZERO) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT DIVISION-BY-ZERO)) ==> NIL T) ((SUBTYPEP 'SEQUENCE @@ -28932,17 +29269,17 @@ '(NOT UNDEFINED-FUNCTION)) ==> NIL T) ((SUBTYPEP 'END-OF-FILE - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'END-OF-FILE) ==> NIL T) ((SUBTYPEP '(NOT END-OF-FILE) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT END-OF-FILE)) ==> NIL T) ((SUBTYPEP 'INTEGER @@ -28985,17 +29322,17 @@ '(NOT BIT-VECTOR)) ==> NIL T) ((SUBTYPEP 'STYLE-WARNING - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'STYLE-WARNING) ==> NIL T) ((SUBTYPEP '(NOT STYLE-WARNING) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT STYLE-WARNING)) ==> NIL T) ((SUBTYPEP 'SIMPLE-TYPE-ERROR @@ -29013,16 +29350,16 @@ '(NOT SIMPLE-TYPE-ERROR)) ==> NIL T) ((SUBTYPEP 'CELL-ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # 'CELL-ERROR) + # 'CELL-ERROR) ==> NIL T) ((SUBTYPEP '(NOT CELL-ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT CELL-ERROR)) ==> NIL T) ((SUBTYPEP 'FILE-ERROR @@ -29039,16 +29376,16 @@ '(NOT FILE-ERROR)) ==> NIL T) ((SUBTYPEP 'RESTART - #) + #) ==> NIL T) ((SUBTYPEP - # 'RESTART) + # 'RESTART) ==> NIL T) ((SUBTYPEP '(NOT RESTART) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT RESTART)) ==> NIL T) ((SUBTYPEP 'TYPE-ERROR @@ -29123,17 +29460,17 @@ '(NOT #) '(NOT CONS)) ==> NIL T) ((SUBTYPEP 'SIMPLE-CONDITION - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'SIMPLE-CONDITION) ==> NIL T) ((SUBTYPEP '(NOT SIMPLE-CONDITION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT SIMPLE-CONDITION)) ==> NIL T) ((SUBTYPEP 'SIMPLE-WARNING @@ -29179,16 +29516,16 @@ '(NOT PARSE-ERROR)) ==> NIL T) ((SUBTYPEP 'WARNING - #) + #) ==> NIL T) ((SUBTYPEP - # 'WARNING) + # 'WARNING) ==> NIL T) ((SUBTYPEP '(NOT WARNING) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT WARNING)) ==> NIL T) ((SUBTYPEP 'STORAGE-CONDITION @@ -29206,17 +29543,17 @@ '(NOT STORAGE-CONDITION)) ==> NIL T) ((SUBTYPEP 'FLOATING-POINT-INVALID-OPERATION - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'FLOATING-POINT-INVALID-OPERATION) ==> NIL T) ((SUBTYPEP '(NOT FLOATING-POINT-INVALID-OPERATION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT FLOATING-POINT-INVALID-OPERATION)) ==> NIL T) ((SUBTYPEP 'PROGRAM-ERROR @@ -29289,31 +29626,31 @@ '(NOT STREAM-ERROR)) ==> NIL T) ((SUBTYPEP 'SERIOUS-CONDITION - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'SERIOUS-CONDITION) ==> NIL T) ((SUBTYPEP '(NOT SERIOUS-CONDITION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT SERIOUS-CONDITION)) ==> NIL T) ((SUBTYPEP 'READER-ERROR - #) + #) ==> NIL T) ((SUBTYPEP - # + # 'READER-ERROR) ==> NIL T) ((SUBTYPEP '(NOT READER-ERROR) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT READER-ERROR)) ==> NIL T) ((SUBTYPEP 'VECTOR @@ -29330,16 +29667,16 @@ '(NOT VECTOR)) ==> NIL T) ((SUBTYPEP 'CONDITION - #) + #) ==> NIL T) ((SUBTYPEP - # 'CONDITION) + # 'CONDITION) ==> NIL T) ((SUBTYPEP '(NOT CONDITION) - '(NOT #)) + '(NOT #)) ==> NIL T) ((SUBTYPEP - '(NOT #) + '(NOT #) '(NOT CONDITION)) ==> NIL T) ((SUBTYPEP 'UNBOUND-VARIABLE @@ -29937,414 +30274,7 @@ STRING-NOT-EQUAL.ORDER.3 STRING-NOT-LESSP.ORDER.1 STRING-NOT-LESSP.ORDER.2 STRING-NOT-LESSP.ORDER.3 STRING-GREATERP.ORDER.1 STRING-GREATERP.ORDER.2 - STRING-GREATERP.ORDER.3 RANDOM-STRING-COMPARISON-TESTS MAKE-STRING.1 - MAKE-STRING.2 MAKE-STRING.3 MAKE-STRING.4 MAKE-STRING.5 MAKE-STRING.6 - MAKE-STRING.7 MAKE-STRING.8 MAKE-STRING.9 - MAKE-STRING.ALLOW-OTHER-KEYS.1 MAKE-STRING.ALLOW-OTHER-KEYS.2 - MAKE-STRING.ALLOW-OTHER-KEYS.3 MAKE-STRING.ALLOW-OTHER-KEYS.4 - MAKE-STRING.ALLOW-OTHER-KEYS.5 MAKE-STRING.ALLOW-OTHER-KEYS.6 - MAKE-STRING.KEYWORDS.7 MAKE-STRING.ERROR.1 MAKE-STRING.ERROR.2 - MAKE-STRING.ERROR.3 MAKE-STRING.ERROR.4 MAKE-STRING.ERROR.5 - MAKE-STRING.ERROR.6 MAKE-STRING.ORDER.1 MAKE-STRING.ORDER.2 - MAKE-STRING.ORDER.3 -Test PATHNAMES-PRINT-AND-READ-PROPERLY failed -Form: (WITH-STANDARD-IO-SYNTAX - (LOOP - FOR - P1 - IN - *PATHNAMES* - FOR - S - = - (HANDLER-CASE (WRITE-TO-STRING P1 :READABLY T) - (PRINT-NOT-READABLE NIL :UNREADABLE-ERROR)) - UNLESS - (EQL S :UNREADABLE-ERROR) - APPEND - (LET ((P2 (READ-FROM-STRING S))) - (UNLESS (EQUAL P1 P2) (LIST (LIST P1 S P2)))))) -Expected value: NIL -Actual value: ((#p"" "#p\"\"" #p"") (#p"" "#p\"\"" #p"")). - PATHNAME.1 PATHNAME.2 PATHNAME.3 PATHNAME.4 PATHNAME.5 PATHNAME.6 - PATHNAME.7 PATHNAME.8 PATHNAME.9 PATHNAME.10 PATHNAME.11 - PATHNAME.ERROR.1 PATHNAME.ERROR.2 PATHNAMEP.1 PATHNAMEP.2 PATHNAMEP.3 - PATHNAMEP.ERROR.1 PATHNAMEP.ERROR.2 PATHNAMEP.ERROR.3 MAKE-PATHNAME.1 - MAKE-PATHNAME.2 MAKE-PATHNAME.2A MAKE-PATHNAME.3 MAKE-PATHNAME.3A - MAKE-PATHNAME.4 MAKE-PATHNAME.5 MAKE-PATHNAME.6 MAKE-PATHNAME.7 - MAKE-PATHNAME.8 MAKE-PATHNAME.9 MAKE-PATHNAME.10 MAKE-PATHNAME.11 - MAKE-PATHNAME.12 MAKE-PATHNAME.13 MAKE-PATHNAME.14 - MAKE-PATHNAME.REBUILD MAKE-PATHNAME-ERROR-ABSOLUTE-UP - MAKE-PATHNAME-ERROR-ABSOLUTE-BACK - MAKE-PATHNAME-ERROR-ABSOLUTE-WILD-INFERIORS-UP - MAKE-PATHNAME-ERROR-RELATIVE-WILD-INFERIORS-UP - MAKE-PATHNAME-ERROR-ABSOLUTE-WILD-INFERIORS-BACK - MAKE-PATHNAME-ERROR-RELATIVE-WILD-INFERIORS-BACK PATHNAME-HOST.1 - PATHNAME-HOST.2 PATHNAME-HOST.3 PATHNAME-HOST.4 PATHNAME-HOST.5 - PATHNAME-HOST.6 PATHNAME-HOST.7 PATHNAME-HOST.8 PATHNAME-HOST.ERROR.1 - PATHNAME-HOST.ERROR.2 PATHNAME-HOST.ERROR.3 PATHNAME-DEVICE.1 - PATHNAME-DEVICE.2 PATHNAME-DEVICE.3 PATHNAME-DEVICE.4 - PATHNAME-DEVICE.5 PATHNAME-DEVICE.6 PATHNAME-DEVICE.7 - PATHNAME-DEVICE.8 PATHNAME-DEVICE.ERROR.1 PATHNAME-DEVICE.ERROR.2 - PATHNAME-DIRECTORY.1 PATHNAME-DIRECTORY.2 PATHNAME-DIRECTORY.3 - PATHNAME-DIRECTORY.4 PATHNAME-DIRECTORY.5 PATHNAME-DIRECTORY.6 - PATHNAME-DIRECTORY.7 PATHNAME-DIRECTORY.8 PATHNAME-DIRECTORY.ERROR.1 - PATHNAME-DIRECTORY.ERROR.2 PATHNAME-NAME.1 PATHNAME-NAME.2 - PATHNAME-NAME.3 PATHNAME-NAME.4 PATHNAME-NAME.5 PATHNAME-NAME.6 - PATHNAME-NAME.7 PATHNAME-NAME.8 PATHNAME-NAME.ERROR.1 - PATHNAME-NAME.ERROR.2 PATHNAME-TYPE.1 PATHNAME-TYPE.2 PATHNAME-TYPE.3 - PATHNAME-TYPE.4 PATHNAME-TYPE.5 PATHNAME-TYPE.6 PATHNAME-TYPE.7 - PATHNAME-TYPE.8 PATHNAME-TYPE.ERROR.1 PATHNAME-TYPE.ERROR.2 - PATHNAME-VERSION.1 PATHNAME-VERSION.2 PATHNAME-VERSION.3 - PATHNAME-VERSION.ERROR.1 PATHNAME-VERSION.ERROR.2 - PATHNAME-VERSION.ERROR.3 LOAD-LOGICAL-PATHNAME-TRANSLATIONS.1 - LOAD-LOGICAL-PATHNAME-TRANSLATIONS.ERROR.1 - LOAD-LOGICAL-PATHNAME-TRANSLATIONS.ERROR.2 - LOAD-LOGICAL-PATHNAME-TRANSLATIONS.ERROR.3 LOGICAL-PATHNAME.1 - LOGICAL-PATHNAME.2 LOGICAL-PATHNAME.3 LOGICAL-PATHNAME.ERROR.1 - LOGICAL-PATHNAME.ERROR.2 LOGICAL-PATHNAME.ERROR.3 - LOGICAL-PATHNAME.ERROR.4 LOGICAL-PATHNAME.ERROR.5 - LOGICAL-PATHNAME.ERROR.6 LOGICAL-PATHNAME.ERROR.7 - LOGICAL-PATHNAME.ERROR.8 LOGICAL-PATHNAME.ERROR.9 - LOGICAL-PATHNAME.ERROR.10 TRANSLATE-LOGICAL-PATHNAME.1 - TRANSLATE-LOGICAL-PATHNAME.2 TRANSLATE-LOGICAL-PATHNAME.3 - TRANSLATE-LOGICAL-PATHNAME.4 TRANSLATE-LOGICAL-PATHNAME.ERROR.1 - NAMESTRING.1 NAMESTRING.2 NAMESTRING.ERROR.1 NAMESTRING.ERROR.2 - FILE-NAMESTRING.1 FILE-NAMESTRING.2 FILE-NAMESTRING.3 - FILE-NAMESTRING.ERROR.1 FILE-NAMESTRING.ERROR.2 DIRECTORY-NAMESTRING.1 - DIRECTORY-NAMESTRING.2 DIRECTORY-NAMESTRING.3 - DIRECTORY-NAMESTRING.ERROR.1 DIRECTORY-NAMESTRING.ERROR.2 - HOST-NAMESTRING.1 HOST-NAMESTRING.2 HOST-NAMESTRING.3 - HOST-NAMESTRING.ERROR.1 HOST-NAMESTRING.ERROR.2 ENOUGH-NAMESTRING.1 - ENOUGH-NAMESTRING.2 ENOUGH-NAMESTRING.3 ENOUGH-NAMESTRING.4 - ENOUGH-NAMESTRING.5 ENOUGH-NAMESTRING.6 ENOUGH-NAMESTRING.7 - ENOUGH-NAMESTRING.ERROR.1 ENOUGH-NAMESTRING.ERROR.2 WILD-PATHNAME-P.1 - WILD-PATHNAME-P.2 WILD-PATHNAME-P.3 WILD-PATHNAME-P.4 - WILD-PATHNAME-P.5 WILD-PATHNAME-P.6 WILD-PATHNAME-P.7 - WILD-PATHNAME-P.8 WILD-PATHNAME-P.9 WILD-PATHNAME-P.10 - WILD-PATHNAME-P.11 WILD-PATHNAME-P.12 WILD-PATHNAME-P.13 - WILD-PATHNAME-P.14 WILD-PATHNAME-P.15 WILD-PATHNAME-P.16 - WILD-PATHNAME-P.17 WILD-PATHNAME-P.18 WILD-PATHNAME-P.19 - WILD-PATHNAME-P.20 WILD-PATHNAME-P.21 WILD-PATHNAME-P.22 - WILD-PATHNAME-P.23 WILD-PATHNAME-P.24 WILD-PATHNAME-P.25 - WILD-PATHNAME-P.26 WILD-PATHNAME-P.27 WILD-PATHNAME-P.28 - WILD-PATHNAME-P.29 WILD-PATHNAME-P.30 WILD-PATHNAME-P.31 - WILD-PATHNAME-P.32 WILD-PATHNAME-P.ERROR.1 WILD-PATHNAME-P.ERROR.2 - WILD-PATHNAME-P.ERROR.3 WILD-PATHNAME-P.ERROR.4 MERGE-PATHNAMES.1 - MERGE-PATHNAMES.2 MERGE-PATHNAMES.3 MERGE-PATHNAMES.4 - MERGE-PATHNAMES.5 MERGE-PATHNAMES.6 MERGE-PATHNAMES.7 - PATHNAME-MATCH-P.1 PATHNAME-MATCH-P.2 PATHNAME-MATCH-P.3 - PATHNAME-MATCH-P.4 PATHNAME-MATCH-P.5 PATHNAME-MATCH-P.6 - PATHNAME-MATCH-P.7 PATHNAME-MATCH-P.8 PATHNAME-MATCH-P.ERROR.1 - PATHNAME-MATCH-P.ERROR.2 PATHNAME-MATCH-P.ERROR.3 - PATHNAME-MATCH-P.ERROR.4 PATHNAME-MATCH-P.ERROR.5 - PATHNAME-MATCH-P.ERROR.6 PATHNAME-MATCH-P.ERROR.7 PARSE-NAMESTRING.1 - PARSE-NAMESTRING.2 PARSE-NAMESTRING.3 PARSE-NAMESTRING.4 - PARSE-NAMESTRING.ERROR.1 PARSE-NAME-STRING.ERROR.2 - PARSE-NAME-STRING.ERROR.3 DIRECTORY.1 DIRECTORY.2 DIRECTORY.3 - DIRECTORY.4 DIRECTORY.5 DIRECTORY.6 DIRECTORY.7 DIRECTORY.8 SUBTYPEP.OR.4 - SUBTYPEP.NIL.1 SUBTYPEP.NIL.2 SUBTYPEP.FIXNUM-OR-BIGNUM - SUBTYPEP.FIXNUM.INTEGER -Test SUBTYPEP.BIGNUM.INTEGER failed -Form: (CHECK-EQUIVALENCE - (LIST 'OR (LIST 'INTEGER '* (LIST MOST-NEGATIVE-FIXNUM)) - (LIST 'INTEGER (LIST MOST-POSITIVE-FIXNUM) '*)) - 'BIGNUM) -Expected value: NIL -Actual value: (((SUBTYPEP - '(OR (INTEGER * (-9223372036854775808)) - (INTEGER (9223372036854775807) *)) - 'BIGNUM) - ==> NIL T) - ((SUBTYPEP '(NOT BIGNUM) - '(NOT (OR (INTEGER * (-9223372036854775808)) - (INTEGER (9223372036854775807) *)))) - ==> NIL T)). - SUBTYPEP.INTEGER.1 SUBTYPEP.INTEGER.2 SUBTYPEP.INTEGER.3 - SUBTYPEP.INTEGER.3A SUBTYPEP.INTEGER.3B SUBTYPEP.INTEGER.3C - SUBTYPEP.INTEGER.4 SUBTYPEP.INTEGER.4A SUBTYPEP.INTEGER.4B - SUBTYPEP.INTEGER.4C SUBTYPEP.INTEGER.5 SUBTYPEP.INTEGER.5A - SUBTYPEP.INTEGER.5B SUBTYPEP.INTEGER.5C SUBTYPEP.INTEGER.6 - SUBTYPEP.INTEGER.6A SUBTYPEP.INTEGER.6B SUBTYPEP.INTEGER.6C - SUBTYPEP.INTEGER.7 SUBTYPEP.INTEGER.7A SUBTYPEP.INTEGER.7B - SUBTYPEP.INTEGER.7C SUBTYPEP.INTEGER.8 SUBTYPEP.INTEGER.8A - SUBTYPEP.INTEGER.8B SUBTYPEP.INTEGER.8C SUBTYPEP.INTEGER.9 - SUBTYPEP.INTEGER.9A SUBTYPEP.INTEGER.9B SUBTYPEP.INTEGER.9C - SUBTYPEP.INTEGER.10 SUBTYPEP.INTEGER.10A SUBTYPEP.INTEGER.10B - SUBTYPEP.INTEGER.10C SUBTYPEP.INTEGER.11 SUBTYPEP.INTEGER.12 - SUBTYPEP.INTEGER.13 SUBTYPEP.INTEGER.14 SUBTYPEP.INTEGER.15 - SUBTYPEP.INTEGER.16 SUBTYPEP.INTEGER.17 SUBTYPEP.INTEGER.18 - SUBTYPEP.INTEGER.19 SUBTYPEP.INTEGER.20 SUBTYPEP.INTEGER.21 - SUBTYPEP.INTEGER.22 -Test SUBTYPEP.INTEGER.23 failed -Form: (CHECK-EQUIVALENCE '(INTEGER (9)) '(INTEGER 10)) -Expected value: NIL -Actual value: (((SUBTYPEP '(INTEGER (9)) '(INTEGER 10)) ==> NIL T) - ((SUBTYPEP '(NOT (INTEGER 10)) '(NOT (INTEGER (9)))) ==> - NIL T)). -Test SUBTYPEP.INTEGER.24 failed -Form: (CHECK-EQUIVALENCE '(INTEGER * (11)) '(INTEGER * 10)) -Expected value: NIL -Actual value: (((SUBTYPEP '(INTEGER * (11)) '(INTEGER * 10)) ==> NIL T) - ((SUBTYPEP '(NOT (INTEGER * 10)) - '(NOT (INTEGER * (11)))) - ==> NIL T)). - SUBTYPEP.INTEGER.25 SUBTYPEP.INTEGER.26 SUBTYPEP.INTEGER.27 - SUBTYPEP.INTEGER.28 SUBTYPEP.INTEGER.29 SUBTYPEP.INTEGER.30 - SUBTYPEP.INTEGER.REAL.1 SUBTYPEP.INTEGER.REAL.2 - SUBTYPEP.INTEGER.REAL.3 SUBTYPEP.INTEGER.REAL.4 - SUBTYPEP.INTEGER.REAL.5 SUBTYPEP.INTEGER.REAL.6 - SUBTYPEP.INTEGER.REAL.7 SUBTYPEP.INTEGER.REAL.8 - SUBTYPEP.INTEGER.REAL.9 SUBTYPEP.INTEGER.REAL.10 - SUBTYPEP.INTEGER.REAL.11 SUBTYPEP.INTEGER.RATIONAL.1 - SUBTYPEP.INTEGER.RATIONAL.2 SUBTYPEP.INTEGER.RATIONAL.3 - SUBTYPEP.INTEGER.RATIONAL.4 SUBTYPEP.INTEGER.RATIONAL.5 - SUBTYPEP.INTEGER.RATIONAL.6 SUBTYPEP.INTEGER.RATIONAL.7 - SUBTYPEP.INTEGER.RATIONAL.8 SUBTYPEP.INTEGER.RATIONAL.9 - SUBTYPEP.INTEGER.RATIONAL.10 SUBTYPEP.FLOAT.1 SUBTYPEP.FLOAT.2 - SUBTYPEP.FLOAT.3 SUBTYPEP.FLOAT.4 SUBTYPEP.FLOAT.5 SUBTYPEP.FLOAT.6 - SUBTYPEP.FLOAT.7 SUBTYPEP.FLOAT.8 SUBTYPEP.FLOAT.9 SUBTYPEP.FLOAT.10 - SUBTYPEP.FLOAT.11 SUBTYPEP.FLOAT.12 SUBTYPEP.FLOAT.13 - SUBTYPEP.FLOAT.14 SUBTYPEP.FLOAT.15 SUBTYPEP.FLOAT.16 - SUBTYPEP.FLOAT.17 SUBTYPEP.FLOAT.18 SUBTYPEP.FLOAT.19 - SUBTYPEP.FLOAT.20 SUBTYPEP.FLOAT.21 SUBTYPEP.FLOAT.22 - SUBTYPEP.FLOAT.23 SUBTYPEP.FLOAT.24 SUBTYPEP.FLOAT.25 - SUBTYPEP.FLOAT.26 SUBTYPEP.FLOAT.27 SUBTYPEP.RATIONAL.1 - SUBTYPEP.RATIONAL.2 SUBTYPEP.RATIONAL.3 SUBTYPEP.RATIONAL.4 - SUBTYPEP.RATIONAL.5 SUBTYPEP.RATIONAL.6 SUBTYPEP.RATIONAL.7 - SUBTYPEP.RATIONAL.8 SUBTYPEP.RATIONAL.9 SUBTYPEP.RATIONAL.10 - SUBTYPEP.RATIONAL.11 SUBTYPEP.RATIONAL.12 SUBTYPEP.RATIONAL.13 - SUBTYPEP.RATIONAL.14 SUBTYPEP.RATIONAL.15 SUBTYPEP.RATIONAL.16 - SUBTYPEP.RATIONAL.17 SUBTYPEP.RATIONAL.18 SUBTYPEP.REAL.1 - SUBTYPEP.REAL.2 SUBTYPEP.REAL.3 SUBTYPEP.REAL.4 SUBTYPEP.REAL.5 - SUBTYPEP.REAL.6 SUBTYPEP.REAL.7 SUBTYPEP.REAL.8 SUBTYPEP.REAL.9 - SUBTYPEP.REAL.10 SUBTYPEP.REAL.11 SUBTYPEP.REAL.12 SUBTYPEP.REAL.13 - SUBTYPEP.REAL.14 SUBTYPEP.REAL.15 SUBTYPEP.REAL.16 SUBTYPEP.REAL.17 - SUBTYPEP.REAL.18 SUBTYPEP.REAL.19 SUBTYPEP.REAL.20 SUBTYPEP.REAL.21 - SUBTYPEP.REAL.22 SUBTYPEP.REAL.23 SUBTYPEP.REAL.24 SUBTYPEP.CONS.1 -Test SUBTYPEP.CONS.2 failed -Form: (LOOP - FOR - T1 - IN - '((CONS NIL) (CONS NIL *) (CONS NIL T) (CONS * NIL) - (CONS T NIL) (CONS NIL NIL)) - UNLESS - (SUBTYPEP T1 NIL) - COLLECT - T1) -Expected value: NIL -Actual value: ((CONS NIL) (CONS NIL *) (CONS NIL T) (CONS * NIL) - (CONS T NIL) (CONS NIL NIL)). - SUBTYPEP.CONS.3 SUBTYPEP.CONS.4 SUBTYPEP.CONS.5 SUBTYPEP.CONS.6 - SUBTYPEP.CONS.7 SUBTYPEP.CONS.8 SUBTYPEP.CONS.9 SUBTYPEP.CONS.10 - SUBTYPEP.CONS.11 -Test SUBTYPEP.CONS.12 failed -Form: (CHECK-ALL-NOT-SUBTYPEP - '(CONS (OR INTEGER SYMBOL) (OR INTEGER SYMBOL)) - '(OR (CONS INTEGER SYMBOL) (CONS SYMBOL INTEGER))) -Expected value: NIL -Actual value: (((SUBTYPEP - '(CONS (OR INTEGER SYMBOL) (OR INTEGER SYMBOL)) - '(OR (CONS INTEGER SYMBOL) (CONS SYMBOL INTEGER))) - ==> T T) - ((SUBTYPEP - '(NOT (OR (CONS INTEGER SYMBOL) - (CONS SYMBOL INTEGER))) - '(NOT (CONS (OR INTEGER SYMBOL) - (OR INTEGER SYMBOL)))) - ==> T T)). - SUBTYPEP.CONS.13 SUBTYPEP.CONS.14 SUBTYPEP.CONS.15 SUBTYPEP.CONS.16 - SUBTYPEP.CONS.17 SUBTYPEP.CONS.18 SUBTYPEP.CONS.19 SUBTYPEP.CONS.20 - SUBTYPEP.MEMBER.1 SUBTYPEP.MEMBER.2 SUBTYPEP.MEMBER.3 - SUBTYPEP.MEMBER.4 SUBTYPEP.MEMBER.5 SUBTYPEP.MEMBER.6 - SUBTYPEP.MEMBER.7 SUBTYPEP.MEMBER.8 SUBTYPEP.MEMBER.9 - SUBTYPEP.MEMBER.10 SUBTYPEP.MEMBER.11 SUBTYPEP.MEMBER.12 - SUBTYPEP.MEMBER.13 SUBTYPEP.MEMBER.14 SUBTYPEP.MEMBER.15 - SUBTYPEP.MEMBER.16 -Test SUBTYPEP.MEMBER.17 failed -Form: (LET ((S1 (COPY-SEQ "abc")) (S2 (COPY-SEQ "abc"))) - (LET ((T1 (LIST 'MEMBER S1)) (T2 (LIST 'MEMBER S2))) - (COND - ((SUBTYPEP T1 T2) "T1 is subtype of T2") - ((SUBTYPEP T2 T1) "T2 is subtype of T1") - (T (CHECK-DISJOINTNESS T1 T2))))) -Expected value: NIL -Actual value: "T1 is subtype of T2". -Test SUBTYPEP.MEMBER.18 failed -Form: (LET ((S1 (COPY-SEQ '(A B C))) (S2 (COPY-SEQ '(A B C)))) - (LET ((T1 (LIST 'MEMBER S1)) (T2 (LIST 'MEMBER S2))) - (COND - ((SUBTYPEP T1 T2) "T1 is subtype of T2") - ((SUBTYPEP T2 T1) "T2 is subtype of T1") - (T (CHECK-DISJOINTNESS T1 T2))))) -Expected value: NIL -Actual value: "T1 is subtype of T2". - SUBTYPEP.MEMBER.19 SUBTYPEP.MEMBER.20 SUBTYPEP.MEMBER.21 - SUBTYPEP.MEMBER.22 SUBTYPEP.MEMBER.23 SUBTYPEP.MEMBER.24 - SUBTYPEP.MEMBER.25 SUBTYPEP.MEMBER.26 SUBTYPEP.MEMBER.27 - SUBTYPEP.MEMBER.28 SUBTYPEP.MEMBER.29 SUBTYPEP.MEMBER.30 - SUBTYPEP.MEMBER.31 SUBTYPEP.MEMBER.32 SUBTYPEP.MEMBER.33 - SUBTYPEP.MEMBER.34 SUBTYPEP.MEMBER.35 SUBTYPEP.MEMBER.36 - SUBTYPEP.MEMBER.37 SUBTYPEP.MEMBER.38 SUBTYPEP.MEMBER.39 - SUBTYPEP.MEMBER.40 SUBTYPEP.MEMBER.41 SUBTYPEP.MEMBER.42 - SUBTYPEP.MEMBER.43 SUBTYPEP.MEMBER.44 -Test SUBTYPEP.EQL.1 failed -Form: (LET ((S1 (COPY-SEQ "abc")) (S2 (COPY-SEQ "abc"))) - (LET ((T1 (LIST 'EQL S1)) (T2 (LIST 'EQL S2))) - (COND - ((SUBTYPEP T1 T2) "T1 is subtype of T2") - ((SUBTYPEP T2 T1) "T2 is subtype of T1") - (T (CHECK-DISJOINTNESS T1 T2))))) -Expected value: NIL -Actual value: "T1 is subtype of T2". -Test SUBTYPEP.EQL.2 failed -Form: (LET ((S1 (COPY-SEQ '(A B C))) (S2 (COPY-SEQ '(A B C)))) - (LET ((T1 (LIST 'EQL S1)) (T2 (LIST 'EQL S2))) - (COND - ((SUBTYPEP T1 T2) "T1 is subtype of T2") - ((SUBTYPEP T2 T1) "T2 is subtype of T1") - (T (CHECK-DISJOINTNESS T1 T2))))) -Expected value: NIL -Actual value: "T1 is subtype of T2". - SUBTYPEP.EQL.3 SUBTYPEP.EQL.4 SUBTYPEP.EQL.5 SUBTYPEP.EQL.6 - SUBTYPEP.EQL.7 SUBTYPEP.EQL.8 -Test SUBTYPEP.ARRAY.1 failed -Form: (LET ((ARRAY-TYPES - (CONS (FIND-CLASS 'ARRAY) - '(ARRAY (ARRAY) (ARRAY *) (ARRAY * *))))) - (LOOP - FOR - TP1 - IN - ARRAY-TYPES - APPEND - (LOOP - FOR - TP2 - IN - ARRAY-TYPES - UNLESS - (SUBTYPEP TP1 TP2) - COLLECT - (LIST TP1 TP2)))) -Expected value: NIL -Actual value: ((# ARRAY) - (# (ARRAY)) - (# (ARRAY *)) - (# (ARRAY * *)) - (ARRAY #) - ((ARRAY) - #) - ((ARRAY *) - #) - ((ARRAY * *) - #)). - SUBTYPEP.ARRAY.2 -Test SUBTYPEP.ARRAY.3 failed -Form: (LOOP - FOR - I - FROM - 0 - BELOW - (MIN 16 ARRAY-RANK-LIMIT) - FOR - TYPE - = - (LIST 'ARRAY '* I) - FOR - TYPE2 - = - (LIST 'ARRAY '* (MAKE-LIST I :INITIAL-ELEMENT '*)) - UNLESS - (AND (SUBTYPEP TYPE 'ARRAY) (SUBTYPEP TYPE '(ARRAY)) - (SUBTYPEP TYPE '(ARRAY *)) (SUBTYPEP TYPE '(ARRAY * *)) - (SUBTYPEP TYPE TYPE2)) - COLLECT - TYPE) -Expected value: NIL -Actual value: #. -Test SUBTYPEP.ARRAY.4 failed -Form: (LOOP - FOR - I - FROM - 0 - BELOW - (MIN 16 ARRAY-RANK-LIMIT) - FOR - TYPE - = - (LIST 'ARRAY T I) - FOR - TYPE2 - = - (LIST 'ARRAY T (MAKE-LIST I :INITIAL-ELEMENT '*)) - UNLESS - (AND (SUBTYPEP TYPE '(ARRAY T)) (SUBTYPEP TYPE '(ARRAY T *)) - (SUBTYPEP TYPE TYPE2)) - COLLECT - TYPE) -Expected value: NIL -Actual value: #. -Test SUBTYPEP.ARRAY.5 failed -Form: (LOOP - FOR - ELEMENT-TYPE - IN - (CONS '* *ARRAY-ELEMENT-TYPES*) - NCONC - (LOOP - FOR - I - FROM - 0 - BELOW - (MIN 16 ARRAY-RANK-LIMIT) - FOR - TYPE - = - (LIST 'ARRAY ELEMENT-TYPE I) - FOR - TYPE2 - = - (LIST 'ARRAY ELEMENT-TYPE (MAKE-LIST I :INITIAL-ELEMENT '0)) - FOR - TYPE3 - = - (LIST 'ARRAY ELEMENT-TYPE (MAKE-LIST I :INITIAL-ELEMENT '1)) - UNLESS - (AND (SUBTYPEP TYPE2 TYPE) (SUBTYPEP TYPE3 TYPE) - (LOOP - FOR - J - FROM - 0 - TO - I - ALWAYS - (AND (SUBTYPEP - (LIST 'ARRAY ELEMENT-TYPE - (APPEND (MAKE-LIST J :INITIAL-ELEMENT - '*) - (MAKE-LIST (- I J) - :INITIAL-ELEMENT 2))) - TYPE) - (SUBTYPEP - (LIST 'ARRAY ELEMENT-TYPE - (APPEND (MAKE-LIST J :INITIAL-ELEMENT - 2) - (MAKE-LIST (- I J) - :INITIAL-ELEMENT '*))) - TYPE)))) - COLLECT - TYPE)) -Expected value: NIL -Actual value: #. - SUBTYPEP.ARAY.6 SUBTYPEP.ARAY.7 READTABLE-VALID READTABLEP.1 - READ-SYMBOL.1 READ-SYMBOL.2 READ-SYMBOL.3 READ-SYMBOL.4 READ-SYMBOL.5 - READ-SYMBOL.6 READ-SYMBOL.7 READ-SYMBOL.9 READ-SYMBOL.10 CHAR.1 CHAR.2 + STRING-GREATERP.ORDER.3 READ-SYMBOL.9 READ-SYMBOL.10 CHAR.1 CHAR.2 CHAR.3 CHAR.4 CHAR.5 CHAR.6 CHAR.7 CHAR.8 CHAR.9 CHAR.10 CHAR.ORDER.1 CHAR.ORDER.2 SCHAR.1 SCHAR.2 SCHAR.3 SCHAR.4 SCHAR.5 SCHAR.6 SCHAR.7 SCHAR.ORDER.1 SCHAR.ORDER.2 STRING.1 STRING.2 STRING.3 STRING.4 @@ -30487,6 +30417,64 @@ PATHNAME-NAME.ERROR.2 PATHNAME-TYPE.1 PATHNAME-TYPE.2 PATHNAME-TYPE.3 PATHNAME-TYPE.4 PATHNAME-TYPE.5 PATHNAME-TYPE.6 PATHNAME-TYPE.7 PATHNAME-TYPE.8 PATHNAME-TYPE.ERROR.1 PATHNAME-TYPE.ERROR.2 + PATHNAME-VERSION.1 PATHNAME-VERSION.2 RANDOM-STRING-COMPARISON-TESTS MAKE-STRING.1 + MAKE-STRING.2 MAKE-STRING.3 MAKE-STRING.4 MAKE-STRING.5 MAKE-STRING.6 + MAKE-STRING.7 MAKE-STRING.8 MAKE-STRING.9 + MAKE-STRING.ALLOW-OTHER-KEYS.1 MAKE-STRING.ALLOW-OTHER-KEYS.2 + MAKE-STRING.ALLOW-OTHER-KEYS.3 MAKE-STRING.ALLOW-OTHER-KEYS.4 + MAKE-STRING.ALLOW-OTHER-KEYS.5 MAKE-STRING.ALLOW-OTHER-KEYS.6 + MAKE-STRING.KEYWORDS.7 MAKE-STRING.ERROR.1 MAKE-STRING.ERROR.2 + MAKE-STRING.ERROR.3 MAKE-STRING.ERROR.4 MAKE-STRING.ERROR.5 + MAKE-STRING.ERROR.6 MAKE-STRING.ORDER.1 MAKE-STRING.ORDER.2 + MAKE-STRING.ORDER.3 +Test PATHNAMES-PRINT-AND-READ-PROPERLY failed +Form: (WITH-STANDARD-IO-SYNTAX + (LOOP + FOR + P1 + IN + *PATHNAMES* + FOR + S + = + (HANDLER-CASE (WRITE-TO-STRING P1 :READABLY T) + (PRINT-NOT-READABLE NIL :UNREADABLE-ERROR)) + UNLESS + (EQL S :UNREADABLE-ERROR) + APPEND + (LET ((P2 (READ-FROM-STRING S))) + (UNLESS (EQUAL P1 P2) (LIST (LIST P1 S P2)))))) +Expected value: NIL +Actual value: ((#p"" "#p\"\"" #p"") (#p"" "#p\"\"" #p"")). + PATHNAME.1 PATHNAME.2 PATHNAME.3 PATHNAME.4 PATHNAME.5 PATHNAME.6 + PATHNAME.7 PATHNAME.8 PATHNAME.9 PATHNAME.10 PATHNAME.11 + PATHNAME.ERROR.1 PATHNAME.ERROR.2 PATHNAMEP.1 PATHNAMEP.2 PATHNAMEP.3 + PATHNAMEP.ERROR.1 PATHNAMEP.ERROR.2 PATHNAMEP.ERROR.3 MAKE-PATHNAME.1 + MAKE-PATHNAME.2 MAKE-PATHNAME.2A MAKE-PATHNAME.3 MAKE-PATHNAME.3A + MAKE-PATHNAME.4 MAKE-PATHNAME.5 MAKE-PATHNAME.6 MAKE-PATHNAME.7 + MAKE-PATHNAME.8 MAKE-PATHNAME.9 MAKE-PATHNAME.10 MAKE-PATHNAME.11 + MAKE-PATHNAME.12 MAKE-PATHNAME.13 MAKE-PATHNAME.14 + MAKE-PATHNAME.REBUILD MAKE-PATHNAME-ERROR-ABSOLUTE-UP + MAKE-PATHNAME-ERROR-ABSOLUTE-BACK + MAKE-PATHNAME-ERROR-ABSOLUTE-WILD-INFERIORS-UP + MAKE-PATHNAME-ERROR-RELATIVE-WILD-INFERIORS-UP + MAKE-PATHNAME-ERROR-ABSOLUTE-WILD-INFERIORS-BACK + MAKE-PATHNAME-ERROR-RELATIVE-WILD-INFERIORS-BACK PATHNAME-HOST.1 + PATHNAME-HOST.2 PATHNAME-HOST.3 PATHNAME-HOST.4 PATHNAME-HOST.5 + PATHNAME-HOST.6 PATHNAME-HOST.7 PATHNAME-HOST.8 PATHNAME-HOST.ERROR.1 + PATHNAME-HOST.ERROR.2 PATHNAME-HOST.ERROR.3 PATHNAME-DEVICE.1 + PATHNAME-DEVICE.2 PATHNAME-DEVICE.3 PATHNAME-DEVICE.4 + PATHNAME-DEVICE.5 PATHNAME-DEVICE.6 PATHNAME-DEVICE.7 + PATHNAME-DEVICE.8 PATHNAME-DEVICE.ERROR.1 PATHNAME-DEVICE.ERROR.2 + PATHNAME-DIRECTORY.1 PATHNAME-DIRECTORY.2 PATHNAME-DIRECTORY.3 + PATHNAME-DIRECTORY.4 PATHNAME-DIRECTORY.5 PATHNAME-DIRECTORY.6 + PATHNAME-DIRECTORY.7 PATHNAME-DIRECTORY.8 PATHNAME-DIRECTORY.ERROR.1 + PATHNAME-DIRECTORY.ERROR.2 PATHNAME-NAME.1 PATHNAME-NAME.2 + PATHNAME-NAME.3 PATHNAME-NAME.4 PATHNAME-NAME.5 PATHNAME-NAME.6 + PATHNAME-NAME.7 PATHNAME-NAME.8 PATHNAME-NAME.ERROR.1 + PATHNAME-NAME.ERROR.2 PATHNAME-TYPE.1 PATHNAME-TYPE.2 PATHNAME-TYPE.3 + PATHNAME-TYPE.4 PATHNAME-TYPE.5 PATHNAME-TYPE.6 PATHNAME-TYPE.7 + PATHNAME-TYPE.8 PATHNAME-TYPE.ERROR.1 PATHNAME-TYPE.ERROR.2 PATHNAME-VERSION.1 PATHNAME-VERSION.2 PATHNAME-VERSION.3 PATHNAME-VERSION.ERROR.1 PATHNAME-VERSION.ERROR.2 PATHNAME-VERSION.ERROR.3 LOAD-LOGICAL-PATHNAME-TRANSLATIONS.1 @@ -30552,7 +30540,54 @@ FILE-WRITE-DATE.3 FILE-WRITE-DATE.4 FILE-WRITE-DATE.5 FILE-WRITE-DATE.6 FILE-WRITE-DATE.ERROR.1 FILE-WRITE-DATE.ERROR.2 FILE-WRITE-DATE.ERROR.3 FILE-WRITE-DATE.ERROR.4 RENAME-FILE.1 - RENAME-FILE.2 RENAME-FILE.3 RENAME-FILE.4 + RENAME-FILE.2 RENAME-FILE.3 RENAME-FILE.4 PATHNAME-VERSION.3 + PATHNAME-VERSION.ERROR.1 PATHNAME-VERSION.ERROR.2 + PATHNAME-VERSION.ERROR.3 LOAD-LOGICAL-PATHNAME-TRANSLATIONS.1 + LOAD-LOGICAL-PATHNAME-TRANSLATIONS.ERROR.1 + LOAD-LOGICAL-PATHNAME-TRANSLATIONS.ERROR.2 + LOAD-LOGICAL-PATHNAME-TRANSLATIONS.ERROR.3 LOGICAL-PATHNAME.1 + LOGICAL-PATHNAME.2 LOGICAL-PATHNAME.3 LOGICAL-PATHNAME.ERROR.1 + LOGICAL-PATHNAME.ERROR.2 LOGICAL-PATHNAME.ERROR.3 + LOGICAL-PATHNAME.ERROR.4 LOGICAL-PATHNAME.ERROR.5 + LOGICAL-PATHNAME.ERROR.6 LOGICAL-PATHNAME.ERROR.7 + LOGICAL-PATHNAME.ERROR.8 LOGICAL-PATHNAME.ERROR.9 + LOGICAL-PATHNAME.ERROR.10 TRANSLATE-LOGICAL-PATHNAME.1 + TRANSLATE-LOGICAL-PATHNAME.2 TRANSLATE-LOGICAL-PATHNAME.3 + TRANSLATE-LOGICAL-PATHNAME.4 TRANSLATE-LOGICAL-PATHNAME.ERROR.1 + NAMESTRING.1 NAMESTRING.2 NAMESTRING.ERROR.1 NAMESTRING.ERROR.2 + FILE-NAMESTRING.1 FILE-NAMESTRING.2 FILE-NAMESTRING.3 + FILE-NAMESTRING.ERROR.1 FILE-NAMESTRING.ERROR.2 DIRECTORY-NAMESTRING.1 + DIRECTORY-NAMESTRING.2 DIRECTORY-NAMESTRING.3 + DIRECTORY-NAMESTRING.ERROR.1 DIRECTORY-NAMESTRING.ERROR.2 + HOST-NAMESTRING.1 HOST-NAMESTRING.2 HOST-NAMESTRING.3 + HOST-NAMESTRING.ERROR.1 HOST-NAMESTRING.ERROR.2 ENOUGH-NAMESTRING.1 + ENOUGH-NAMESTRING.2 ENOUGH-NAMESTRING.3 ENOUGH-NAMESTRING.4 + ENOUGH-NAMESTRING.5 ENOUGH-NAMESTRING.6 ENOUGH-NAMESTRING.7 + ENOUGH-NAMESTRING.ERROR.1 ENOUGH-NAMESTRING.ERROR.2 WILD-PATHNAME-P.1 + WILD-PATHNAME-P.2 WILD-PATHNAME-P.3 WILD-PATHNAME-P.4 + WILD-PATHNAME-P.5 WILD-PATHNAME-P.6 WILD-PATHNAME-P.7 + WILD-PATHNAME-P.8 WILD-PATHNAME-P.9 WILD-PATHNAME-P.10 + WILD-PATHNAME-P.11 WILD-PATHNAME-P.12 WILD-PATHNAME-P.13 + WILD-PATHNAME-P.14 WILD-PATHNAME-P.15 WILD-PATHNAME-P.16 + WILD-PATHNAME-P.17 WILD-PATHNAME-P.18 WILD-PATHNAME-P.19 + WILD-PATHNAME-P.20 WILD-PATHNAME-P.21 WILD-PATHNAME-P.22 + WILD-PATHNAME-P.23 WILD-PATHNAME-P.24 WILD-PATHNAME-P.25 + WILD-PATHNAME-P.26 WILD-PATHNAME-P.27 WILD-PATHNAME-P.28 + WILD-PATHNAME-P.29 WILD-PATHNAME-P.30 WILD-PATHNAME-P.31 + WILD-PATHNAME-P.32 WILD-PATHNAME-P.ERROR.1 WILD-PATHNAME-P.ERROR.2 + WILD-PATHNAME-P.ERROR.3 WILD-PATHNAME-P.ERROR.4 MERGE-PATHNAMES.1 + MERGE-PATHNAMES.2 MERGE-PATHNAMES.3 MERGE-PATHNAMES.4 + MERGE-PATHNAMES.5 MERGE-PATHNAMES.6 MERGE-PATHNAMES.7 + PATHNAME-MATCH-P.1 PATHNAME-MATCH-P.2 PATHNAME-MATCH-P.3 + PATHNAME-MATCH-P.4 PATHNAME-MATCH-P.5 PATHNAME-MATCH-P.6 + PATHNAME-MATCH-P.7 PATHNAME-MATCH-P.8 PATHNAME-MATCH-P.ERROR.1 + PATHNAME-MATCH-P.ERROR.2 PATHNAME-MATCH-P.ERROR.3 + PATHNAME-MATCH-P.ERROR.4 PATHNAME-MATCH-P.ERROR.5 + PATHNAME-MATCH-P.ERROR.6 PATHNAME-MATCH-P.ERROR.7 PARSE-NAMESTRING.1 + PARSE-NAMESTRING.2 PARSE-NAMESTRING.3 PARSE-NAMESTRING.4 + PARSE-NAMESTRING.ERROR.1 PARSE-NAME-STRING.ERROR.2 + PARSE-NAME-STRING.ERROR.3 DIRECTORY.1 DIRECTORY.2 DIRECTORY.3 + DIRECTORY.4 DIRECTORY.5 DIRECTORY.6 DIRECTORY.7 DIRECTORY.8 DIRECTORY.9 DIRECTORY.ERROR.1 PROBE-FILE.1 PROBE-FILE.2 PROBE-FILE.3 PROBE-FILE.4 PROBE-FILE.5 PROBE-FILE.ERROR.1 PROBE-FILE.ERROR.2 PROBE-FILE.ERROR.3 PROBE-FILE.ERROR.4 ENSURE-DIRECTORIES-EXIST.1 @@ -30570,7 +30605,7 @@ FILE-WRITE-DATE.3 FILE-WRITE-DATE.4 FILE-WRITE-DATE.5 FILE-WRITE-DATE.6 FILE-WRITE-DATE.ERROR.1 FILE-WRITE-DATE.ERROR.2 FILE-WRITE-DATE.ERROR.3 FILE-WRITE-DATE.ERROR.4 RENAME-FILE.1 - RENAME-FILE.2 RENAME-FILE.3 RENAME-FILE.4 RENAME-FILE.5 RENAME-FILE.6 + RENAME-FILE.2 RENAME-FILE.3 RENAME-FILE.4 RENAME-FILE.5 RENAME-FILE.6 RENAME-FILE.5 RENAME-FILE.6 RENAME-FILE.7 RENAME-FILE.ERROR.1 DELETE-FILE.1 DELETE-FILE.2 DELETE-FILE.3 DELETE-FILE.4 DELETE-FILE.5 DELETE-FILE.ERROR.1 DELETE-FILE.ERROR.2 FILE-ERROR.1 FILE-ERROR-PATHNAME.1 @@ -30586,7 +30621,6 @@ INTERACTIVE-STREAM-P.ERROR.3 OPEN-STREAM-P.1 OPEN-STREAM-P.2 OPEN-STREAM-P.3 OPEN-STREAM-P.4 OPEN-STREAM-P.5 OPEN-STREAM-P.ERROR.1 OPEN-STREAM-P.ERROR.2 OPEN-STREAM-P.ERROR.3 STREAM-ELEMENT-TYPE.1 - STREAM-ELEMENT-TYPE.2 RENAME-FILE.5 RENAME-FILE.6 RENAME-FILE.7 RENAME-FILE.ERROR.1 DELETE-FILE.1 DELETE-FILE.2 DELETE-FILE.3 DELETE-FILE.4 DELETE-FILE.5 DELETE-FILE.ERROR.1 DELETE-FILE.ERROR.2 FILE-ERROR.1 FILE-ERROR-PATHNAME.1 @@ -30602,7 +30636,8 @@ INTERACTIVE-STREAM-P.ERROR.3 OPEN-STREAM-P.1 OPEN-STREAM-P.2 OPEN-STREAM-P.3 OPEN-STREAM-P.4 OPEN-STREAM-P.5 OPEN-STREAM-P.ERROR.1 OPEN-STREAM-P.ERROR.2 OPEN-STREAM-P.ERROR.3 STREAM-ELEMENT-TYPE.1 - STREAM-ELEMENT-TYPE.2 STREAM-ELEMENT-TYPE.3 STREAM-ELEMENT-TYPE.4 + STREAM-ELEMENT-TYPE.2 + STREAM-ELEMENT-TYPE.2 STREAM-ELEMENT-TYPE.3 STREAM-ELEMENT-TYPE.3 STREAM-ELEMENT-TYPE.4 STREAM-ELEMENT-TYPE.5 STREAM-ELEMENT-TYPE.6 STREAM-ELEMENT-TYPE.ERROR.1 STREAM-ELEMENT-TYPE.ERROR.2 STREAM-ELEMENT-TYPE.ERROR.3 STREAMP.1 STREAMP.2 STREAMP.3 STREAMP.4 @@ -30748,96 +30783,7 @@ FILE-LENGTH.ERROR.10 FILE-LENGTH.ERROR.11 FILE-LENGTH.ERROR.12 FILE-LENGTH.1 FILE-LENGTH.2 FILE-LENGTH.3 FILE-LENGTH.4 FILE-LENGTH.5 FILE-LENGTH.6 FILE-POSITION.1 FILE-POSITION.2 FILE-POSITION.3 - FILE-POSITION.4 FILE-POSITION.5 FILE-POSITION.6 FILE-POSITION.7 - FILE-POSITION.8 FILE-POSITION.9 FILE-POSITION.10 FILE-POSITION.ERROR.1 - FILE-POSITION.ERROR.2 FILE-STRING-LENGTH.1 FILE-STRING-LENGTH.2 - FILE-STRING-LENGTH.3 FILE-STRING-LENGTH.ERROR.1 - FILE-STRING-LENGTH.ERROR.2 FILE-STRING-LENGTH.ERROR.3 OPEN.1 OPEN.2 - OPEN.3 OPEN.4 OPEN.5 OPEN.6 OPEN.7 OPEN.8 OPEN.9 OPEN.10 OPEN.11 - OPEN.12 OPEN.13 OPEN.14 OPEN.15 OPEN.16 OPEN.17 OPEN.18 OPEN.19 - OPEN.20 OPEN.21 OPEN.22 OPEN.23 OPEN.24 OPEN.25 OPEN.26 OPEN.27 - OPEN.28 OPEN.29 OPEN.30 OPEN.31 OPEN.32 OPEN.33 OPEN.34 OPEN.35 - OPEN.36 OPEN.37 OPEN.38 OPEN.39 OPEN.40 OPEN.41 OPEN.42 OPEN.43 - OPEN.44 OPEN.45 OPEN.46 OPEN.47 OPEN.48 OPEN.49 OPEN.50 OPEN.51 - OPEN.52 OPEN.53 OPEN.54 OPEN.55 OPEN.56 OPEN.57 OPEN.58 OPEN.59 - OPEN.60 OPEN.61 OPEN.62 OPEN.63 OPEN.64 OPEN.65 OPEN.66 OPEN.67 - OPEN.OUTPUT.1 OPEN.OUTPUT.2 OPEN.OUTPUT.3 OPEN.OUTPUT.4 OPEN.OUTPUT.5 - OPEN.OUTPUT.6 OPEN.OUTPUT.7 OPEN.OUTPUT.8 OPEN.OUTPUT.9 OPEN.OUTPUT.10 - OPEN.OUTPUT.11 OPEN.OUTPUT.12 OPEN.OUTPUT.13 OPEN.OUTPUT.14 - OPEN.OUTPUT.15 OPEN.OUTPUT.16 OPEN.OUTPUT.17 OPEN.OUTPUT.18 - OPEN.OUTPUT.19 OPEN.OUTPUT.20 OPEN.OUTPUT.21 -Test OPEN.OUTPUT.22 failed -Form: (LET ((PN #p"tmp.dat")) - (DELETE-ALL-VERSIONS PN) - (WITH-OPEN-FILE - (OS PN :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) - (ASSERT (OPEN-STREAM-P OS)) - (DOTIMES (I 10) - (WRITE-CHAR - (FUNCALL (THE FUNCTION - (GENERATOR-FOR-ELEMENT-TYPE 'CHARACTER)) - I) - OS)) - (FINISH-OUTPUT OS)) - (LET ((S (OPEN PN :IF-EXISTS :RENAME :DIRECTION :OUTPUT))) - (UNWIND-PROTECT - (PROGN - (ASSERT (OPEN-STREAM-P S)) - (ASSERT (TYPEP S 'FILE-STREAM)) - (ASSERT (SUBTYPEP 'CHARACTER (STREAM-ELEMENT-TYPE S))) - (PROGN - (WRITE-SEQUENCE "wxyz" S) - (CLOSE S) - (WITH-OPEN-FILE (S PN :DIRECTION :INPUT) - (VALUES (READ-LINE S NIL))))) - (CLOSE S)))) -Expected value: "wxyz" -Actual value: #. - OPEN.OUTPUT.23 OPEN.OUTPUT.24 OPEN.OUTPUT.25 OPEN.OUTPUT.26 - OPEN.OUTPUT.27 OPEN.OUTPUT.28 OPEN.OUTPUT.28A OPEN.OUTPUT.29 - OPEN.OUTPUT.30 OPEN.OUTPUT.31 OPEN.OUTPUT.32 OPEN.OUTPUT.33 - OPEN.OUTPUT.34 OPEN.OUTPUT.35 OPEN.IO.1 OPEN.IO.2 OPEN.IO.3 OPEN.IO.4 - OPEN.IO.5 OPEN.IO.6 OPEN.IO.7 OPEN.IO.8 OPEN.IO.9 OPEN.IO.10 - OPEN.IO.11 OPEN.IO.12 OPEN.IO.13 OPEN.IO.14 OPEN.IO.15 OPEN.IO.16 - OPEN.IO.17 OPEN.IO.18 OPEN.IO.19 OPEN.IO.20 OPEN.IO.21 -Test OPEN.IO.22 failed -Form: (LET ((PN #p"tmp.dat")) - (DELETE-ALL-VERSIONS PN) - (WITH-OPEN-FILE - (OS PN :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) - (ASSERT (OPEN-STREAM-P OS)) - (DOTIMES (I 10) - (WRITE-CHAR - (FUNCALL (THE FUNCTION - (GENERATOR-FOR-ELEMENT-TYPE 'CHARACTER)) - I) - OS)) - (FINISH-OUTPUT OS)) - (LET ((S (OPEN PN :IF-EXISTS :RENAME :DIRECTION :IO))) - (UNWIND-PROTECT - (PROGN - (ASSERT (OPEN-STREAM-P S)) - (ASSERT (TYPEP S 'FILE-STREAM)) - (ASSERT (SUBTYPEP 'CHARACTER (STREAM-ELEMENT-TYPE S))) - (PROGN - (WRITE-SEQUENCE "wxyz" S) - (FILE-POSITION S :START) - (VALUES (READ-LINE S NIL)))) - (CLOSE S)))) -Expected value: "wxyz" -Actual value: #. - OPEN.IO.23 OPEN.IO.24 OPEN.IO.25 OPEN.IO.26 OPEN.IO.27 OPEN.IO.28 - OPEN.IO.28A OPEN.IO.29 OPEN.IO.30 OPEN.IO.31 OPEN.IO.32 OPEN.IO.33 - OPEN.IO.34 OPEN.IO.35 OPEN.PROBE.1 OPEN.PROBE.2 OPEN.PROBE.3 - OPEN.PROBE.4 OPEN.PROBE.5 OPEN.PROBE.6 OPEN.PROBE.7 OPEN.PROBE.8 - OPEN.PROBE.9 OPEN.PROBE.10 OPEN.PROBE.11 OPEN.PROBE.12 OPEN.PROBE.13 - OPEN.PROBE.14 OPEN.PROBE.15 OPEN.PROBE.16 OPEN.PROBE.17 OPEN.PROBE.18 - OPEN.PROBE.19 OPEN.PROBE.20 OPEN.PROBE.21 OPEN.PROBE.22 OPEN.PROBE.23 - OPEN.PROBE.24 OPEN.PROBE.25 OPEN.PROBE.26 OPEN.PROBE.27 OPEN.PROBE.28 - OPEN.PROBE.29 OPEN.PROBE.30 OPEN.PROBE.31 OPEN.PROBE.32 OPEN.PROBE.33 - OPEN.PROBE.34 OPEN.PROBE.35 OPEN.PROBE.36 OPEN.ERROR.1 OPEN.ERROR.2 - OPEN.ERROR.3 OPEN.ERROR.4 OPEN.ERROR.5 OPEN.ERROR.6 OPEN.ERROR.7 - OPEN.ERROR.8 OPEN.ERROR.9 OPEN.ERROR.10 STREAM-ELEMENT-TYPE.3 STREAM-ELEMENT-TYPE.4 + FILE-POSITION.4 FILE-POSITION.5 FILE-POSITION.6 FILE-POSITION.7 STREAM-ELEMENT-TYPE.4 STREAM-ELEMENT-TYPE.5 STREAM-ELEMENT-TYPE.6 STREAM-ELEMENT-TYPE.ERROR.1 STREAM-ELEMENT-TYPE.ERROR.2 STREAM-ELEMENT-TYPE.ERROR.3 STREAMP.1 STREAMP.2 STREAMP.3 STREAMP.4 @@ -31063,6 +31009,86 @@ Actual value: #. OPEN.IO.23 OPEN.IO.24 OPEN.IO.25 OPEN.IO.26 OPEN.IO.27 OPEN.IO.28 OPEN.IO.28A OPEN.IO.29 OPEN.IO.30 OPEN.IO.31 OPEN.IO.32 OPEN.IO.33 + OPEN.IO.34 + FILE-POSITION.8 FILE-POSITION.9 FILE-POSITION.10 FILE-POSITION.ERROR.1 + FILE-POSITION.ERROR.2 FILE-STRING-LENGTH.1 FILE-STRING-LENGTH.2 + FILE-STRING-LENGTH.3 FILE-STRING-LENGTH.ERROR.1 + FILE-STRING-LENGTH.ERROR.2 FILE-STRING-LENGTH.ERROR.3 OPEN.1 OPEN.2 + OPEN.3 OPEN.4 OPEN.5 OPEN.6 OPEN.7 OPEN.8 OPEN.9 OPEN.10 OPEN.11 + OPEN.12 OPEN.13 OPEN.14 OPEN.15 OPEN.16 OPEN.17 OPEN.18 OPEN.19 + OPEN.20 OPEN.21 OPEN.22 OPEN.23 OPEN.24 OPEN.25 OPEN.26 OPEN.27 + OPEN.28 OPEN.29 OPEN.30 OPEN.31 OPEN.32 OPEN.33 OPEN.34 OPEN.35 + OPEN.36 OPEN.37 OPEN.38 OPEN.39 OPEN.40 OPEN.41 OPEN.42 OPEN.43 + OPEN.44 OPEN.45 OPEN.46 OPEN.47 OPEN.48 OPEN.49 OPEN.50 OPEN.51 + OPEN.52 OPEN.53 OPEN.54 OPEN.55 OPEN.56 OPEN.57 OPEN.58 OPEN.59 + OPEN.60 OPEN.61 OPEN.62 OPEN.63 OPEN.64 OPEN.65 OPEN.66 OPEN.67 + OPEN.OUTPUT.1 OPEN.OUTPUT.2 OPEN.OUTPUT.3 OPEN.OUTPUT.4 OPEN.OUTPUT.5 + OPEN.OUTPUT.6 OPEN.OUTPUT.7 OPEN.OUTPUT.8 OPEN.OUTPUT.9 OPEN.OUTPUT.10 + OPEN.OUTPUT.11 OPEN.OUTPUT.12 OPEN.OUTPUT.13 OPEN.OUTPUT.14 + OPEN.OUTPUT.15 OPEN.OUTPUT.16 OPEN.OUTPUT.17 OPEN.OUTPUT.18 + OPEN.OUTPUT.19 OPEN.OUTPUT.20 OPEN.OUTPUT.21 +Test OPEN.OUTPUT.22 failed +Form: (LET ((PN #p"tmp.dat")) + (DELETE-ALL-VERSIONS PN) + (WITH-OPEN-FILE + (OS PN :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) + (ASSERT (OPEN-STREAM-P OS)) + (DOTIMES (I 10) + (WRITE-CHAR + (FUNCALL (THE FUNCTION + (GENERATOR-FOR-ELEMENT-TYPE 'CHARACTER)) + I) + OS)) + (FINISH-OUTPUT OS)) + (LET ((S (OPEN PN :IF-EXISTS :RENAME :DIRECTION :OUTPUT))) + (UNWIND-PROTECT + (PROGN + (ASSERT (OPEN-STREAM-P S)) + (ASSERT (TYPEP S 'FILE-STREAM)) + (ASSERT (SUBTYPEP 'CHARACTER (STREAM-ELEMENT-TYPE S))) + (PROGN + (WRITE-SEQUENCE "wxyz" S) + (CLOSE S) + (WITH-OPEN-FILE (S PN :DIRECTION :INPUT) + (VALUES (READ-LINE S NIL))))) + (CLOSE S)))) +Expected value: "wxyz" +Actual value: #. + OPEN.OUTPUT.23 OPEN.OUTPUT.24 OPEN.OUTPUT.25 OPEN.OUTPUT.26 + OPEN.OUTPUT.27 OPEN.OUTPUT.28 OPEN.OUTPUT.28A OPEN.OUTPUT.29 + OPEN.OUTPUT.30 OPEN.OUTPUT.31 OPEN.OUTPUT.32 OPEN.OUTPUT.33 + OPEN.OUTPUT.34 OPEN.OUTPUT.35 OPEN.IO.1 OPEN.IO.2 OPEN.IO.3 OPEN.IO.4 + OPEN.IO.5 OPEN.IO.6 OPEN.IO.7 OPEN.IO.8 OPEN.IO.9 OPEN.IO.10 + OPEN.IO.11 OPEN.IO.12 OPEN.IO.13 OPEN.IO.14 OPEN.IO.15 OPEN.IO.16 + OPEN.IO.17 OPEN.IO.18 OPEN.IO.19 OPEN.IO.20 OPEN.IO.21 +Test OPEN.IO.22 failed +Form: (LET ((PN #p"tmp.dat")) + (DELETE-ALL-VERSIONS PN) + (WITH-OPEN-FILE + (OS PN :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) + (ASSERT (OPEN-STREAM-P OS)) + (DOTIMES (I 10) + (WRITE-CHAR + (FUNCALL (THE FUNCTION + (GENERATOR-FOR-ELEMENT-TYPE 'CHARACTER)) + I) + OS)) + (FINISH-OUTPUT OS)) + (LET ((S (OPEN PN :IF-EXISTS :RENAME :DIRECTION :IO))) + (UNWIND-PROTECT + (PROGN + (ASSERT (OPEN-STREAM-P S)) + (ASSERT (TYPEP S 'FILE-STREAM)) + (ASSERT (SUBTYPEP 'CHARACTER (STREAM-ELEMENT-TYPE S))) + (PROGN + (WRITE-SEQUENCE "wxyz" S) + (FILE-POSITION S :START) + (VALUES (READ-LINE S NIL)))) + (CLOSE S)))) +Expected value: "wxyz" +Actual value: #. + OPEN.IO.23 OPEN.IO.24 OPEN.IO.25 OPEN.IO.26 OPEN.IO.27 OPEN.IO.28 + OPEN.IO.28A OPEN.IO.29 OPEN.IO.30 OPEN.IO.31 OPEN.IO.32 OPEN.IO.33 OPEN.IO.34 OPEN.IO.35 OPEN.PROBE.1 OPEN.PROBE.2 OPEN.PROBE.3 OPEN.PROBE.4 OPEN.PROBE.5 OPEN.PROBE.6 OPEN.PROBE.7 OPEN.PROBE.8 OPEN.PROBE.9 OPEN.PROBE.10 OPEN.PROBE.11 OPEN.PROBE.12 OPEN.PROBE.13 @@ -31321,134 +31347,16 @@ CHAR-INT.ERROR.2 CHAR-NAME.1 CHAR-NAME.2 CHAR-NAME.3 CHAR-NAME.4 CHAR-NAME.5 CHAR-NAME.ORDER.1 CHAR-NAME.ERROR.1 CHAR-NAME.ERROR.2 NAME-CHAR.1 NAME-CHAR.2 NAME-CHAR.ORDER.1 NAME-CHAR.ERROR.1 - NAME-CHAR.ERROR.2 CHAR-COMPARE-NO-ARGS CHAR=.1 CHAR=.2 CHAR=.3 CHAR=.4 - CHAR=.ORDER.1 CHAR=.ORDER.2 CHAR=.ORDER.3 CHAR/=.1 CHAR/=.2 CHAR/=.3 - CHAR/=.4 CHAR/=.ORDER.1 CHAR/=.ORDER.2 CHAR/=.ORDER.3 CHAR<=.1 - CHAR<=.2 CHAR<=.3 CHAR<=.4 CHAR<=.5 CHAR<=.6 CHAR<=.7 CHAR<=.8 - CHAR<=.ORDER.1 CHAR<=.ORDER.2 CHAR<=.ORDER.3 CHAR<.1 CHAR<.2 CHAR<.3 - CHAR<.4 CHAR<.5 CHAR<.6 CHAR<.7 CHAR<.8 CHAR<.ORDER.1 CHAR<.ORDER.2 - CHAR<.ORDER.3 CHAR<.ORDER.4 CHAR>=.1 CHAR>=.2 CHAR>=.3 CHAR>=.4 - CHAR>=.5 CHAR>=.6 CHAR>=.7 CHAR>=.8 CHAR>=.ORDER.1 CHAR>=.ORDER.2 - CHAR>=.ORDER.3 CHAR>=.ORDER.4 CHAR>.1 CHAR>.2 CHAR>.3 CHAR>.4 CHAR>.5 - CHAR>.6 CHAR>.7 CHAR>.8 CHAR>.ORDER.1 CHAR>.ORDER.2 CHAR>.ORDER.3 - CHAR>.ORDER.4 CHAR-EQUAL.1 CHAR-EQUAL.2 CHAR-EQUAL.3 CHAR-EQUAL.4 - CHAR-EQUAL.ORDER.1 CHAR-EQUAL.ORDER.2 CHAR-EQUAL.ORDER.3 - CHAR-EQUAL.ORDER.4 CHAR-NOT-EQUAL.1 CHAR-NOT-EQUAL.2 CHAR-NOT-EQUAL.3 - CHAR-NOT-EQUAL.4 CHAR-NOT-EQUAL.ORDER.1 CHAR-NOT-EQUAL.ORDER.2 - CHAR-NOT-EQUAL.ORDER.3 CHAR-NOT-EQUAL.ORDER.4 CHAR-NOT-GREATERP.1 - CHAR-NOT-GREATERP.2 CHAR-NOT-GREATERP.3 CHAR-NOT-GREATERP.4 - CHAR-NOT-GREATERP.5 CHAR-NOT-GREATERP.6 CHAR-NOT-GREATERP.7 - CHAR-NOT-GREATERP.8 CHAR-NOT-GREATERP.ORDER.1 - CHAR-NOT-GREATERP.ORDER.2 CHAR-NOT-GREATERP.ORDER.3 - CHAR-NOT-GREATERP.ORDER.4 CHAR-LESSP.1 CHAR-LESSP.2 CHAR-LESSP.3 - CHAR-LESSP.4 CHAR-LESSP.5 CHAR-LESSP.6 CHAR-LESSP.7 CHAR-LESSP.8 - CHAR-LESSP.ORDER.1 CHAR-LESSP.ORDER.2 CHAR-LESSP.ORDER.3 - CHAR-LESSP.ORDER.4 CHAR-NOT-LESSP.1 CHAR-NOT-LESSP.2 CHAR-NOT-LESSP.3 - CHAR-NOT-LESSP.4 CHAR-NOT-LESSP.5 CHAR-NOT-LESSP.6 CHAR-NOT-LESSP.7 - CHAR-NOT-LESSP.8 CHAR-NOT-LESSP.ORDER.1 CHAR-NOT-LESSP.ORDER.2 - CHAR-NOT-LESSP.ORDER.3 CHAR-NOT-LESSP.ORDER.4 CHAR-GREATERP.1 - CHAR-GREATERP.2 CHAR-GREATERP.3 CHAR-GREATERP.4 CHAR-GREATERP.5 - CHAR-GREATERP.6 CHAR-GREATERP.7 CHAR-GREATERP.8 CHAR-GREATERP.ORDER.1 - CHAR-GREATERP.ORDER.2 CHAR-GREATERP.ORDER.3 CHAR-GREATERP.ORDER.4 - FEATURES.1 FEATURES.2 FEATURES.3 -284 out of 11799 total tests failed: SYMBOL-SLOT-BOUNDP, SYMBOL-SLOT-VALUE, SPECIAL-OPERATOR-P.1, - SPECIAL-OPERATOR-P.2, CL-FUNCTION-SYMBOLS.1, CL-MACRO-SYMBOLS.1, - CL-VARIABLE-SYMBOLS.1, CL-TYPES-THAT-ARE-CLASSES.1, - CL-TYPES-THAT-ARE-CLASSES.2, CL-TYPES-THAT-ARE-CLASSES.3, - EVAL-AND-COMPILE-MACROS, COMPILE.ERROR.1, COMPILE.ERROR.2, - CONSTANTP.6, CONSTANTP.8, CONSTANTP.ORDER.2, DCF-FUNS, DCF-MACROS, - SETF-VALUES.5, PSETQ.7, PSETF.7, THROW-ERROR, FBOUNDP.6, FBOUNDP.7, - FDEFINITION.ERROR.1, FDEFINITION.ERROR.2, FDEFINITION.ERROR.4, - FDEFINITION.ERROR.6, FDEFINITION.1, FDEFINITION.2, FDEFINITION.3, - FDEFINITION.4, FDEFINITION.5, FDEFINITION.ORDER.1, FLET.17, FLET.51, - FMAKUNBOUND.4, FUNCALL.ERROR.3, FUNCTION-LAMBDA-EXPRESSION.1, - FUNCTION-LAMBDA-EXPRESSION.2, FUNCTION-LAMBDA-EXPRESSION.ORDER.1, - FUNCTION-LAMBDA-EXPRESSION.ERROR.1, - FUNCTION-LAMBDA-EXPRESSION.ERROR.2, FUNCTION.2, FUNCTION.6, - FUNCTION.7, FUNCTION.10, FUNCTIONP.2, FUNCTIONP.6, FUNCTIONP.7, - FUNCTIONP.10, LABELS.17, LABELS.26, MACROLET.5, MACROLET.13, - MACROLET.14, MULTIPLE-VALUE-SETQ.5, MULTIPLE-VALUE-SETQ.8, - LOOP.6.19, LOOP.6.20, LOOP.6.37, LOOP.6.38, LOOP.7.15, LOOP.7.16, - LOOP.7.17, LOOP.7.18, LOOP.7.19, LOOP.7.20, LOOP.7.21, LOOP.7.22, - LOOP.7.23, LOOP.8.19, LOOP.8.20, LOOP.8.21, LOOP.8.22, - LOOP.8.ERROR.2, LOOP.9.10, LOOP.9.11, LOOP.9.27, LOOP.9.28, - LOOP.9.37, LOOP.9.38, LOOP.10.9, LOOP.10.10, LOOP.10.37, LOOP.10.38, - LOOP.10.57, LOOP.10.58, LOOP.10.85, LOOP.10.86, LOOP.11.9, - LOOP.14.29, CONDITION.2, ERROR.5, CERROR.5, HANDLER-BIND.9, - SUBTYPEP-CONS-NULL, GET-PROPERTIES.8, SETF-GETF.ORDER.2, - ARRAY-AS-CLASS.7, ARRAY-AS-CLASS.8, MAKE-ARRAY.28, - MAKE-ARRAY.DISPLACED.9, MAKE-ARRAY.DISPLACED.10, - ARRAY-DISPLACEMENT.11, UPGRADED-ARRAY-ELEMENT-TYPE.2, - UPGRADED-ARRAY-ELEMENT-TYPE.NIL.1, HASH-TABLE.1, HASH-TABLE.3, - HASH-TABLE.5, DELETE-PACKAGE.5, DELETE-PACKAGE.6, - MAKE-PACKAGE.ERROR.11, IN-PACKAGE.2, IN-PACKAGE.5, PACKAGE-ERROR.3, - MAKE-SEQUENCE.ERROR.2, REDUCE.ERROR.2, REDUCE.ERROR.5, SORT.ERROR.1, - SORT.ERROR.2, SORT.ERROR.5, SUBSEQ.ORDER.3, SUBSEQ.ORDER.4, - CONCATENATE.ERROR.1, CONCATENATE.ERROR.2, MERGE.ERROR.6, - STRUCT-TEST-03/16, STRUCT-TEST-04/16, STRUCT-TEST-05/16, - STRUCT-TEST-06/16, STRUCT-TEST-07/16, STRUCT-TEST-08/16, - STRUCT-TEST-09/16, STRUCT-TEST-10/16, STRUCT-TEST-11/16, - STRUCT-TEST-12/16, STRUCT-TEST-13/16, STRUCT-TEST-14/16, - STRUCT-TEST-15/16, STRUCT-TEST-16/16, STRUCT-TEST-17/16, - STRUCT-TEST-18/16, STRUCT-TEST-19/16, STRUCT-TEST-20/16, - STRUCT-TEST-21/16, STRUCT-TEST-22/16, STRUCT-TEST-23/16, - STRUCT-TEST-24/16, STRUCT-TEST-25/16, STRUCT-TEST-26/16, - STRUCT-TEST-27/12, STRUCT-TEST-27/16, STRUCT-TEST-28/12, - STRUCT-TEST-28/16, STRUCT-TEST-29/12, STRUCT-TEST-29/16, - STRUCT-TEST-30/16, STRUCT-TEST-31/13, STRUCT-TEST-31/14, - STRUCT-TEST-31/16, STRUCT-TEST-31/17, STRUCT-TEST-31/15A, - STRUCT-TEST-32/16, STRUCT-TEST-33/16, STRUCT-TEST-34/16, - STRUCT-TEST-35/16, STRUCT-TEST-36/16, STRUCT-TEST-41/3, - STRUCT-TEST-43/3, STRUCT-TEST-49/1, STRUCT-TEST-50/1, - STRUCT-TEST-51/1, STRUCT-TEST-57/16, STRUCT-TEST-58/16, - STRUCT-TEST-59/16, STRUCT-TEST-60/16, STRUCTURE-60-1, - STRUCT-TEST-63/13, STRUCT-TEST-63/14, STRUCT-TEST-63/16, - STRUCT-TEST-63/17, STRUCT-TEST-63/15A, STRUCT-TEST-64/1, - STRUCT-TEST-64/2, STRUCT-TEST-64/5, STRUCT-TEST-64/6, - STRUCT-TEST-64/7, STRUCT-TEST-64/9, STRUCT-TEST-64/13, - STRUCT-TEST-64/14, STRUCT-TEST-64/15, STRUCT-TEST-64/16, - STRUCT-TEST-64/17, STRUCT-TEST-64/15A, STRUCT-TEST-64/20, - STRUCTURE-BOA-TEST-08/1, STRUCTURE-BOA-TEST-09/1, - STRUCTURE-BOA-TEST-09/2, STRUCTURE-BOA-TEST-09/3, - STRUCTURE-BOA-TEST-09/4, STRUCTURE-BOA-TEST-09/5, - STRUCTURE-BOA-TEST-09/6, STRUCTURE-BOA-TEST-09/7, - STRUCTURE-BOA-TEST-13/1, STRUCTURE-BOA-TEST-13/2, - STRUCTURE-BOA-TEST-13/3, STRUCTURE-BOA-TEST-13/4, - STRUCTURE-BOA-TEST-13/5, STRUCTURE-BOA-TEST-13/6, - STRUCTURE-BOA-TEST-13/7, STRUCTURE-BOA-TEST-13/8, - STRUCTURE-BOA-TEST-14/1, STRUCTURE-BOA-TEST-14/2, - STRUCTURE-BOA-TEST-14/3, STRUCTURE-BOA-TEST-14/4, - STRUCTURE-BOA-TEST-14/5, STRUCTURE-BOA-TEST-15/1, - STRUCTURE-BOA-TEST-15/2, STRUCTURE-BOA-TEST-15/3, - STRUCTURE-BOA-TEST-15/4, STRUCTURE-BOA-TEST-15/5, - STRUCTURE-BOA-TEST-15/6, STRUCTURE-BOA-TEST-15/7, - STRUCTURE-BOA-TEST-15/8, TYPES.3, TYPES.6, TYPES.8, TYPES.9A, - ALL-CLASSES-ARE-TYPE-EQUIVALENT-TO-THEIR-NAMES, - ALL-STANDARD-CLASSES-ARE-SUBTYPES-OF-STANDARD-OBJECT, - ALL-STANDARD-GENERIC-FUNCTIONS-ARE-INSTANCES-OF-THAT-CLASS, TAC-3.1, - TAC-3.2, TAC-3.3, TAC-3.4, TAC-3.5, TAC-3.6, TAC-3.7, TAC-3.8, - TAC-3.9, TAC-3.10, TAC-3.11, TAC-3.12, TAC-3.13, TAC-3.14, TAC-3.15, - UNIVERSE-ELEMENTS-IN-AT-MOST-ONE-DISJOINT-TYPE, - SUBTYPEP.BIGNUM.INTEGER, SUBTYPEP.INTEGER.23, SUBTYPEP.INTEGER.24, - SUBTYPEP.CONS.2, SUBTYPEP.CONS.12, SUBTYPEP.MEMBER.17, - SUBTYPEP.MEMBER.18, SUBTYPEP.EQL.1, SUBTYPEP.EQL.2, - SUBTYPEP.ARRAY.1, SUBTYPEP.ARRAY.3, SUBTYPEP.ARRAY.4, - SUBTYPEP.ARRAY.5, PATHNAMES-PRINT-AND-READ-PROPERLY, PEEK-CHAR.17, - READ-LINE.4, READ-LINE.5, WRITE-STRING.2, WRITE-LINE.2, - OPEN.OUTPUT.22, OPEN.IO.22, MAKE-BROADCAST-STREAM.4, - MAKE-BROADCAST-STREAM.7, MAKE-BROADCAST-STREAM.ERROR.1, - MAKE-BROADCAST-STREAM.ERROR.2, MAKE-TWO-WAY-STREAM.ERROR.4, - MAKE-TWO-WAY-STREAM.ERROR.6, MAKE-TWO-WAY-STREAM.ERROR.7, - MAKE-CONCATENATED-STREAM.21, MAKE-CONCATENATED-STREAM.30, - MAKE-STRING-INPUT-STREAM.10, MAKE-STRING-OUTPUT-STREAM.12, - WITH-INPUT-FROM-STRING.10, WITH-OUTPUT-TO-STRING.16, - DIGIT-CHAR.ERROR.2, CODE-CHAR.ERROR.2.;; Finished loading "gclload.lsp" -T - ->make[1]: Leaving directory '/build/reproducible-path/gcl-2.6.12' -touch build-stamp - fakeroot debian/rules binary - OPEN.ERROR.11 OPEN.ERROR.12 + NAME-CHAR.ERROR.2 CHAR-COMPARE-NO-ARGS CHAR=.1 CHAR=.2 CHAR=.3 OPEN.IO.35 OPEN.PROBE.1 OPEN.PROBE.2 OPEN.PROBE.3 + OPEN.PROBE.4 OPEN.PROBE.5 OPEN.PROBE.6 OPEN.PROBE.7 OPEN.PROBE.8 + OPEN.PROBE.9 OPEN.PROBE.10 OPEN.PROBE.11 OPEN.PROBE.12 OPEN.PROBE.13 + OPEN.PROBE.14 OPEN.PROBE.15 OPEN.PROBE.16 OPEN.PROBE.17 OPEN.PROBE.18 + OPEN.PROBE.19 OPEN.PROBE.20 OPEN.PROBE.21 OPEN.PROBE.22 OPEN.PROBE.23 + OPEN.PROBE.24 OPEN.PROBE.25 OPEN.PROBE.26 OPEN.PROBE.27 OPEN.PROBE.28 + OPEN.PROBE.29 OPEN.PROBE.30 OPEN.PROBE.31 OPEN.PROBE.32 OPEN.PROBE.33 + OPEN.PROBE.34 OPEN.PROBE.35 OPEN.PROBE.36 OPEN.ERROR.1 OPEN.ERROR.2 + OPEN.ERROR.3 OPEN.ERROR.4 OPEN.ERROR.5 OPEN.ERROR.6 OPEN.ERROR.7 + OPEN.ERROR.8 OPEN.ERROR.9 OPEN.ERROR.10 OPEN.ERROR.11 OPEN.ERROR.12 OPEN.ERROR.13 OPEN.ERROR.14 OPEN.ERROR.15 OPEN.ERROR.16 OPEN.ERROR.17 OPEN.ERROR.18 STREAM-EXTERNAL-FORMAT.ERROR.1 STREAM-EXTERNAL-FORMAT.ERROR.2 WITH-OPEN-FILE.1 WITH-OPEN-FILE.2 @@ -31712,6 +31620,21 @@ CHAR-EQUAL.ORDER.4 CHAR-NOT-EQUAL.1 CHAR-NOT-EQUAL.2 CHAR-NOT-EQUAL.3 CHAR-NOT-EQUAL.4 CHAR-NOT-EQUAL.ORDER.1 CHAR-NOT-EQUAL.ORDER.2 CHAR-NOT-EQUAL.ORDER.3 CHAR-NOT-EQUAL.ORDER.4 CHAR-NOT-GREATERP.1 + CHAR-NOT-GREATERP.2 CHAR=.4 + CHAR=.ORDER.1 CHAR=.ORDER.2 CHAR=.ORDER.3 CHAR/=.1 CHAR/=.2 CHAR/=.3 + CHAR/=.4 CHAR/=.ORDER.1 CHAR/=.ORDER.2 CHAR/=.ORDER.3 CHAR<=.1 + CHAR<=.2 CHAR<=.3 CHAR<=.4 CHAR<=.5 CHAR<=.6 CHAR<=.7 CHAR<=.8 + CHAR<=.ORDER.1 CHAR<=.ORDER.2 CHAR<=.ORDER.3 CHAR<.1 CHAR<.2 CHAR<.3 + CHAR<.4 CHAR<.5 CHAR<.6 CHAR<.7 CHAR<.8 CHAR<.ORDER.1 CHAR<.ORDER.2 + CHAR<.ORDER.3 CHAR<.ORDER.4 CHAR>=.1 CHAR>=.2 CHAR>=.3 CHAR>=.4 + CHAR>=.5 CHAR>=.6 CHAR>=.7 CHAR>=.8 CHAR>=.ORDER.1 CHAR>=.ORDER.2 + CHAR>=.ORDER.3 CHAR>=.ORDER.4 CHAR>.1 CHAR>.2 CHAR>.3 CHAR>.4 CHAR>.5 + CHAR>.6 CHAR>.7 CHAR>.8 CHAR>.ORDER.1 CHAR>.ORDER.2 CHAR>.ORDER.3 + CHAR>.ORDER.4 CHAR-EQUAL.1 CHAR-EQUAL.2 CHAR-EQUAL.3 CHAR-EQUAL.4 + CHAR-EQUAL.ORDER.1 CHAR-EQUAL.ORDER.2 CHAR-EQUAL.ORDER.3 + CHAR-EQUAL.ORDER.4 CHAR-NOT-EQUAL.1 CHAR-NOT-EQUAL.2 CHAR-NOT-EQUAL.3 + CHAR-NOT-EQUAL.4 CHAR-NOT-EQUAL.ORDER.1 CHAR-NOT-EQUAL.ORDER.2 + CHAR-NOT-EQUAL.ORDER.3 CHAR-NOT-EQUAL.ORDER.4 CHAR-NOT-GREATERP.1 CHAR-NOT-GREATERP.2 CHAR-NOT-GREATERP.3 CHAR-NOT-GREATERP.4 CHAR-NOT-GREATERP.5 CHAR-NOT-GREATERP.6 CHAR-NOT-GREATERP.7 CHAR-NOT-GREATERP.8 CHAR-NOT-GREATERP.ORDER.1 @@ -31719,10 +31642,21 @@ CHAR-NOT-GREATERP.ORDER.4 CHAR-LESSP.1 CHAR-LESSP.2 CHAR-LESSP.3 CHAR-LESSP.4 CHAR-LESSP.5 CHAR-LESSP.6 CHAR-LESSP.7 CHAR-LESSP.8 CHAR-LESSP.ORDER.1 CHAR-LESSP.ORDER.2 CHAR-LESSP.ORDER.3 + CHAR-LESSP.ORDER.4 CHAR-NOT-LESSP.1 CHAR-NOT-LESSP.2 CHAR-NOT-GREATERP.3 CHAR-NOT-GREATERP.4 + CHAR-NOT-GREATERP.5 CHAR-NOT-GREATERP.6 CHAR-NOT-GREATERP.7 + CHAR-NOT-GREATERP.8 CHAR-NOT-GREATERP.ORDER.1 + CHAR-NOT-GREATERP.ORDER.2 CHAR-NOT-GREATERP.ORDER.3 + CHAR-NOT-GREATERP.ORDER.4 CHAR-LESSP.1 CHAR-LESSP.2 CHAR-LESSP.3 + CHAR-LESSP.4 CHAR-LESSP.5 CHAR-LESSP.6 CHAR-LESSP.7 CHAR-LESSP.8 + CHAR-LESSP.ORDER.1 CHAR-LESSP.ORDER.2 CHAR-LESSP.ORDER.3 CHAR-LESSP.ORDER.4 CHAR-NOT-LESSP.1 CHAR-NOT-LESSP.2 CHAR-NOT-LESSP.3 CHAR-NOT-LESSP.4 CHAR-NOT-LESSP.5 CHAR-NOT-LESSP.6 CHAR-NOT-LESSP.7 CHAR-NOT-LESSP.8 CHAR-NOT-LESSP.ORDER.1 CHAR-NOT-LESSP.ORDER.2 CHAR-NOT-LESSP.ORDER.3 CHAR-NOT-LESSP.ORDER.4 CHAR-GREATERP.1 + CHAR-GREATERP.2 CHAR-NOT-LESSP.3 + CHAR-NOT-LESSP.4 CHAR-NOT-LESSP.5 CHAR-NOT-LESSP.6 CHAR-NOT-LESSP.7 + CHAR-NOT-LESSP.8 CHAR-NOT-LESSP.ORDER.1 CHAR-NOT-LESSP.ORDER.2 + CHAR-NOT-LESSP.ORDER.3 CHAR-NOT-LESSP.ORDER.4 CHAR-GREATERP.1 CHAR-GREATERP.2 CHAR-GREATERP.3 CHAR-GREATERP.4 CHAR-GREATERP.5 CHAR-GREATERP.6 CHAR-GREATERP.7 CHAR-GREATERP.8 CHAR-GREATERP.ORDER.1 CHAR-GREATERP.ORDER.2 CHAR-GREATERP.ORDER.3 CHAR-GREATERP.ORDER.4 @@ -31821,6 +31755,107 @@ DIGIT-CHAR.ERROR.2, CODE-CHAR.ERROR.2.;; Finished loading "gclload.lsp" T +>make[1]: Leaving directory '/build/reproducible-path/gcl-2.6.12' +touch build-stamp + fakeroot debian/rules binary + CHAR-GREATERP.3 CHAR-GREATERP.4 CHAR-GREATERP.5 + CHAR-GREATERP.6 CHAR-GREATERP.7 CHAR-GREATERP.8 CHAR-GREATERP.ORDER.1 + CHAR-GREATERP.ORDER.2 CHAR-GREATERP.ORDER.3 CHAR-GREATERP.ORDER.4 + FEATURES.1 FEATURES.2 FEATURES.3 +284 out of 11799 total tests failed: SYMBOL-SLOT-BOUNDP, SYMBOL-SLOT-VALUE, SPECIAL-OPERATOR-P.1, + SPECIAL-OPERATOR-P.2, CL-FUNCTION-SYMBOLS.1, CL-MACRO-SYMBOLS.1, + CL-VARIABLE-SYMBOLS.1, CL-TYPES-THAT-ARE-CLASSES.1, + CL-TYPES-THAT-ARE-CLASSES.2, CL-TYPES-THAT-ARE-CLASSES.3, + EVAL-AND-COMPILE-MACROS, COMPILE.ERROR.1, COMPILE.ERROR.2, + CONSTANTP.6, CONSTANTP.8, CONSTANTP.ORDER.2, DCF-FUNS, DCF-MACROS, + SETF-VALUES.5, PSETQ.7, PSETF.7, THROW-ERROR, FBOUNDP.6, FBOUNDP.7, + FDEFINITION.ERROR.1, FDEFINITION.ERROR.2, FDEFINITION.ERROR.4, + FDEFINITION.ERROR.6, FDEFINITION.1, FDEFINITION.2, FDEFINITION.3, + FDEFINITION.4, FDEFINITION.5, FDEFINITION.ORDER.1, FLET.17, FLET.51, + FMAKUNBOUND.4, FUNCALL.ERROR.3, FUNCTION-LAMBDA-EXPRESSION.1, + FUNCTION-LAMBDA-EXPRESSION.2, FUNCTION-LAMBDA-EXPRESSION.ORDER.1, + FUNCTION-LAMBDA-EXPRESSION.ERROR.1, + FUNCTION-LAMBDA-EXPRESSION.ERROR.2, FUNCTION.2, FUNCTION.6, + FUNCTION.7, FUNCTION.10, FUNCTIONP.2, FUNCTIONP.6, FUNCTIONP.7, + FUNCTIONP.10, LABELS.17, LABELS.26, MACROLET.5, MACROLET.13, + MACROLET.14, MULTIPLE-VALUE-SETQ.5, MULTIPLE-VALUE-SETQ.8, + LOOP.6.19, LOOP.6.20, LOOP.6.37, LOOP.6.38, LOOP.7.15, LOOP.7.16, + LOOP.7.17, LOOP.7.18, LOOP.7.19, LOOP.7.20, LOOP.7.21, LOOP.7.22, + LOOP.7.23, LOOP.8.19, LOOP.8.20, LOOP.8.21, LOOP.8.22, + LOOP.8.ERROR.2, LOOP.9.10, LOOP.9.11, LOOP.9.27, LOOP.9.28, + LOOP.9.37, LOOP.9.38, LOOP.10.9, LOOP.10.10, LOOP.10.37, LOOP.10.38, + LOOP.10.57, LOOP.10.58, LOOP.10.85, LOOP.10.86, LOOP.11.9, + LOOP.14.29, CONDITION.2, ERROR.5, CERROR.5, HANDLER-BIND.9, + SUBTYPEP-CONS-NULL, GET-PROPERTIES.8, SETF-GETF.ORDER.2, + ARRAY-AS-CLASS.7, ARRAY-AS-CLASS.8, MAKE-ARRAY.28, + MAKE-ARRAY.DISPLACED.9, MAKE-ARRAY.DISPLACED.10, + ARRAY-DISPLACEMENT.11, UPGRADED-ARRAY-ELEMENT-TYPE.2, + UPGRADED-ARRAY-ELEMENT-TYPE.NIL.1, HASH-TABLE.1, HASH-TABLE.3, + HASH-TABLE.5, DELETE-PACKAGE.5, DELETE-PACKAGE.6, + MAKE-PACKAGE.ERROR.11, IN-PACKAGE.2, IN-PACKAGE.5, PACKAGE-ERROR.3, + MAKE-SEQUENCE.ERROR.2, REDUCE.ERROR.2, REDUCE.ERROR.5, SORT.ERROR.1, + SORT.ERROR.2, SORT.ERROR.5, SUBSEQ.ORDER.3, SUBSEQ.ORDER.4, + CONCATENATE.ERROR.1, CONCATENATE.ERROR.2, MERGE.ERROR.6, + STRUCT-TEST-03/16, STRUCT-TEST-04/16, STRUCT-TEST-05/16, + STRUCT-TEST-06/16, STRUCT-TEST-07/16, STRUCT-TEST-08/16, + STRUCT-TEST-09/16, STRUCT-TEST-10/16, STRUCT-TEST-11/16, + STRUCT-TEST-12/16, STRUCT-TEST-13/16, STRUCT-TEST-14/16, + STRUCT-TEST-15/16, STRUCT-TEST-16/16, STRUCT-TEST-17/16, + STRUCT-TEST-18/16, STRUCT-TEST-19/16, STRUCT-TEST-20/16, + STRUCT-TEST-21/16, STRUCT-TEST-22/16, STRUCT-TEST-23/16, + STRUCT-TEST-24/16, STRUCT-TEST-25/16, STRUCT-TEST-26/16, + STRUCT-TEST-27/12, STRUCT-TEST-27/16, STRUCT-TEST-28/12, + STRUCT-TEST-28/16, STRUCT-TEST-29/12, STRUCT-TEST-29/16, + STRUCT-TEST-30/16, STRUCT-TEST-31/13, STRUCT-TEST-31/14, + STRUCT-TEST-31/16, STRUCT-TEST-31/17, STRUCT-TEST-31/15A, + STRUCT-TEST-32/16, STRUCT-TEST-33/16, STRUCT-TEST-34/16, + STRUCT-TEST-35/16, STRUCT-TEST-36/16, STRUCT-TEST-41/3, + STRUCT-TEST-43/3, STRUCT-TEST-49/1, STRUCT-TEST-50/1, + STRUCT-TEST-51/1, STRUCT-TEST-57/16, STRUCT-TEST-58/16, + STRUCT-TEST-59/16, STRUCT-TEST-60/16, STRUCTURE-60-1, + STRUCT-TEST-63/13, STRUCT-TEST-63/14, STRUCT-TEST-63/16, + STRUCT-TEST-63/17, STRUCT-TEST-63/15A, STRUCT-TEST-64/1, + STRUCT-TEST-64/2, STRUCT-TEST-64/5, STRUCT-TEST-64/6, + STRUCT-TEST-64/7, STRUCT-TEST-64/9, STRUCT-TEST-64/13, + STRUCT-TEST-64/14, STRUCT-TEST-64/15, STRUCT-TEST-64/16, + STRUCT-TEST-64/17, STRUCT-TEST-64/15A, STRUCT-TEST-64/20, + STRUCTURE-BOA-TEST-08/1, STRUCTURE-BOA-TEST-09/1, + STRUCTURE-BOA-TEST-09/2, STRUCTURE-BOA-TEST-09/3, + STRUCTURE-BOA-TEST-09/4, STRUCTURE-BOA-TEST-09/5, + STRUCTURE-BOA-TEST-09/6, STRUCTURE-BOA-TEST-09/7, + STRUCTURE-BOA-TEST-13/1, STRUCTURE-BOA-TEST-13/2, + STRUCTURE-BOA-TEST-13/3, STRUCTURE-BOA-TEST-13/4, + STRUCTURE-BOA-TEST-13/5, STRUCTURE-BOA-TEST-13/6, + STRUCTURE-BOA-TEST-13/7, STRUCTURE-BOA-TEST-13/8, + STRUCTURE-BOA-TEST-14/1, STRUCTURE-BOA-TEST-14/2, + STRUCTURE-BOA-TEST-14/3, STRUCTURE-BOA-TEST-14/4, + STRUCTURE-BOA-TEST-14/5, STRUCTURE-BOA-TEST-15/1, + STRUCTURE-BOA-TEST-15/2, STRUCTURE-BOA-TEST-15/3, + STRUCTURE-BOA-TEST-15/4, STRUCTURE-BOA-TEST-15/5, + STRUCTURE-BOA-TEST-15/6, STRUCTURE-BOA-TEST-15/7, + STRUCTURE-BOA-TEST-15/8, TYPES.3, TYPES.6, TYPES.8, TYPES.9A, + ALL-CLASSES-ARE-TYPE-EQUIVALENT-TO-THEIR-NAMES, + ALL-STANDARD-CLASSES-ARE-SUBTYPES-OF-STANDARD-OBJECT, + ALL-STANDARD-GENERIC-FUNCTIONS-ARE-INSTANCES-OF-THAT-CLASS, TAC-3.1, + TAC-3.2, TAC-3.3, TAC-3.4, TAC-3.5, TAC-3.6, TAC-3.7, TAC-3.8, + TAC-3.9, TAC-3.10, TAC-3.11, TAC-3.12, TAC-3.13, TAC-3.14, TAC-3.15, + UNIVERSE-ELEMENTS-IN-AT-MOST-ONE-DISJOINT-TYPE, + SUBTYPEP.BIGNUM.INTEGER, SUBTYPEP.INTEGER.23, SUBTYPEP.INTEGER.24, + SUBTYPEP.CONS.2, SUBTYPEP.CONS.12, SUBTYPEP.MEMBER.17, + SUBTYPEP.MEMBER.18, SUBTYPEP.EQL.1, SUBTYPEP.EQL.2, + SUBTYPEP.ARRAY.1, SUBTYPEP.ARRAY.3, SUBTYPEP.ARRAY.4, + SUBTYPEP.ARRAY.5, PATHNAMES-PRINT-AND-READ-PROPERLY, PEEK-CHAR.17, + READ-LINE.4, READ-LINE.5, WRITE-STRING.2, WRITE-LINE.2, + OPEN.OUTPUT.22, OPEN.IO.22, MAKE-BROADCAST-STREAM.4, + MAKE-BROADCAST-STREAM.7, MAKE-BROADCAST-STREAM.ERROR.1, + MAKE-BROADCAST-STREAM.ERROR.2, MAKE-TWO-WAY-STREAM.ERROR.4, + MAKE-TWO-WAY-STREAM.ERROR.6, MAKE-TWO-WAY-STREAM.ERROR.7, + MAKE-CONCATENATED-STREAM.21, MAKE-CONCATENATED-STREAM.30, + MAKE-STRING-INPUT-STREAM.10, MAKE-STRING-OUTPUT-STREAM.12, + WITH-INPUT-FROM-STRING.10, WITH-OUTPUT-TO-STRING.16, + DIGIT-CHAR.ERROR.2, CODE-CHAR.ERROR.2.;; Finished loading "gclload.lsp" +T + >rm -f `echo debian/control.rm | sed 's,\.rm$,,1'` cp debian/control. debian/control cat debian/in.gcl-doc.README.Debian | sed 's,@EXT@,,g' >debian/gcl-doc.README.Debian @@ -31930,12 +31965,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3186022/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/2055380 and its subdirectories -I: Current time: Fri Feb 7 17:04:36 -12 2025 -I: pbuilder-time-stamp: 1738991076 +I: removing directory /srv/workspace/pbuilder/3186022 and its subdirectories +I: Current time: Sun Jan 7 14:09:48 +14 2024 +I: pbuilder-time-stamp: 1704586188