I spent entirely too long making this.