Diff of the two buildlogs:

--
--- b1/build.log	2025-03-06 10:17:30.252313787 +0000
+++ b2/build.log	2025-03-06 10:23:25.208365089 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Wed Mar  5 22:14:03 -12 2025
-I: pbuilder-time-stamp: 1741256043
+I: Current time: Thu Apr  9 06:40:34 +14 2026
+I: pbuilder-time-stamp: 1775666434
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz]
 I: copying local configuration
@@ -25,54 +25,86 @@
 dpkg-source: info: applying 0001-Use_chasquid_user.patch
 I: Not using root during the build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/52388/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/55605/tmp/hooks/D01_modify_environment starting
+debug: Running on ionos16-i386.
+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 Apr  8 16:41 /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/55605/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/55605/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='i386'
-  DEBIAN_FRONTEND='noninteractive'
-  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 '
-  DISTRIBUTION='trixie'
-  HOME='/root'
-  HOST_ARCH='i386'
+  BASH=/bin/sh
+  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
+  BASH_ALIASES=()
+  BASH_ARGC=()
+  BASH_ARGV=()
+  BASH_CMDS=()
+  BASH_LINENO=([0]="12" [1]="0")
+  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
+  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
+  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")
+  BASH_VERSION='5.2.37(1)-release'
+  BUILDDIR=/build/reproducible-path
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=i386
+  DEBIAN_FRONTEND=noninteractive
+  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 '
+  DIRSTACK=()
+  DISTRIBUTION=trixie
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/root
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=i686
+  HOST_ARCH=i386
   IFS=' 	
   '
-  INVOCATION_ID='4c7834297af64a7c9a561edd199f9ab4'
-  LANG='C'
-  LANGUAGE='en_US:en'
-  LC_ALL='C'
-  LD_LIBRARY_PATH='/usr/lib/libeatmydata'
-  LD_PRELOAD='libeatmydata.so'
-  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='52388'
-  PS1='# '
-  PS2='> '
+  INVOCATION_ID=0d80099439124461801ece406fa580d7
+  LANG=C
+  LANGUAGE=de_CH:de
+  LC_ALL=C
+  LD_LIBRARY_PATH=/usr/lib/libeatmydata
+  LD_PRELOAD=libeatmydata.so
+  MACHTYPE=i686-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=55605
   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.L1xR4y9w/pbuilderrc_ykJK --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.L1xR4y9w/b1 --logfile b1/build.log chasquid_1.15.0-1.dsc'
-  SUDO_GID='112'
-  SUDO_UID='107'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  _='/usr/bin/systemd-run'
-  http_proxy='http://46.16.76.132: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.L1xR4y9w/pbuilderrc_spr1 --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.L1xR4y9w/b2 --logfile b2/build.log chasquid_1.15.0-1.dsc'
+  SUDO_GID=112
+  SUDO_UID=107
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  _='I: set'
+  http_proxy=http://213.165.73.152:3128
 I: uname -a
-  Linux ionos2-i386 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
+  Linux i-capture-the-hostname 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
 I: ls -l /bin
-  lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
-I: user script /srv/workspace/pbuilder/52388/tmp/hooks/D02_print_environment finished
+  lrwxrwxrwx 1 root root 7 Nov 22  2024 /bin -> usr/bin
+I: user script /srv/workspace/pbuilder/55605/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -176,7 +208,7 @@
 Get: 44 http://deb.debian.org/debian trixie/main i386 golang-blitiri-go-log-dev all 1.1.0-1 [6724 B]
 Get: 45 http://deb.debian.org/debian trixie/main i386 golang-blitiri-go-spf-dev all 1.5.1-1 [37.2 kB]
 Get: 46 http://deb.debian.org/debian trixie/main i386 golang-blitiri-go-systemd-dev all 1.1.0-1 [6952 B]
-Fetched 76.0 MB in 1s (51.2 MB/s)
+Fetched 76.0 MB in 5s (14.4 MB/s)
 Preconfiguring packages ...
 Selecting previously unselected package sensible-utils.
 (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 ... 19787 files and directories currently installed.)
@@ -375,7 +407,11 @@
 Building tag database...
  -> Finished parsing the build-deps
 I: Building the package
-I: Running cd /build/reproducible-path/chasquid-1.15.0/ && 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  > ../chasquid_1.15.0-1_source.changes
+I: user script /srv/workspace/pbuilder/55605/tmp/hooks/A99_set_merged_usr starting
+Not re-configuring usrmerge for trixie
+I: user script /srv/workspace/pbuilder/55605/tmp/hooks/A99_set_merged_usr finished
+hostname: Name or service not known
+I: Running cd /build/reproducible-path/chasquid-1.15.0/ && 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  > ../chasquid_1.15.0-1_source.changes
 dpkg-buildpackage: info: source package chasquid
 dpkg-buildpackage: info: source version 1.15.0-1
 dpkg-buildpackage: info: source distribution unstable
@@ -395,274 +431,274 @@
    debian/rules override_dh_auto_build
 make[1]: Entering directory '/build/reproducible-path/chasquid-1.15.0'
 dh_auto_build -- -ldflags " -X main.version=1.15.0-1 -X main.sourceDateTs=1737288581"
-	cd obj-i686-linux-gnu && go install -trimpath -v -p 11 -ldflags " -X main.version=1.15.0-1 -X main.sourceDateTs=1737288581" blitiri.com.ar/go/chasquid blitiri.com.ar/go/chasquid/cmd/chasquid-util blitiri.com.ar/go/chasquid/cmd/mda-lmtp blitiri.com.ar/go/chasquid/cmd/smtp-check blitiri.com.ar/go/chasquid/internal/aliases blitiri.com.ar/go/chasquid/internal/auth blitiri.com.ar/go/chasquid/internal/config blitiri.com.ar/go/chasquid/internal/courier blitiri.com.ar/go/chasquid/internal/dkim blitiri.com.ar/go/chasquid/internal/domaininfo blitiri.com.ar/go/chasquid/internal/dovecot blitiri.com.ar/go/chasquid/internal/envelope blitiri.com.ar/go/chasquid/internal/expvarom blitiri.com.ar/go/chasquid/internal/haproxy blitiri.com.ar/go/chasquid/internal/localrpc blitiri.com.ar/go/chasquid/internal/maillog blitiri.com.ar/go/chasquid/internal/nettrace blitiri.com.ar/go/chasquid/internal/normalize blitiri.com.ar/go/chasquid/internal/protoio blitiri.com.ar/go/chasquid/internal/protoio/testpb blitiri.com.ar/go/chasquid/internal/queue blitiri.com.ar/go/chasquid/internal/safeio blitiri.com.ar/go/chasquid/internal/set blitiri.com.ar/go/chasquid/internal/smtp blitiri.com.ar/go/chasquid/internal/smtpsrv blitiri.com.ar/go/chasquid/internal/sts blitiri.com.ar/go/chasquid/internal/testlib blitiri.com.ar/go/chasquid/internal/tlsconst blitiri.com.ar/go/chasquid/internal/trace blitiri.com.ar/go/chasquid/internal/userdb
-encoding
-internal/unsafeheader
-internal/byteorder
-internal/goarch
-internal/goexperiment
-internal/asan
-internal/coverage/rtcov
+	cd obj-i686-linux-gnu && go install -trimpath -v -p 21 -ldflags " -X main.version=1.15.0-1 -X main.sourceDateTs=1737288581" blitiri.com.ar/go/chasquid blitiri.com.ar/go/chasquid/cmd/chasquid-util blitiri.com.ar/go/chasquid/cmd/mda-lmtp blitiri.com.ar/go/chasquid/cmd/smtp-check blitiri.com.ar/go/chasquid/internal/aliases blitiri.com.ar/go/chasquid/internal/auth blitiri.com.ar/go/chasquid/internal/config blitiri.com.ar/go/chasquid/internal/courier blitiri.com.ar/go/chasquid/internal/dkim blitiri.com.ar/go/chasquid/internal/domaininfo blitiri.com.ar/go/chasquid/internal/dovecot blitiri.com.ar/go/chasquid/internal/envelope blitiri.com.ar/go/chasquid/internal/expvarom blitiri.com.ar/go/chasquid/internal/haproxy blitiri.com.ar/go/chasquid/internal/localrpc blitiri.com.ar/go/chasquid/internal/maillog blitiri.com.ar/go/chasquid/internal/nettrace blitiri.com.ar/go/chasquid/internal/normalize blitiri.com.ar/go/chasquid/internal/protoio blitiri.com.ar/go/chasquid/internal/protoio/testpb blitiri.com.ar/go/chasquid/internal/queue blitiri.com.ar/go/chasquid/internal/safeio blitiri.com.ar/go/chasquid/internal/set blitiri.com.ar/go/chasquid/internal/smtp blitiri.com.ar/go/chasquid/internal/smtpsrv blitiri.com.ar/go/chasquid/internal/sts blitiri.com.ar/go/chasquid/internal/testlib blitiri.com.ar/go/chasquid/internal/tlsconst blitiri.com.ar/go/chasquid/internal/trace blitiri.com.ar/go/chasquid/internal/userdb
 internal/godebugs
-internal/profilerecord
-internal/runtime/atomic
-internal/cpu
-internal/goos
+internal/unsafeheader
 internal/msan
-internal/runtime/syscall
-cmp
+log/internal
 internal/itoa
+internal/profilerecord
+internal/byteorder
+internal/coverage/rtcov
+internal/goarch
 unicode/utf8
+cmp
 math/bits
-internal/abi
-internal/runtime/math
-internal/runtime/sys
-internal/chacha8rand
-sync/atomic
+internal/asan
+internal/goos
+internal/goexperiment
 unicode
-log/internal
+encoding
 internal/nettrace
 google.golang.org/protobuf/internal/flags
 unicode/utf16
 container/ring
-internal/runtime/exithook
 container/list
+internal/runtime/math
 crypto/internal/fips140/alias
-math
-google.golang.org/protobuf/internal/set
-internal/bytealg
-crypto/internal/fips140deps/byteorder
-crypto/internal/fips140deps/cpu
-crypto/internal/boring/sig
 vendor/golang.org/x/crypto/cryptobyte/asn1
-vendor/golang.org/x/crypto/internal/alias
 blitiri.com.ar/go/chasquid/internal/set
+vendor/golang.org/x/crypto/internal/alias
+crypto/internal/fips140deps/byteorder
+internal/cpu
+internal/runtime/syscall
+internal/runtime/sys
+internal/chacha8rand
+internal/runtime/atomic
+sync/atomic
+crypto/internal/boring/sig
+internal/abi
+google.golang.org/protobuf/internal/set
+math
+crypto/internal/fips140deps/cpu
+internal/bytealg
+internal/runtime/exithook
 internal/stringslite
 internal/race
 internal/sync
 internal/runtime/maps
 runtime
-internal/reflectlite
 weak
-crypto/internal/fips140/subtle
 iter
+internal/reflectlite
+crypto/internal/fips140/subtle
 sync
 maps
 slices
 crypto/subtle
+internal/testlog
+internal/singleflight
 errors
 sort
+internal/bisect
+unique
+google.golang.org/protobuf/internal/pragma
+runtime/cgo
+internal/godebug
 internal/oserror
 path
-vendor/golang.org/x/net/dns/dnsmessage
-internal/testlog
-internal/singleflight
-internal/bisect
 io
-unique
-strconv
+vendor/golang.org/x/net/dns/dnsmessage
 math/rand/v2
+golang.org/x/text/internal/tag
+strconv
 syscall
-google.golang.org/protobuf/internal/pragma
-internal/godebug
 hash
-bytes
-strings
-hash/fnv
 crypto/internal/randutil
-golang.org/x/text/internal/tag
-hash/crc32
-runtime/cgo
 crypto/internal/fips140deps/godebug
+reflect
+bytes
 math/rand
-crypto
 net/netip
-reflect
-crypto/internal/impl
-regexp/syntax
-net/http/internal/ascii
+strings
+hash/fnv
+crypto
+hash/crc32
+vendor/golang.org/x/text/transform
+golang.org/x/text/transform
 crypto/internal/fips140
+crypto/internal/impl
 bufio
 html
-golang.org/x/text/transform
-vendor/golang.org/x/text/transform
-crypto/internal/fips140/sha3
-crypto/internal/fips140/sha256
+net/http/internal/ascii
+regexp/syntax
+golang.org/x/text/runes
 golang.org/x/text/width
 crypto/tls/internal/fips140tls
-golang.org/x/text/runes
 crypto/internal/fips140/sha512
+crypto/internal/fips140/sha256
+crypto/internal/fips140/sha3
+internal/syscall/execenv
 time
-crypto/sha3
 internal/syscall/unix
-internal/syscall/execenv
-regexp
+crypto/sha3
 crypto/internal/fips140/hmac
+regexp
 crypto/internal/fips140hash
 crypto/internal/fips140/check
-crypto/internal/fips140/edwards25519/field
 crypto/internal/fips140/hkdf
 crypto/internal/fips140/tls12
 crypto/internal/fips140/bigmod
+crypto/internal/fips140/edwards25519/field
 crypto/internal/fips140/aes
 crypto/internal/fips140/nistec/fiat
 crypto/internal/fips140/tls13
 crypto/internal/fips140/edwards25519
-io/fs
-context
-internal/poll
 internal/fmtsort
 encoding/binary
+context
+io/fs
+internal/poll
 embed
 internal/filepathlite
 google.golang.org/protobuf/internal/editiondefaults
-os
-vendor/golang.org/x/crypto/internal/poly1305
 encoding/base64
-crypto/internal/fips140/nistec
-golang.org/x/sys/unix
+vendor/golang.org/x/crypto/internal/poly1305
 encoding/pem
+golang.org/x/sys/unix
+os
+crypto/internal/fips140/nistec
+golang.org/x/term
 google.golang.org/protobuf/internal/detrand
-blitiri.com.ar/go/chasquid/internal/safeio
-crypto/internal/sysrand
-fmt
 internal/sysinfo
+crypto/internal/sysrand
 os/signal
 path/filepath
+fmt
+blitiri.com.ar/go/chasquid/internal/safeio
 crypto/internal/entropy
 crypto/internal/fips140/drbg
+net
 crypto/internal/fips140only
 crypto/internal/fips140/ed25519
+crypto/internal/fips140/ecdh
+crypto/internal/fips140/ecdsa
+os/exec
+crypto/internal/fips140/rsa
 crypto/internal/fips140/mlkem
 crypto/internal/fips140/aes/gcm
-crypto/internal/fips140/rsa
-os/exec
 crypto/rc4
 crypto/md5
-crypto/cipher
-google.golang.org/protobuf/internal/errors
+log
 flag
+encoding/hex
+net/url
 go/token
-log
+google.golang.org/protobuf/internal/errors
+google.golang.org/protobuf/internal/version
+mime/quotedprintable
+crypto/cipher
+text/template/parse
+mime
 compress/flate
+vendor/golang.org/x/net/http2/hpack
+net/http/internal
 encoding/json
+blitiri.com.ar/go/chasquid/internal/envelope
+vendor/golang.org/x/text/unicode/norm
 google.golang.org/protobuf/encoding/protowire
