def handle_starttag(self, tag, attrs):
if tag.lower() in self.allowed_tag_whitelist:<EOL><INDENT>self.result += '<STR_LIT:<>' + tag<EOL>for (attr, value) in attrs:<EOL><INDENT>if attr.lower() in self.allowed_attribute_whitelist:<EOL><INDENT>self.result += '<STR_LIT>' %(attr, self.handle_attribute_value(value))<EOL><DEDENT><DEDENT>self.result += '<STR_LIT:>>'<EOL><DEDENT>else:<EOL><INDENT>if self.render_unallowed_tags:<EOL><INDENT>self.result += '<STR_LIT>' + cgi.escape(tag)<EOL>for (attr, value) in attrs:<EOL><INDENT>self.result += '<STR_LIT>' %(attr, cgi.escape(value, True))<EOL><DEDENT>self.result += '<STR_LIT>'<EOL><DEDENT>elif tag == '<STR_LIT>' or tag == '<STR_LIT>':<EOL><INDENT>self.silent = True<EOL><DEDENT><DEDENT>
Function called for new opening tags