Mostly self-explanatory to use
Thanks to 383 for providing most of the source code for me. Thanks for karthikeyan for providing this idea to 383 and me.