```\\nfunction numberDrawn(bytes32 _requestId, uint256 _randomness)\\n    external\\n    whenNotPaused\\n    requireAccount(_rngContract)\\n    nonReentrant\\n{\\n    DrawData storage current = draws[_drawsToDate];\\n    require(\\n        current.randomNumberRequestId == _requestId,\\n        "DCBW721: Request ID mismatch"\\n    );\\n\\n    current.winningEdition = uint64(uint256(_randomness % _maxTokenId).add(1));\\n\\n    if (_exists(current.winningEdition)) {\\n        current.winner = ownerOf(current.winningEdition);\\n        current.prizePoolWon = current.isGrandPrize == uint96(1)\\n            ? uint96(_grandPrizePool)\\n            : uint96(_reserves);\\n        _payout(current);\\n    }\\n\\n    emit DrawFinished(current.winner, current.winningEdition);\\n\\n    /// @notice update state\\n    _drawsToDate++;\\n    _state = DrawState.Closed;\\n\\n    /// @notice update draw record\\n    current.state = _state;\\n}\\n```\\n