semaphore.*: latest (non-working) verson