# Path: pgp/commands/gpg/exceptions.py
# class FatalException(Exception):
# 
#     def __init__(self, exit_code):
#         self.exit_code


from argparse import ArgumentError
from pgp.commands.gpg.exceptions import FatalException
                result.expand(self.groups[r])
            else:
                result.append(r)
        return result

    def get_hidden_recipients(self):
        result = []
        for r in self.hidden_recipients:
            if r in self.groups:
                result.expand(self.groups[r])
            else:
                result.append(r)
        for r in result:
            self.verify_trust(r)
        for r in self.hidden_encrypt_to:
            if r in self.groups:
                result.expand(self.groups[r])
            else:
                result.append(r)
        return result

    def find_recipient_public_key(self, recipient_string):
        # https://tools.ietf.org/html/rfc4880#section-5.2.3.21
        # The standard is ambiguous here about which flag we should obey when
        # choosing a subkey. Do we want 0x04 (communications) or 0x08
        # (storage)?
        #
        # Since these are called "messages", we will assume 0x04.
        public_key = self.keyring_helper.find_recipient(recipient_string)
        if not public_key:

# Path: pgp/commands/gpg/exceptions.py
# class FatalException(Exception):
# 
#     def __init__(self, exit_code):
#         self.exit_code


# Path: pgp/commands/gpg/recipient_helper.py
from argparse import ArgumentError
from pgp.commands.gpg.exceptions import FatalException

                result.expand(self.groups[r])
            else:
                result.append(r)
        return result

    def get_hidden_recipients(self):
        result = []
        for r in self.hidden_recipients:
            if r in self.groups:
                result.expand(self.groups[r])
            else:
                result.append(r)
        for r in result:
            self.verify_trust(r)
        for r in self.hidden_encrypt_to:
            if r in self.groups:
                result.expand(self.groups[r])
            else:
                result.append(r)
        return result

    def find_recipient_public_key(self, recipient_string):
        # https://tools.ietf.org/html/rfc4880#section-5.2.3.21
        # The standard is ambiguous here about which flag we should obey when
        # choosing a subkey. Do we want 0x04 (communications) or 0x08
        # (storage)?
        #
        # Since these are called "messages", we will assume 0x04.
        public_key = self.keyring_helper.find_recipient(recipient_string)
        if not public_key:

            raise FatalException(