'Translates in-place the event_info to account for masking
and adds information about permutation options in force.'

def unmask_event(self, event_info):

    for response in self.lcp.responders.values():
        if response.has_mask():
            answer = event_info.get('answers', {}).get(response.answer_id)
            if (answer is not None):
                event_info['answers'][response.answer_id] = response.unmask_name(answer)
            answer = event_info.get('state', {}).get('student_answers', {}).get(response.answer_id)
            if (answer is not None):
                event_info['state']['student_answers'][response.answer_id] = response.unmask_name(answer)
            answer = event_info.get('old_state', {}).get('student_answers', {}).get(response.answer_id)
            if (answer is not None):
                event_info['old_state']['student_answers'][response.answer_id] = response.unmask_name(answer)
        permutation_option = None
        if response.has_shuffle():
            permutation_option = 'shuffle'
        elif response.has_answerpool():
            permutation_option = 'answerpool'
        if (permutation_option is not None):
            if ('permutation' not in event_info):
                event_info['permutation'] = {}
            event_info['permutation'][response.answer_id] = (permutation_option, response.unmask_order())
