(module (class_definition name: (identifier) body: (block (function_definition name: (identifier) parameters: (parameters (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)) body: (block (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (integer))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (integer))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (dictionary))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (integer))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (false))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (none))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (assert_statement (parenthesized_expression (boolean_operator left: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (none)) right: (not_operator argument: (attribute object: (identifier) attribute: (identifier)))))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (true))) (if_statement condition: (attribute object: (identifier) attribute: (identifier)) consequence: (block (expression_statement (assignment left: (identifier) right: (false))) (for_statement left: (tuple_pattern (identifier) (identifier)) right: (attribute object: (identifier) attribute: (identifier)) body: (block (if_statement condition: (comparison_operator (tuple (identifier) (identifier)) (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier))) consequence: (block (if_statement condition: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (tuple (identifier) (identifier))) consequence: (block (expression_statement (assignment left: (identifier) right: (true))))))))) (if_statement condition: (identifier) consequence: (block (expression_statement (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))) alternative: (else_clause body: (block (expression_statement (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)))))))) (comment) (for_statement left: (pattern_list (tuple_pattern (identifier) (identifier)) (identifier)) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)) body: (block (if_statement condition: (not_operator argument: (identifier)) consequence: (block (expression_statement (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))))))) (comment) (for_statement left: (pattern_list (tuple_pattern (identifier) (identifier)) (identifier)) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list)) body: (block (if_statement condition: (identifier) consequence: (block (expression_statement (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (identifier)))))))))) (function_definition name: (identifier) parameters: (parameters (identifier)) body: (block (if_statement condition: (boolean_operator left: (comparison_operator (attribute object: (identifier) attribute: (identifier)) (integer)) right: (comparison_operator (binary_operator left: (attribute object: (identifier) attribute: (identifier)) right: (attribute object: (identifier) attribute: (identifier))) (attribute object: (identifier) attribute: (identifier)))) consequence: (block (expression_statement (assignment left: (pattern_list (attribute object: (identifier) attribute: (identifier)) (identifier)) right: (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (attribute object: (identifier) attribute: (identifier)))))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (false))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (attribute object: (identifier) attribute: (identifier))))) alternative: (else_clause body: (block (expression_statement (assignment left: (identifier) right: (integer)))))) (if_statement condition: (boolean_operator left: (comparison_operator (binary_operator left: (attribute object: (identifier) attribute: (identifier)) right: (attribute object: (identifier) attribute: (identifier))) (attribute object: (identifier) attribute: (identifier))) right: (not_operator argument: (attribute object: (identifier) attribute: (identifier)))) consequence: (block (expression_statement (call function: (attribute object: (identifier) attribute: (identifier)) arguments: (argument_list))) (expression_statement (assignment left: (attribute object: (identifier) attribute: (identifier)) right: (true))))) (expression_statement (augmented_assignment left: (attribute object: (identifier) attribute: (identifier)) right: (identifier))) (expression_statement (call function: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list))) (expression_statement (assignment left: (identifier) right: (call function: (identifier) arguments: (argument_list (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))))) (expression_statement (assignment left: (identifier) right: (dictionary (pair key: (string (string_start) (string_content) (string_end)) value: (binary_operator left: (call function: (identifier) arguments: (argument_list (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))) right: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (binary_operator left: (call function: (identifier) arguments: (argument_list (call function: (attribute object: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) attribute: (identifier)) arguments: (argument_list (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))))) right: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (binary_operator left: (call function: (identifier) arguments: (argument_list (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))) right: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (binary_operator left: (call function: (identifier) arguments: (argument_list (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))) right: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (binary_operator left: (call function: (identifier) arguments: (argument_list (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))) right: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (binary_operator left: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)) right: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (attribute object: (identifier) attribute: (identifier))) (pair key: (string (string_start) (string_content) (string_end)) value: (attribute object: (attribute object: (identifier) attribute: (identifier)) attribute: (identifier)))))) (expression_statement (assignment left: (subscript value: (attribute object: (identifier) attribute: (identifier)) subscript: (attribute object: (identifier) attribute: (identifier))) right: (identifier))) (expression_statement (augmented_assignment left: (attribute object: (identifier) attribute: (identifier)) right: (integer))) (return_statement (identifier)))))))