anchor.diff:  
     bool get gameEnded => _state == GameState.won || _state == GameState.lost;
   
  -  Duration get duration {
  -    if (_startTime == null) {
  -      assert(state == GameState.reset);
  -      return null;
  -    } else {
  -      assert((state == GameState.started) == (_endTime == null));
  -      final end = (_endTime == null) ? DateTime.now() : _endTime;
  -      return end.difference(_startTime);
  -    }
  -  }
  +  Duration get duration => _watch.elapsed;
   
     bool canToggleFlag(int x, int y) {
       final currentSS = _states.get(x, y);
  
positive.code:   void _setState(GameState value) {
      assert(value != null);
      assert(_state != null);
      assert((_state == GameState.reset) == (_startTime == null));
      if (_state != value) {
        _state = value;
        if (_state == GameState.started) {
          _startTime = DateTime.now();
        } else if (gameEnded) {
          _endTime = DateTime.now();
        }
        _gameStateEvent.add(_state);
      }
  
negative.code: 
    void _ensureStarted() {
      if (state == GameState.reset) {
        assert(!_watch.isRunning);
        _setState(GameState.started);
      }
      assert(state == GameState.started);
      assert(_watch.isRunning);
    }
  
    int _getAdjacentCount(int x, int y, SquareState state) {
  