sub hex_to_signed_quad { return unpack 'q>', substr(('0'x16).$_[0], -16); }