-google.golang.org/protobuf/internal/version
-net/url
-text/template/parse
-crypto/internal/boring
-net
-google.golang.org/protobuf/reflect/protoreflect
 math/big
-crypto/aes
+golang.org/x/text/internal/language
+blitiri.com.ar/go/chasquid/internal/tlsconst
+golang.org/x/text/unicode/norm
+text/tabwriter
+google.golang.org/protobuf/reflect/protoreflect
+vendor/golang.org/x/text/unicode/bidi
+golang.org/x/text/unicode/bidi
+runtime/trace
+runtime/debug
+vendor/golang.org/x/crypto/chacha20
 crypto/des
-crypto/internal/fips140/ecdh
-crypto/internal/fips140/ecdsa
-crypto/ecdh
+crypto/internal/boring
+compress/gzip
 crypto/sha512
+crypto/aes
+crypto/ecdh
+crypto/sha256
 crypto/hmac
-compress/gzip
-vendor/golang.org/x/crypto/chacha20
 crypto/sha1
-crypto/sha256
 vendor/golang.org/x/crypto/chacha20poly1305
-encoding/hex
-vendor/golang.org/x/text/unicode/bidi
-mime
-vendor/golang.org/x/net/http2/hpack
-mime/quotedprintable
-vendor/golang.org/x/text/unicode/norm
-net/http/internal
-blitiri.com.ar/go/chasquid/internal/envelope
-golang.org/x/text/unicode/bidi
-golang.org/x/text/unicode/norm
-golang.org/x/text/internal/language
-google.golang.org/protobuf/internal/encoding/messageset
+testing
+golang.org/x/crypto/pbkdf2
+internal/profile
+golang.org/x/text/secure/bidirule
+vendor/golang.org/x/text/secure/bidirule
+runtime/pprof
+golang.org/x/crypto/scrypt
 text/template
+golang.org/x/text/internal/language/compact
+vendor/golang.org/x/net/idna
+golang.org/x/net/idna
 google.golang.org/protobuf/internal/strs
-google.golang.org/protobuf/internal/genid
 google.golang.org/protobuf/internal/order
-google.golang.org/protobuf/internal/encoding/text
-google.golang.org/protobuf/reflect/protoregistry
-google.golang.org/protobuf/runtime/protoiface
-google.golang.org/protobuf/internal/descfmt
+google.golang.org/protobuf/internal/encoding/messageset
 google.golang.org/protobuf/internal/descopts
+google.golang.org/protobuf/internal/descfmt
+google.golang.org/protobuf/runtime/protoiface
+google.golang.org/protobuf/internal/genid
 google.golang.org/protobuf/internal/protolazy
-vendor/golang.org/x/text/secure/bidirule
-golang.org/x/text/secure/bidirule
-google.golang.org/protobuf/proto
-blitiri.com.ar/go/chasquid/internal/tlsconst
-golang.org/x/crypto/pbkdf2
-crypto/rand
-google.golang.org/protobuf/internal/encoding/defval
-crypto/elliptic
+golang.org/x/text/language
+google.golang.org/protobuf/reflect/protoregistry
+google.golang.org/protobuf/internal/encoding/text
 crypto/internal/boring/bbig
+crypto/dsa
 encoding/asn1
+crypto/elliptic
+crypto/rand
 crypto/ed25519
 crypto/internal/hpke
 crypto/rsa
-crypto/dsa
-golang.org/x/text/internal/language/compact
-golang.org/x/crypto/scrypt
+google.golang.org/protobuf/internal/encoding/defval
+google.golang.org/protobuf/proto
+golang.org/x/text/internal
 html/template
-internal/profile
-text/tabwriter
-runtime/trace
-vendor/golang.org/x/net/idna
-runtime/pprof
-runtime/debug
-golang.org/x/text/language
-golang.org/x/term
-golang.org/x/net/idna
+golang.org/x/text/cases
+crypto/x509/pkix
+vendor/golang.org/x/crypto/cryptobyte
 google.golang.org/protobuf/encoding/prototext
 google.golang.org/protobuf/internal/filedesc
-vendor/golang.org/x/crypto/cryptobyte
-crypto/x509/pkix
-golang.org/x/text/internal
-testing
-golang.org/x/text/cases
-blitiri.com.ar/go/chasquid/internal/protoio
 crypto/ecdsa
 golang.org/x/text/secure/precis
-google.golang.org/protobuf/internal/encoding/tag
+blitiri.com.ar/go/chasquid/internal/protoio
 blitiri.com.ar/go/chasquid/internal/normalize
+google.golang.org/protobuf/internal/encoding/tag
 google.golang.org/protobuf/internal/impl
-log/syslog
+vendor/golang.org/x/net/http/httpproxy
 blitiri.com.ar/go/chasquid/internal/haproxy
-net/textproto
+log/syslog
 blitiri.com.ar/go/spf
-vendor/golang.org/x/net/http/httpproxy
 blitiri.com.ar/go/systemd
+net/textproto
 crypto/x509
 blitiri.com.ar/go/log
-mime/multipart
-vendor/golang.org/x/net/http/httpguts
+net/mail
 blitiri.com.ar/go/chasquid/internal/dovecot
+vendor/golang.org/x/net/http/httpguts
 blitiri.com.ar/go/chasquid/cmd/mda-lmtp
-net/mail
-google.golang.org/protobuf/internal/filetype
-crypto/tls
+mime/multipart
 blitiri.com.ar/go/chasquid/internal/dkim
+crypto/tls
+google.golang.org/protobuf/internal/filetype
 google.golang.org/protobuf/runtime/protoimpl
-blitiri.com.ar/go/chasquid/internal/protoio/testpb
-blitiri.com.ar/go/chasquid/internal/userdb
 blitiri.com.ar/go/chasquid/internal/config
-net/http/httptrace
+blitiri.com.ar/go/chasquid/internal/userdb
+blitiri.com.ar/go/chasquid/internal/protoio/testpb
 blitiri.com.ar/go/chasquid/internal/testlib
+net/http/httptrace
 net/smtp
 blitiri.com.ar/go/chasquid/internal/smtp
 net/http
-golang.org/x/net/context/ctxhttp
 net/http/pprof
-blitiri.com.ar/go/chasquid/internal/nettrace
+golang.org/x/net/context/ctxhttp
 expvar
+blitiri.com.ar/go/chasquid/internal/nettrace
+blitiri.com.ar/go/chasquid/internal/expvarom
 blitiri.com.ar/go/chasquid/internal/trace
-blitiri.com.ar/go/chasquid/internal/maillog
-blitiri.com.ar/go/chasquid/internal/domaininfo
 blitiri.com.ar/go/chasquid/internal/localrpc
+blitiri.com.ar/go/chasquid/internal/maillog
 blitiri.com.ar/go/chasquid/internal/auth
+blitiri.com.ar/go/chasquid/internal/domaininfo
 blitiri.com.ar/go/chasquid/cmd/chasquid-util
-blitiri.com.ar/go/chasquid/internal/expvarom
 blitiri.com.ar/go/chasquid/internal/aliases
 blitiri.com.ar/go/chasquid/internal/sts
 blitiri.com.ar/go/chasquid/internal/courier
@@ -672,7 +708,7 @@
 blitiri.com.ar/go/chasquid
 make[1]: Leaving directory '/build/reproducible-path/chasquid-1.15.0'
    dh_auto_test -O--buildsystem=golang
-	cd obj-i686-linux-gnu && go test -vet=off -v -p 11 blitiri.com.ar/go/chasquid blitiri.com.ar/go/chasquid/cmd/chasquid-util blitiri.com.ar/go/chasquid/cmd/mda-lmtp blitiri.com.ar/go/chasquid/cmd/smtp-check blitiri.com.ar/go/chasquid/internal/aliases blitiri.com.ar/go/chasquid/internal/auth blitiri.com.ar/go/chasquid/internal/config blitiri.com.ar/go/chasquid/internal/courier blitiri.com.ar/go/chasquid/internal/dkim blitiri.com.ar/go/chasquid/internal/domaininfo blitiri.com.ar/go/chasquid/internal/dovecot blitiri.com.ar/go/chasquid/internal/envelope blitiri.com.ar/go/chasquid/internal/expvarom blitiri.com.ar/go/chasquid/internal/haproxy blitiri.com.ar/go/chasquid/internal/localrpc blitiri.com.ar/go/chasquid/internal/maillog blitiri.com.ar/go/chasquid/internal/nettrace blitiri.com.ar/go/chasquid/internal/normalize blitiri.com.ar/go/chasquid/internal/protoio blitiri.com.ar/go/chasquid/internal/protoio/testpb blitiri.com.ar/go/chasquid/internal/queue blitiri.com.ar/go/chasquid/internal/safeio blitiri.com.ar/go/chasquid/internal/set blitiri.com.ar/go/chasquid/internal/smtp blitiri.com.ar/go/chasquid/internal/smtpsrv blitiri.com.ar/go/chasquid/internal/sts blitiri.com.ar/go/chasquid/internal/testlib blitiri.com.ar/go/chasquid/internal/tlsconst blitiri.com.ar/go/chasquid/internal/trace blitiri.com.ar/go/chasquid/internal/userdb
+	cd obj-i686-linux-gnu && go test -vet=off -v -p 21 blitiri.com.ar/go/chasquid blitiri.com.ar/go/chasquid/cmd/chasquid-util blitiri.com.ar/go/chasquid/cmd/mda-lmtp blitiri.com.ar/go/chasquid/cmd/smtp-check blitiri.com.ar/go/chasquid/internal/aliases blitiri.com.ar/go/chasquid/internal/auth blitiri.com.ar/go/chasquid/internal/config blitiri.com.ar/go/chasquid/internal/courier blitiri.com.ar/go/chasquid/internal/dkim blitiri.com.ar/go/chasquid/internal/domaininfo blitiri.com.ar/go/chasquid/internal/dovecot blitiri.com.ar/go/chasquid/internal/envelope blitiri.com.ar/go/chasquid/internal/expvarom blitiri.com.ar/go/chasquid/internal/haproxy blitiri.com.ar/go/chasquid/internal/localrpc blitiri.com.ar/go/chasquid/internal/maillog blitiri.com.ar/go/chasquid/internal/nettrace blitiri.com.ar/go/chasquid/internal/normalize blitiri.com.ar/go/chasquid/internal/protoio blitiri.com.ar/go/chasquid/internal/protoio/testpb blitiri.com.ar/go/chasquid/internal/queue blitiri.com.ar/go/chasquid/internal/safeio blitiri.com.ar/go/chasquid/internal/set blitiri.com.ar/go/chasquid/internal/smtp blitiri.com.ar/go/chasquid/internal/smtpsrv blitiri.com.ar/go/chasquid/internal/sts blitiri.com.ar/go/chasquid/internal/testlib blitiri.com.ar/go/chasquid/internal/tlsconst blitiri.com.ar/go/chasquid/internal/trace blitiri.com.ar/go/chasquid/internal/userdb
 ?   	blitiri.com.ar/go/chasquid	[no test files]
 ?   	blitiri.com.ar/go/chasquid/cmd/chasquid-util	[no test files]
 ?   	blitiri.com.ar/go/chasquid/cmd/mda-lmtp	[no test files]
@@ -696,9 +732,9 @@
 === RUN   TestTooMuchRecursionOnCatchAll
 --- PASS: TestTooMuchRecursionOnCatchAll (0.00s)
 === RUN   TestAddFile
---- PASS: TestAddFile (0.00s)
+--- PASS: TestAddFile (0.02s)
 === RUN   TestRichFile
---- PASS: TestRichFile (0.00s)
+--- PASS: TestRichFile (0.05s)
 === RUN   TestManyFiles
 --- PASS: TestManyFiles (0.00s)
 === RUN   TestHookError
@@ -714,7 +750,7 @@
 === RUN   FuzzReader/8234d8c5719f30e50525290db70743bf97d940e60591cf4a638c72158d35504a
 === RUN   FuzzReader/c9c80ba9f513841cb081fe9bb7439d36f9f7a06bb999d4c39441991ccc878a9e
 === RUN   FuzzReader/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d
---- PASS: FuzzReader (0.00s)
+--- PASS: FuzzReader (0.01s)
     --- PASS: FuzzReader/seed#0 (0.00s)
     --- PASS: FuzzReader/1c24d2215db69748c6fd16797673ad11ebc7e6167fe1bc1f54c6959ec10407b6 (0.00s)
     --- PASS: FuzzReader/4adaceaa32e2b32c00322948769d62c2dd42e1d9f4950d3c5b411c710e6d4a86 (0.00s)
@@ -722,7 +758,7 @@
     --- PASS: FuzzReader/c9c80ba9f513841cb081fe9bb7439d36f9f7a06bb999d4c39441991ccc878a9e (0.00s)
     --- PASS: FuzzReader/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/aliases	0.074s
+ok  	blitiri.com.ar/go/chasquid/internal/aliases	0.254s
 === RUN   TestDecodeResponse
     auth_test.go:56: OK: "" failed with response pieces != 3, as per RFC
     auth_test.go:56: OK: "\x00" failed with response pieces != 3, as per RFC
@@ -735,11 +771,11 @@
     auth_test.go:56: OK: "\xffa@b\x00\xffa@b\x00pass" failed with bidirule: failed Bidi Rule
 --- PASS: TestDecodeResponse (0.00s)
 === RUN   TestAuthenticate
---- PASS: TestAuthenticate (0.80s)
+--- PASS: TestAuthenticate (0.58s)
 === RUN   TestInterfaces
 --- PASS: TestInterfaces (0.00s)
 === RUN   TestMultipleBackends
---- PASS: TestMultipleBackends (0.20s)
+--- PASS: TestMultipleBackends (0.18s)
 === RUN   TestErrors
 --- PASS: TestErrors (0.00s)
 === RUN   TestReload
@@ -756,7 +792,7 @@
 === RUN   FuzzDecodeResponse/c2ae184876dd0fe9acfc8a5e2f2174a968b889b01e0f5c9a61fa27d7361f0091
 === RUN   FuzzDecodeResponse/d9aa9c617d1f5b3021aca758b9d896d136e3b16ed53233d02abffd02aa73ffa4
 === RUN   FuzzDecodeResponse/de05c7993312bab83e8114e9d9ced331c49822dc55c1a353f1cc9718a28226e7
---- PASS: FuzzDecodeResponse (0.03s)
+--- PASS: FuzzDecodeResponse (0.01s)
     --- PASS: FuzzDecodeResponse/0274b170c6fe2654ca5418a914b804e9c7cc5d8e5c2a7c5fcf5c29540ec5ae52 (0.00s)
     --- PASS: FuzzDecodeResponse/24d35771ef1fe0645d90b061e13a777faea328736483ec2833b63950d26b5399 (0.00s)
     --- PASS: FuzzDecodeResponse/2e5d0b26626f2d2dd6fb423e1e1cc432277ae9877c622fe6ca067e247bc11c9d (0.00s)
