def __init__(self, template, *data):
        '''
        fill the template with a data set and return the string. you may pass one or more dictionaries
        which will be searched on order for the variables in the template.
        '''
        self._t = template
        self._compiledLines = template._compiledLines
        self.renderMissingNames = template.renderMissingNames   # needed by ErrorHandler
        self.renderMissingFormat = template.renderMissingFormat
        self.lines = template.lines

        self.globals = {}
        for x in range(len(data)-1, -1, -1):  # update in reverse order to achieve 'search list' behaviour
            self.globals.update(data[x])

        # add some magic to the global namespace, needed by compiled exec-statements
        self.globals['_mergeBlock__'] = self._mergeBlock
        self.globals['_resolveSimple__'] = self._resolveSimple

        # append output here
        self.out = []

        # method switchers
        self.lineDispatch = {                            # deal with the items that make up a line
                            'text'   : self.out.append,
                            'eval'   : self._evalSubst,
                            'simple' : self._simpleSubst,
                        }

        self.blockDispatch = {                           # deal with the various lines in a block
                            'content': self._mergeLine,
                            'exec'   : self._execute,
                        }

        fill the template with a data set and return the string. you may pass one or more dictionaries
        which will be searched on order for the variables in the template.
        
recipes/Python/465508_Yaptoo_Yaptu_outrageously_obfuscated__or_yet/recipe-465508.py