Problem 15 solved.  This one was really fun.