old_contents: import os
  from setuptools import setup, find_packages
  
  on_rtd = os.environ.get('READTHEDOCS') == 'True'
  
  
  def rtd_dependent_deps():
      # RTD tries to build z3, ooms, and fails to build.
      if on_rtd:
          return []
      else:
          return ['z3-solver']
  
  
  # If you update native_deps please update the `REQUIREMENTS_TO_IMPORTS` dict in `utils/install_helper.py`
  # (we need to know how to import a given native dependency so we can check if native dependencies are installed)
  native_deps = [
      'capstone>=3.0.5',
      'pyelftools',
      'unicorn',
  ]
  
  extra_require = {
      'native': native_deps,
      'dev': native_deps + [
          'keystone-engine',
          'coverage',
          'nose',
          'Sphinx',
      ],
      # noks - no keystone
      'dev-noks': native_deps + [
          'coverage',
          'nose',
          'Sphinx',
      ],
      'redis': [
          'redis',
      ]
  }
  
  
  setup(
      name='manticore',
      description='Manticore is a symbolic execution tool for analysis of binaries and smart contracts.',
      url='https://github.com/trailofbits/manticore',
      author='Trail of Bits',
      version='0.2.4',
      packages=find_packages(exclude=['tests', 'tests.*']),
      python_requires='>=3.6',
      install_requires=[
          'pyyaml',
          # evm dependencies
          'pysha3',
          'prettytable',
          'pyevmasm==0.2.0',
          'rlp',
          'ply'
      ] + rtd_dependent_deps(),
      dependency_links=[
          'https://github.com/aquynh/capstone/archive/next.zip#egg=capstone-4&subdirectory=bindings/python',
      ],
      extras_require=extra_require,
      entry_points={
          'console_scripts': [
              'manticore = manticore.__main__:main'
          ]
      }
  )
  
new_contents: import os
  from setuptools import setup, find_packages
  
  on_rtd = os.environ.get('READTHEDOCS') == 'True'
  
  
  def rtd_dependent_deps():
      # RTD tries to build z3, ooms, and fails to build.
      if on_rtd:
          return []
      else:
          return ['z3-solver']
  
  
  # If you update native_deps please update the `REQUIREMENTS_TO_IMPORTS` dict in `utils/install_helper.py`
  # (we need to know how to import a given native dependency so we can check if native dependencies are installed)
  native_deps = [
      'capstone==4.0.1',
      'pyelftools',
      'unicorn',
  ]
  
  extra_require = {
      'native': native_deps,
      'dev': native_deps + [
          'keystone-engine',
          'coverage',
          'nose',
          'Sphinx',
      ],
      # noks - no keystone
      'dev-noks': native_deps + [
          'coverage',
          'nose',
          'Sphinx',
      ],
      'redis': [
          'redis',
      ]
  }
  
  
  setup(
      name='manticore',
      description='Manticore is a symbolic execution tool for analysis of binaries and smart contracts.',
      url='https://github.com/trailofbits/manticore',
      author='Trail of Bits',
      version='0.2.4',
      packages=find_packages(exclude=['tests', 'tests.*']),
      python_requires='>=3.6',
      install_requires=[
          'pyyaml',
          # evm dependencies
          'pysha3',
          'prettytable',
          'pyevmasm==0.2.0',
          'rlp',
          'ply'
      ] + rtd_dependent_deps(),
      extras_require=extra_require,
      entry_points={
          'console_scripts': [
              'manticore = manticore.__main__:main'
          ]
      }
  )
  
subject: Update Capstone to 4.0.1 (#1312)