@@ -768,45 +804,45 @@
     --- PASS: FuzzDecodeResponse/d9aa9c617d1f5b3021aca758b9d896d136e3b16ed53233d02abffd02aa73ffa4 (0.00s)
     --- PASS: FuzzDecodeResponse/de05c7993312bab83e8114e9d9ced331c49822dc55c1a353f1cc9718a28226e7 (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/auth	1.066s
+ok  	blitiri.com.ar/go/chasquid/internal/auth	0.923s
 === RUN   TestEmptyStruct
 --- PASS: TestEmptyStruct (0.00s)
 === RUN   TestEmptyConfig
-    testlib.go:32: test directory: "/tmp/testlib_3255746865"
+    testlib.go:32: test directory: "/tmp/testlib_2689406060"
 --- PASS: TestEmptyConfig (0.00s)
 === RUN   TestFullConfig
-    testlib.go:32: test directory: "/tmp/testlib_631777408"
+    testlib.go:32: test directory: "/tmp/testlib_3723686771"
 --- PASS: TestFullConfig (0.00s)
 === RUN   TestErrorLoading
 --- PASS: TestErrorLoading (0.00s)
 === RUN   TestBrokenConfig
-    testlib.go:32: test directory: "/tmp/testlib_959765794"
+    testlib.go:32: test directory: "/tmp/testlib_1890484460"
 --- PASS: TestBrokenConfig (0.00s)
 === RUN   TestBrokenOverride
-    testlib.go:32: test directory: "/tmp/testlib_2342234491"
+    testlib.go:32: test directory: "/tmp/testlib_1294291840"
 --- PASS: TestBrokenOverride (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/config	0.048s
+ok  	blitiri.com.ar/go/chasquid/internal/config	0.338s
 === RUN   TestMDA
-    testlib.go:32: test directory: "/tmp/testlib_454849154"
---- PASS: TestMDA (0.03s)
+    testlib.go:32: test directory: "/tmp/testlib_3919263549"
+--- PASS: TestMDA (0.20s)
 === RUN   TestMDATimeout
 _ mda.go:73          Courier.MDA to@local: error: operation timed out
---- PASS: TestMDATimeout (0.11s)
+--- PASS: TestMDATimeout (0.10s)
 === RUN   TestMDABadCommandLine
 _ mda.go:86          Courier.MDA to: error: MDA delivery failed: exec: \"thisdoesnotexist\": executable file not found in $PATH - \"\"
 _ mda.go:86          Courier.MDA to: error: MDA delivery failed: exit status 1 - \"cat: unrecognized option '--fail_unknown_option'\\nTry 'cat --help' for more information.\\n\"
---- PASS: TestMDABadCommandLine (0.02s)
+--- PASS: TestMDABadCommandLine (0.01s)
 === RUN   TestExitCode
     mda_test.go:71: util/exitcode not found, running from outside repo?
 --- SKIP: TestExitCode (0.00s)
 === RUN   TestSanitize
 --- PASS: TestSanitize (0.00s)
 === RUN   TestSMTP
-    testlib.go:32: test directory: "/tmp/testlib_1067819003"
-    testlib.go:32: test directory: "/tmp/testlib_3380413538"
-_ smtp.go:127        Courier.SMTP to@to: error: Could not dial: dial tcp: address ::::33013: too many colons in address
-_ smtp.go:101        Courier.SMTP to@to: error: \":::\" returned transient error: Could not dial: dial tcp: address ::::33013: too many colons in address
+    testlib.go:32: test directory: "/tmp/testlib_3206710331"
+    testlib.go:32: test directory: "/tmp/testlib_3977182685"
+_ smtp.go:127        Courier.SMTP to@to: error: Could not dial: dial tcp: address ::::44051: too many colons in address
+_ smtp.go:101        Courier.SMTP to@to: error: \":::\" returned transient error: Could not dial: dial tcp: address ::::44051: too many colons in address
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -814,26 +850,26 @@
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestSMTP (0.59s)
+--- PASS: TestSMTP (0.19s)
 === RUN   TestSMTPErrors
-    testlib.go:32: test directory: "/tmp/testlib_742926902"
-    testlib.go:32: test directory: "/tmp/testlib_2791177214"
+    testlib.go:32: test directory: "/tmp/testlib_808700385"
+    testlib.go:32: test directory: "/tmp/testlib_1095237347"
     fakeserver_test.go:98: fakeServer got connection
-_ smtp.go:138        Courier.SMTP to@to: error: Error saying hello: write tcp 127.0.0.1:56856->127.0.0.1:45035: i/o timeout
-_ smtp.go:101        Courier.SMTP to@to: error: \"127.0.0.1\" returned transient error: Error saying hello: write tcp 127.0.0.1:56856->127.0.0.1:45035: i/o timeout
-_ smtp.go:105        Courier.SMTP to@to: error: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:56856->127.0.0.1:45035: i/o timeout)
-    smtp_test.go:140: failed as expected: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:56856->127.0.0.1:45035: i/o timeout)
+_ smtp.go:138        Courier.SMTP to@to: error: Error saying hello: write tcp 127.0.0.1:42122->127.0.0.1:44349: i/o timeout
+_ smtp.go:101        Courier.SMTP to@to: error: \"127.0.0.1\" returned transient error: Error saying hello: write tcp 127.0.0.1:42122->127.0.0.1:44349: i/o timeout
+_ smtp.go:105        Courier.SMTP to@to: error: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:42122->127.0.0.1:44349: i/o timeout)
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_1188955914"
-    testlib.go:32: test directory: "/tmp/testlib_1178714078"
+    smtp_test.go:140: failed as expected: all MXs returned transient failures (last: Error saying hello: write tcp 127.0.0.1:42122->127.0.0.1:44349: i/o timeout)
+    testlib.go:32: test directory: "/tmp/testlib_1715421806"
+    testlib.go:32: test directory: "/tmp/testlib_1771082390"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
 _ smtp.go:202        Courier.SMTP to@to: error: MAIL+RCPT 501 mail error
     smtp_test.go:140: failed as expected: MAIL+RCPT 501 mail error
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_589434049"
-    testlib.go:32: test directory: "/tmp/testlib_915031884"
+    testlib.go:32: test directory: "/tmp/testlib_3011033332"
+    testlib.go:32: test directory: "/tmp/testlib_3854166445"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -841,8 +877,8 @@
 _ smtp.go:202        Courier.SMTP to@to: error: MAIL+RCPT 501 rcpt error
     smtp_test.go:140: failed as expected: MAIL+RCPT 501 rcpt error
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_3144073523"
-    testlib.go:32: test directory: "/tmp/testlib_1547239281"
+    testlib.go:32: test directory: "/tmp/testlib_1306166275"
+    testlib.go:32: test directory: "/tmp/testlib_2874801170"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -851,8 +887,8 @@
 _ smtp.go:207        Courier.SMTP to@to: error: DATA 554 data error
     smtp_test.go:140: failed as expected: DATA 554 data error
     fakeserver_test.go:132: fakeServer exiting: unexpected EOF
-    testlib.go:32: test directory: "/tmp/testlib_3412476365"
-    testlib.go:32: test directory: "/tmp/testlib_696669180"
+    testlib.go:32: test directory: "/tmp/testlib_3529939607"
+    testlib.go:32: test directory: "/tmp/testlib_1955799781"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
@@ -861,9 +897,9 @@
 _ smtp.go:216        Courier.SMTP to@to: error: DATA closing 551 data response error
     smtp_test.go:140: failed as expected: DATA closing 551 data response error
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestSMTPErrors (3.50s)
+--- PASS: TestSMTPErrors (3.02s)
 === RUN   TestNoMXServer
-    testlib.go:32: test directory: "/tmp/testlib_1322905887"
+    testlib.go:32: test directory: "/tmp/testlib_1325612673"
 _ smtp.go:82         Courier.SMTP to@to: error: Could not find mail server: <nil>
     smtp_test.go:158: got permanent failure, as expected: Could not find mail server: <nil>
 --- PASS: TestNoMXServer (0.00s)
@@ -876,10 +912,10 @@
 === RUN   TestMXLookupError
 --- PASS: TestMXLookupError (0.00s)
 === RUN   TestLookupInvalidDomain
---- PASS: TestLookupInvalidDomain (0.01s)
+--- PASS: TestLookupInvalidDomain (0.00s)
 === RUN   TestTLS
-    testlib.go:32: test directory: "/tmp/testlib_3760330514"
-    testlib.go:32: test directory: "/tmp/testlib_3683103162"
+    testlib.go:32: test directory: "/tmp/testlib_1057623996"
+    testlib.go:32: test directory: "/tmp/testlib_665398369"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
@@ -890,7 +926,7 @@
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_3476470007"
+    testlib.go:32: test directory: "/tmp/testlib_1442202273"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
 _ domaininfo.go:145  DomainInfo.Outgoing to: error: to outgoing denied: PLAIN < TLS_INSECURE
@@ -898,26 +934,26 @@
 _ smtp.go:101        Courier.SMTP to@to: error: \"localhost\" returned transient error: Security level check failed (level:PLAIN)
 _ smtp.go:105        Courier.SMTP to@to: error: all MXs returned transient failures (last: Security level check failed (level:PLAIN))
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestTLS (1.27s)
+--- PASS: TestTLS (0.83s)
 === RUN   TestTLSError
-    testlib.go:32: test directory: "/tmp/testlib_1682708779"
-    testlib.go:32: test directory: "/tmp/testlib_668370678"
+    testlib.go:32: test directory: "/tmp/testlib_4240294340"
+    testlib.go:32: test directory: "/tmp/testlib_622873514"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
 _ smtp.go:171        Courier.SMTP to@to: error: TLS error, retrying without TLS: 500 starttls err
-    fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:105: fakeServer exiting: EOF
+    fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "MAIL FROM:<me@me>"
     fakeserver_test.go:109: fakeServer read: "RCPT TO:<to@to>"
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestTLSError (0.34s)
+--- PASS: TestTLSError (0.84s)
 === RUN   TestSTSPolicyEnforcement
-    testlib.go:32: test directory: "/tmp/testlib_1624577486"
-    testlib.go:32: test directory: "/tmp/testlib_1560504014"
+    testlib.go:32: test directory: "/tmp/testlib_3835173146"
+    testlib.go:32: test directory: "/tmp/testlib_3844209654"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
@@ -925,7 +961,7 @@
 _ domaininfo.go:153  DomainInfo.Outgoing to: to outgoing level raised: TLS_INSECURE > PLAIN
 _ smtp.go:194        test test: error: invalid security level (TLS_INSECURE) for STS policy
     fakeserver_test.go:105: fakeServer exiting: EOF
-    testlib.go:32: test directory: "/tmp/testlib_2644043757"
+    testlib.go:32: test directory: "/tmp/testlib_3709091319"
     fakeserver_test.go:98: fakeServer got connection
     fakeserver_test.go:109: fakeServer read: "EHLO hello"
     fakeserver_test.go:109: fakeServer read: "STARTTLS"
@@ -936,9 +972,9 @@
     fakeserver_test.go:109: fakeServer read: "DATA"
     fakeserver_test.go:109: fakeServer read: "QUIT"
     fakeserver_test.go:105: fakeServer exiting: EOF
---- PASS: TestSTSPolicyEnforcement (1.34s)
+--- PASS: TestSTSPolicyEnforcement (1.97s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/courier	7.263s
+ok  	blitiri.com.ar/go/chasquid/internal/courier	7.299s
 === RUN   TestStringToCanonicalization
 --- PASS: TestStringToCanonicalization (0.00s)
 === RUN   TestSimpleBody
@@ -964,7 +1000,7 @@
 === RUN   TestSkipBadRecords
 --- PASS: TestSkipBadRecords (0.00s)
 === RUN   TestParsePublicKey
---- PASS: TestParsePublicKey (0.02s)
+--- PASS: TestParsePublicKey (0.07s)
 === RUN   TestPublicKeyMatches
 --- PASS: TestPublicKeyMatches (0.00s)
 === RUN   TestStrictDomainCheck
@@ -974,7 +1010,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x9e065d0 0x9e06600]}
+    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x9eb41b0 0x9eb41e0]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1018,7 +1054,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:5 Valid:5 Results:[0x9e06960 0x9e06990 0x9e069c0 0x9e069f0 0x9e06a20]}
+    file_test.go:56: Want result: &{Found:5 Valid:5 Results:[0x9eb4540 0x9eb4570 0x9eb45a0 0x9eb45d0 0x9eb4600]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1130,7 +1166,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=8; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x9e94000]}
+    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x9d3c180]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=8; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1144,7 +1180,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[brisbane._domainkey.football.example.com:lookup : temporary error (for testing)]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x9e941e0 0x9e94210]}
+    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x9d3c330 0x9d3c360]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1178,7 +1214,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[brisbane._domainkey.football.example.com:lookup : permanent error (for testing)]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x9e944b0 0x9e944e0]}
+    file_test.go:56: Want result: &{Found:2 Valid:1 Results:[0x9d3c600 0x9d3c630]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1212,7 +1248,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB", "   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x9e94750 0x9e94780]}
+    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x9d3c8a0 0x9d3c8d0]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1259,7 +1295,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "selector._domainkey.example.com":[]string{"   v=DKIM1; k=ed25519; p=SvoPT692bVrQBT8UNxt6SF538O3snA4fE3/i/glCxwQ="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x9e94a50 0x9e94a80 0x9e94ab0]}
+    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x9d3cba0 0x9d3cbd0 0x9d3cc00]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
             d=example.com; s=selector; t=1709341950;
