Fix segfault when creating KDMs with certificates and project folders (not DKDMs).
Add a dialog to show which screens have potentially-problematic certificate validity periods when making KDMs (#2645).
Cleanup: replace some list with vector.
Pass make_kdm as a function into kdm_for_screen().
Cleanup: extract encrypt() call from Film::make_kdm().
Warn/error on making KDMs using recipient certs whose validity periods lie outside those of the KDMs (#2423).
Bump libdcp to a version with UTCOffset. This is needed for 2.17.x but I ran the tests on main and they look OK, so doing it this way should save a few merge conflicts.
Make the value used for 'f' in KDM names consistent (#1657). Before it was mostly the film name, but this is confusing when a single film contains multiple CPLs.
Replace %c with nothing in KDM filenames if the cinema is not known.
C++11 tidying.
BOOST_FOREACH.
std::shared_ptr
Remove swaroop variant.
Add a 'Make DKDM' dialogue box to simplify and (hopefully) clarify DKDM creation (#1637).
Derive Screen from a new class KDMRecipient.
Move TrustedDevice to its own source files.
Extract common code out into kdm_for_screen()
Put Font and Screen into dcpomatic namespace.
Allow specification of trusted devices by thumbprint rather than by full certificate.
No-op; fix GPL address and use the explicit-program-name version.