abstract contract ERC20Blacklistable is ERC20, Blacklistable {
    /**
     * @dev See {ERC20-_beforeTokenTransfer}.
     *
     * Requirements:
     *
     * - the contract must not be paused.
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override {
        super._beforeTokenTransfer(from, to, amount);

        require(!_isBlacklisted(msg.sender), "ERC20Blacklistable: sender blacklisted");
    }
}
function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override {
    super._beforeTokenTransfer(from, to, amount);

    require(!_isBlacklisted(msg.sender), "ERC20Blacklistable: sender blacklisted");
}

/**
 * @dev See {ERC20-_beforeTokenTransfer}.
 *
 * Requirements:
 *
 * - the contract must not be paused.
 */