        function nuke(uint256 tokenId) public whenNotPaused nonReentrant {
          require(
            nftContract.isApprovedOrOwner(msg.sender, tokenId),
            'ERC721: caller is not token owner or approved'
          );
          require(
            nftContract.getApproved(tokenId) == address(this) ||
L160:       nftContract.isApprovedForAll(msg.sender, address(this)),
            'Contract must be approved to transfer the NFT.'
          );
          [...]
L176:     nftContract.burn(tokenId); // Burn the token
          [...]
        }
        function burn(uint256 tokenId) external whenNotPaused nonReentrant {
          require(
L143:       isApprovedOrOwner(msg.sender, tokenId),
            'ERC721: caller is not token owner or approved'
          );
          [...]
        }
        function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
            address owner = ERC721.ownerOf(tokenId);
            return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);
        }
    function nuke(uint256 tokenId) public whenNotPaused nonReentrant {
      require(
        nftContract.isApprovedOrOwner(msg.sender, tokenId),
        'ERC721: caller is not token owner or approved'
      );
      require(
        nftContract.getApproved(tokenId) == address(this) ||
-         nftContract.isApprovedForAll(msg.sender, address(this)),
+         nftContract.isApprovedForAll(nftContract.ownerOf(tokenId), address(this)),
        'Contract must be approved to transfer the NFT.'
      );
      [...]
    }
