These two 16-bit code units are chosen from the range 0xD800–0xDFFF (which had not previously been assigned to characters). Values in this range are not used as characters, and UTF-16 provides no legal way to code them as individual code points. Thus a UTF-16 stream consists of single 16-bit code points outside that range (for code points in the BMP) and pairs of 16-bit values within that range (for code points above the BMP).