ivprog.interp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. token literal names:
  2. null
  3. 'programa'
  4. 'real'
  5. 'vazio'
  6. 'logico'
  7. 'cadeia'
  8. 'inteiro'
  9. 'caractere'
  10. 'escolha'
  11. 'caso'
  12. 'contrario'
  13. 'const'
  14. 'funcao'
  15. 'retorne'
  16. 'para'
  17. 'pare'
  18. 'faca'
  19. 'enquanto'
  20. 'se'
  21. 'senao'
  22. 'falso'
  23. 'verdadeiro'
  24. '('
  25. ')'
  26. '['
  27. ']'
  28. '{'
  29. '}'
  30. ','
  31. '='
  32. null
  33. null
  34. null
  35. null
  36. null
  37. ':'
  38. null
  39. null
  40. null
  41. null
  42. null
  43. null
  44. null
  45. null
  46. null
  47. token symbolic names:
  48. null
  49. RK_PROGRAM
  50. RK_REAL
  51. RK_VOID
  52. RK_BOOLEAN
  53. RK_STRING
  54. RK_INTEGER
  55. RK_CHARACTER
  56. RK_SWITCH
  57. RK_CASE
  58. RK_DEFAULT
  59. RK_CONST
  60. RK_FUNCTION
  61. RK_RETURN
  62. RK_FOR
  63. RK_BREAK
  64. RK_DO
  65. RK_WHILE
  66. RK_IF
  67. RK_ELSE
  68. RK_FALSE
  69. RK_TRUE
  70. OPEN_PARENTHESIS
  71. CLOSE_PARENTHESIS
  72. OPEN_BRACE
  73. CLOSE_BRACE
  74. OPEN_CURLY
  75. CLOSE_CURLY
  76. COMMA
  77. EQUAL
  78. SUM_OP
  79. MULTI_OP
  80. AND_OPERATOR
  81. OR_OPERATOR
  82. RELATIONAL_OPERATOR
  83. COLON
  84. NOT_OPERATOR
  85. ID
  86. INTEGER
  87. REAL
  88. STRING
  89. CHARACTER
  90. WHITESPACE
  91. EOS
  92. COMMENTS
  93. rule names:
  94. RK_PROGRAM
  95. RK_REAL
  96. RK_VOID
  97. RK_BOOLEAN
  98. RK_STRING
  99. RK_INTEGER
  100. RK_CHARACTER
  101. RK_SWITCH
  102. RK_CASE
  103. RK_DEFAULT
  104. RK_CONST
  105. RK_FUNCTION
  106. RK_RETURN
  107. RK_FOR
  108. RK_BREAK
  109. RK_DO
  110. RK_WHILE
  111. RK_IF
  112. RK_ELSE
  113. RK_FALSE
  114. RK_TRUE
  115. RK_LOGICAL_NOT
  116. RK_LOGICAL_AND
  117. RK_LOGICAL_OR
  118. OPEN_PARENTHESIS
  119. CLOSE_PARENTHESIS
  120. OPEN_BRACE
  121. CLOSE_BRACE
  122. OPEN_CURLY
  123. CLOSE_CURLY
  124. COMMA
  125. EQUAL
  126. SUM_OP
  127. MULTI_OP
  128. AND_OPERATOR
  129. OR_OPERATOR
  130. RELATIONAL_OPERATOR
  131. COLON
  132. NOT_OPERATOR
  133. ID
  134. INTEGER
  135. REAL
  136. STRING
  137. STRING_CHARACTER
  138. CHARACTER
  139. WHITESPACE
  140. SEMICOLON
  141. EOS
  142. HEX_DIGIT
  143. OCTAL_DIGIT
  144. ESC_SEQ
  145. ESC_OCTAL
  146. ESC_UNICODE
  147. COMMENTS
  148. channel names:
  149. DEFAULT_TOKEN_CHANNEL
  150. HIDDEN
  151. mode names:
  152. DEFAULT_MODE
  153. atn:
  154. [3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 46, 442, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 28, 3, 28, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 5, 38, 298, 10, 38, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 7, 41, 306, 10, 41, 12, 41, 14, 41, 309, 11, 41, 3, 42, 6, 42, 312, 10, 42, 13, 42, 14, 42, 313, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42, 320, 10, 42, 3, 42, 6, 42, 323, 10, 42, 13, 42, 14, 42, 324, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42, 331, 10, 42, 3, 42, 6, 42, 334, 10, 42, 13, 42, 14, 42, 335, 5, 42, 338, 10, 42, 3, 43, 6, 43, 341, 10, 43, 13, 43, 14, 43, 342, 3, 43, 3, 43, 6, 43, 347, 10, 43, 13, 43, 14, 43, 348, 3, 44, 3, 44, 7, 44, 353, 10, 44, 12, 44, 14, 44, 356, 11, 44, 3, 44, 3, 44, 3, 45, 3, 45, 5, 45, 362, 10, 45, 3, 46, 3, 46, 3, 46, 5, 46, 367, 10, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 49, 6, 49, 378, 10, 49, 13, 49, 14, 49, 379, 3, 49, 5, 49, 383, 10, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 393, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 5, 53, 406, 10, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 7, 55, 419, 10, 55, 12, 55, 14, 55, 422, 11, 55, 3, 55, 5, 55, 425, 10, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 7, 55, 432, 10, 55, 12, 55, 14, 55, 435, 11, 55, 3, 55, 3, 55, 5, 55, 439, 10, 55, 3, 55, 3, 55, 3, 433, 2, 56, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 2, 47, 2, 49, 2, 51, 24, 53, 25, 55, 26, 57, 27, 59, 28, 61, 29, 63, 30, 65, 31, 67, 32, 69, 33, 71, 34, 73, 35, 75, 36, 77, 37, 79, 38, 81, 39, 83, 40, 85, 41, 87, 42, 89, 2, 91, 43, 93, 44, 95, 2, 97, 45, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 46, 3, 2, 17, 4, 2, 45, 45, 47, 47, 5, 2, 39, 39, 44, 44, 49, 49, 4, 2, 62, 62, 64, 64, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 50, 59, 3, 2, 50, 51, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 4, 2, 11, 11, 34, 34, 4, 2, 12, 12, 15, 15, 5, 2, 50, 59, 67, 72, 99, 104, 3, 2, 50, 57, 10, 2, 36, 36, 41, 41, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 3, 2, 50, 53, 2, 457, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 3, 111, 3, 2, 2, 2, 5, 120, 3, 2, 2, 2, 7, 125, 3, 2, 2, 2, 9, 131, 3, 2, 2, 2, 11, 138, 3, 2, 2, 2, 13, 145, 3, 2, 2, 2, 15, 153, 3, 2, 2, 2, 17, 163, 3, 2, 2, 2, 19, 171, 3, 2, 2, 2, 21, 176, 3, 2, 2, 2, 23, 186, 3, 2, 2, 2, 25, 192, 3, 2, 2, 2, 27, 199, 3, 2, 2, 2, 29, 207, 3, 2, 2, 2, 31, 212, 3, 2, 2, 2, 33, 217, 3, 2, 2, 2, 35, 222, 3, 2, 2, 2, 37, 231, 3, 2, 2, 2, 39, 234, 3, 2, 2, 2, 41, 240, 3, 2, 2, 2, 43, 246, 3, 2, 2, 2, 45, 257, 3, 2, 2, 2, 47, 261, 3, 2, 2, 2, 49, 263, 3, 2, 2, 2, 51, 266, 3, 2, 2, 2, 53, 268, 3, 2, 2, 2, 55, 270, 3, 2, 2, 2, 57, 272, 3, 2, 2, 2, 59, 274, 3, 2, 2, 2, 61, 276, 3, 2, 2, 2, 63, 278, 3, 2, 2, 2, 65, 280, 3, 2, 2, 2, 67, 282, 3, 2, 2, 2, 69, 284, 3, 2, 2, 2, 71, 286, 3, 2, 2, 2, 73, 288, 3, 2, 2, 2, 75, 297, 3, 2, 2, 2, 77, 299, 3, 2, 2, 2, 79, 301, 3, 2, 2, 2, 81, 303, 3, 2, 2, 2, 83, 337, 3, 2, 2, 2, 85, 340, 3, 2, 2, 2, 87, 350, 3, 2, 2, 2, 89, 361, 3, 2, 2, 2, 91, 363, 3, 2, 2, 2, 93, 370, 3, 2, 2, 2, 95, 374, 3, 2, 2, 2, 97, 382, 3, 2, 2, 2, 99, 384, 3, 2, 2, 2, 101, 386, 3, 2, 2, 2, 103, 392, 3, 2, 2, 2, 105, 405, 3, 2, 2, 2, 107, 407, 3, 2, 2, 2, 109, 438, 3, 2, 2, 2, 111, 112, 7, 114, 2, 2, 112, 113, 7, 116, 2, 2, 113, 114, 7, 113, 2, 2, 114, 115, 7, 105, 2, 2, 115, 116, 7, 116, 2, 2, 116, 117, 7, 99, 2, 2, 117, 118, 7, 111, 2, 2, 118, 119, 7, 99, 2, 2, 119, 4, 3, 2, 2, 2, 120, 121, 7, 116, 2, 2, 121, 122, 7, 103, 2, 2, 122, 123, 7, 99, 2, 2, 123, 124, 7, 110, 2, 2, 124, 6, 3, 2, 2, 2, 125, 126, 7, 120, 2, 2, 126, 127, 7, 99, 2, 2, 127, 128, 7, 124, 2, 2, 128, 129, 7, 107, 2, 2, 129, 130, 7, 113, 2, 2, 130, 8, 3, 2, 2, 2, 131, 132, 7, 110, 2, 2, 132, 133, 7, 113, 2, 2, 133, 134, 7, 105, 2, 2, 134, 135, 7, 107, 2, 2, 135, 136, 7, 101, 2, 2, 136, 137, 7, 113, 2, 2, 137, 10, 3, 2, 2, 2, 138, 139, 7, 101, 2, 2, 139, 140, 7, 99, 2, 2, 140, 141, 7, 102, 2, 2, 141, 142, 7, 103, 2, 2, 142, 143, 7, 107, 2, 2, 143, 144, 7, 99, 2, 2, 144, 12, 3, 2, 2, 2, 145, 146, 7, 107, 2, 2, 146, 147, 7, 112, 2, 2, 147, 148, 7, 118, 2, 2, 148, 149, 7, 103, 2, 2, 149, 150, 7, 107, 2, 2, 150, 151, 7, 116, 2, 2, 151, 152, 7, 113, 2, 2, 152, 14, 3, 2, 2, 2, 153, 154, 7, 101, 2, 2, 154, 155, 7, 99, 2, 2, 155, 156, 7, 116, 2, 2, 156, 157, 7, 99, 2, 2, 157, 158, 7, 101, 2, 2, 158, 159, 7, 118, 2, 2, 159, 160, 7, 103, 2, 2, 160, 161, 7, 116, 2, 2, 161, 162, 7, 103, 2, 2, 162, 16, 3, 2, 2, 2, 163, 164, 7, 103, 2, 2, 164, 165, 7, 117, 2, 2, 165, 166, 7, 101, 2, 2, 166, 167, 7, 113, 2, 2, 167, 168, 7, 110, 2, 2, 168, 169, 7, 106, 2, 2, 169, 170, 7, 99, 2, 2, 170, 18, 3, 2, 2, 2, 171, 172, 7, 101, 2, 2, 172, 173, 7, 99, 2, 2, 173, 174, 7, 117, 2, 2, 174, 175, 7, 113, 2, 2, 175, 20, 3, 2, 2, 2, 176, 177, 7, 101, 2, 2, 177, 178, 7, 113, 2, 2, 178, 179, 7, 112, 2, 2, 179, 180, 7, 118, 2, 2, 180, 181, 7, 116, 2, 2, 181, 182, 7, 99, 2, 2, 182, 183, 7, 116, 2, 2, 183, 184, 7, 107, 2, 2, 184, 185, 7, 113, 2, 2, 185, 22, 3, 2, 2, 2, 186, 187, 7, 101, 2, 2, 187, 188, 7, 113, 2, 2, 188, 189, 7, 112, 2, 2, 189, 190, 7, 117, 2, 2, 190, 191, 7, 118, 2, 2, 191, 24, 3, 2, 2, 2, 192, 193, 7, 104, 2, 2, 193, 194, 7, 119, 2, 2, 194, 195, 7, 112, 2, 2, 195, 196, 7, 101, 2, 2, 196, 197, 7, 99, 2, 2, 197, 198, 7, 113, 2, 2, 198, 26, 3, 2, 2, 2, 199, 200, 7, 116, 2, 2, 200, 201, 7, 103, 2, 2, 201, 202, 7, 118, 2, 2, 202, 203, 7, 113, 2, 2, 203, 204, 7, 116, 2, 2, 204, 205, 7, 112, 2, 2, 205, 206, 7, 103, 2, 2, 206, 28, 3, 2, 2, 2, 207, 208, 7, 114, 2, 2, 208, 209, 7, 99, 2, 2, 209, 210, 7, 116, 2, 2, 210, 211, 7, 99, 2, 2, 211, 30, 3, 2, 2, 2, 212, 213, 7, 114, 2, 2, 213, 214, 7, 99, 2, 2, 214, 215, 7, 116, 2, 2, 215, 216, 7, 103, 2, 2, 216, 32, 3, 2, 2, 2, 217, 218, 7, 104, 2, 2, 218, 219, 7, 99, 2, 2, 219, 220, 7, 101, 2, 2, 220, 221, 7, 99, 2, 2, 221, 34, 3, 2, 2, 2, 222, 223, 7, 103, 2, 2, 223, 224, 7, 112, 2, 2, 224, 225, 7, 115, 2, 2, 225, 226, 7, 119, 2, 2, 226, 227, 7, 99, 2, 2, 227, 228, 7, 112, 2, 2, 228, 229, 7, 118, 2, 2, 229, 230, 7, 113, 2, 2, 230, 36, 3, 2, 2, 2, 231, 232, 7, 117, 2, 2, 232, 233, 7, 103, 2, 2, 233, 38, 3, 2, 2, 2, 234, 235, 7, 117, 2, 2, 235, 236, 7, 103, 2, 2, 236, 237, 7, 112, 2, 2, 237, 238, 7, 99, 2, 2, 238, 239, 7, 113, 2, 2, 239, 40, 3, 2, 2, 2, 240, 241, 7, 104, 2, 2, 241, 242, 7, 99, 2, 2, 242, 243, 7, 110, 2, 2, 243, 244, 7, 117, 2, 2, 244, 245, 7, 113, 2, 2, 245, 42, 3, 2, 2, 2, 246, 247, 7, 120, 2, 2, 247, 248, 7, 103, 2, 2, 248, 249, 7, 116, 2, 2, 249, 250, 7, 102, 2, 2, 250, 251, 7, 99, 2, 2, 251, 252, 7, 102, 2, 2, 252, 253, 7, 103, 2, 2, 253, 254, 7, 107, 2, 2, 254, 255, 7, 116, 2, 2, 255, 256, 7, 113, 2, 2, 256, 44, 3, 2, 2, 2, 257, 258, 7, 112, 2, 2, 258, 259, 7, 99, 2, 2, 259, 260, 7, 113, 2, 2, 260, 46, 3, 2, 2, 2, 261, 262, 7, 71, 2, 2, 262, 48, 3, 2, 2, 2, 263, 264, 7, 81, 2, 2, 264, 265, 7, 87, 2, 2, 265, 50, 3, 2, 2, 2, 266, 267, 7, 42, 2, 2, 267, 52, 3, 2, 2, 2, 268, 269, 7, 43, 2, 2, 269, 54, 3, 2, 2, 2, 270, 271, 7, 93, 2, 2, 271, 56, 3, 2, 2, 2, 272, 273, 7, 95, 2, 2, 273, 58, 3, 2, 2, 2, 274, 275, 7, 125, 2, 2, 275, 60, 3, 2, 2, 2, 276, 277, 7, 127, 2, 2, 277, 62, 3, 2, 2, 2, 278, 279, 7, 46, 2, 2, 279, 64, 3, 2, 2, 2, 280, 281, 7, 63, 2, 2, 281, 66, 3, 2, 2, 2, 282, 283, 9, 2, 2, 2, 283, 68, 3, 2, 2, 2, 284, 285, 9, 3, 2, 2, 285, 70, 3, 2, 2, 2, 286, 287, 5, 47, 24, 2, 287, 72, 3, 2, 2, 2, 288, 289, 5, 49, 25, 2, 289, 74, 3, 2, 2, 2, 290, 291, 7, 64, 2, 2, 291, 298, 7, 63, 2, 2, 292, 293, 7, 63, 2, 2, 293, 298, 7, 63, 2, 2, 294, 295, 7, 62, 2, 2, 295, 298, 7, 63, 2, 2, 296, 298, 9, 4, 2, 2, 297, 290, 3, 2, 2, 2, 297, 292, 3, 2, 2, 2, 297, 294, 3, 2, 2, 2, 297, 296, 3, 2, 2, 2, 298, 76, 3, 2, 2, 2, 299, 300, 7, 60, 2, 2, 300, 78, 3, 2, 2, 2, 301, 302, 5, 45, 23, 2, 302, 80, 3, 2, 2, 2, 303, 307, 9, 5, 2, 2, 304, 306, 9, 6, 2, 2, 305, 304, 3, 2, 2, 2, 306, 309, 3, 2, 2, 2, 307, 305, 3, 2, 2, 2, 307, 308, 3, 2, 2, 2, 308, 82, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 310, 312, 9, 7, 2, 2, 311, 310, 3, 2, 2, 2, 312, 313, 3, 2, 2, 2, 313, 311, 3, 2, 2, 2, 313, 314, 3, 2, 2, 2, 314, 338, 3, 2, 2, 2, 315, 316, 7, 50, 2, 2, 316, 320, 7, 122, 2, 2, 317, 318, 7, 50, 2, 2, 318, 320, 7, 90, 2, 2, 319, 315, 3, 2, 2, 2, 319, 317, 3, 2, 2, 2, 320, 322, 3, 2, 2, 2, 321, 323, 5, 99, 50, 2, 322, 321, 3, 2, 2, 2, 323, 324, 3, 2, 2, 2, 324, 322, 3, 2, 2, 2, 324, 325, 3, 2, 2, 2, 325, 338, 3, 2, 2, 2, 326, 327, 7, 50, 2, 2, 327, 331, 7, 100, 2, 2, 328, 329, 7, 50, 2, 2, 329, 331, 7, 68, 2, 2, 330, 326, 3, 2, 2, 2, 330, 328, 3, 2, 2, 2, 331, 333, 3, 2, 2, 2, 332, 334, 9, 8, 2, 2, 333, 332, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 333, 3, 2, 2, 2, 335, 336, 3, 2, 2, 2, 336, 338, 3, 2, 2, 2, 337, 311, 3, 2, 2, 2, 337, 319, 3, 2, 2, 2, 337, 330, 3, 2, 2, 2, 338, 84, 3, 2, 2, 2, 339, 341, 9, 7, 2, 2, 340, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 340, 3, 2, 2, 2, 342, 343, 3, 2, 2, 2, 343, 344, 3, 2, 2, 2, 344, 346, 7, 48, 2, 2, 345, 347, 9, 7, 2, 2, 346, 345, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 346, 3, 2, 2, 2, 348, 349, 3, 2, 2, 2, 349, 86, 3, 2, 2, 2, 350, 354, 7, 36, 2, 2, 351, 353, 5, 89, 45, 2, 352, 351, 3, 2, 2, 2, 353, 356, 3, 2, 2, 2, 354, 352, 3, 2, 2, 2, 354, 355, 3, 2, 2, 2, 355, 357, 3, 2, 2, 2, 356, 354, 3, 2, 2, 2, 357, 358, 7, 36, 2, 2, 358, 88, 3, 2, 2, 2, 359, 362, 10, 9, 2, 2, 360, 362, 5, 103, 52, 2, 361, 359, 3, 2, 2, 2, 361, 360, 3, 2, 2, 2, 362, 90, 3, 2, 2, 2, 363, 366, 7, 41, 2, 2, 364, 367, 5, 103, 52, 2, 365, 367, 10, 10, 2, 2, 366, 364, 3, 2, 2, 2, 366, 365, 3, 2, 2, 2, 367, 368, 3, 2, 2, 2, 368, 369, 7, 41, 2, 2, 369, 92, 3, 2, 2, 2, 370, 371, 9, 11, 2, 2, 371, 372, 3, 2, 2, 2, 372, 373, 8, 47, 2, 2, 373, 94, 3, 2, 2, 2, 374, 375, 7, 61, 2, 2, 375, 96, 3, 2, 2, 2, 376, 378, 9, 12, 2, 2, 377, 376, 3, 2, 2, 2, 378, 379, 3, 2, 2, 2, 379, 377, 3, 2, 2, 2, 379, 380, 3, 2, 2, 2, 380, 383, 3, 2, 2, 2, 381, 383, 5, 95, 48, 2, 382, 377, 3, 2, 2, 2, 382, 381, 3, 2, 2, 2, 383, 98, 3, 2, 2, 2, 384, 385, 9, 13, 2, 2, 385, 100, 3, 2, 2, 2, 386, 387, 9, 14, 2, 2, 387, 102, 3, 2, 2, 2, 388, 389, 7, 94, 2, 2, 389, 393, 9, 15, 2, 2, 390, 393, 5, 107, 54, 2, 391, 393, 5, 105, 53, 2, 392, 388, 3, 2, 2, 2, 392, 390, 3, 2, 2, 2, 392, 391, 3, 2, 2, 2, 393, 104, 3, 2, 2, 2, 394, 395, 7, 94, 2, 2, 395, 396, 9, 16, 2, 2, 396, 397, 5, 101, 51, 2, 397, 398, 5, 101, 51, 2, 398, 406, 3, 2, 2, 2, 399, 400, 7, 94, 2, 2, 400, 401, 5, 101, 51, 2, 401, 402, 5, 101, 51, 2, 402, 406, 3, 2, 2, 2, 403, 404, 7, 94, 2, 2, 404, 406, 5, 101, 51, 2, 405, 394, 3, 2, 2, 2, 405, 399, 3, 2, 2, 2, 405, 403, 3, 2, 2, 2, 406, 106, 3, 2, 2, 2, 407, 408, 7, 94, 2, 2, 408, 409, 7, 119, 2, 2, 409, 410, 5, 99, 50, 2, 410, 411, 5, 99, 50, 2, 411, 412, 5, 99, 50, 2, 412, 413, 5, 99, 50, 2, 413, 108, 3, 2, 2, 2, 414, 415, 7, 49, 2, 2, 415, 416, 7, 49, 2, 2, 416, 420, 3, 2, 2, 2, 417, 419, 10, 12, 2, 2, 418, 417, 3, 2, 2, 2, 419, 422, 3, 2, 2, 2, 420, 418, 3, 2, 2, 2, 420, 421, 3, 2, 2, 2, 421, 424, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 423, 425, 7, 15, 2, 2, 424, 423, 3, 2, 2, 2, 424, 425, 3, 2, 2, 2, 425, 426, 3, 2, 2, 2, 426, 439, 7, 12, 2, 2, 427, 428, 7, 49, 2, 2, 428, 429, 7, 44, 2, 2, 429, 433, 3, 2, 2, 2, 430, 432, 11, 2, 2, 2, 431, 430, 3, 2, 2, 2, 432, 435, 3, 2, 2, 2, 433, 434, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 434, 436, 3, 2, 2, 2, 435, 433, 3, 2, 2, 2, 436, 437, 7, 44, 2, 2, 437, 439, 7, 49, 2, 2, 438, 414, 3, 2, 2, 2, 438, 427, 3, 2, 2, 2, 439, 440, 3, 2, 2, 2, 440, 441, 8, 55, 3, 2, 441, 110, 3, 2, 2, 2, 24, 2, 297, 307, 313, 319, 324, 330, 335, 337, 342, 348, 354, 361, 366, 379, 382, 392, 405, 420, 424, 433, 438, 4, 8, 2, 2, 2, 3, 2]