implements qrcode error correction coding