# Path: sibyl/config.py
# class Config(object):
#     def __init__(self, default_config, files):
#     def expandpath(path):
#     def parse_files(self, files):
#     def dump(self):
#     def jit_engine(self):
#     def available_tests(self):
#     def miasm_engine(self):
#     def pin_root(self):
#     def pin_tracer(self):
#     def prune_strategy(self):
#     def prune_keep(self):
#     def prune_keep_max(self):
#     def stubs(self):
#     def idaq64_path(self):
#     def ghidra_headless_path(self):
#     def ghidra_export_function(self):
# 
# Path: sibyl/actions/action.py
# class Action(object):
# 
#     "Parent class for actions"
# 
#     _name_ = ""
#     _desc_ = ""
#     _args_ = []  # List of (*args, **kwargs)
# 
#     def __init__(self, command_line):
#         # Parse command line
#         parser = argparse.ArgumentParser(
#             prog="%s %s" % (sys.argv[0], self._name_))
#         for args, kwargs in self._args_:
#             parser.add_argument(*args, **kwargs)
#         self.args = parser.parse_args(command_line)
# 
#         # Run action
#         self.run()
# 
#     def run(self):
#         raise NotImplementedError("Abstract method")
# 
#     @property
#     def name(self):
#         """Action name"""
#         return self._name_
# 
#     @property
#     def description(self):
#         """Action description"""
#         return self._desc_


import os
from sibyl.config import config, config_paths
from sibyl.actions.action import Action
                val = "ERROR"
            print val
        else:
            self.show()

    def show(self):
        # Configuration files
        files = [fpath for fpath in config_paths if os.path.isfile(fpath)]
        if not files:
            print "No configuration file found. Supported paths:"
            print "\t" + "\n\t".join(config_paths)
        else:
            print "Configuration loaded from %s" % ", ".join(files)

        # Jitter engine
        engines = config.config["jit_engine"]
        if "miasm" in engines:
            idx = engines.index("miasm")
            engines[idx:idx + 1] = config.config["miasm_engine"]
        print "Jitter engine (preference order): %s" % ", ".join(engines)
        print "Elected jitter engine: %s" % config.jit_engine

        # Stubbing
        stubs = config.stubs
        if stubs:
            print "API stubbing activated on supported jitter, from %d files" % len(stubs)
        else:
            print "API stubbing is deactivated"

        # PIN

# Path: sibyl/config.py
# class Config(object):
#     def __init__(self, default_config, files):
#     def expandpath(path):
#     def parse_files(self, files):
#     def dump(self):
#     def jit_engine(self):
#     def available_tests(self):
#     def miasm_engine(self):
#     def pin_root(self):
#     def pin_tracer(self):
#     def prune_strategy(self):
#     def prune_keep(self):
#     def prune_keep_max(self):
#     def stubs(self):
#     def idaq64_path(self):
#     def ghidra_headless_path(self):
#     def ghidra_export_function(self):
# 
# Path: sibyl/actions/action.py
# class Action(object):
# 
#     "Parent class for actions"
# 
#     _name_ = ""
#     _desc_ = ""
#     _args_ = []  # List of (*args, **kwargs)
# 
#     def __init__(self, command_line):
#         # Parse command line
#         parser = argparse.ArgumentParser(
#             prog="%s %s" % (sys.argv[0], self._name_))
#         for args, kwargs in self._args_:
#             parser.add_argument(*args, **kwargs)
#         self.args = parser.parse_args(command_line)
# 
#         # Run action
#         self.run()
# 
#     def run(self):
#         raise NotImplementedError("Abstract method")
# 
#     @property
#     def name(self):
#         """Action name"""
#         return self._name_
# 
#     @property
#     def description(self):
#         """Action description"""
#         return self._desc_


# Path: sibyl/actions/config.py
import os
from sibyl.config import config, config_paths
from sibyl.actions.action import Action

                val = "ERROR"
            print val
        else:
            self.show()

    def show(self):
        # Configuration files
        files = [fpath for fpath in config_paths if os.path.isfile(fpath)]
        if not files:
            print "No configuration file found. Supported paths:"
            print "\t" + "\n\t".join(config_paths)
        else:
            print "Configuration loaded from %s" % ", ".join(files)

        # Jitter engine
        engines = config.config["jit_engine"]
        if "miasm" in engines:
            idx = engines.index("miasm")
            engines[idx:idx + 1] = config.config["miasm_engine"]
        print "Jitter engine (preference order): %s" % ", ".join(engines)
        print "Elected jitter engine: %s" % config.jit_engine

        # Stubbing
        stubs = config.stubs
        if stubs:
            print "API stubbing activated on supported jitter, from %d files" % len(stubs)
        else:
            print "API stubbing is deactivated"

        # PIN

        if (config.pin_root and