(program [0, 0] - [79, 0] (import_statement [0, 0] - [0, 56] (import_clause [0, 7] - [0, 25] (named_imports [0, 7] - [0, 25] (import_specifier [0, 9] - [0, 23] name: (identifier [0, 9] - [0, 23])))) source: (string [0, 31] - [0, 55] (string_fragment [0, 32] - [0, 54]))) (export_statement [2, 0] - [78, 2] declaration: (lexical_declaration [2, 7] - [78, 2] (variable_declarator [2, 13] - [78, 1] name: (identifier [2, 13] - [2, 32]) value: (arrow_function [2, 35] - [78, 1] parameters: (formal_parameters [2, 35] - [10, 2] (required_parameter [2, 36] - [10, 1] pattern: (object_pattern [2, 36] - [6, 1] (shorthand_property_identifier_pattern [3, 2] - [3, 10]) (shorthand_property_identifier_pattern [4, 2] - [4, 7]) (shorthand_property_identifier_pattern [5, 2] - [5, 13])) type: (type_annotation [6, 1] - [10, 1] (object_type [6, 3] - [10, 1] (property_signature [7, 2] - [7, 15] name: (property_identifier [7, 2] - [7, 10]) type: (type_annotation [7, 10] - [7, 15] (predefined_type [7, 12] - [7, 15]))) (property_signature [8, 2] - [8, 15] name: (property_identifier [8, 2] - [8, 7]) type: (type_annotation [8, 7] - [8, 15] (predefined_type [8, 9] - [8, 15]))) (property_signature [9, 2] - [9, 21] name: (property_identifier [9, 2] - [9, 13]) type: (type_annotation [9, 13] - [9, 21] (predefined_type [9, 15] - [9, 21]))))))) body: (statement_block [10, 6] - [78, 1] (lexical_declaration [11, 2] - [18, 4] (variable_declarator [11, 8] - [18, 3] name: (identifier [11, 8] - [11, 21]) value: (array [11, 24] - [18, 3] (object [12, 4] - [12, 44] (pair [12, 6] - [12, 20] key: (property_identifier [12, 6] - [12, 11]) value: (string [12, 13] - [12, 20] (string_fragment [12, 14] - [12, 19]))) (pair [12, 22] - [12, 42] key: (property_identifier [12, 22] - [12, 26]) value: (string [12, 28] - [12, 42] (string_fragment [12, 29] - [12, 41])))) (object [13, 4] - [13, 50] (pair [13, 6] - [13, 27] key: (property_identifier [13, 6] - [13, 11]) value: (string [13, 13] - [13, 27] (string_fragment [13, 14] - [13, 26]))) (pair [13, 29] - [13, 48] key: (property_identifier [13, 29] - [13, 33]) value: (string [13, 35] - [13, 48] (string_fragment [13, 36] - [13, 47])))) (object [14, 4] - [14, 44] (pair [14, 6] - [14, 20] key: (property_identifier [14, 6] - [14, 11]) value: (string [14, 13] - [14, 20] (string_fragment [14, 14] - [14, 19]))) (pair [14, 22] - [14, 42] key: (property_identifier [14, 22] - [14, 26]) value: (string [14, 28] - [14, 42] (string_fragment [14, 29] - [14, 41])))) (object [15, 4] - [15, 54] (pair [15, 6] - [15, 28] key: (property_identifier [15, 6] - [15, 11]) value: (string [15, 13] - [15, 28] (string_fragment [15, 14] - [15, 27]))) (pair [15, 30] - [15, 52] key: (property_identifier [15, 30] - [15, 34]) value: (string [15, 36] - [15, 52] (string_fragment [15, 37] - [15, 51])))) (object [16, 4] - [16, 57] (pair [16, 6] - [16, 32] key: (property_identifier [16, 6] - [16, 11]) value: (string [16, 13] - [16, 32] (string_fragment [16, 14] - [16, 31]))) (pair [16, 34] - [16, 55] key: (property_identifier [16, 34] - [16, 38]) value: (string [16, 40] - [16, 55] (string_fragment [16, 41] - [16, 54])))) (object [17, 4] - [17, 54] (pair [17, 6] - [17, 25] key: (property_identifier [17, 6] - [17, 11]) value: (string [17, 13] - [17, 25] (string_fragment [17, 14] - [17, 24]))) (pair [17, 27] - [17, 52] key: (property_identifier [17, 27] - [17, 31]) value: (string [17, 33] - [17, 52] (string_fragment [17, 34] - [17, 51]))))))) (return_statement [20, 2] - [77, 4] (parenthesized_expression [20, 9] - [77, 3] (jsx_element [21, 4] - [76, 21] open_tag: (jsx_opening_element [21, 4] - [21, 34] name: (identifier [21, 5] - [21, 19]) attribute: (jsx_attribute [21, 20] - [21, 33] (property_identifier [21, 20] - [21, 25]) (jsx_expression [21, 26] - [21, 33] (identifier [21, 27] - [21, 32])))) (jsx_element [22, 6] - [75, 12] open_tag: (jsx_opening_element [22, 6] - [22, 31] name: (identifier [22, 7] - [22, 10]) attribute: (jsx_attribute [22, 11] - [22, 30] (property_identifier [22, 11] - [22, 16]) (string [22, 17] - [22, 30] (string_fragment [22, 18] - [22, 29])))) (jsx_expression [23, 8] - [23, 26] (comment [23, 9] - [23, 25])) (jsx_element [24, 8] - [52, 17] open_tag: (jsx_opening_element [24, 8] - [24, 37] name: (identifier [24, 9] - [24, 15]) attribute: (jsx_attribute [24, 16] - [24, 36] (property_identifier [24, 16] - [24, 21]) (string [24, 22] - [24, 36] (string_fragment [24, 23] - [24, 35])))) (jsx_element [25, 10] - [34, 16] open_tag: (jsx_opening_element [25, 10] - [25, 73] name: (identifier [25, 11] - [25, 14]) attribute: (jsx_attribute [25, 15] - [25, 72] (property_identifier [25, 15] - [25, 20]) (string [25, 21] - [25, 72] (string_fragment [25, 22] - [25, 71])))) (jsx_element [26, 12] - [33, 16] open_tag: (jsx_opening_element [26, 12] - [30, 13] name: (identifier [26, 13] - [26, 14]) attribute: (jsx_attribute [27, 14] - [27, 33] (property_identifier [27, 14] - [27, 18]) (string [27, 19] - [27, 33] (string_fragment [27, 20] - [27, 32]))) attribute: (jsx_attribute [28, 14] - [28, 33] (property_identifier [28, 14] - [28, 19]) (string [28, 20] - [28, 33] (string_fragment [28, 21] - [28, 32]))) attribute: (jsx_attribute [29, 14] - [29, 44] (property_identifier [29, 14] - [29, 19]) (string [29, 20] - [29, 44] (string_fragment [29, 21] - [29, 43])))) (jsx_element [31, 14] - [31, 35] open_tag: (jsx_opening_element [31, 14] - [31, 20] name: (identifier [31, 15] - [31, 19])) (jsx_text [31, 20] - [31, 28]) close_tag: (jsx_closing_element [31, 28] - [31, 35] name: (identifier [31, 30] - [31, 34]))) (jsx_element [32, 14] - [32, 52] open_tag: (jsx_opening_element [32, 14] - [32, 40] name: (identifier [32, 15] - [32, 19]) attribute: (jsx_attribute [32, 20] - [32, 39] (property_identifier [32, 20] - [32, 25]) (string [32, 26] - [32, 39] (string_fragment [32, 27] - [32, 38])))) (jsx_text [32, 40] - [32, 45]) close_tag: (jsx_closing_element [32, 45] - [32, 52] name: (identifier [32, 47] - [32, 51]))) close_tag: (jsx_closing_element [33, 12] - [33, 16] name: (identifier [33, 14] - [33, 15]))) close_tag: (jsx_closing_element [34, 10] - [34, 16] name: (identifier [34, 12] - [34, 15]))) (jsx_element [36, 10] - [51, 16] open_tag: (jsx_opening_element [36, 10] - [36, 73] name: (identifier [36, 11] - [36, 14]) attribute: (jsx_attribute [36, 15] - [36, 72] (property_identifier [36, 15] - [36, 20]) (string [36, 21] - [36, 72] (string_fragment [36, 22] - [36, 71])))) (jsx_element [37, 12] - [43, 16] open_tag: (jsx_opening_element [37, 12] - [41, 13] name: (identifier [37, 13] - [37, 14]) attribute: (jsx_attribute [38, 14] - [38, 31] (property_identifier [38, 14] - [38, 18]) (string [38, 19] - [38, 31] (string_fragment [38, 20] - [38, 30]))) attribute: (jsx_attribute [39, 14] - [39, 33] (property_identifier [39, 14] - [39, 19]) (string [39, 20] - [39, 33] (string_fragment [39, 21] - [39, 32]))) attribute: (jsx_attribute [40, 14] - [40, 176] (property_identifier [40, 14] - [40, 19]) (string [40, 20] - [40, 176] (string_fragment [40, 21] - [40, 175])))) (jsx_text [41, 13] - [43, 12]) close_tag: (jsx_closing_element [43, 12] - [43, 16] name: (identifier [43, 14] - [43, 15]))) (jsx_element [44, 12] - [50, 16] open_tag: (jsx_opening_element [44, 12] - [48, 13] name: (identifier [44, 13] - [44, 14]) attribute: (jsx_attribute [45, 14] - [45, 28] (property_identifier [45, 14] - [45, 18]) (string [45, 19] - [45, 28] (string_fragment [45, 20] - [45, 27]))) attribute: (jsx_attribute [46, 14] - [46, 32] (property_identifier [46, 14] - [46, 19]) (string [46, 20] - [46, 32] (string_fragment [46, 21] - [46, 31]))) attribute: (jsx_attribute [47, 14] - [47, 176] (property_identifier [47, 14] - [47, 19]) (string [47, 20] - [47, 176] (string_fragment [47, 21] - [47, 175])))) (jsx_text [48, 13] - [50, 12]) close_tag: (jsx_closing_element [50, 12] - [50, 16] name: (identifier [50, 14] - [50, 15]))) close_tag: (jsx_closing_element [51, 10] - [51, 16] name: (identifier [51, 12] - [51, 15]))) close_tag: (jsx_closing_element [52, 8] - [52, 17] name: (identifier [52, 10] - [52, 16]))) (jsx_expression [54, 8] - [54, 32] (comment [54, 9] - [54, 31])) (jsx_element [55, 8] - [69, 14] open_tag: (jsx_opening_element [55, 8] - [55, 35] name: (identifier [55, 9] - [55, 12]) attribute: (jsx_attribute [55, 13] - [55, 34] (property_identifier [55, 13] - [55, 18]) (string [55, 19] - [55, 34] (string_fragment [55, 20] - [55, 33])))) (jsx_expression [56, 10] - [68, 13] (call_expression [56, 11] - [68, 12] function: (member_expression [56, 11] - [56, 28] object: (identifier [56, 11] - [56, 24]) property: (property_identifier [56, 25] - [56, 28])) arguments: (arguments [56, 28] - [68, 12] (arrow_function [56, 29] - [68, 11] parameters: (formal_parameters [56, 29] - [56, 35] (required_parameter [56, 30] - [56, 34] pattern: (identifier [56, 30] - [56, 34]))) body: (statement_block [56, 39] - [68, 11] (lexical_declaration [57, 12] - [58, 54] (variable_declarator [57, 18] - [58, 53] name: (identifier [57, 18] - [57, 26]) value: (binary_expression [57, 29] - [58, 53] left: (binary_expression [57, 29] - [57, 54] left: (identifier [57, 29] - [57, 40]) right: (member_expression [57, 45] - [57, 54] object: (identifier [57, 45] - [57, 49]) property: (property_identifier [57, 50] - [57, 54]))) right: (call_expression [58, 14] - [58, 53] function: (member_expression [58, 14] - [58, 36] object: (identifier [58, 14] - [58, 25]) property: (property_identifier [58, 26] - [58, 36])) arguments: (arguments [58, 36] - [58, 53] (binary_expression [58, 37] - [58, 52] left: (member_expression [58, 37] - [58, 46] object: (identifier [58, 37] - [58, 41]) property: (property_identifier [58, 42] - [58, 46])) right: (string [58, 49] - [58, 52] (string_fragment [58, 50] - [58, 51])))))))) (return_statement [60, 12] - [67, 14] (parenthesized_expression [60, 19] - [67, 13] (jsx_element [61, 14] - [66, 18] open_tag: (jsx_opening_element [61, 14] - [64, 15] name: (identifier [61, 15] - [61, 16]) attribute: (jsx_attribute [62, 16] - [62, 32] (property_identifier [62, 16] - [62, 20]) (jsx_expression [62, 21] - [62, 32] (member_expression [62, 22] - [62, 31] object: (identifier [62, 22] - [62, 26]) property: (property_identifier [62, 27] - [62, 31])))) attribute: (jsx_attribute [63, 16] - [63, 68] (property_identifier [63, 16] - [63, 21]) (jsx_expression [63, 22] - [63, 68] (template_string [63, 23] - [63, 67] (string_fragment [63, 24] - [63, 39]) (template_substitution [63, 39] - [63, 66] (ternary_expression [63, 41] - [63, 65] condition: (identifier [63, 41] - [63, 49]) consequence: (string [63, 52] - [63, 60] (string_fragment [63, 53] - [63, 59])) alternative: (string [63, 63] - [63, 65]))))))) (jsx_expression [65, 16] - [65, 28] (member_expression [65, 17] - [65, 27] object: (identifier [65, 17] - [65, 21]) property: (property_identifier [65, 22] - [65, 27]))) close_tag: (jsx_closing_element [66, 14] - [66, 18] name: (identifier [66, 16] - [66, 17])))))))))) close_tag: (jsx_closing_element [69, 8] - [69, 14] name: (identifier [69, 10] - [69, 13]))) (jsx_expression [71, 8] - [71, 28] (comment [71, 9] - [71, 27])) (jsx_element [72, 8] - [74, 15] open_tag: (jsx_opening_element [72, 8] - [72, 41] name: (identifier [72, 9] - [72, 13]) attribute: (jsx_attribute [72, 14] - [72, 40] (property_identifier [72, 14] - [72, 19]) (string [72, 20] - [72, 40] (string_fragment [72, 21] - [72, 39])))) (jsx_expression [73, 10] - [73, 20] (identifier [73, 11] - [73, 19])) close_tag: (jsx_closing_element [74, 8] - [74, 15] name: (identifier [74, 10] - [74, 14]))) close_tag: (jsx_closing_element [75, 6] - [75, 12] name: (identifier [75, 8] - [75, 11]))) close_tag: (jsx_closing_element [76, 4] - [76, 21] name: (identifier [76, 6] - [76, 20])))))))))))