forked from: flash on 2016-1-17

