This tree is selectively copied from development copies of the relevant files. The files are then modified to replace references to platform: by ../.. .

Eventually these files can be replaced by stable versions of the files.