@@ -1319,7 +1355,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "selector._domainkey.example.com":[]string{"   v=DKIM1; k=ed25519; p=SvoPT692bVrQBT8UNxt6SF538O3snA4fE3/i/glCxwQ="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x9e94e10 0x9e94e40 0x9e94e70]}
+    file_test.go:56: Want result: &{Found:3 Valid:3 Results:[0x9d3cf60 0x9d3cf90 0x9d3cfc0]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
             d=example.com; s=selector; t=1709368031;
@@ -1379,7 +1415,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"brisbane._domainkey.football.example.com":[]string{"   v=DKIM1; k=ed25519; t=s;   p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="}, "test._domainkey.football.example.com":[]string{"   v=DKIM1; k=rsa; t=s;   p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x9e95230 0x9e95260]}
+    file_test.go:56: Want result: &{Found:2 Valid:2 Results:[0x9c16630 0x9c16660]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
          d=football.example.com; i=@football.example.com;
@@ -1425,7 +1461,7 @@
     file_test.go:50: Loaded DNS results: map[string][]string{"selector._domainkey.example.com":[]string{"   v=DKIM1; k=ed25519; t=s; p=SvoPT692bVrQBT8UNxt6SF538O3snA4fE3/i/glCxwQ="}}
     file_test.go:50: Loaded DNS errors: map[]
     file_test.go:55: Message: "DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed;\r\n "
-    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x9e95500]}
+    file_test.go:56: Want result: &{Found:1 Valid:0 Results:[0x9c16900]}
     file_test.go:57: Want error: <nil>
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
             d=example.com; s=selector; t=1709466347;
@@ -1446,16 +1482,16 @@
     context.go:17: Resulting hash: "kFTkVTyR9JWKX/Stl1+sUIuAgitRiOf7MwTBy5a2/ZA="
     context.go:17: PK [ed25519:4afa0f4faf766d5a]: Strict domain check failed: "example.com" != "sub.example.com" ("test@sub.example.com")
     context.go:17: Found 1 signatures, 0 valid
---- PASS: TestFromFiles (0.25s)
-    --- PASS: TestFromFiles/testdata/01-rfc8463 (0.05s)
-    --- PASS: TestFromFiles/testdata/02-too_many_headers (0.04s)
-    --- PASS: TestFromFiles/testdata/03-bad_message (0.01s)
-    --- PASS: TestFromFiles/testdata/04-bad_dkim_signature_header (0.01s)
-    --- PASS: TestFromFiles/testdata/05-dns_temp_error (0.02s)
-    --- PASS: TestFromFiles/testdata/06-dns_perm_error (0.02s)
-    --- PASS: TestFromFiles/testdata/07-algo_mismatch (0.02s)
-    --- PASS: TestFromFiles/testdata/08-our_signature (0.03s)
-    --- PASS: TestFromFiles/testdata/09-limited_body (0.02s)
+--- PASS: TestFromFiles (0.10s)
+    --- PASS: TestFromFiles/testdata/01-rfc8463 (0.01s)
+    --- PASS: TestFromFiles/testdata/02-too_many_headers (0.01s)
+    --- PASS: TestFromFiles/testdata/03-bad_message (0.00s)
+    --- PASS: TestFromFiles/testdata/04-bad_dkim_signature_header (0.00s)
+    --- PASS: TestFromFiles/testdata/05-dns_temp_error (0.01s)
+    --- PASS: TestFromFiles/testdata/06-dns_perm_error (0.01s)
+    --- PASS: TestFromFiles/testdata/07-algo_mismatch (0.00s)
+    --- PASS: TestFromFiles/testdata/08-our_signature (0.01s)
+    --- PASS: TestFromFiles/testdata/09-limited_body (0.01s)
     --- PASS: TestFromFiles/testdata/10-strict_domain_check_pass (0.01s)
     --- PASS: TestFromFiles/testdata/11-strict_domain_check_fail (0.01s)
 === RUN   TestFromPrivateFiles
@@ -1481,18 +1517,18 @@
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1741256197; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "lubHb+mzfdhJ0H6AIluXdkpC89H1HPEjhUNs6EzRp5M="
+    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775666691; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "0VRYP7Z6RoWZXkk73cyKPIeNywGX6K5a7tw8/49o5HY="
     context.go:17: Found DKIM-Signature header:  v=1; a=rsa-sha256; c=relaxed/relaxed;
-        	d=example.com; s=test; t=1741256197;
+        	d=example.com; s=test; t=1775666691;
         	h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id;
         	bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
-        	b=CQaLX8W3YcDhPnIewcc4qgYknVn4hgNoqHwj3pbz7O9W/Gzanb2E8246MNlz6X7SLux1n0
-        	  UzqVWyCHdRBXrPuvYHT33W5Tz1PvxJ9X8s085zbxwZh57C2EQ3vsWZ0gQOZntuO8LmTZW9
-        	  hWssmuDDpYBIb8iYqf3T50S3AWKesPfETRil4G+oPOjFn84Y2OvPxJBRtST+1h4i/GFWbD
-        	  T3XeO5ah/DJZLgFAl3ccxCF8ewgAJlxd+NXe3rvWKjLMLyzabDhbeX2bLG1oP55Z5ZcIuF
-        	  oF1VfSq2ucVM4HdiO8sx7URxrIi/0ITKEBxgataX3Mxc4eXN17rIBGCJoDDASw==;
-    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAse5Dw5x1wRTufm+TosTQgm4ja1D+vc2hetM+SHCDFGlxGv/AgBPx0X1Jsc9qn8c+oq35pDrR1OvlKQcdFLt+BJTzCULAfdqNQwPxSMqHobn3Y1UrsXKLyRW8phDZAJl89TMqpUYu9rfosOslrHKhHpWt8JJXoM+wQy+LKO3B5uC6oLiQVmSdKYgcDSa5uXUxngnhsPKhCtDuRo7y/V5qWTEFXmbs3LpKEof66ZH+nM11oVj/34r/YdUW1N3QbB07nVlx0jsDSijeva5Q80YekpjeJfVCH8kWCI7XFj6pjXZTp26aTVJUsf/YE+Szc9/6N0GoqEF6V3kcWrmwIB4DKQIDAQAB"
+        	b=Klo64JVT47agpz3LAN2ABxnYm6VxW8QYRoQBZm6EHjF14NSyBpRa4rjaig5v+0E3HusJeI
+        	  UO/UXqfYLw6bm+s7gvxTUEfrD4KCG3ZEEjD9u+rDtHB250Se6yONie/Ksu1HNHpCYK9UrY
+        	  /3q3Ym2PUrdvTRVXMEFdauvlGvDtju/35FQlgl+fFtCcXoLToG0Fr8OmQX6KvGWc05H9ug
+        	  ds1FmH+bipiUfQHQPsjUeCSFEYzDlfupVqqxhJac7psagLKBa5AEECHBgFxhJGnZdXldnA
+        	  nc4aEzEzopjE5FeH/nmgFW4UMxyv2zbU5H+QOPEef2EzkBf7F1Sb5Vgf3lnsFQ==;
+    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuEer9/DT5ygmO5IKbvUZ5uu5QyvsA8bO8Wz/4maf09eD2oUGo5bJv7oT5ZGKLTOelda7JOIfnpVg6/mw2gmV2IoytttZJdH0QGYUE1ru19GNnpMeRu6QuFSYX+TjBmnMnxsNmC6rtLxpDsU7LeHzG9I5vSOfd0IgiePM2su/SCDrH59CB3DbiC4Zc5KZhKVoYg262H1dojrcADPN2zEgtVnrM/DpAve/5rcIaenfZAKDnAc+sCF9C325udWZC3yzotRy4+FED1G/qUnsbE0PCumx3KBoyYkz9DcXTmd8UK5AatjBN+bpELeoyzLKidykyB76aQiFbgehTJDqPiMxMwIDAQAB"
     context.go:17: Parsed public key: [rsa:30820122300d0609]
     context.go:17: Body hash matches: "2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8="
     context.go:17: Hashing header: "from:Joe SixPack <joe@football.example.com>\r\n"
@@ -1500,11 +1536,11 @@
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1741256197; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "lubHb+mzfdhJ0H6AIluXdkpC89H1HPEjhUNs6EzRp5M="
+    context.go:17: Hashing header: "dkim-signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775666691; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "0VRYP7Z6RoWZXkk73cyKPIeNywGX6K5a7tw8/49o5HY="
     context.go:17: PK [rsa:30820122300d0609]: Verification succeeded
     context.go:17: Found 1 signatures, 1 valid
---- PASS: TestSignRSA (4.55s)
+--- PASS: TestSignRSA (1.85s)
 === RUN   TestSignEd25519
     context.go:17: Signing for example.com / test with ed25519-sha256
     context.go:17: Hashing header: "from:Joe SixPack <joe@football.example.com>\r\n"
@@ -1512,31 +1548,31 @@
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1741256197; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "LNW7BvBHZLUvXP0CQtU65lnnWgVsrAFYq1pnXyYlHX8="
+    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775666691; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "2clWbsG4YpDMSignnO5/JO7fve+7Tyl+oFug1kJiY64="
     context.go:17: Found DKIM-Signature header:  v=1; a=ed25519-sha256; c=relaxed/relaxed;
-        	d=example.com; s=test; t=1741256197;
+        	d=example.com; s=test; t=1775666691;
         	h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id;
         	bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
-        	b=/Ah3BgGF90jYtWUvzRLSFB86zKN3vrB1JQVFcR4t0PtwFQUXsNMggZLWQ+ZKdc72eA7624
-        	  fZreAktXqvD0FYDw==;
-    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; k=ed25519; p=GPG20kWNoS1VV7XnHxKxTbJV8fZr7iijTyafNJucpWk="
-    context.go:17: Parsed public key: [ed25519:18f1b6d2458da12d]
+        	b=47/KU5xWGOaSg3nDyEV7KSMonITUnajY1Xynjv+wkcG1E/No9ELoD1rfCNoVxs8xunwihI
+        	  OFWTxtzho9FBrHCg==;
+    context.go:17: TXT record for "test._domainkey.example.com": "v=DKIM1; k=ed25519; p=kjiRU3ov9Qw1to8P58HJymGL9Q5yafqo0OI6o0FVFIs="
+    context.go:17: Parsed public key: [ed25519:923891537a2ff50c]
     context.go:17: Body hash matches: "2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8="
     context.go:17: Hashing header: "from:Joe SixPack <joe@football.example.com>\r\n"
     context.go:17: Hashing header: "subject:Is dinner ready?\r\n"
     context.go:17: Hashing header: "date:Fri, 11 Jul 2003 21:00:37 -0700 (PDT)\r\n"
     context.go:17: Hashing header: "to:Suzie Q <suzie@shopping.example.net>\r\n"
     context.go:17: Hashing header: "message-id:<20030712040037.46341.5F8J@football.example.com>\r\n"
-    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1741256197; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
-    context.go:17: Resulting hash: "LNW7BvBHZLUvXP0CQtU65lnnWgVsrAFYq1pnXyYlHX8="
-    context.go:17: PK [ed25519:18f1b6d2458da12d]: Verification succeeded
+    context.go:17: Hashing header: "dkim-signature:v=1; a=ed25519-sha256; c=relaxed/relaxed; d=example.com; s=test; t=1775666691; h=from:subject:date:to:message-id:from:subject:date:to:cc:message-id; bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=; b=;"
+    context.go:17: Resulting hash: "2clWbsG4YpDMSignnO5/JO7fve+7Tyl+oFug1kJiY64="
+    context.go:17: PK [ed25519:923891537a2ff50c]: Verification succeeded
     context.go:17: Found 1 signatures, 1 valid
---- PASS: TestSignEd25519 (0.04s)
+--- PASS: TestSignEd25519 (0.02s)
 === RUN   TestSignBadMessage
 --- PASS: TestSignBadMessage (0.00s)
 === RUN   TestSignBadAlgorithm
---- PASS: TestSignBadAlgorithm (0.00s)
+--- PASS: TestSignBadAlgorithm (0.01s)
 === RUN   TestBreakLongLines
 --- PASS: TestBreakLongLines (0.00s)
 === RUN   TestFormatHeaders
@@ -1713,7 +1749,7 @@
 === RUN   FuzzParsePublicKey/seed#11
 === RUN   FuzzParsePublicKey/seed#12
 === RUN   FuzzParsePublicKey/seed#13
---- PASS: FuzzParsePublicKey (0.00s)
+--- PASS: FuzzParsePublicKey (0.01s)
     --- PASS: FuzzParsePublicKey/seed#0 (0.00s)
     --- PASS: FuzzParsePublicKey/seed#1 (0.00s)
     --- PASS: FuzzParsePublicKey/seed#2 (0.00s)
@@ -1729,25 +1765,25 @@
     --- PASS: FuzzParsePublicKey/seed#12 (0.00s)
     --- PASS: FuzzParsePublicKey/seed#13 (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/dkim	4.910s
+ok  	blitiri.com.ar/go/chasquid/internal/dkim	2.227s
 === RUN   TestBasic
-    testlib.go:32: test directory: "/tmp/testlib_2307763994"
+    testlib.go:32: test directory: "/tmp/testlib_1179866879"
 _ domaininfo.go:117  DomainInfo.Incoming d1: d1 incoming level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:109  DomainInfo.Incoming d1: error: d1 incoming denied: TLS_INSECURE < TLS_SECURE
 _ domaininfo.go:153  DomainInfo.Outgoing d1: d1 outgoing level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:145  DomainInfo.Outgoing d1: error: d1 outgoing denied: TLS_INSECURE < TLS_SECURE
 _ domaininfo.go:109  DomainInfo.Incoming d1: error: d1 incoming denied: TLS_INSECURE < TLS_SECURE
 _ domaininfo.go:182  DomainInfo.SetToPlain d1: set to plain
---- PASS: TestBasic (0.02s)
+--- PASS: TestBasic (0.00s)
 === RUN   TestNewDomain
-    testlib.go:32: test directory: "/tmp/testlib_3474517514"
+    testlib.go:32: test directory: "/tmp/testlib_2437134689"
 _ domaininfo.go:153  DomainInfo.Outgoing insecure: insecure outgoing level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:117  DomainInfo.Incoming insecure: insecure incoming level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:153  DomainInfo.Outgoing secure: secure outgoing level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:117  DomainInfo.Incoming secure: secure incoming level raised: TLS_SECURE > PLAIN
---- PASS: TestNewDomain (0.01s)
+--- PASS: TestNewDomain (0.00s)
 === RUN   TestProgressions
-    testlib.go:32: test directory: "/tmp/testlib_3467504445"
+    testlib.go:32: test directory: "/tmp/testlib_161459081"
 _ domaininfo.go:117  DomainInfo.Incoming pisis: pisis incoming level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:153  DomainInfo.Outgoing pisis: pisis outgoing level raised: TLS_INSECURE > PLAIN
 _ domaininfo.go:117  DomainInfo.Incoming pisis: pisis incoming level raised: TLS_SECURE > TLS_INSECURE
@@ -1760,29 +1796,29 @@
 _ domaininfo.go:145  DomainInfo.Outgoing ssip: error: ssip outgoing denied: TLS_INSECURE < TLS_SECURE
 _ domaininfo.go:109  DomainInfo.Incoming ssip: error: ssip incoming denied: PLAIN < TLS_SECURE
 _ domaininfo.go:145  DomainInfo.Outgoing ssip: error: ssip outgoing denied: PLAIN < TLS_SECURE
---- PASS: TestProgressions (0.01s)
+--- PASS: TestProgressions (0.00s)
 === RUN   TestErrors
-    testlib.go:32: test directory: "/tmp/testlib_108256782"
+    testlib.go:32: test directory: "/tmp/testlib_1335002066"
 _ domaininfo.go:117  DomainInfo.Incoming d1: d1 incoming level raised: TLS_SECURE > PLAIN
 _ domaininfo.go:67   DomainInfo.Reload reload: error: id \"d1\": proto: syntax error (line 1:1): invalid field name: invalid-text-protobuf-contents
 _ domaininfo.go:67   DomainInfo.Reload reload: error: id \"d1\": proto: syntax error (line 1:1): invalid field name: invalid-text-protobuf-contents
 --- PASS: TestErrors (0.00s)
 === RUN   TestDirectoryErrors
-    testlib.go:32: test directory: "/tmp/testlib_3752764572"
-_ domaininfo.go:59   DomainInfo.Reload reload: error: open /tmp/testlib_3752764572/db: no such file or directory
-_ domaininfo.go:84   DomainInfo.write d1: error: open /tmp/testlib_3752764572/db/.s:d13322244895: no such file or directory
+    testlib.go:32: test directory: "/tmp/testlib_3651953944"
+_ domaininfo.go:59   DomainInfo.Reload reload: error: open /tmp/testlib_3651953944/db: no such file or directory
+_ domaininfo.go:84   DomainInfo.write d1: error: open /tmp/testlib_3651953944/db/.s:d12903804598: no such file or directory
 --- PASS: TestDirectoryErrors (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/domaininfo	0.094s
+ok  	blitiri.com.ar/go/chasquid/internal/domaininfo	0.013s
 === RUN   TestUsernameNotSafe
 --- PASS: TestUsernameNotSafe (0.00s)
 === RUN   TestAutodetect
-    testlib.go:32: test directory: "/tmp/testlib_1350494976"
---- PASS: TestAutodetect (0.00s)
+    testlib.go:32: test directory: "/tmp/testlib_2756951164"
+--- PASS: TestAutodetect (0.01s)
 === RUN   TestReload
 --- PASS: TestReload (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/dovecot	0.064s
+ok  	blitiri.com.ar/go/chasquid/internal/dovecot	0.087s
 === RUN   TestSplit
 --- PASS: TestSplit (0.00s)
 === RUN   TestDomainIn
@@ -1790,13 +1826,13 @@
 === RUN   TestAddHeader
 --- PASS: TestAddHeader (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/envelope	0.031s
+ok  	blitiri.com.ar/go/chasquid/internal/envelope	0.076s
 === RUN   TestHandler
 --- PASS: TestHandler (0.00s)
 === RUN   TestMapLabelAccident
 --- PASS: TestMapLabelAccident (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/expvarom	0.055s
+ok  	blitiri.com.ar/go/chasquid/internal/expvarom	0.006s
 === RUN   TestNoNewline
 --- PASS: TestNoNewline (0.00s)
 === RUN   TestBasic
@@ -1821,21 +1857,21 @@
     haproxy_test.go:69: testing 18: PROXY TCP6 5::5 6::6 7777 8888
 --- PASS: TestBasic (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/haproxy	0.020s
+ok  	blitiri.com.ar/go/chasquid/internal/haproxy	0.090s
 === RUN   TestBadServer
-    asm_386.s:1393: FakeServer &{{0x96100f0}}: accepted 
-    asm_386.s:1393: FakeServer &{{0x96100f0}}: readRequest: "" "" / EOF
-    asm_386.s:1393: FakeServer &{{0x96100f0}}: writeMessage("xxx"): 0 write unix /tmp/rpc-test-3031262961/rpc.sock->@: write: broken pipe
-    asm_386.s:1393: FakeServer &{{0x96100f0}}: closing
-    asm_386.s:1393: FakeServer &{{0x9610140}}: accepted 
-    asm_386.s:1393: FakeServer &{{0x9610140}}: readRequest: "Echo" "" / <nil>
-    asm_386.s:1393: FakeServer &{{0x9610140}}: writeMessage("xxx"): 3 <nil>
-    asm_386.s:1393: FakeServer &{{0x9610140}}: closing
+    asm_386.s:1393: FakeServer &{{0x9a02000}}: accepted 
+    asm_386.s:1393: FakeServer &{{0x9a02000}}: readRequest: "" "" / EOF
+    asm_386.s:1393: FakeServer &{{0x9a02000}}: writeMessage("xxx"): 0 write unix /tmp/rpc-test-4199029523/rpc.sock->@: write: broken pipe
+    asm_386.s:1393: FakeServer &{{0x9a02000}}: closing
+    asm_386.s:1393: FakeServer &{{0x9a02050}}: accepted 
+    asm_386.s:1393: FakeServer &{{0x9a02050}}: readRequest: "Echo" "" / <nil>
+    asm_386.s:1393: FakeServer &{{0x9a02050}}: writeMessage("xxx"): 3 <nil>
+    asm_386.s:1393: FakeServer &{{0x9a02050}}: closing
 --- PASS: TestBadServer (0.01s)
 === RUN   TestBadSocket
 --- PASS: TestBadSocket (0.00s)
 === RUN   TestEndToEnd
-_ localrpc.go:63     LocalRPC.Server /tmp/rpc-test-3462851668/sock: Listening
+_ localrpc.go:63     LocalRPC.Server /tmp/rpc-test-301729236/sock: Listening
 === RUN   TestEndToEnd/Echo
 === RUN   TestEndToEnd/Echo#01
 === RUN   TestEndToEnd/Hola
@@ -1843,7 +1879,7 @@
 _ localrpc.go:139    LocalRPC.Handle @: error: -> 500 test error
 === RUN   TestEndToEnd/UnknownMethod
 _ localrpc.go:139    LocalRPC.Handle @: error: -> 500 unknown method
-_ localrpc.go:67     LocalRPC.Server /tmp/rpc-test-3462851668/sock: error: Accept error: accept unix /tmp/rpc-test-3462851668/sock: use of closed network connection
+_ localrpc.go:67     LocalRPC.Server /tmp/rpc-test-301729236/sock: error: Accept error: accept unix /tmp/rpc-test-301729236/sock: use of closed network connection
 --- PASS: TestEndToEnd (0.01s)
     --- PASS: TestEndToEnd/Echo (0.00s)
     --- PASS: TestEndToEnd/Echo#01 (0.00s)
@@ -1858,7 +1894,7 @@
 === RUN   TestShortReadRequest
 --- PASS: TestShortReadRequest (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/localrpc	0.067s
+ok  	blitiri.com.ar/go/chasquid/internal/localrpc	0.032s
 === RUN   TestLogger
 --- PASS: TestLogger (0.00s)
 === RUN   TestDefault
@@ -1866,7 +1902,7 @@
 === RUN   TestFailedLogger
 --- PASS: TestFailedLogger (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/maillog	0.019s
+ok  	blitiri.com.ar/go/chasquid/internal/maillog	0.010s
 === RUN   TestContext
 --- PASS: TestContext (0.00s)
 === RUN   TestHistogramBasic
@@ -1874,15 +1910,15 @@
 === RUN   TestHistogramEmpty
 --- PASS: TestHistogramEmpty (0.00s)
 === RUN   TestHTTP
---- PASS: TestHTTP (0.03s)
+--- PASS: TestHTTP (0.01s)
 === RUN   TestHTTPLong
---- PASS: TestHTTPLong (0.02s)
+--- PASS: TestHTTPLong (0.00s)
 === RUN   TestHTTPErrors
---- PASS: TestHTTPErrors (0.05s)
+--- PASS: TestHTTPErrors (0.01s)
 === RUN   TestHTTPUroboro
---- PASS: TestHTTPUroboro (0.04s)
+--- PASS: TestHTTPUroboro (0.01s)
 === RUN   TestHTTPDeep
---- PASS: TestHTTPDeep (0.03s)
+--- PASS: TestHTTPDeep (0.02s)
 === RUN   TestStripZeros
 --- PASS: TestStripZeros (0.00s)
 === RUN   TestRegisterHandler
@@ -1902,7 +1938,7 @@
 === RUN   TestFindParent
 --- PASS: TestFindParent (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/nettrace	0.223s
+ok  	blitiri.com.ar/go/chasquid/internal/nettrace	0.060s
 === RUN   TestUser
 --- PASS: TestUser (0.00s)
 === RUN   TestDomain
@@ -1919,7 +1955,7 @@
 === RUN   FuzzUser/6d603c8b9fbe8b9aa021dbde499ec1b3a00922b9338c68b2984cd314c3d5e633
 === RUN   FuzzUser/ccde73fe7b7352806a87cece8eb81867bdeb177019b69a4bb3c7bb5a277b9c32
 === RUN   FuzzUser/dc0204d8e2ab058a763873d2a5fede806e95235771ecdd96b56c906886822c19
---- PASS: FuzzUser (0.03s)
+--- PASS: FuzzUser (0.02s)
     --- PASS: FuzzUser/263da65bb5a59369f294d26a64a36a989a9a36ed5c60950b123e395bedbe881c (0.00s)
     --- PASS: FuzzUser/31400a53be6363c91bf6585789663189fa30b16181c1d18f19708acccc85f4a1 (0.00s)
     --- PASS: FuzzUser/6d603c8b9fbe8b9aa021dbde499ec1b3a00922b9338c68b2984cd314c3d5e633 (0.00s)
@@ -1931,7 +1967,7 @@
 === RUN   FuzzDomain/6d603c8b9fbe8b9aa021dbde499ec1b3a00922b9338c68b2984cd314c3d5e633
 === RUN   FuzzDomain/ccde73fe7b7352806a87cece8eb81867bdeb177019b69a4bb3c7bb5a277b9c32
 === RUN   FuzzDomain/dc0204d8e2ab058a763873d2a5fede806e95235771ecdd96b56c906886822c19
---- PASS: FuzzDomain (0.02s)
+--- PASS: FuzzDomain (0.01s)
     --- PASS: FuzzDomain/263da65bb5a59369f294d26a64a36a989a9a36ed5c60950b123e395bedbe881c (0.00s)
     --- PASS: FuzzDomain/31400a53be6363c91bf6585789663189fa30b16181c1d18f19708acccc85f4a1 (0.00s)
     --- PASS: FuzzDomain/6d603c8b9fbe8b9aa021dbde499ec1b3a00922b9338c68b2984cd314c3d5e633 (0.00s)
@@ -1943,7 +1979,7 @@
 === RUN   FuzzAddr/ccde73fe7b7352806a87cece8eb81867bdeb177019b69a4bb3c7bb5a277b9c32
 === RUN   FuzzAddr/d8637022b61fb5c4df4e153063564accd6331debaafdd594405c320a5e9f2e70
 === RUN   FuzzAddr/dc0204d8e2ab058a763873d2a5fede806e95235771ecdd96b56c906886822c19
---- PASS: FuzzAddr (0.03s)
+--- PASS: FuzzAddr (0.01s)
     --- PASS: FuzzAddr/31400a53be6363c91bf6585789663189fa30b16181c1d18f19708acccc85f4a1 (0.00s)
     --- PASS: FuzzAddr/7aba1e0ef80990ccac3731800dbb0267c4c8b7156d4da3b8a5f1b57a570adfb8 (0.00s)
     --- PASS: FuzzAddr/ccde73fe7b7352806a87cece8eb81867bdeb177019b69a4bb3c7bb5a277b9c32 (0.00s)
@@ -1955,48 +1991,48 @@
 === RUN   FuzzDomainToUnicode/ccde73fe7b7352806a87cece8eb81867bdeb177019b69a4bb3c7bb5a277b9c32
 === RUN   FuzzDomainToUnicode/d8637022b61fb5c4df4e153063564accd6331debaafdd594405c320a5e9f2e70
 === RUN   FuzzDomainToUnicode/dc0204d8e2ab058a763873d2a5fede806e95235771ecdd96b56c906886822c19
---- PASS: FuzzDomainToUnicode (0.03s)
+--- PASS: FuzzDomainToUnicode (0.01s)
     --- PASS: FuzzDomainToUnicode/31400a53be6363c91bf6585789663189fa30b16181c1d18f19708acccc85f4a1 (0.00s)
     --- PASS: FuzzDomainToUnicode/7aba1e0ef80990ccac3731800dbb0267c4c8b7156d4da3b8a5f1b57a570adfb8 (0.00s)
     --- PASS: FuzzDomainToUnicode/ccde73fe7b7352806a87cece8eb81867bdeb177019b69a4bb3c7bb5a277b9c32 (0.00s)
     --- PASS: FuzzDomainToUnicode/d8637022b61fb5c4df4e153063564accd6331debaafdd594405c320a5e9f2e70 (0.00s)
     --- PASS: FuzzDomainToUnicode/dc0204d8e2ab058a763873d2a5fede806e95235771ecdd96b56c906886822c19 (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/normalize	0.144s
+ok  	blitiri.com.ar/go/chasquid/internal/normalize	0.174s
 === RUN   TestBin
-    testlib.go:32: test directory: "/tmp/testlib_3100142585"
+    testlib.go:32: test directory: "/tmp/testlib_3345192332"
 --- PASS: TestBin (0.00s)
 === RUN   TestText
-    testlib.go:32: test directory: "/tmp/testlib_510271956"
+    testlib.go:32: test directory: "/tmp/testlib_328285948"
 --- PASS: TestText (0.00s)
 === RUN   TestStore
-    testlib.go:32: test directory: "/tmp/testlib_3186825439"
+    testlib.go:32: test directory: "/tmp/testlib_4179829831"
 --- PASS: TestStore (0.00s)
 === RUN   TestFileErrors
-    testlib.go:32: test directory: "/tmp/testlib_2456139463"
+    testlib.go:32: test directory: "/tmp/testlib_1840098251"
 --- PASS: TestFileErrors (0.00s)
 === RUN   TestMarshalErrors
-    testlib.go:32: test directory: "/tmp/testlib_2256233317"
+    testlib.go:32: test directory: "/tmp/testlib_1719745029"
 --- PASS: TestMarshalErrors (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/protoio	0.053s
+ok  	blitiri.com.ar/go/chasquid/internal/protoio	0.113s
 ?   	blitiri.com.ar/go/chasquid/internal/protoio/testpb	[no test files]
 === RUN   TestDSN
     dsn_test.go:49: From: Mail Delivery System <postmaster-dsn@dsnDomain>
         To: <from@from.org>
         Subject: Mail delivery failed: returning message to sender
-        Message-ID: <chasquid-dsn-54ciJlPgT7E@dsnDomain>
-        Date: Thu, 06 Mar 2025 10:16:36 +0000
+        Message-ID: <chasquid-dsn-3NZ_MgZVnH8@dsnDomain>
+        Date: Wed, 08 Apr 2026 16:44:51 +0000
         In-Reply-To: <msgid-123@zaraza>
         References: <msgid-123@zaraza>
         X-Failed-Recipients: pepe@africa.org, ñaca@africa.org, 
         Auto-Submitted: auto-replied
         MIME-Version: 1.0
         Content-Type: multipart/report; report-type=delivery-status;
-            boundary="dgkKZG-8gqo"
+            boundary="EMdISfHaZ8A"
         
         
-        --dgkKZG-8gqo
+        --EMdISfHaZ8A
         Content-Type: text/plain; charset="utf-8"
         Content-Disposition: inline
         Content-Description: Notification
@@ -2021,7 +2057,7 @@
             oh! the humanity!
         
         
-        --dgkKZG-8gqo
+        --EMdISfHaZ8A
         Content-Type: message/global-delivery-status
         Content-Description: Delivery Report
         Content-Transfer-Encoding: 8bit
@@ -2052,7 +2088,7 @@
         
         
         
-        --dgkKZG-8gqo
+        --EMdISfHaZ8A
         Content-Type: message/rfc822
         Content-Description: Undelivered Message
         Content-Transfer-Encoding: 8bit
@@ -2062,78 +2098,77 @@
         Data ñaca.
         
         
-        --dgkKZG-8gqo--
+        --EMdISfHaZ8A--
         
 --- PASS: TestDSN (0.00s)
 === RUN   TestBasic
-    testlib.go:32: test directory: "/tmp/testlib_673667491"
-_ queue.go:308       Queue.SendLoop kvjqpeimjLg: from from
-_ queue.go:367       Queue.SendLoop kvjqpeimjLg: nodomain sent
-_ queue.go:367       Queue.SendLoop kvjqpeimjLg: am@loco sent
-_ queue.go:367       Queue.SendLoop kvjqpeimjLg: x@remote sent
-_ queue.go:342       Queue.SendLoop kvjqpeimjLg: all done
+    testlib.go:32: test directory: "/tmp/testlib_563906020"
+_ queue.go:308       Queue.SendLoop mOnHAzDxG80: from from
+_ queue.go:367       Queue.SendLoop mOnHAzDxG80: nodomain sent
+_ queue.go:367       Queue.SendLoop mOnHAzDxG80: am@loco sent
+_ queue.go:367       Queue.SendLoop mOnHAzDxG80: x@remote sent
+_ queue.go:342       Queue.SendLoop mOnHAzDxG80: all done
 --- PASS: TestBasic (0.02s)
 === RUN   TestDSNOnTimeout
-    testlib.go:32: test directory: "/tmp/testlib_2593195105"
-_ queue.go:308       Queue.SendLoop jpek4nwn9v0: from from@loco
-_ queue.go:467       Queue.SendLoop jpek4nwn9v0: queued DSN: 6oxjRUhjCCE
-_ queue.go:342       Queue.SendLoop jpek4nwn9v0: all done
-_ queue.go:308       Queue.SendLoop 6oxjRUhjCCE: from <>
-_ queue.go:367       Queue.SendLoop 6oxjRUhjCCE: from@loco sent
-_ queue.go:342       Queue.SendLoop 6oxjRUhjCCE: all done
+    testlib.go:32: test directory: "/tmp/testlib_3345207996"
+_ queue.go:308       Queue.SendLoop MQmgo3zo53M: from from@loco
+_ queue.go:467       Queue.SendLoop MQmgo3zo53M: queued DSN: bLVgZwzVNXI
+_ queue.go:342       Queue.SendLoop MQmgo3zo53M: all done
+_ queue.go:308       Queue.SendLoop bLVgZwzVNXI: from <>
+_ queue.go:367       Queue.SendLoop bLVgZwzVNXI: from@loco sent
+_ queue.go:342       Queue.SendLoop bLVgZwzVNXI: all done
 --- PASS: TestDSNOnTimeout (0.00s)
 === RUN   TestAliases
-    testlib.go:32: test directory: "/tmp/testlib_1312992172"
-_ queue.go:308       Queue.SendLoop dLuKDMBUSiY: from from
-_ queue.go:367       Queue.SendLoop dLuKDMBUSiY: ata@hualpa sent
-_ queue.go:367       Queue.SendLoop dLuKDMBUSiY: pq@loco sent
-_ queue.go:367       Queue.SendLoop dLuKDMBUSiY: rs@loco sent
+    testlib.go:32: test directory: "/tmp/testlib_3210842095"
+_ queue.go:308       Queue.SendLoop cTbtm3bY6uo: from from
+_ queue.go:367       Queue.SendLoop cTbtm3bY6uo: ata@hualpa sent
+_ queue.go:367       Queue.SendLoop cTbtm3bY6uo: rs@loco sent
 --- PASS: TestAliases (0.00s)
 === RUN   TestFullQueue
-    testlib.go:32: test directory: "/tmp/testlib_1562389174"
+_ queue.go:367       Queue.SendLoop cTbtm3bY6uo: pq@loco sent
+    testlib.go:32: test directory: "/tmp/testlib_2713385858"
+_ queue.go:342       Queue.SendLoop cTbtm3bY6uo: all done
 _ queue.go:164       Queue.Put from: error: queue full
+_ queue.go:308       Queue.SendLoop 54H-SnJOqOI: from from
 --- PASS: TestFullQueue (0.00s)
+_ queue.go:367       Queue.SendLoop 54H-SnJOqOI: to sent
 === RUN   TestPipes
-    testlib.go:32: test directory: "/tmp/testlib_2211232064"
-_ queue.go:375       Queue.SendLoop dLuKDMBUSiY: error: failed to write: open /tmp/testlib_1312992172/.m:dLuKDMBUSiY1552324170: no such file or directory
-_ queue.go:342       Queue.SendLoop dLuKDMBUSiY: all done
-E queue.go:230       failed to remove queue file "/tmp/testlib_1312992172/m:dLuKDMBUSiY": remove /tmp/testlib_1312992172/m:dLuKDMBUSiY: no such file or directory
-_ queue.go:308       Queue.SendLoop 653opmzKUCQ: from from
-_ queue.go:367       Queue.SendLoop 653opmzKUCQ: to sent
-_ queue.go:375       Queue.SendLoop 653opmzKUCQ: error: failed to write: open /tmp/testlib_1562389174/.m:653opmzKUCQ4112601964: no such file or directory
-_ queue.go:342       Queue.SendLoop 653opmzKUCQ: all done
-E queue.go:230       failed to remove queue file "/tmp/testlib_1562389174/m:653opmzKUCQ": remove /tmp/testlib_1562389174/m:653opmzKUCQ: no such file or directory
---- PASS: TestPipes (0.02s)
+_ queue.go:375       Queue.SendLoop 54H-SnJOqOI: error: failed to write: open /tmp/testlib_2713385858/.m:54H-SnJOqOI2448322923: no such file or directory
+    testlib.go:32: test directory: "/tmp/testlib_3685926252"
+_ queue.go:342       Queue.SendLoop 54H-SnJOqOI: all done
+E queue.go:230       failed to remove queue file "/tmp/testlib_2713385858/m:54H-SnJOqOI": remove /tmp/testlib_2713385858/m:54H-SnJOqOI: no such file or directory
+--- PASS: TestPipes (0.01s)
 === RUN   TestBadPath
 --- PASS: TestBadPath (0.00s)
 === RUN   TestNextDelay
 --- PASS: TestNextDelay (0.00s)
 === RUN   TestSerialization
-    testlib.go:32: test directory: "/tmp/testlib_804211649"
-_ queue.go:308       Queue.SendLoop -d6WsNsu_D4: from from@loco
-_ queue.go:367       Queue.SendLoop -d6WsNsu_D4: to@to sent
-_ queue.go:342       Queue.SendLoop -d6WsNsu_D4: all done
+    testlib.go:32: test directory: "/tmp/testlib_4129931382"
+_ queue.go:308       Queue.SendLoop 3pnRnkuGRgc: from from@loco
+_ queue.go:367       Queue.SendLoop 3pnRnkuGRgc: to@to sent
 --- PASS: TestSerialization (0.00s)
+_ queue.go:375       Queue.SendLoop 3pnRnkuGRgc: error: failed to write: rename /tmp/testlib_4129931382/.m:3pnRnkuGRgc3698360361 /tmp/testlib_4129931382/m:3pnRnkuGRgc: no such file or directory
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/queue	0.096s
+_ queue.go:342       Queue.SendLoop 3pnRnkuGRgc: all done
+ok  	blitiri.com.ar/go/chasquid/internal/queue	0.043s
 === RUN   TestWriteFile
-    testlib.go:32: test directory: "/tmp/testlib_2850277163"
+    testlib.go:32: test directory: "/tmp/testlib_3180188871"
 --- PASS: TestWriteFile (0.00s)
 === RUN   TestWriteFileWithOp
-    testlib.go:32: test directory: "/tmp/testlib_4163866360"
+    testlib.go:32: test directory: "/tmp/testlib_2784334642"
 --- PASS: TestWriteFileWithOp (0.00s)
 === RUN   TestWriteFileWithFailingOp
-    testlib.go:32: test directory: "/tmp/testlib_3631005635"
+    testlib.go:32: test directory: "/tmp/testlib_3746490301"
 --- PASS: TestWriteFileWithFailingOp (0.00s)
 === RUN   TestErrors
-    testlib.go:32: test directory: "/tmp/testlib_1121839165"
+    testlib.go:32: test directory: "/tmp/testlib_179573758"
 --- PASS: TestErrors (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/safeio	0.019s
+ok  	blitiri.com.ar/go/chasquid/internal/safeio	0.087s
 === RUN   TestString
 --- PASS: TestString (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/set	0.032s
+ok  	blitiri.com.ar/go/chasquid/internal/set	0.080s
 === RUN   TestIsPermanent
 --- PASS: TestIsPermanent (0.00s)
 === RUN   TestIsASCII
@@ -2147,17 +2182,17 @@
 === RUN   TestFallbackToIDNA
 --- PASS: TestFallbackToIDNA (0.00s)
 === RUN   TestLineTooLong
---- PASS: TestLineTooLong (0.14s)
+--- PASS: TestLineTooLong (0.04s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/smtp	0.160s
-_ server.go:300      Server listening on 127.0.0.1:35581 (SMTP)
-2025-03-06 10:16:38.976052 daemon listening on 127.0.0.1:35581
-_ server.go:300      Server listening on 127.0.0.1:33291 (submission)
-2025-03-06 10:16:38.976287 daemon listening on 127.0.0.1:33291
-_ server.go:300      Server listening on 127.0.0.1:39971 (submission+TLS)
-2025-03-06 10:16:38.976353 daemon listening on 127.0.0.1:39971
+ok  	blitiri.com.ar/go/chasquid/internal/smtp	0.121s
+_ server.go:300      Server listening on 127.0.0.1:40471 (SMTP)
+2026-04-08 16:44:52.379228 daemon listening on 127.0.0.1:40471
+_ server.go:300      Server listening on 127.0.0.1:33491 (submission)
+2026-04-08 16:44:52.379374 daemon listening on 127.0.0.1:33491
+_ server.go:300      Server listening on 127.0.0.1:35985 (submission+TLS)
+2026-04-08 16:44:52.379455 daemon listening on 127.0.0.1:35985
+_ conn.go:209        SMTP.Conn 127.0.0.1:37820: error: error completing TLS handshake: EOF
 === RUN   TestSecLevel
-_ conn.go:209        SMTP.Conn 127.0.0.1:36628: error: error completing TLS handshake: EOF
 _ domaininfo.go:117  DomainInfo.Incoming slc: slc incoming level raised: TLS_CLIENT > PLAIN
 _ domaininfo.go:109  DomainInfo.Incoming slc: error: slc incoming denied: PLAIN < TLS_CLIENT
 _ conn.go:559        testconn testconn: error: security level check for slc failed (PLAIN)
@@ -2173,189 +2208,189 @@
 === RUN   TestReadUntilDotReadError
 --- PASS: TestReadUntilDotReadError (0.00s)
 === RUN   TestSimple
-_ conn.go:722        SMTP.Conn 127.0.0.1:59300: Queued from from@from to [to@localhost] - 2d2YdRmHr14
-2025-03-06 10:16:39.088723 2d2YdRmHr14 from=from@from queued ip=127.0.0.1:59300 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop 2d2YdRmHr14: from from@from
-_ queue.go:367       Queue.SendLoop 2d2YdRmHr14: testuser@localhost sent
-2025-03-06 10:16:39.088906 2d2YdRmHr14 from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop 2d2YdRmHr14: all done
-2025-03-06 10:16:39.089594 2d2YdRmHr14 from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:34464: Queued from from@from to [to@localhost] - YgkKklCh-28
+2026-04-08 16:44:52.483582 YgkKklCh-28 from=from@from queued ip=127.0.0.1:34464 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop YgkKklCh-28: from from@from
+_ queue.go:367       Queue.SendLoop YgkKklCh-28: testuser@localhost sent
+2026-04-08 16:44:52.483829 YgkKklCh-28 from=from@from to=testuser@localhost sent
 --- PASS: TestSimple (0.00s)
 === RUN   TestSimpleTLS
-_ conn.go:722        SMTP.Conn 127.0.0.1:59302: Queued from from@from to [to@localhost] - Xt98ulrniMA
-2025-03-06 10:16:39.119657 Xt98ulrniMA from=from@from queued ip=127.0.0.1:59302 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop Xt98ulrniMA: from from@from
-_ queue.go:367       Queue.SendLoop Xt98ulrniMA: testuser@localhost sent
-2025-03-06 10:16:39.123027 Xt98ulrniMA from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop Xt98ulrniMA: all done
-2025-03-06 10:16:39.123971 Xt98ulrniMA from=from@from all done
---- PASS: TestSimpleTLS (0.03s)
+_ queue.go:342       Queue.SendLoop YgkKklCh-28: all done
+2026-04-08 16:44:52.484731 YgkKklCh-28 from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:34472: Queued from from@from to [to@localhost] - 3RG0P0gqu0M
+2026-04-08 16:44:52.493603 3RG0P0gqu0M from=from@from queued ip=127.0.0.1:34472 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop 3RG0P0gqu0M: from from@from
+_ queue.go:367       Queue.SendLoop 3RG0P0gqu0M: testuser@localhost sent
+2026-04-08 16:44:52.493782 3RG0P0gqu0M from=from@from to=testuser@localhost sent
+--- PASS: TestSimpleTLS (0.01s)
 === RUN   TestManyEmails
-_ conn.go:722        SMTP.Conn 127.0.0.1:59310: Queued from from@from to [to@localhost] - nxnNMarf0lw
-2025-03-06 10:16:39.151134 nxnNMarf0lw from=from@from queued ip=127.0.0.1:59310 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop nxnNMarf0lw: from from@from
-_ queue.go:367       Queue.SendLoop nxnNMarf0lw: testuser@localhost sent
-2025-03-06 10:16:39.151257 nxnNMarf0lw from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop nxnNMarf0lw: all done
-2025-03-06 10:16:39.151919 nxnNMarf0lw from=from@from all done
-_ conn.go:722        SMTP.Conn 127.0.0.1:59310: Queued from from@from to [to@localhost] - TEbanzWwxBY
-2025-03-06 10:16:39.160880 TEbanzWwxBY from=from@from queued ip=127.0.0.1:59310 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop TEbanzWwxBY: from from@from
-_ queue.go:367       Queue.SendLoop TEbanzWwxBY: testuser@localhost sent
-2025-03-06 10:16:39.161013 TEbanzWwxBY from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop TEbanzWwxBY: all done
-2025-03-06 10:16:39.161617 TEbanzWwxBY from=from@from all done
-_ conn.go:722        SMTP.Conn 127.0.0.1:59310: Queued from from@from to [to@localhost] - 0woMaQR3zas
-2025-03-06 10:16:39.163057 0woMaQR3zas from=from@from queued ip=127.0.0.1:59310 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop 0woMaQR3zas: from from@from
-_ queue.go:367       Queue.SendLoop 0woMaQR3zas: testuser@localhost sent
-2025-03-06 10:16:39.163171 0woMaQR3zas from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop 0woMaQR3zas: all done
-2025-03-06 10:16:39.163593 0woMaQR3zas from=from@from all done
---- PASS: TestManyEmails (0.04s)
+_ queue.go:342       Queue.SendLoop 3RG0P0gqu0M: all done
+2026-04-08 16:44:52.494054 3RG0P0gqu0M from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:34486: Queued from from@from to [to@localhost] - 84fvrfaqSJc
+2026-04-08 16:44:52.502820 84fvrfaqSJc from=from@from queued ip=127.0.0.1:34486 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop 84fvrfaqSJc: from from@from
+_ queue.go:367       Queue.SendLoop 84fvrfaqSJc: testuser@localhost sent
+2026-04-08 16:44:52.502987 84fvrfaqSJc from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop 84fvrfaqSJc: all done
+2026-04-08 16:44:52.503213 84fvrfaqSJc from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:34486: Queued from from@from to [to@localhost] - 1OgCvVwSWas
+2026-04-08 16:44:52.503730 1OgCvVwSWas from=from@from queued ip=127.0.0.1:34486 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop 1OgCvVwSWas: from from@from
+_ queue.go:367       Queue.SendLoop 1OgCvVwSWas: testuser@localhost sent
+2026-04-08 16:44:52.503839 1OgCvVwSWas from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop 1OgCvVwSWas: all done
+2026-04-08 16:44:52.504096 1OgCvVwSWas from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:34486: Queued from from@from to [to@localhost] - -KZS8log2m8
+2026-04-08 16:44:52.504541 -KZS8log2m8 from=from@from queued ip=127.0.0.1:34486 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop -KZS8log2m8: from from@from
+_ queue.go:367       Queue.SendLoop -KZS8log2m8: testuser@localhost sent
+2026-04-08 16:44:52.504612 -KZS8log2m8 from=from@from to=testuser@localhost sent
+--- PASS: TestManyEmails (0.01s)
 === RUN   TestAuth
-2025-03-06 10:16:39.332043 127.0.0.1:33638 auth succeeded for testuser@localhost
-_ conn.go:722        SMTP.Conn 127.0.0.1:33638: Queued from testuser@localhost to [to@localhost] - ntA2a98I_6I
-2025-03-06 10:16:39.337355 ntA2a98I_6I from=testuser@localhost queued ip=127.0.0.1:33638 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop ntA2a98I_6I: from testuser@localhost
-_ queue.go:367       Queue.SendLoop ntA2a98I_6I: testuser@localhost sent
-2025-03-06 10:16:39.337493 ntA2a98I_6I from=testuser@localhost to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop ntA2a98I_6I: all done
-2025-03-06 10:16:39.338204 ntA2a98I_6I from=testuser@localhost all done
---- PASS: TestAuth (0.17s)
+_ queue.go:342       Queue.SendLoop -KZS8log2m8: all done
+2026-04-08 16:44:52.504779 -KZS8log2m8 from=from@from all done
+2026-04-08 16:44:52.617383 127.0.0.1:49274 auth succeeded for testuser@localhost
+_ conn.go:722        SMTP.Conn 127.0.0.1:49274: Queued from testuser@localhost to [to@localhost] - lOuReA1tC6w
+2026-04-08 16:44:52.618404 lOuReA1tC6w from=testuser@localhost queued ip=127.0.0.1:49274 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop lOuReA1tC6w: from testuser@localhost
+_ queue.go:367       Queue.SendLoop lOuReA1tC6w: testuser@localhost sent
+2026-04-08 16:44:52.618577 lOuReA1tC6w from=testuser@localhost to=testuser@localhost sent
+--- PASS: TestAuth (0.11s)
 === RUN   TestSubmissionWithoutAuth
-_ conn.go:318        SMTP.Conn 127.0.0.1:33648: error: MAIL failed: 550  5.7.9 Mail to submission port must be authenticated
---- PASS: TestSubmissionWithoutAuth (0.02s)
+_ queue.go:342       Queue.SendLoop lOuReA1tC6w: all done
+2026-04-08 16:44:52.619264 lOuReA1tC6w from=testuser@localhost all done
+_ conn.go:318        SMTP.Conn 127.0.0.1:49280: error: MAIL failed: 550  5.7.9 Mail to submission port must be authenticated
+--- PASS: TestSubmissionWithoutAuth (0.01s)
 === RUN   TestAuthOnTLS
-2025-03-06 10:16:39.637294 127.0.0.1:36638 auth succeeded for testuser@localhost
-_ conn.go:722        SMTP.Conn 127.0.0.1:36638: Queued from testuser@localhost to [to@localhost] - kvfR1sBc5iw
-2025-03-06 10:16:39.639224 kvfR1sBc5iw from=testuser@localhost queued ip=127.0.0.1:36638 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop kvfR1sBc5iw: from testuser@localhost
-_ queue.go:367       Queue.SendLoop kvfR1sBc5iw: testuser@localhost sent
-2025-03-06 10:16:39.639368 kvfR1sBc5iw from=testuser@localhost to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop kvfR1sBc5iw: all done
-2025-03-06 10:16:39.639960 kvfR1sBc5iw from=testuser@localhost all done
---- PASS: TestAuthOnTLS (0.28s)
+2026-04-08 16:44:52.744524 127.0.0.1:37834 auth succeeded for testuser@localhost
+_ conn.go:722        SMTP.Conn 127.0.0.1:37834: Queued from testuser@localhost to [to@localhost] - BHoNQm-4Tzk
+2026-04-08 16:44:52.745777 BHoNQm-4Tzk from=testuser@localhost queued ip=127.0.0.1:37834 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop BHoNQm-4Tzk: from testuser@localhost
+_ queue.go:367       Queue.SendLoop BHoNQm-4Tzk: testuser@localhost sent
+2026-04-08 16:44:52.745948 BHoNQm-4Tzk from=testuser@localhost to=testuser@localhost sent
+--- PASS: TestAuthOnTLS (0.11s)
 === RUN   TestAuthOnSMTP
-2025-03-06 10:16:39.789808 127.0.0.1:59314 auth succeeded for testuser@localhost
-_ conn.go:722        SMTP.Conn 127.0.0.1:59314: Queued from testuser@localhost to [to@localhost] - BODOOFncsic
-2025-03-06 10:16:39.792659 BODOOFncsic from=testuser@localhost queued ip=127.0.0.1:59314 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop BODOOFncsic: from testuser@localhost
-_ queue.go:367       Queue.SendLoop BODOOFncsic: testuser@localhost sent
-2025-03-06 10:16:39.792804 BODOOFncsic from=testuser@localhost to=testuser@localhost sent
---- PASS: TestAuthOnSMTP (0.15s)
+_ queue.go:342       Queue.SendLoop BHoNQm-4Tzk: all done
+2026-04-08 16:44:52.746242 BHoNQm-4Tzk from=testuser@localhost all done
+2026-04-08 16:44:52.855665 127.0.0.1:34494 auth succeeded for testuser@localhost
+_ conn.go:722        SMTP.Conn 127.0.0.1:34494: Queued from testuser@localhost to [to@localhost] - 8gYLRmOpH5M
+2026-04-08 16:44:52.857321 8gYLRmOpH5M from=testuser@localhost queued ip=127.0.0.1:34494 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop 8gYLRmOpH5M: from testuser@localhost
+_ queue.go:367       Queue.SendLoop 8gYLRmOpH5M: testuser@localhost sent
+2026-04-08 16:44:52.857405 8gYLRmOpH5M from=testuser@localhost to=testuser@localhost sent
+--- PASS: TestAuthOnSMTP (0.11s)
 === RUN   TestBrokenAuth
-_ queue.go:342       Queue.SendLoop BODOOFncsic: all done
-2025-03-06 10:16:39.793446 BODOOFncsic from=testuser@localhost all done
-_ conn.go:1193       SMTP.Conn 127.0.0.1:33656: error: error authenticating \"user\"@\"broken\": failed to auth
-2025-03-06 10:16:39.926401 127.0.0.1:33656 auth failed for user@broken
-_ conn.go:318        SMTP.Conn 127.0.0.1:33656: error: AUTH failed: 454  4.7.0 Temporary authentication failure
-_ conn.go:318        SMTP.Conn 127.0.0.1:33656: error: unknown<\"*\"> failed: 500  5.5.1 Unknown command
---- PASS: TestBrokenAuth (0.14s)
+_ queue.go:342       Queue.SendLoop 8gYLRmOpH5M: all done
+2026-04-08 16:44:52.857622 8gYLRmOpH5M from=testuser@localhost all done
+_ conn.go:1193       SMTP.Conn 127.0.0.1:49296: error: error authenticating \"user\"@\"broken\": failed to auth
+2026-04-08 16:44:52.985452 127.0.0.1:49296 auth failed for user@broken
+_ conn.go:318        SMTP.Conn 127.0.0.1:49296: error: AUTH failed: 454  4.7.0 Temporary authentication failure
+_ conn.go:318        SMTP.Conn 127.0.0.1:49296: error: unknown<\"*\"> failed: 500  5.5.1 Unknown command
+--- PASS: TestBrokenAuth (0.13s)
 === RUN   TestWrongMailParsing
-_ conn.go:318        SMTP.Conn 127.0.0.1:59330: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59330: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:59330: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:59330: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:59338: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59338: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:59338: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:59338: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:59344: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59344: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:59344: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:59344: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:59358: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59358: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:59358: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:59358: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:59368: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59368: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:59368: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:59368: error: too many errors, breaking connection
-_ conn.go:318        SMTP.Conn 127.0.0.1:59384: error: MAIL failed: 501  5.1.7 Sender address malformed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59384: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:318        SMTP.Conn 127.0.0.1:59384: error: RCPT failed: 501  5.1.3 Malformed destination address
-_ conn.go:325        SMTP.Conn 127.0.0.1:59384: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:34496: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34496: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:34496: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:34496: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:34498: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34498: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:34498: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:34498: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:34512: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34512: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:34512: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:34512: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:34518: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34518: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:34518: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:34518: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:34520: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34520: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:34520: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:34520: error: too many errors, breaking connection
+_ conn.go:318        SMTP.Conn 127.0.0.1:34534: error: MAIL failed: 501  5.1.7 Sender address malformed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34534: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:318        SMTP.Conn 127.0.0.1:34534: error: RCPT failed: 501  5.1.3 Malformed destination address
+_ conn.go:325        SMTP.Conn 127.0.0.1:34534: error: too many errors, breaking connection
 --- PASS: TestWrongMailParsing (0.01s)
 === RUN   TestNullMailFrom
 --- PASS: TestNullMailFrom (0.00s)
 === RUN   TestRcptBeforeMail
-_ conn.go:318        SMTP.Conn 127.0.0.1:59392: error: RCPT failed: 503  5.5.1 Sender not yet given
+_ conn.go:318        SMTP.Conn 127.0.0.1:34550: error: RCPT failed: 503  5.5.1 Sender not yet given
 --- PASS: TestRcptBeforeMail (0.00s)
 === RUN   TestRcptOption
 --- PASS: TestRcptOption (0.01s)
 === RUN   TestRelayForbidden
-2025-03-06 10:16:39.962263 127.0.0.1:59420 rejected from=from@somewhere to=[to@somewhere] - relay not allowed
-_ conn.go:318        SMTP.Conn 127.0.0.1:59420: error: RCPT failed: 503  5.7.1 Relay not allowed
+2026-04-08 16:44:53.002622 127.0.0.1:34568 rejected from=from@somewhere to=[to@somewhere] - relay not allowed
+_ conn.go:318        SMTP.Conn 127.0.0.1:34568: error: RCPT failed: 503  5.7.1 Relay not allowed
 --- PASS: TestRelayForbidden (0.00s)
 === RUN   TestTooManyRecipients
-2025-03-06 10:16:40.141395 127.0.0.1:33660 auth succeeded for testuser@localhost
-_ conn.go:318        SMTP.Conn 127.0.0.1:33660: error: RCPT failed: 452  4.5.3 Too many recipients
---- PASS: TestTooManyRecipients (0.20s)
+2026-04-08 16:44:53.114885 127.0.0.1:49312 auth succeeded for testuser@localhost
+_ conn.go:318        SMTP.Conn 127.0.0.1:49312: error: RCPT failed: 452  4.5.3 Too many recipients
+--- PASS: TestTooManyRecipients (0.12s)
 === RUN   TestRcptBrokenExists
-_ conn.go:622        SMTP.Conn 127.0.0.1:59432: error: error checking if user \"to@broken\" exists: failed to check if user exists
-2025-03-06 10:16:40.186544 127.0.0.1:59432 rejected from=from@localhost to=[to@broken] - error checking if user exists: failed to check if user exists
-_ conn.go:318        SMTP.Conn 127.0.0.1:59432: error: RCPT failed: 451  4.4.3 Temporary error checking address
---- PASS: TestRcptBrokenExists (0.02s)
+_ conn.go:622        SMTP.Conn 127.0.0.1:34570: error: error checking if user \"to@broken\" exists: failed to check if user exists
+2026-04-08 16:44:53.132388 127.0.0.1:34570 rejected from=from@localhost to=[to@broken] - error checking if user exists: failed to check if user exists
+_ conn.go:318        SMTP.Conn 127.0.0.1:34570: error: RCPT failed: 451  4.4.3 Temporary error checking address
+--- PASS: TestRcptBrokenExists (0.01s)
 === RUN   TestRcptUserDoesNotExist
-2025-03-06 10:16:40.205039 127.0.0.1:59434 rejected from=from@localhost to=[doesnotexist@localhost] - local user does not exist
-_ conn.go:318        SMTP.Conn 127.0.0.1:59434: error: RCPT failed: 550  5.1.1 Destination address is unknown (user does not exist)
---- PASS: TestRcptUserDoesNotExist (0.02s)
+2026-04-08 16:44:53.141216 127.0.0.1:34586 rejected from=from@localhost to=[doesnotexist@localhost] - local user does not exist
+_ conn.go:318        SMTP.Conn 127.0.0.1:34586: error: RCPT failed: 550  5.1.1 Destination address is unknown (user does not exist)
+--- PASS: TestRcptUserDoesNotExist (0.01s)
 === RUN   TestTooMuchData
-_ conn.go:722        SMTP.Conn 127.0.0.1:59436: Queued from from@from to [to@localhost] - Kvyxixe2Frs
-2025-03-06 10:16:40.800002 Kvyxixe2Frs from=from@from queued ip=127.0.0.1:59436 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop Kvyxixe2Frs: from from@from
-_ queue.go:367       Queue.SendLoop Kvyxixe2Frs: testuser@localhost sent
-2025-03-06 10:16:40.800455 Kvyxixe2Frs from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop Kvyxixe2Frs: all done
-2025-03-06 10:16:40.881251 Kvyxixe2Frs from=from@from all done
-_ conn.go:722        SMTP.Conn 127.0.0.1:59436: Queued from from@from to [to@localhost] - 8g5JwImklLQ
-2025-03-06 10:16:41.446497 8g5JwImklLQ from=from@from queued ip=127.0.0.1:59436 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop 8g5JwImklLQ: from from@from
-_ queue.go:367       Queue.SendLoop 8g5JwImklLQ: testuser@localhost sent
-2025-03-06 10:16:41.446858 8g5JwImklLQ from=from@from to=testuser@localhost sent
-_ queue.go:342       Queue.SendLoop 8g5JwImklLQ: all done
-2025-03-06 10:16:41.530366 8g5JwImklLQ from=from@from all done
-_ conn.go:318        SMTP.Conn 127.0.0.1:59436: error: DATA failed: 552  5.3.4 Message too big
-_ conn.go:722        SMTP.Conn 127.0.0.1:59436: Queued from from@from to [to@localhost] - GSHsNlqbqcE
-2025-03-06 10:16:42.744837 GSHsNlqbqcE from=from@from queued ip=127.0.0.1:59436 to=[to@localhost]
-_ queue.go:308       Queue.SendLoop GSHsNlqbqcE: from from@from
-_ queue.go:367       Queue.SendLoop GSHsNlqbqcE: testuser@localhost sent
-2025-03-06 10:16:42.745369 GSHsNlqbqcE from=from@from to=testuser@localhost sent
---- PASS: TestTooMuchData (2.55s)
+_ conn.go:722        SMTP.Conn 127.0.0.1:34600: Queued from from@from to [to@localhost] - CrzEWxk0DBA
+2026-04-08 16:44:53.440016 CrzEWxk0DBA from=from@from queued ip=127.0.0.1:34600 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop CrzEWxk0DBA: from from@from
+_ queue.go:367       Queue.SendLoop CrzEWxk0DBA: testuser@localhost sent
+2026-04-08 16:44:53.440241 CrzEWxk0DBA from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop CrzEWxk0DBA: all done
+2026-04-08 16:44:53.462824 CrzEWxk0DBA from=from@from all done
+_ conn.go:722        SMTP.Conn 127.0.0.1:34600: Queued from from@from to [to@localhost] - SPW-uNNz5AA
+2026-04-08 16:44:54.126755 SPW-uNNz5AA from=from@from queued ip=127.0.0.1:34600 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop SPW-uNNz5AA: from from@from
+_ queue.go:367       Queue.SendLoop SPW-uNNz5AA: testuser@localhost sent
+2026-04-08 16:44:54.127000 SPW-uNNz5AA from=from@from to=testuser@localhost sent
+_ queue.go:342       Queue.SendLoop SPW-uNNz5AA: all done
+2026-04-08 16:44:54.148566 SPW-uNNz5AA from=from@from all done
+_ conn.go:318        SMTP.Conn 127.0.0.1:34600: error: DATA failed: 552  5.3.4 Message too big
+_ conn.go:722        SMTP.Conn 127.0.0.1:34600: Queued from from@from to [to@localhost] - BAkvTokTWlA
+2026-04-08 16:44:55.381747 BAkvTokTWlA from=from@from queued ip=127.0.0.1:34600 to=[to@localhost]
+_ queue.go:308       Queue.SendLoop BAkvTokTWlA: from from@from
+_ queue.go:367       Queue.SendLoop BAkvTokTWlA: testuser@localhost sent
+2026-04-08 16:44:55.381933 BAkvTokTWlA from=from@from to=testuser@localhost sent
+--- PASS: TestTooMuchData (2.24s)
 === RUN   TestSimpleCommands
-_ conn.go:318        SMTP.Conn 127.0.0.1:59452: error: VRFY failed: 502  5.5.1 You have a strange feeling for a moment, then it passes.
-_ conn.go:318        SMTP.Conn 127.0.0.1:59452: error: EXPN failed: 502  5.5.1 You feel disoriented for a moment.
+_ conn.go:318        SMTP.Conn 127.0.0.1:34604: error: VRFY failed: 502  5.5.1 You have a strange feeling for a moment, then it passes.
+_ conn.go:318        SMTP.Conn 127.0.0.1:34604: error: EXPN failed: 502  5.5.1 You feel disoriented for a moment.
 --- PASS: TestSimpleCommands (0.00s)
 === RUN   TestLongLines
-_ conn.go:318        SMTP.Conn 127.0.0.1:59466: error: unknown<\"\"> failed: 500  5.5.1 Unknown command
-_ conn.go:348        SMTP.Conn 127.0.0.1:59466: error: exiting with error: line too long
+_ conn.go:318        SMTP.Conn 127.0.0.1:34618: error: unknown<\"\"> failed: 500  5.5.1 Unknown command
+_ conn.go:348        SMTP.Conn 127.0.0.1:34618: error: exiting with error: line too long
 --- PASS: TestLongLines (0.00s)
 === RUN   TestReset
---- PASS: TestReset (0.01s)
+--- PASS: TestReset (0.00s)
 === RUN   TestRepeatedStartTLS
-_ conn.go:318        SMTP.Conn 127.0.0.1:59486: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
---- PASS: TestRepeatedStartTLS (0.03s)
+_ conn.go:318        SMTP.Conn 127.0.0.1:34624: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
+--- PASS: TestRepeatedStartTLS (0.01s)
 === RUN   TestStartTLSOnTLS
-_ conn.go:318        SMTP.Conn 127.0.0.1:36644: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
---- PASS: TestStartTLSOnTLS (0.02s)
+_ queue.go:342       Queue.SendLoop BAkvTokTWlA: all done
+2026-04-08 16:44:55.399650 BAkvTokTWlA from=from@from all done
+_ conn.go:318        SMTP.Conn 127.0.0.1:37850: error: STARTTLS failed: 503  5.5.1 You are already wearing that!
+--- PASS: TestStartTLSOnTLS (0.01s)
 === RUN   TestAddDKIMSigner
-    testlib.go:32: test directory: "/tmp/testlib_626315947"
-_ queue.go:342       Queue.SendLoop GSHsNlqbqcE: all done
-2025-03-06 10:16:42.823495 GSHsNlqbqcE from=from@from all done
---- PASS: TestAddDKIMSigner (0.04s)
+    testlib.go:32: test directory: "/tmp/testlib_1442707442"
+--- PASS: TestAddDKIMSigner (0.02s)
 === RUN   FuzzConnection
 --- PASS: FuzzConnection (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/smtpsrv	4.881s
+ok  	blitiri.com.ar/go/chasquid/internal/smtpsrv	3.240s
 === RUN   TestParsePolicy
     sts_test.go:90: pol1: &{Version:STSv1 Mode:enforce MXs:[*.mail.example.com] MaxAge:34h17m36s}
 --- PASS: TestParsePolicy (0.00s)
 === RUN   TestCheckPolicy
 --- PASS: TestCheckPolicy (0.00s)
 === RUN   TestMatchDomain
---- PASS: TestMatchDomain (0.01s)
+--- PASS: TestMatchDomain (0.00s)
 === RUN   TestMXIsAllowed
 --- PASS: TestMXIsAllowed (0.00s)
 === RUN   TestFetch
@@ -2363,34 +2398,34 @@
     sts_test.go:210: policy404: got error as expected: HTTP response status code: 404
     sts_test.go:218: version99: got expected error: unknown policy version
     sts_test.go:226: domErr: got expected error: error for testing purposes
---- PASS: TestFetch (0.01s)
+--- PASS: TestFetch (0.00s)
 === RUN   TestPolicyTooBig
     sts_test.go:242: got error as expected: MTA-STS TXT record missing
---- PASS: TestPolicyTooBig (0.13s)
+--- PASS: TestPolicyTooBig (0.01s)
 === RUN   TestCacheBasics
-    testlib.go:32: test directory: "/tmp/testlib_2840957487"
+    testlib.go:32: test directory: "/tmp/testlib_3926972051"
     sts_test.go:277: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:286: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:300: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:309: cache fetched domErr: <nil>
---- PASS: TestCacheBasics (0.04s)
+--- PASS: TestCacheBasics (0.00s)
 === RUN   TestCacheBadData
-    testlib.go:32: test directory: "/tmp/testlib_697580820"
+    testlib.go:32: test directory: "/tmp/testlib_4227192381"
     sts_test.go:349: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:363: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:372: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:349: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:363: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
     sts_test.go:372: cache fetched domain.com: &{STSv1 enforce [*.mail.domain.com] 1h0m0s}
---- PASS: TestCacheBadData (0.01s)
+--- PASS: TestCacheBadData (0.00s)
 === RUN   TestCacheRefresh
-    testlib.go:32: test directory: "/tmp/testlib_2239707022"
+    testlib.go:32: test directory: "/tmp/testlib_2441934764"
     sts_test.go:389: Fetch "refresh-test": &{STSv1 enforce [mx] 1m40s}
     sts_test.go:389: Fetch "refresh-test": &{STSv1 enforce [mx] 1m40s}
     sts_test.go:389: Fetch "refresh-test": &{STSv1 enforce [mx] 3m20s}
 --- PASS: TestCacheRefresh (0.01s)
 === RUN   TestCacheSlashSafe
-    testlib.go:32: test directory: "/tmp/testlib_1936776584"
+    testlib.go:32: test directory: "/tmp/testlib_109742454"
     sts_test.go:464: recovered: domain contains slash
 --- PASS: TestCacheSlashSafe (0.00s)
 === RUN   TestURLForDomain
@@ -2400,9 +2435,9 @@
 === RUN   TestHTTPGet
 --- PASS: TestHTTPGet (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/sts	0.252s
+ok  	blitiri.com.ar/go/chasquid/internal/sts	0.038s
 === RUN   TestBasic
-    testlib.go:32: test directory: "/tmp/testlib_376615011"
+    testlib.go:32: test directory: "/tmp/testlib_2775609372"
 --- PASS: TestBasic (0.00s)
 === RUN   TestRemoveCheck
     testlib_test.go:33: recovered: invalid/dangerous directory
@@ -2413,55 +2448,55 @@
     testlib_test.go:60: recovered: invalid/dangerous path
 --- PASS: TestRewriteSafeguard (0.00s)
 === RUN   TestRewrite
-    testlib.go:32: test directory: "/tmp/testlib_1160796324"
+    testlib.go:32: test directory: "/tmp/testlib_1330432444"
 --- PASS: TestRewrite (0.00s)
 === RUN   TestGetFreePort
---- PASS: TestGetFreePort (0.00s)
+--- PASS: TestGetFreePort (0.01s)
 === RUN   TestWaitFor
 --- PASS: TestWaitFor (0.02s)
 === RUN   TestGenerateCert
-    testlib.go:32: test directory: "/tmp/testlib_2468916010"
---- PASS: TestGenerateCert (0.40s)
+    testlib.go:32: test directory: "/tmp/testlib_2259863917"
+--- PASS: TestGenerateCert (0.24s)
 === RUN   TestGenerateCertBadDir
---- PASS: TestGenerateCertBadDir (1.06s)
+--- PASS: TestGenerateCertBadDir (0.11s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/testlib	1.512s
+ok  	blitiri.com.ar/go/chasquid/internal/testlib	0.480s
 === RUN   TestVersionName
 --- PASS: TestVersionName (0.00s)
 === RUN   TestCipherSuiteName
 --- PASS: TestCipherSuiteName (0.00s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/tlsconst	0.056s
+ok  	blitiri.com.ar/go/chasquid/internal/tlsconst	0.082s
 ?   	blitiri.com.ar/go/chasquid/internal/trace	[no test files]
 === RUN   TestEmptyLoad
-    userdb_test.go:37: file: "/tmp/userdb_test461721354"
-    userdb_test.go:37: file: "/tmp/userdb_test2073677132"
---- PASS: TestEmptyLoad (0.00s)
+    userdb_test.go:37: file: "/tmp/userdb_test4172371037"
+    userdb_test.go:37: file: "/tmp/userdb_test4206601582"
+--- PASS: TestEmptyLoad (0.01s)
 === RUN   TestWrite
-    userdb_test.go:37: file: "/tmp/userdb_test2912769306"
---- PASS: TestWrite (1.13s)
+    userdb_test.go:37: file: "/tmp/userdb_test460937258"
+--- PASS: TestWrite (0.55s)
 === RUN   TestNew
---- PASS: TestNew (0.14s)
+--- PASS: TestNew (0.07s)
 === RUN   TestInvalidUsername
-    userdb_test.go:37: file: "/tmp/userdb_test1649529714"
+    userdb_test.go:37: file: "/tmp/userdb_test2164800534"
 --- PASS: TestInvalidUsername (0.00s)
 === RUN   TestPlainScheme
-    userdb_test.go:37: file: "/tmp/userdb_test2074194381"
+    userdb_test.go:37: file: "/tmp/userdb_test611106053"
 --- PASS: TestPlainScheme (0.00s)
 === RUN   TestDeniedScheme
-    userdb_test.go:37: file: "/tmp/userdb_test3202351460"
+    userdb_test.go:37: file: "/tmp/userdb_test2771505834"
 --- PASS: TestDeniedScheme (0.00s)
 === RUN   TestReload
-    userdb_test.go:37: file: "/tmp/userdb_test1964643077"
+    userdb_test.go:37: file: "/tmp/userdb_test1234049759"
 --- PASS: TestReload (0.00s)
 === RUN   TestRemoveUser
-    userdb_test.go:37: file: "/tmp/userdb_test867076104"
---- PASS: TestRemoveUser (0.14s)
+    userdb_test.go:37: file: "/tmp/userdb_test3006112222"
+--- PASS: TestRemoveUser (0.07s)
 === RUN   TestExists
-    userdb_test.go:37: file: "/tmp/userdb_test2629246746"
---- PASS: TestExists (0.14s)
+    userdb_test.go:37: file: "/tmp/userdb_test2631612803"
+--- PASS: TestExists (0.07s)
 PASS
-ok  	blitiri.com.ar/go/chasquid/internal/userdb	1.581s
+ok  	blitiri.com.ar/go/chasquid/internal/userdb	0.874s
    create-stamp debian/debhelper-build-stamp
    dh_testroot -O--buildsystem=golang
    dh_prep -O--buildsystem=golang
@@ -2515,8 +2550,8 @@
 dpkg-gencontrol: warning: package chasquid: substitution variable ${misc:Static-Built-Using} unused, but is defined
    dh_md5sums -O--buildsystem=golang
    dh_builddeb -O--buildsystem=golang
-dpkg-deb: building package 'chasquid' in '../chasquid_1.15.0-1_i386.deb'.
 dpkg-deb: building package 'chasquid-dbgsym' in '../chasquid-dbgsym_1.15.0-1_i386.deb'.
+dpkg-deb: building package 'chasquid' in '../chasquid_1.15.0-1_i386.deb'.
  dpkg-genbuildinfo --build=binary -O../chasquid_1.15.0-1_i386.buildinfo
  dpkg-genchanges --build=binary -O../chasquid_1.15.0-1_i386.changes
 dpkg-genchanges: info: binary-only upload (no source code included)
@@ -2524,12 +2559,14 @@
 dpkg-buildpackage: info: binary-only upload (no source included)
 dpkg-genchanges: info: including full source code in upload
 I: copying local configuration
+I: user script /srv/workspace/pbuilder/55605/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/55605/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/52388 and its subdirectories
-I: Current time: Wed Mar  5 22:17:28 -12 2025
-I: pbuilder-time-stamp: 1741256248
+I: removing directory /srv/workspace/pbuilder/55605 and its subdirectories
+I: Current time: Thu Apr  9 06:46:22 +14 2026
+I: pbuilder-time-stamp: 1775666782