Wrapping up decode2 into a usable main() function with real points
Modified stream_pairs() and stream_triples() to be infinite for better coverage
Wrapped preliminary decoding in functions with new correct blob locations
Converting to printed points and introduced read_code() from decode.readCode()
Moved most paper-specific information in decode2 to new dimensions
Converted compose2 to use OptParser and paper information from dimensions
Added more dependencies on dimensions
Starting to make compose2.main() act like compose.main()
Introduced top-left icon, prepared text support, and shoved a bunch of functions off to svgutils
Added httputils for posting composed PDF back to server
Renamed httputils to apiutils
Rearranged main() to prepare for atlas composition
Using the correct QR code
Introduced apiutils.finish_print() and started to respond correctly in print.php for one-page prints
Simplified the one loop
Brought proper atlas handling from compose.main()
Moved latlon_placeinfo() to lib/data.php and stopped using composition.php entirely
Correctly closing up queue message when finished
Added boldface logotype
Added top-right text with URL and copyright