sub checksum { my $s = shift; utf8::downgrade($s, 1) or croak("Wide character in subroutine entry"); return unpack("%32C*", $s) % 65535; }