AST with accents
unknown
json
5 months ago
62 kB
7
Indexable
in 7 months
{ "type": "compilation_unit", "start_byte": 0, "end_byte": 726, "text": "using System.Text.RegularExpressions;\n\nnamespace HUBLoader.Types;\n\n\npublic class TypeArret\n{\n private readonly string bits;\n\n public TypeArret(string rawBits)\n {\n if (rawBits.Length != 20)\n throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n if (!Regex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n throw new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n bits = rawBits.ToUpperInvariant();\n }\n\n public bool EstActif(TypeArretFlag flag)\n {\n return bits[(int)flag] == 'O';\n }\n\n public override string ToString()\n {\n return bits;\n }\n}\n", "children": [ { "type": "using_directive", "start_byte": 0, "end_byte": 37, "text": "using System.Text.RegularExpressions;", "children": [ { "type": "using", "start_byte": 0, "end_byte": 5, "text": "using", "children": [] }, { "type": "qualified_name", "start_byte": 6, "end_byte": 36, "text": "System.Text.RegularExpressions", "children": [ { "type": "qualified_name", "start_byte": 6, "end_byte": 17, "text": "System.Text", "children": [ { "type": "identifier", "start_byte": 6, "end_byte": 12, "text": "System", "children": [] }, { "type": ".", "start_byte": 12, "end_byte": 13, "text": ".", "children": [] }, { "type": "identifier", "start_byte": 13, "end_byte": 17, "text": "Text", "children": [] } ] }, { "type": ".", "start_byte": 17, "end_byte": 18, "text": ".", "children": [] }, { "type": "identifier", "start_byte": 18, "end_byte": 36, "text": "RegularExpressions", "children": [] } ] }, { "type": ";", "start_byte": 36, "end_byte": 37, "text": ";", "children": [] } ] }, { "type": "file_scoped_namespace_declaration", "start_byte": 39, "end_byte": 65, "text": "namespace HUBLoader.Types;", "children": [ { "type": "namespace", "start_byte": 39, "end_byte": 48, "text": "namespace", "children": [] }, { "type": "qualified_name", "start_byte": 49, "end_byte": 64, "text": "HUBLoader.Types", "children": [ { "type": "identifier", "start_byte": 49, "end_byte": 58, "text": "HUBLoader", "children": [] }, { "type": ".", "start_byte": 58, "end_byte": 59, "text": ".", "children": [] }, { "type": "identifier", "start_byte": 59, "end_byte": 64, "text": "Types", "children": [] } ] }, { "type": ";", "start_byte": 64, "end_byte": 65, "text": ";", "children": [] } ] }, { "type": "class_declaration", "start_byte": 68, "end_byte": 725, "text": "public class TypeArret\n{\n private readonly string bits;\n\n public TypeArret(string rawBits)\n {\n if (rawBits.Length != 20)\n throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n if (!Regex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n throw new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n bits = rawBits.ToUpperInvariant();\n }\n\n public bool EstActif(TypeArretFlag flag)\n {\n return bits[(int)flag] == 'O';\n }\n\n public override string ToString()\n {\n return bits;\n }\n}\n", "children": [ { "type": "modifier", "start_byte": 68, "end_byte": 74, "text": "public", "children": [ { "type": "public", "start_byte": 68, "end_byte": 74, "text": "public", "children": [] } ] }, { "type": "class", "start_byte": 75, "end_byte": 80, "text": "class", "children": [] }, { "type": "identifier", "start_byte": 81, "end_byte": 90, "text": "TypeArret", "children": [] }, { "type": "declaration_list", "start_byte": 91, "end_byte": 725, "text": "{\n private readonly string bits;\n\n public TypeArret(string rawBits)\n {\n if (rawBits.Length != 20)\n throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n if (!Regex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n throw new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n bits = rawBits.ToUpperInvariant();\n }\n\n public bool EstActif(TypeArretFlag flag)\n {\n return bits[(int)flag] == 'O';\n }\n\n public override string ToString()\n {\n return bits;\n }\n}\n", "children": [ { "type": "{", "start_byte": 91, "end_byte": 92, "text": "{", "children": [] }, { "type": "field_declaration", "start_byte": 97, "end_byte": 126, "text": "private readonly string bits;", "children": [ { "type": "modifier", "start_byte": 97, "end_byte": 104, "text": "private", "children": [ { "type": "private", "start_byte": 97, "end_byte": 104, "text": "private", "children": [] } ] }, { "type": "modifier", "start_byte": 105, "end_byte": 113, "text": "readonly", "children": [ { "type": "readonly", "start_byte": 105, "end_byte": 113, "text": "readonly", "children": [] } ] }, { "type": "variable_declaration", "start_byte": 114, "end_byte": 125, "text": "string bits", "children": [ { "type": "predefined_type", "start_byte": 114, "end_byte": 120, "text": "string", "children": [] }, { "type": "variable_declarator", "start_byte": 121, "end_byte": 125, "text": "bits", "children": [ { "type": "identifier", "start_byte": 121, "end_byte": 125, "text": "bits", "children": [] } ] } ] }, { "type": ";", "start_byte": 125, "end_byte": 126, "text": ";", "children": [] } ] }, { "type": "constructor_declaration", "start_byte": 132, "end_byte": 554, "text": "public TypeArret(string rawBits)\n {\n if (rawBits.Length != 20)\n throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n if (!Regex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n throw new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n bits = rawBits.ToUpperInvariant();\n }\n\n ", "children": [ { "type": "modifier", "start_byte": 132, "end_byte": 138, "text": "public", "children": [ { "type": "public", "start_byte": 132, "end_byte": 138, "text": "public", "children": [] } ] }, { "type": "identifier", "start_byte": 139, "end_byte": 148, "text": "TypeArret", "children": [] }, { "type": "parameter_list", "start_byte": 148, "end_byte": 164, "text": "(string rawBits)", "children": [ { "type": "(", "start_byte": 148, "end_byte": 149, "text": "(", "children": [] }, { "type": "parameter", "start_byte": 149, "end_byte": 163, "text": "string rawBits", "children": [ { "type": "predefined_type", "start_byte": 149, "end_byte": 155, "text": "string", "children": [] }, { "type": "identifier", "start_byte": 156, "end_byte": 163, "text": "rawBits", "children": [] } ] }, { "type": ")", "start_byte": 163, "end_byte": 164, "text": ")", "children": [] } ] }, { "type": "block", "start_byte": 169, "end_byte": 554, "text": "{\n if (rawBits.Length != 20)\n throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n if (!Regex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n throw new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n bits = rawBits.ToUpperInvariant();\n }\n\n ", "children": [ { "type": "{", "start_byte": 169, "end_byte": 170, "text": "{", "children": [] }, { "type": "if_statement", "start_byte": 179, "end_byte": 324, "text": "if (rawBits.Length != 20)\n throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n", "children": [ { "type": "if", "start_byte": 179, "end_byte": 181, "text": "if", "children": [] }, { "type": "(", "start_byte": 182, "end_byte": 183, "text": "(", "children": [] }, { "type": "binary_expression", "start_byte": 183, "end_byte": 203, "text": "rawBits.Length != 20", "children": [ { "type": "member_access_expression", "start_byte": 183, "end_byte": 197, "text": "rawBits.Length", "children": [ { "type": "identifier", "start_byte": 183, "end_byte": 190, "text": "rawBits", "children": [] }, { "type": ".", "start_byte": 190, "end_byte": 191, "text": ".", "children": [] }, { "type": "identifier", "start_byte": 191, "end_byte": 197, "text": "Length", "children": [] } ] }, { "type": "!=", "start_byte": 198, "end_byte": 200, "text": "!=", "children": [] }, { "type": "integer_literal", "start_byte": 201, "end_byte": 203, "text": "20", "children": [] } ] }, { "type": ")", "start_byte": 203, "end_byte": 204, "text": ")", "children": [] }, { "type": "throw_statement", "start_byte": 217, "end_byte": 324, "text": "throw new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n\n", "children": [ { "type": "throw", "start_byte": 217, "end_byte": 222, "text": "throw", "children": [] }, { "type": "object_creation_expression", "start_byte": 223, "end_byte": 323, "text": "new ArgumentException($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n", "children": [ { "type": "new", "start_byte": 223, "end_byte": 226, "text": "new", "children": [] }, { "type": "identifier", "start_byte": 227, "end_byte": 244, "text": "ArgumentException", "children": [] }, { "type": "argument_list", "start_byte": 244, "end_byte": 323, "text": "($\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");\n", "children": [ { "type": "(", "start_byte": 244, "end_byte": 245, "text": "(", "children": [] }, { "type": "argument", "start_byte": 245, "end_byte": 322, "text": "$\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");", "children": [ { "type": "interpolated_string_expression", "start_byte": 245, "end_byte": 322, "text": "$\"TypeArret doit contenir exactement 20 caractères (reçu {rawBits.Length})\");", "children": [ { "type": "interpolation_start", "start_byte": 245, "end_byte": 246, "text": "$", "children": [] }, { "type": "\"", "start_byte": 246, "end_byte": 247, "text": "\"", "children": [] }, { "type": "string_content", "start_byte": 247, "end_byte": 304, "text": "TypeArret doit contenir exactement 20 caractères (reçu {r", "children": [] }, { "type": "interpolation", "start_byte": 304, "end_byte": 320, "text": "awBits.Length})\"", "children": [ { "type": "interpolation_brace", "start_byte": 304, "end_byte": 305, "text": "a", "children": [] }, { "type": "member_access_expression", "start_byte": 305, "end_byte": 319, "text": "wBits.Length})", "children": [ { "type": "identifier", "start_byte": 305, "end_byte": 312, "text": "wBits.L", "children": [] }, { "type": ".", "start_byte": 312, "end_byte": 313, "text": "e", "children": [] }, { "type": "identifier", "start_byte": 313, "end_byte": 319, "text": "ngth})", "children": [] } ] }, { "type": "interpolation_brace", "start_byte": 319, "end_byte": 320, "text": "\"", "children": [] } ] }, { "type": "string_content", "start_byte": 320, "end_byte": 321, "text": ")", "children": [] }, { "type": "\"", "start_byte": 321, "end_byte": 322, "text": ";", "children": [] } ] } ] }, { "type": ")", "start_byte": 322, "end_byte": 323, "text": "\n", "children": [] } ] } ] }, { "type": ";", "start_byte": 323, "end_byte": 324, "text": "\n", "children": [] } ] } ] }, { "type": "if_statement", "start_byte": 334, "end_byte": 504, "text": " (!Regex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n throw new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n ", "children": [ { "type": "if", "start_byte": 334, "end_byte": 336, "text": " (", "children": [] }, { "type": "(", "start_byte": 337, "end_byte": 338, "text": "R", "children": [] }, { "type": "prefix_unary_expression", "start_byte": 338, "end_byte": 400, "text": "egex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n", "children": [ { "type": "!", "start_byte": 338, "end_byte": 339, "text": "e", "children": [] }, { "type": "invocation_expression", "start_byte": 339, "end_byte": 400, "text": "gex.IsMatch(rawBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n", "children": [ { "type": "member_access_expression", "start_byte": 339, "end_byte": 352, "text": "gex.IsMatch(r", "children": [ { "type": "identifier", "start_byte": 339, "end_byte": 344, "text": "gex.I", "children": [] }, { "type": ".", "start_byte": 344, "end_byte": 345, "text": "s", "children": [] }, { "type": "identifier", "start_byte": 345, "end_byte": 352, "text": "Match(r", "children": [] } ] }, { "type": "argument_list", "start_byte": 352, "end_byte": 400, "text": "awBits, \"^[ON]{20}$\", RegexOptions.IgnoreCase))\n", "children": [ { "type": "(", "start_byte": 352, "end_byte": 353, "text": "a", "children": [] }, { "type": "argument", "start_byte": 353, "end_byte": 360, "text": "wBits, ", "children": [ { "type": "identifier", "start_byte": 353, "end_byte": 360, "text": "wBits, ", "children": [] } ] }, { "type": ",", "start_byte": 360, "end_byte": 361, "text": "\"", "children": [] }, { "type": "argument", "start_byte": 362, "end_byte": 374, "text": "[ON]{20}$\", ", "children": [ { "type": "string_literal", "start_byte": 362, "end_byte": 374, "text": "[ON]{20}$\", ", "children": [ { "type": "\"", "start_byte": 362, "end_byte": 363, "text": "[", "children": [] }, { "type": "string_literal_content", "start_byte": 363, "end_byte": 373, "text": "ON]{20}$\",", "children": [] }, { "type": "\"", "start_byte": 373, "end_byte": 374, "text": " ", "children": [] } ] } ] }, { "type": ",", "start_byte": 374, "end_byte": 375, "text": "R", "children": [] }, { "type": "argument", "start_byte": 376, "end_byte": 399, "text": "gexOptions.IgnoreCase))", "children": [ { "type": "member_access_expression", "start_byte": 376, "end_byte": 399, "text": "gexOptions.IgnoreCase))", "children": [ { "type": "identifier", "start_byte": 376, "end_byte": 388, "text": "gexOptions.I", "children": [] }, { "type": ".", "start_byte": 388, "end_byte": 389, "text": "g", "children": [] }, { "type": "identifier", "start_byte": 389, "end_byte": 399, "text": "noreCase))", "children": [] } ] } ] }, { "type": ")", "start_byte": 399, "end_byte": 400, "text": "\n", "children": [] } ] } ] } ] }, { "type": ")", "start_byte": 400, "end_byte": 401, "text": " ", "children": [] }, { "type": "throw_statement", "start_byte": 414, "end_byte": 504, "text": "row new ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n ", "children": [ { "type": "throw", "start_byte": 414, "end_byte": 419, "text": "row n", "children": [] }, { "type": "object_creation_expression", "start_byte": 420, "end_byte": 503, "text": "w ArgumentException(\"TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n", "children": [ { "type": "new", "start_byte": 420, "end_byte": 423, "text": "w A", "children": [] }, { "type": "identifier", "start_byte": 424, "end_byte": 441, "text": "gumentException(\"", "children": [] }, { "type": "argument_list", "start_byte": 441, "end_byte": 503, "text": "TypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n\n", "children": [ { "type": "(", "start_byte": 441, "end_byte": 442, "text": "T", "children": [] }, { "type": "argument", "start_byte": 442, "end_byte": 502, "text": "ypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n", "children": [ { "type": "string_literal", "start_byte": 442, "end_byte": 502, "text": "ypeArret ne doit contenir que des caractères 'O' ou 'N'.\");\n", "children": [ { "type": "\"", "start_byte": 442, "end_byte": 443, "text": "y", "children": [] }, { "type": "string_literal_content", "start_byte": 443, "end_byte": 501, "text": "peArret ne doit contenir que des caractères 'O' ou 'N'.\");", "children": [] }, { "type": "\"", "start_byte": 501, "end_byte": 502, "text": "\n", "children": [] } ] } ] }, { "type": ")", "start_byte": 502, "end_byte": 503, "text": "\n", "children": [] } ] } ] }, { "type": ";", "start_byte": 503, "end_byte": 504, "text": " ", "children": [] } ] } ] }, { "type": "expression_statement", "start_byte": 514, "end_byte": 548, "text": "s = rawBits.ToUpperInvariant();\n ", "children": [ { "type": "assignment_expression", "start_byte": 514, "end_byte": 547, "text": "s = rawBits.ToUpperInvariant();\n ", "children": [ { "type": "identifier", "start_byte": 514, "end_byte": 518, "text": "s = ", "children": [] }, { "type": "=", "start_byte": 519, "end_byte": 520, "text": "a", "children": [] }, { "type": "invocation_expression", "start_byte": 521, "end_byte": 547, "text": "Bits.ToUpperInvariant();\n ", "children": [ { "type": "member_access_expression", "start_byte": 521, "end_byte": 545, "text": "Bits.ToUpperInvariant();", "children": [ { "type": "identifier", "start_byte": 521, "end_byte": 528, "text": "Bits.To", "children": [] }, { "type": ".", "start_byte": 528, "end_byte": 529, "text": "U", "children": [] }, { "type": "identifier", "start_byte": 529, "end_byte": 545, "text": "pperInvariant();", "children": [] } ] }, { "type": "argument_list", "start_byte": 545, "end_byte": 547, "text": "\n ", "children": [ { "type": "(", "start_byte": 545, "end_byte": 546, "text": "\n", "children": [] }, { "type": ")", "start_byte": 546, "end_byte": 547, "text": " ", "children": [] } ] } ] } ] }, { "type": ";", "start_byte": 547, "end_byte": 548, "text": " ", "children": [] } ] }, { "type": "}", "start_byte": 553, "end_byte": 554, "text": " ", "children": [] } ] } ] }, { "type": "method_declaration", "start_byte": 560, "end_byte": 651, "text": "lic bool EstActif(TypeArretFlag flag)\n {\n return bits[(int)flag] == 'O';\n }\n\n ", "children": [ { "type": "modifier", "start_byte": 560, "end_byte": 566, "text": "lic bo", "children": [ { "type": "public", "start_byte": 560, "end_byte": 566, "text": "lic bo", "children": [] } ] }, { "type": "predefined_type", "start_byte": 567, "end_byte": 571, "text": "l Es", "children": [] }, { "type": "identifier", "start_byte": 572, "end_byte": 580, "text": "Actif(Ty", "children": [] }, { "type": "parameter_list", "start_byte": 580, "end_byte": 600, "text": "peArretFlag flag)\n ", "children": [ { "type": "(", "start_byte": 580, "end_byte": 581, "text": "p", "children": [] }, { "type": "parameter", "start_byte": 581, "end_byte": 599, "text": "eArretFlag flag)\n ", "children": [ { "type": "identifier", "start_byte": 581, "end_byte": 594, "text": "eArretFlag fl", "children": [] }, { "type": "identifier", "start_byte": 595, "end_byte": 599, "text": "g)\n ", "children": [] } ] }, { "type": ")", "start_byte": 599, "end_byte": 600, "text": " ", "children": [] } ] }, { "type": "block", "start_byte": 605, "end_byte": 651, "text": " return bits[(int)flag] == 'O';\n }\n\n ", "children": [ { "type": "{", "start_byte": 605, "end_byte": 606, "text": " ", "children": [] }, { "type": "return_statement", "start_byte": 615, "end_byte": 645, "text": "urn bits[(int)flag] == 'O';\n ", "children": [ { "type": "return", "start_byte": 615, "end_byte": 621, "text": "urn bi", "children": [] }, { "type": "binary_expression", "start_byte": 622, "end_byte": 644, "text": "s[(int)flag] == 'O';\n ", "children": [ { "type": "element_access_expression", "start_byte": 622, "end_byte": 637, "text": "s[(int)flag] ==", "children": [ { "type": "identifier", "start_byte": 622, "end_byte": 626, "text": "s[(i", "children": [] }, { "type": "bracketed_argument_list", "start_byte": 626, "end_byte": 637, "text": "nt)flag] ==", "children": [ { "type": "[", "start_byte": 626, "end_byte": 627, "text": "n", "children": [] }, { "type": "argument", "start_byte": 627, "end_byte": 636, "text": "t)flag] =", "children": [ { "type": "cast_expression", "start_byte": 627, "end_byte": 636, "text": "t)flag] =", "children": [ { "type": "(", "start_byte": 627, "end_byte": 628, "text": "t", "children": [] }, { "type": "predefined_type", "start_byte": 628, "end_byte": 631, "text": ")fl", "children": [] }, { "type": ")", "start_byte": 631, "end_byte": 632, "text": "a", "children": [] }, { "type": "identifier", "start_byte": 632, "end_byte": 636, "text": "g] =", "children": [] } ] } ] }, { "type": "]", "start_byte": 636, "end_byte": 637, "text": "=", "children": [] } ] } ] }, { "type": "==", "start_byte": 638, "end_byte": 640, "text": "'O", "children": [] }, { "type": "character_literal", "start_byte": 641, "end_byte": 644, "text": ";\n ", "children": [ { "type": "'", "start_byte": 641, "end_byte": 642, "text": ";", "children": [] }, { "type": "character_literal_content", "start_byte": 642, "end_byte": 643, "text": "\n", "children": [] }, { "type": "'", "start_byte": 643, "end_byte": 644, "text": " ", "children": [] } ] } ] }, { "type": ";", "start_byte": 644, "end_byte": 645, "text": " ", "children": [] } ] }, { "type": "}", "start_byte": 650, "end_byte": 651, "text": " ", "children": [] } ] } ] }, { "type": "method_declaration", "start_byte": 657, "end_byte": 723, "text": "lic override string ToString()\n {\n return bits;\n }\n}\n", "children": [ { "type": "modifier", "start_byte": 657, "end_byte": 663, "text": "lic ov", "children": [ { "type": "public", "start_byte": 657, "end_byte": 663, "text": "lic ov", "children": [] } ] }, { "type": "modifier", "start_byte": 664, "end_byte": 672, "text": "rride st", "children": [ { "type": "override", "start_byte": 664, "end_byte": 672, "text": "rride st", "children": [] } ] }, { "type": "predefined_type", "start_byte": 673, "end_byte": 679, "text": "ing To", "children": [] }, { "type": "identifier", "start_byte": 680, "end_byte": 688, "text": "tring()\n", "children": [] }, { "type": "parameter_list", "start_byte": 688, "end_byte": 690, "text": " ", "children": [ { "type": "(", "start_byte": 688, "end_byte": 689, "text": " ", "children": [] }, { "type": ")", "start_byte": 689, "end_byte": 690, "text": " ", "children": [] } ] }, { "type": "block", "start_byte": 695, "end_byte": 723, "text": " return bits;\n }\n}\n", "children": [ { "type": "{", "start_byte": 695, "end_byte": 696, "text": " ", "children": [] }, { "type": "return_statement", "start_byte": 705, "end_byte": 717, "text": "urn bits;\n ", "children": [ { "type": "return", "start_byte": 705, "end_byte": 711, "text": "urn bi", "children": [] }, { "type": "identifier", "start_byte": 712, "end_byte": 716, "text": "s;\n ", "children": [] }, { "type": ";", "start_byte": 716, "end_byte": 717, "text": " ", "children": [] } ] }, { "type": "}", "start_byte": 722, "end_byte": 723, "text": "\n", "children": [] } ] } ] }, { "type": "}", "start_byte": 724, "end_byte": 725, "text": "", "children": [] } ] } ] } ] }
Editor is loading...
Leave a Comment