de statemagine diagram