The programming specifications adhered to in the development of this report can be found here.