Complete rewrite of the hex parsing code. Now preallocates the entire program and fills it in based on the hex data. Then chunks and sends to the device. Much more efficient and safe through various scenarios ... and simpler code.