Complete source code as PDF (145 pages)