forked from: flash on 2016-4-16

