CVE-2026-66046: replace the linear scan of elementType->defaultAtts in
storeAtts() with a hash table lookup, and carry the attribute index
over in dtdCopy() so the lookup stays in bounds
CVE-2026-93990: reject a UTF-16 high surrogate that is not followed by
a low surrogate, so a lone high surrogate can no longer consume the
next code unit as a fake low and hide markup such as '<' from the
tokenizer