HyperDbg/hyperdbg/script-engine/code/parse-table.c
2024-03-02 21:57:02 +09:00

2176 lines
199 KiB
C

#include "pch.h"
const struct _TOKEN Lhs[RULES_COUNT] =
{
{NON_TERMINAL, "S"},
{NON_TERMINAL, "S"},
{NON_TERMINAL, "S"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "S2"},
{NON_TERMINAL, "S2"},
{NON_TERMINAL, "S2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "STATEMENT2"},
{NON_TERMINAL, "RETURN"},
{NON_TERMINAL, "RETURN"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE1"},
{NON_TERMINAL, "VARIABLE_TYPE2"},
{NON_TERMINAL, "VARIABLE_TYPE2"},
{NON_TERMINAL, "VARIABLE_TYPE3"},
{NON_TERMINAL, "VARIABLE_TYPE4"},
{NON_TERMINAL, "VARIABLE_TYPE4"},
{NON_TERMINAL, "VARIABLE_TYPE5"},
{NON_TERMINAL, "VARIABLE_TYPE5"},
{NON_TERMINAL, "VARIABLE_TYPE6"},
{NON_TERMINAL, "VARIABLE_TYPE6"},
{NON_TERMINAL, "L_VALUE2"},
{NON_TERMINAL, "L_VALUE2"},
{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"},
{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"},
{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"},
{NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"},
{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},
{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},
{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "VA"},
{NON_TERMINAL, "VA"},
{NON_TERMINAL, "IF_STATEMENT"},
{NON_TERMINAL, "ELSIF_STATEMENT"},
{NON_TERMINAL, "ELSIF_STATEMENT"},
{NON_TERMINAL, "ELSIF_STATEMENT'"},
{NON_TERMINAL, "ELSE_STATEMENT"},
{NON_TERMINAL, "ELSE_STATEMENT"},
{NON_TERMINAL, "END_OF_IF"},
{NON_TERMINAL, "WHILE_STATEMENT"},
{NON_TERMINAL, "DO_WHILE_STATEMENT"},
{NON_TERMINAL, "FOR_STATEMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT'"},
{NON_TERMINAL, "INC_DEC"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "BOOLEAN_EXPRESSION"},
{NON_TERMINAL, "EXPRESSION"},
{NON_TERMINAL, "E0'"},
{NON_TERMINAL, "E0'"},
{NON_TERMINAL, "E1"},
{NON_TERMINAL, "E1'"},
{NON_TERMINAL, "E1'"},
{NON_TERMINAL, "E2"},
{NON_TERMINAL, "E2'"},
{NON_TERMINAL, "E2'"},
{NON_TERMINAL, "E3"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E4"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E13"},
{NON_TERMINAL, "E13"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "STRING"},
{NON_TERMINAL, "WSTRING"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "StringNumber"},
{NON_TERMINAL, "StringNumber"},
{NON_TERMINAL, "WstringNumber"},
{NON_TERMINAL, "WstringNumber"}};
const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN] =
{
{{NON_TERMINAL, "STATEMENT"}, {NON_TERMINAL, "S"}},
{{SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "STATEMENT"}, {NON_TERMINAL, "S"}, {SPECIAL_TOKEN, "}"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "IF_STATEMENT"}},
{{NON_TERMINAL, "WHILE_STATEMENT"}},
{{NON_TERMINAL, "DO_WHILE_STATEMENT"}},
{{NON_TERMINAL, "FOR_STATEMENT"}},
{{NON_TERMINAL, "L_VALUE"}, {NON_TERMINAL, "L_VALUE2"}},
{{NON_TERMINAL, "CALL_FUNC_STATEMENT"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "break"}, {SEMANTIC_RULE, "@BREAK"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "continue"}, {SEMANTIC_RULE, "@CONTINUE"}, {SPECIAL_TOKEN, ";"}},
{{NON_TERMINAL, "VARIABLE_TYPE3"}},
{{NON_TERMINAL, "STATEMENT2"}, {NON_TERMINAL, "S2"}},
{{SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "STATEMENT2"}, {NON_TERMINAL, "S2"}, {SPECIAL_TOKEN, "}"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "IF_STATEMENT"}},
{{NON_TERMINAL, "WHILE_STATEMENT"}},
{{NON_TERMINAL, "DO_WHILE_STATEMENT"}},
{{NON_TERMINAL, "FOR_STATEMENT"}},
{{NON_TERMINAL, "L_VALUE"}, {NON_TERMINAL, "L_VALUE2"}},
{{NON_TERMINAL, "CALL_FUNC_STATEMENT"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "break"}, {SEMANTIC_RULE, "@BREAK"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "continue"}, {SEMANTIC_RULE, "@CONTINUE"}, {SPECIAL_TOKEN, ";"}},
{{NON_TERMINAL, "VARIABLE_TYPE1"}, {NON_TERMINAL, "VARIABLE_TYPE2"}, {NON_TERMINAL, "L_VALUE"}, {SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "return"}, {NON_TERMINAL, "RETURN"}, {SPECIAL_TOKEN, ";"}},
{{EPSILON, "eps"}, {SEMANTIC_RULE, "@RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE"}},
{{NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE"}},
{{SEMANTIC_RULE, "@VOID"}, {KEYWORD, "void"}},
{{SEMANTIC_RULE, "@BOOL"}, {KEYWORD, "bool"}},
{{SEMANTIC_RULE, "@CHAR"}, {KEYWORD, "char"}},
{{SEMANTIC_RULE, "@SHORT"}, {KEYWORD, "short"}},
{{SEMANTIC_RULE, "@INT"}, {KEYWORD, "int"}},
{{SEMANTIC_RULE, "@LONG"}, {KEYWORD, "long"}},
{{SEMANTIC_RULE, "@UNSIGNED"}, {KEYWORD, "unsigned"}},
{{SEMANTIC_RULE, "@SIGNED"}, {KEYWORD, "signed"}},
{{SEMANTIC_RULE, "@FLOAT"}, {KEYWORD, "float"}},
{{SEMANTIC_RULE, "@DOUBLE"}, {KEYWORD, "double"}},
{{NON_TERMINAL, "VARIABLE_TYPE1"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "VARIABLE_TYPE1"}, {NON_TERMINAL, "VARIABLE_TYPE2"}, {NON_TERMINAL, "L_VALUE"}, {NON_TERMINAL, "VARIABLE_TYPE4"}},
{{SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {SPECIAL_TOKEN, ";"}},
{{SEMANTIC_RULE, "@START_OF_USER_DEFINED_FUNCTION"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "VARIABLE_TYPE5"}, {SPECIAL_TOKEN, ")"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S2"}, {SEMANTIC_RULE, "@END_OF_USER_DEFINED_FUNCTION"}, {SPECIAL_TOKEN, "}"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "VARIABLE_TYPE1"}, {NON_TERMINAL, "VARIABLE_TYPE2"}, {NON_TERMINAL, "L_VALUE"}, {SEMANTIC_RULE, "@FUNCTION_PARAMETER"}, {NON_TERMINAL, "VARIABLE_TYPE6"}},
{{SPECIAL_TOKEN, ","}, {NON_TERMINAL, "VARIABLE_TYPE1"}, {NON_TERMINAL, "VARIABLE_TYPE2"}, {NON_TERMINAL, "L_VALUE"}, {SEMANTIC_RULE, "@FUNCTION_PARAMETER"}, {NON_TERMINAL, "VARIABLE_TYPE6"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "ASSIGNMENT_STATEMENT'"}, {SPECIAL_TOKEN, ";"}},
{{SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE"}, {SPECIAL_TOKEN, ";"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION_PARAMETER"}, {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"}},
{{SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION_PARAMETER"}, {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER2"}},
{{EPSILON, "eps"}},
{{SPECIAL_TOKEN, "++"}, {SEMANTIC_RULE, "@INC"}},
{{SPECIAL_TOKEN, "--"}, {SEMANTIC_RULE, "@DEC"}},
{{SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}},
{{KEYWORD, "print"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@PRINT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "formats"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@FORMATS"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_enable"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EVENT_ENABLE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_disable"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EVENT_DISABLE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_clear"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EVENT_CLEAR"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "test_statement"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@TEST_STATEMENT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "spinlock_lock"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@SPINLOCK_LOCK"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "spinlock_unlock"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@SPINLOCK_UNLOCK"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_sc"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EVENT_SC"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "printf"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "STRING"}, {SEMANTIC_RULE, "@VARGSTART"}, {NON_TERMINAL, "VA"}, {SEMANTIC_RULE, "@PRINTF"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "pause"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@PAUSE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "flush"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@FLUSH"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_trace_step"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@EVENT_TRACE_STEP"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_trace_step_in"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@EVENT_TRACE_STEP_IN"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_trace_step_out"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@EVENT_TRACE_STEP_OUT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_trace_instrumentation_step"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@EVENT_TRACE_INSTRUMENTATION_STEP"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_trace_instrumentation_step_in"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@EVENT_TRACE_INSTRUMENTATION_STEP_IN"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "spinlock_lock_custom_wait"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@SPINLOCK_LOCK_CUSTOM_WAIT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "event_inject"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EVENT_INJECT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "poi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@POI"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "db"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DB"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "dd"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DD"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "dw"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DW"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "dq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DQ"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "neg"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@NEG"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "hi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@HI"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "low"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@LOW"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "not"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@NOT"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "check_address"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@CHECK_ADDRESS"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "disassemble_len"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "disassemble_len32"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN32"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "disassemble_len64"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN64"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "interlocked_increment"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_INCREMENT"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "interlocked_decrement"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_DECREMENT"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "reference"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@REFERENCE"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "physical_to_virtual"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@PHYSICAL_TO_VIRTUAL"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "virtual_to_physical"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@VIRTUAL_TO_PHYSICAL"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "ed"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@ED"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "eb"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EB"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "eq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EQ"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "interlocked_exchange"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "interlocked_exchange_add"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE_ADD"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "interlocked_compare_exchange"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_COMPARE_EXCHANGE"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "strlen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SEMANTIC_RULE, "@STRLEN"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "strcmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "StringNumber"}, {SEMANTIC_RULE, "@STRCMP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "memcmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MEMCMP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "wcslen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "WstringNumber"}, {SEMANTIC_RULE, "@WCSLEN"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "wcscmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "WstringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "WstringNumber"}, {SEMANTIC_RULE, "@WCSCMP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@IGNORE_LVALUE"}},
{{KEYWORD, "event_inject_error_code"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EVENT_INJECT_ERROR_CODE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "memcpy"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MEMCPY"}, {SPECIAL_TOKEN, ")"}},
{{SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {NON_TERMINAL, "VA"}},
{{EPSILON, "eps"}},
{{KEYWORD, "if"}, {SEMANTIC_RULE, "@START_OF_IF"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@JZ"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S2"}, {SPECIAL_TOKEN, "}"}, {NON_TERMINAL, "ELSIF_STATEMENT"}, {NON_TERMINAL, "ELSE_STATEMENT"}, {SEMANTIC_RULE, "@END_OF_IF"}, {NON_TERMINAL, "END_OF_IF"}},
{{KEYWORD, "elsif"}, {SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@JZ"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S2"}, {SPECIAL_TOKEN, "}"}, {NON_TERMINAL, "ELSIF_STATEMENT"}},
{{SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"}, {NON_TERMINAL, "ELSIF_STATEMENT'"}},
{{EPSILON, "eps"}},
{{KEYWORD, "else"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S2"}, {SPECIAL_TOKEN, "}"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{KEYWORD, "while"}, {SEMANTIC_RULE, "@START_OF_WHILE"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@START_OF_WHILE_COMMANDS"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S2"}, {SEMANTIC_RULE, "@END_OF_WHILE"}, {SPECIAL_TOKEN, "}"}},
{{KEYWORD, "do"}, {SEMANTIC_RULE, "@START_OF_DO_WHILE"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S2"}, {SPECIAL_TOKEN, "}"}, {KEYWORD, "while"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@END_OF_DO_WHILE"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "for"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "SIMPLE_ASSIGNMENT"}, {SPECIAL_TOKEN, ";"}, {SEMANTIC_RULE, "@START_OF_FOR"}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ";"}, {SEMANTIC_RULE, "@FOR_INC_DEC"}, {NON_TERMINAL, "INC_DEC"}, {SPECIAL_TOKEN, ")"}, {SPECIAL_TOKEN, "{"}, {SEMANTIC_RULE, "@START_OF_FOR_COMMANDS"}, {NON_TERMINAL, "S2"}, {SEMANTIC_RULE, "@END_OF_FOR"}, {SPECIAL_TOKEN, "}"}},
{{NON_TERMINAL, "VARIABLE_TYPE1"}, {NON_TERMINAL, "VARIABLE_TYPE2"}, {NON_TERMINAL, "L_VALUE"}, {SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {NON_TERMINAL, "SIMPLE_ASSIGNMENT'"}},
{{NON_TERMINAL, "L_VALUE"}, {SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {NON_TERMINAL, "SIMPLE_ASSIGNMENT'"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "L_VALUE"}, {NON_TERMINAL, "INC_DEC'"}},
{{SPECIAL_TOKEN, "++"}, {SEMANTIC_RULE, "@INC"}},
{{SPECIAL_TOKEN, "--"}, {SEMANTIC_RULE, "@DEC"}},
{{SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {NON_TERMINAL, "SIMPLE_ASSIGNMENT'"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E1"}, {NON_TERMINAL, "E0'"}},
{{SPECIAL_TOKEN, "|"}, {NON_TERMINAL, "E1"}, {SEMANTIC_RULE, "@OR"}, {NON_TERMINAL, "E0'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E2"}, {NON_TERMINAL, "E1'"}},
{{SPECIAL_TOKEN, "^"}, {NON_TERMINAL, "E2"}, {SEMANTIC_RULE, "@XOR"}, {NON_TERMINAL, "E1'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E3"}, {NON_TERMINAL, "E2'"}},
{{SPECIAL_TOKEN, "&"}, {NON_TERMINAL, "E3"}, {SEMANTIC_RULE, "@AND"}, {NON_TERMINAL, "E2'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E4"}, {NON_TERMINAL, "E3'"}},
{{SPECIAL_TOKEN, ">>"}, {NON_TERMINAL, "E4"}, {SEMANTIC_RULE, "@ASR"}, {NON_TERMINAL, "E3'"}},
{{SPECIAL_TOKEN, "<<"}, {NON_TERMINAL, "E4"}, {SEMANTIC_RULE, "@ASL"}, {NON_TERMINAL, "E3'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E5"}, {NON_TERMINAL, "E4'"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E5"}, {SEMANTIC_RULE, "@ADD"}, {NON_TERMINAL, "E4'"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E5"}, {SEMANTIC_RULE, "@SUB"}, {NON_TERMINAL, "E4'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E12"}, {NON_TERMINAL, "E5'"}},
{{SPECIAL_TOKEN, "/"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@DIV"}, {NON_TERMINAL, "E5'"}},
{{SPECIAL_TOKEN, "%"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@MOD"}, {NON_TERMINAL, "E5'"}},
{{SPECIAL_TOKEN, "*"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@MUL"}, {NON_TERMINAL, "E5'"}},
{{EPSILON, "eps"}},
{{KEYWORD, "poi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@POI"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "db"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DB"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "dd"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DD"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "dw"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DW"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "dq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DQ"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "neg"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@NEG"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "hi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@HI"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "low"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@LOW"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "not"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@NOT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "check_address"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@CHECK_ADDRESS"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "disassemble_len"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "disassemble_len32"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN32"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "disassemble_len64"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN64"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "interlocked_increment"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_INCREMENT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "interlocked_decrement"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_DECREMENT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "reference"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@REFERENCE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "physical_to_virtual"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@PHYSICAL_TO_VIRTUAL"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "virtual_to_physical"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@VIRTUAL_TO_PHYSICAL"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "ed"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@ED"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "eb"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EB"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "eq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@EQ"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "interlocked_exchange"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "interlocked_exchange_add"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE_ADD"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "interlocked_compare_exchange"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@INTERLOCKED_COMPARE_EXCHANGE"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "strlen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SEMANTIC_RULE, "@STRLEN"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "strcmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "StringNumber"}, {SEMANTIC_RULE, "@STRCMP"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "memcmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MEMCMP"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "wcslen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "WstringNumber"}, {SEMANTIC_RULE, "@WCSLEN"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "wcscmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "WstringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "WstringNumber"}, {SEMANTIC_RULE, "@WCSCMP"}, {SPECIAL_TOKEN, ")"}},
{{SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ")"}},
{{NON_TERMINAL, "L_VALUE"}, {NON_TERMINAL, "E13"}},
{{EPSILON, "eps"}},
{{SEMANTIC_RULE, "@CALL_USER_DEFINED_FUNCTION"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "CALL_USER_DEFINED_FUNCTION_PARAMETER"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE"}},
{{SEMANTIC_RULE, "@PUSH"}, {HEX, "_hex"}},
{{SEMANTIC_RULE, "@PUSH"}, {DECIMAL, "_decimal"}},
{{SEMANTIC_RULE, "@PUSH"}, {OCTAL, "_octal"}},
{{SEMANTIC_RULE, "@PUSH"}, {BINARY, "_binary"}},
{{SEMANTIC_RULE, "@PUSH"}, {PSEUDO_REGISTER, "_pseudo_register"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NEG"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E12"}},
{{SPECIAL_TOKEN, "~"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NOT"}},
{{SPECIAL_TOKEN, "*"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@POI"}},
{{SPECIAL_TOKEN, "&"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@REFERENCE"}},
{{SEMANTIC_RULE, "@PUSH"}, {STRING, "_string"}},
{{SEMANTIC_RULE, "@PUSH"}, {WSTRING, "_wstring"}},
{{SEMANTIC_RULE, "@PUSH"}, {GLOBAL_ID, "_global_id"}},
{{SEMANTIC_RULE, "@PUSH"}, {LOCAL_ID, "_local_id"}},
{{SEMANTIC_RULE, "@PUSH"}, {REGISTER, "_register"}},
{{SEMANTIC_RULE, "@PUSH"}, {FUNCTION_PARAMETER_ID, "_function_parameter_id"}},
{{NON_TERMINAL, "EXPRESSION"}},
{{NON_TERMINAL, "STRING"}},
{{NON_TERMINAL, "EXPRESSION"}},
{{NON_TERMINAL, "WSTRING"}}};
const unsigned int RhsSize[RULES_COUNT] =
{
2,
4,
1,
1,
1,
1,
1,
2,
2,
3,
3,
1,
2,
4,
1,
1,
1,
1,
1,
2,
2,
3,
3,
7,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
1,
4,
4,
8,
1,
5,
6,
1,
2,
6,
1,
3,
4,
1,
2,
2,
3,
5,
5,
5,
5,
5,
5,
5,
5,
5,
7,
4,
4,
4,
4,
4,
4,
4,
7,
7,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
8,
8,
8,
8,
8,
10,
6,
8,
10,
6,
8,
9,
9,
3,
1,
13,
10,
2,
1,
4,
1,
1,
10,
11,
15,
7,
5,
1,
1,
2,
2,
2,
4,
1,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
4,
1,
2,
4,
4,
1,
2,
4,
4,
4,
1,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
7,
7,
7,
7,
7,
9,
5,
7,
9,
5,
7,
3,
2,
1,
5,
2,
2,
2,
2,
2,
3,
2,
3,
3,
3,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1};
const char * NoneTerminalMap[NONETERMINAL_COUNT] =
{
"ELSE_STATEMENT",
"WstringNumber",
"INC_DEC",
"SIMPLE_ASSIGNMENT",
"VA",
"L_VALUE",
"VARIABLE_TYPE2",
"EXPRESSION",
"E4",
"FOR_STATEMENT",
"E2",
"ELSIF_STATEMENT'",
"IF_STATEMENT",
"VARIABLE_TYPE6",
"E13",
"VARIABLE_TYPE5",
"E1'",
"END_OF_IF",
"E3",
"VARIABLE_TYPE4",
"CALL_USER_DEFINED_FUNCTION_PARAMETER2",
"DO_WHILE_STATEMENT",
"RETURN",
"STRING",
"WSTRING",
"E5'",
"E5",
"StringNumber",
"VARIABLE_TYPE1",
"E12",
"INC_DEC'",
"CALL_FUNC_STATEMENT",
"SIMPLE_ASSIGNMENT'",
"E3'",
"E2'",
"E1",
"STATEMENT",
"ELSIF_STATEMENT",
"S2",
"ASSIGNMENT_STATEMENT'",
"CALL_USER_DEFINED_FUNCTION_PARAMETER",
"STATEMENT2",
"S",
"BOOLEAN_EXPRESSION",
"E4'",
"VARIABLE_TYPE3",
"WHILE_STATEMENT",
"L_VALUE2",
"E0'"};
const char * TerminalMap[TERMINAL_COUNT] =
{
"flush",
"char",
"physical_to_virtual",
"else",
"dq",
"spinlock_unlock",
"check_address",
"wcscmp",
"formats",
"do",
"_decimal",
"continue",
"~",
"memcpy",
"_binary",
"eq",
"unsigned",
"hi",
"spinlock_lock_custom_wait",
"event_trace_instrumentation_step_in",
"dd",
"bool",
"(",
"short",
"++",
"*",
"break",
"^",
"_function_parameter_id",
"low",
";",
"int",
")",
"print",
"$",
"while",
"disassemble_len32",
"--",
"neg",
">>",
"not",
"event_inject",
"reference",
"-",
"event_trace_step",
"event_trace_instrumentation_step",
"event_enable",
"return",
"_octal",
"interlocked_compare_exchange",
"}",
"if",
"event_inject_error_code",
"_global_id",
"db",
"for",
"|",
"_hex",
"pause",
"double",
"signed",
"interlocked_increment",
"&",
"printf",
"eb",
"test_statement",
"_wstring",
"virtual_to_physical",
"event_trace_step_out",
"spinlock_lock",
",",
"ed",
"long",
"interlocked_exchange",
"dw",
"strcmp",
"<<",
"_pseudo_register",
"%",
"{",
"void",
"interlocked_exchange_add",
"poi",
"elsif",
"_string",
"memcmp",
"wcslen",
"/",
"_register",
"event_clear",
"disassemble_len64",
"strlen",
"interlocked_decrement",
"=",
"+",
"disassemble_len",
"event_trace_step_in",
"_local_id",
"float",
"event_sc",
"event_disable"};
const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT] =
{
{112, 112, 112, 111, 112, 112, 112, 112, 112, 112, -999, 112, -999, 112, -999, 112, 112, 112, 112, 112, 112, 112, -999, 112, -999, -999, 112, -999, 112, 112, -999, 112, -999, 112, 112, 112, 112, -999, 112, -999, 112, 112, 112, -999, 112, 112, 112, 112, -999, 112, 112, 112, 112, 112, 112, 112, -999, -999, 112, 112, 112, 112, -999, 112, 112, 112, -999, 112, 112, 112, -999, 112, 112, 112, 112, 112, -999, -999, -999, 112, 112, 112, 112, -999, -999, 112, 112, -999, 112, 112, 112, 112, 112, -999, -999, 112, 112, 112, 112, 112, 112},
{-999, -999, 200, -999, 200, -999, 200, 200, -999, -999, 200, -999, 200, -999, 200, 200, -999, 200, -999, -999, 200, -999, 200, -999, -999, 200, -999, -999, 200, 200, -999, -999, -999, -999, -999, -999, 200, -999, 200, -999, 200, -999, 200, 200, -999, -999, -999, -999, 200, 200, -999, -999, -999, 200, 200, -999, -999, 200, -999, -999, -999, 200, 200, -999, 200, -999, 201, 200, -999, -999, -999, 200, -999, 200, 200, 200, -999, 200, -999, -999, -999, 200, 200, -999, -999, 200, 200, -999, 200, -999, 200, 200, 200, -999, 200, 200, -999, 200, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 121, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 121, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 121, -999, -999, -999, -999, -999, -999, -999, -999, 121, -999, -999, -999},
{-999, 117, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 117, -999, -999, -999, -999, 117, -999, 117, -999, -999, -999, -999, 118, -999, 119, 117, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 118, -999, -999, -999, -999, -999, 117, 117, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 117, -999, -999, -999, -999, -999, -999, -999, 117, -999, -999, -999, -999, -999, -999, -999, 118, -999, -999, -999, -999, -999, -999, -999, -999, 118, 117, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 106, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 105, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 197, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 194, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 196, -999, -999, -999, -999, -999, -999, -999, -999, 195, -999, -999, -999},
{-999, 37, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 37, -999, -999, -999, -999, 37, -999, 37, -999, -999, -999, -999, 38, -999, -999, 37, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 38, -999, -999, -999, -999, -999, 37, 37, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 37, -999, -999, -999, -999, -999, -999, -999, 37, -999, -999, -999, -999, -999, -999, -999, 38, -999, -999, -999, -999, -999, -999, -999, -999, 38, 37, -999, -999},
{-999, -999, 127, -999, 127, -999, 127, 127, -999, -999, 127, -999, 127, -999, 127, 127, -999, 127, -999, -999, 127, -999, 127, -999, -999, 127, -999, -999, 127, 127, -999, -999, -999, -999, -999, -999, 127, -999, 127, -999, 127, -999, 127, 127, -999, -999, -999, -999, 127, 127, -999, -999, -999, 127, 127, -999, -999, 127, -999, -999, -999, 127, 127, -999, 127, -999, -999, 127, -999, -999, -999, 127, -999, 127, 127, 127, -999, 127, -999, -999, -999, 127, 127, -999, -999, 127, 127, -999, 127, -999, 127, 127, 127, -999, 127, 127, -999, 127, -999, -999, -999},
{-999, -999, 140, -999, 140, -999, 140, 140, -999, -999, 140, -999, 140, -999, 140, 140, -999, 140, -999, -999, 140, -999, 140, -999, -999, 140, -999, -999, 140, 140, -999, -999, -999, -999, -999, -999, 140, -999, 140, -999, 140, -999, 140, 140, -999, -999, -999, -999, 140, 140, -999, -999, -999, 140, 140, -999, -999, 140, -999, -999, -999, 140, 140, -999, 140, -999, -999, 140, -999, -999, -999, 140, -999, 140, 140, 140, -999, 140, -999, -999, -999, 140, 140, -999, -999, 140, 140, -999, 140, -999, 140, 140, 140, -999, 140, 140, -999, 140, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 116, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, 133, -999, 133, -999, 133, 133, -999, -999, 133, -999, 133, -999, 133, 133, -999, 133, -999, -999, 133, -999, 133, -999, -999, 133, -999, -999, 133, 133, -999, -999, -999, -999, -999, -999, 133, -999, 133, -999, 133, -999, 133, 133, -999, -999, -999, -999, 133, 133, -999, -999, -999, 133, 133, -999, -999, 133, -999, -999, -999, 133, 133, -999, 133, -999, -999, 133, -999, -999, -999, 133, -999, 133, 133, 133, -999, 133, -999, -999, -999, 133, 133, -999, -999, 133, 133, -999, 133, -999, 133, 133, 133, -999, 133, 133, -999, 133, -999, -999, -999},
{110, 110, 110, 110, 110, 110, 110, 110, 110, 110, -999, 110, -999, 110, -999, 110, 110, 110, 110, 110, 110, 110, -999, 110, -999, -999, 110, -999, 110, 110, -999, 110, -999, 110, 110, 110, 110, -999, 110, -999, 110, 110, 110, -999, 110, 110, 110, 110, -999, 110, 110, 110, 110, 110, 110, 110, -999, -999, 110, 110, 110, 110, -999, 110, 110, 110, -999, 110, 110, 110, -999, 110, 110, 110, 110, 110, -999, -999, -999, 110, 110, 110, 110, -999, -999, 110, 110, -999, 110, 110, 110, 110, 110, -999, -999, 110, 110, 110, 110, 110, 110},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 107, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 45, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 44, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 181, -999, -999, 180, -999, 180, -999, -999, 180, -999, 180, -999, -999, -999, -999, -999, -999, 180, -999, -999, -999, 180, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 180, -999, -999, -999, -999, -999, 180, -999, -999, -999, -999, -999, -999, -999, 180, -999, -999, -999, -999, -999, 180, -999, 180, -999, -999, -999, -999, -999, -999, -999, -999, 180, -999, -999, -999, -999, -999, -999, 180, -999, -999, -999, -999, -999, -999},
{-999, 43, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 43, -999, -999, -999, -999, 43, -999, 43, -999, -999, -999, -999, -999, -999, -999, 43, 42, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 43, 43, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 43, -999, -999, -999, -999, -999, -999, -999, 43, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 43, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 131, -999, -999, 132, -999, 132, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 132, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 132, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{113, 113, 113, -999, 113, 113, 113, 113, 113, 113, -999, 113, -999, 113, -999, 113, 113, 113, 113, 113, 113, 113, -999, 113, -999, -999, 113, -999, 113, 113, -999, 113, -999, 113, 113, 113, 113, -999, 113, -999, 113, 113, 113, -999, 113, 113, 113, 113, -999, 113, 113, 113, 113, 113, 113, 113, -999, -999, 113, 113, 113, 113, -999, 113, 113, 113, -999, 113, 113, 113, -999, 113, 113, 113, 113, 113, -999, -999, -999, 113, 113, 113, 113, -999, -999, 113, 113, -999, 113, 113, 113, 113, 113, -999, -999, 113, 113, 113, 113, 113, 113},
{-999, -999, 136, -999, 136, -999, 136, 136, -999, -999, 136, -999, 136, -999, 136, 136, -999, 136, -999, -999, 136, -999, 136, -999, -999, 136, -999, -999, 136, 136, -999, -999, -999, -999, -999, -999, 136, -999, 136, -999, 136, -999, 136, 136, -999, -999, -999, -999, 136, 136, -999, -999, -999, 136, 136, -999, -999, 136, -999, -999, -999, 136, 136, -999, 136, -999, -999, 136, -999, -999, -999, 136, -999, 136, 136, 136, -999, 136, -999, -999, -999, 136, 136, -999, -999, 136, 136, -999, 136, -999, 136, 136, 136, -999, 136, 136, -999, 136, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 41, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 40, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 51, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 50, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, 115, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, 26, -999, 26, -999, 26, 26, -999, -999, 26, -999, 26, -999, 26, 26, -999, 26, -999, -999, 26, -999, 26, -999, -999, 26, -999, -999, 26, 26, 25, -999, -999, -999, -999, -999, 26, -999, 26, -999, 26, -999, 26, 26, -999, -999, -999, -999, 26, 26, -999, -999, -999, 26, 26, -999, -999, 26, -999, -999, -999, 26, 26, -999, 26, -999, -999, 26, -999, -999, -999, 26, -999, 26, 26, 26, -999, 26, -999, -999, -999, 26, 26, -999, -999, 26, 26, -999, 26, -999, 26, 26, 26, -999, 26, 26, -999, 26, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 192, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 193, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 147, -999, 148, -999, -999, 148, -999, 148, -999, -999, -999, -999, -999, -999, 148, -999, -999, -999, 148, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 148, -999, -999, -999, -999, -999, 148, -999, -999, -999, -999, -999, -999, -999, 148, -999, -999, -999, -999, -999, 148, -999, 146, -999, -999, -999, -999, -999, -999, -999, -999, 145, -999, -999, -999, -999, -999, -999, 148, -999, -999, -999, -999, -999, -999},
{-999, -999, 144, -999, 144, -999, 144, 144, -999, -999, 144, -999, 144, -999, 144, 144, -999, 144, -999, -999, 144, -999, 144, -999, -999, 144, -999, -999, 144, 144, -999, -999, -999, -999, -999, -999, 144, -999, 144, -999, 144, -999, 144, 144, -999, -999, -999, -999, 144, 144, -999, -999, -999, 144, 144, -999, -999, 144, -999, -999, -999, 144, 144, -999, 144, -999, -999, 144, -999, -999, -999, 144, -999, 144, 144, 144, -999, 144, -999, -999, -999, 144, 144, -999, -999, 144, 144, -999, 144, -999, 144, 144, 144, -999, 144, 144, -999, 144, -999, -999, -999},
{-999, -999, 198, -999, 198, -999, 198, 198, -999, -999, 198, -999, 198, -999, 198, 198, -999, 198, -999, -999, 198, -999, 198, -999, -999, 198, -999, -999, 198, 198, -999, -999, -999, -999, -999, -999, 198, -999, 198, -999, 198, -999, 198, 198, -999, -999, -999, -999, 198, 198, -999, -999, -999, 198, 198, -999, -999, 198, -999, -999, -999, 198, 198, -999, 198, -999, -999, 198, -999, -999, -999, 198, -999, 198, 198, 198, -999, 198, -999, -999, -999, 198, 198, -999, 199, 198, 198, -999, 198, -999, 198, 198, 198, -999, 198, 198, -999, 198, -999, -999, -999},
{-999, 29, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 33, -999, -999, -999, -999, 28, -999, 30, -999, -999, -999, -999, -999, -999, -999, 31, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 36, 34, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 32, -999, -999, -999, -999, -999, -999, -999, 27, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 35, -999, -999},
{-999, -999, 165, -999, 153, -999, 158, 177, -999, -999, 183, -999, 189, -999, 185, 169, -999, 155, -999, -999, 151, -999, 178, -999, -999, 190, -999, -999, 179, 156, -999, -999, -999, -999, -999, -999, 160, -999, 154, -999, 157, -999, 164, 187, -999, -999, -999, -999, 184, 172, -999, -999, -999, 179, 150, -999, -999, 182, -999, -999, -999, 162, 191, -999, 168, -999, -999, 166, -999, -999, -999, 167, -999, 170, 152, 174, -999, 186, -999, -999, -999, 171, 149, -999, -999, 175, 176, -999, 179, -999, 161, 173, 163, -999, 188, 159, -999, 179, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 122, -999, -999, -999, -999, -999, -999, -999, 125, -999, -999, -999, -999, 123, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 124, -999, -999, -999, -999, -999, -999, -999},
{66, -999, 90, -999, 78, 62, 83, 102, 56, -999, -999, -999, -999, 104, -999, 94, -999, 80, 72, 71, 76, -999, -999, -999, -999, -999, -999, -999, -999, 81, -999, -999, -999, 55, -999, -999, 85, -999, 79, -999, 82, 73, 89, -999, 67, 70, 57, -999, -999, 97, -999, -999, 103, -999, 75, -999, -999, -999, 65, -999, -999, 87, -999, 64, 93, 60, -999, 91, 69, 61, -999, 92, -999, 95, 77, 99, -999, -999, -999, -999, -999, 96, 74, -999, -999, 100, 101, -999, -999, 59, 86, 98, 88, -999, -999, 84, 68, -999, -999, 63, 58},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 120, -999, 120, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 139, -999, -999, 139, -999, 139, -999, -999, -999, -999, -999, -999, 137, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 139, -999, -999, -999, -999, -999, 139, -999, -999, -999, -999, -999, -999, -999, 139, -999, -999, -999, -999, -999, 138, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 135, -999, -999, 135, -999, 135, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 135, -999, -999, -999, -999, -999, 134, -999, -999, -999, -999, -999, -999, -999, 135, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, 130, -999, 130, -999, 130, 130, -999, -999, 130, -999, 130, -999, 130, 130, -999, 130, -999, -999, 130, -999, 130, -999, -999, 130, -999, -999, 130, 130, -999, -999, -999, -999, -999, -999, 130, -999, 130, -999, 130, -999, 130, 130, -999, -999, -999, -999, 130, 130, -999, -999, -999, 130, 130, -999, -999, 130, -999, -999, -999, 130, 130, -999, 130, -999, -999, 130, -999, -999, -999, 130, -999, 130, 130, 130, -999, 130, -999, -999, -999, 130, 130, -999, -999, 130, 130, -999, 130, -999, 130, 130, 130, -999, 130, 130, -999, 130, -999, -999, -999},
{8, 11, 8, -999, 8, 8, 8, 8, 8, 5, -999, 10, -999, 8, -999, 8, 11, 8, 8, 8, 8, 11, -999, 11, -999, -999, 9, -999, 7, 8, -999, 11, -999, 8, -999, 4, 8, -999, 8, -999, 8, 8, 8, -999, 8, 8, 8, -999, -999, 8, -999, 3, 8, 7, 8, 6, -999, -999, 8, 11, 11, 8, -999, 8, 8, 8, -999, 8, 8, 8, -999, 8, 11, 8, 8, 8, -999, -999, -999, -999, 11, 8, 8, -999, -999, 8, 8, -999, 7, 8, 8, 8, 8, -999, -999, 8, 8, 7, 11, 8, 8},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, -999, 109, -999, 109, -999, 109, 109, 109, 109, 109, 109, 109, -999, 109, -999, -999, 109, -999, 109, 109, -999, 109, -999, 109, 109, 109, 109, -999, 109, -999, 109, 109, 109, -999, 109, 109, 109, 109, -999, 109, 109, 109, 109, 109, 109, 109, -999, -999, 109, 109, 109, 109, -999, 109, 109, 109, -999, 109, 109, 109, -999, 109, 109, 109, 109, 109, -999, -999, -999, 109, 109, 109, 109, 108, -999, 109, 109, -999, 109, 109, 109, 109, 109, -999, -999, 109, 109, 109, 109, 109, 109},
{12, 12, 12, -999, 12, 12, 12, 12, 12, 12, -999, 12, -999, 12, -999, 12, 12, 12, 12, 12, 12, 12, -999, 12, -999, -999, 12, -999, 12, 12, -999, 12, -999, 12, -999, 12, 12, -999, 12, -999, 12, 12, 12, -999, 12, 12, 12, 12, -999, 12, 14, 12, 12, 12, 12, 12, -999, -999, 12, 12, 12, 12, -999, 12, 12, 12, -999, 12, 12, 12, -999, 12, 12, 12, 12, 12, -999, -999, -999, 13, 12, 12, 12, -999, -999, 12, 12, -999, 12, 12, 12, 12, 12, -999, -999, 12, 12, 12, 12, 12, 12},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 52, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 53, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 54, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, 49, -999, 49, -999, 49, 49, -999, -999, 49, -999, 49, -999, 49, 49, -999, 49, -999, -999, 49, -999, 49, -999, -999, 49, -999, -999, 49, 49, -999, -999, 48, -999, -999, -999, 49, -999, 49, -999, 49, -999, 49, 49, -999, -999, -999, -999, 49, 49, -999, -999, -999, 49, 49, -999, -999, 49, -999, -999, -999, 49, 49, -999, 49, -999, -999, 49, -999, -999, -999, 49, -999, 49, 49, 49, -999, 49, -999, -999, -999, 49, 49, -999, -999, 49, 49, -999, 49, -999, 49, 49, 49, -999, 49, 49, -999, 49, -999, -999, -999},
{20, 23, 20, -999, 20, 20, 20, 20, 20, 17, -999, 22, -999, 20, -999, 20, 23, 20, 20, 20, 20, 23, -999, 23, -999, -999, 21, -999, 19, 20, -999, 23, -999, 20, -999, 16, 20, -999, 20, -999, 20, 20, 20, -999, 20, 20, 20, 24, -999, 20, -999, 15, 20, 19, 20, 18, -999, -999, 20, 23, 23, 20, -999, 20, 20, 20, -999, 20, 20, 20, -999, 20, 23, 20, 20, 20, -999, -999, -999, -999, 23, 20, 20, -999, -999, 20, 20, -999, 19, 20, 20, 20, 20, -999, -999, 20, 20, 19, 23, 20, 20},
{0, 0, 0, -999, 0, 0, 0, 0, 0, 0, -999, 0, -999, 0, -999, 0, 0, 0, 0, 0, 0, 0, -999, 0, -999, -999, 0, -999, 0, 0, -999, 0, -999, 0, 2, 0, 0, -999, 0, -999, 0, 0, 0, -999, 0, 0, 0, -999, -999, 0, 2, 0, 0, 0, 0, 0, -999, -999, 0, 0, 0, 0, -999, 0, 0, 0, -999, 0, 0, 0, -999, 0, 0, 0, 0, 0, -999, -999, -999, 1, 0, 0, 0, -999, -999, 0, 0, -999, 0, 0, 0, 0, 0, -999, -999, 0, 0, 0, 0, 0, 0},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 126, -999, 126, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 143, -999, -999, 143, -999, 143, -999, -999, -999, -999, -999, -999, 143, -999, -999, -999, 142, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 143, -999, -999, -999, -999, -999, 143, -999, -999, -999, -999, -999, -999, -999, 143, -999, -999, -999, -999, -999, 143, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 141, -999, -999, -999, -999, -999, -999},
{-999, 39, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 39, -999, -999, -999, -999, 39, -999, 39, -999, -999, -999, -999, -999, -999, -999, 39, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 39, 39, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 39, -999, -999, -999, -999, -999, -999, -999, 39, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 39, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 114, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 47, -999, 46, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 46, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 46, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 129, -999, 129, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 128, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 129, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999}};
const char * KeywordList[] = {
"void",
"bool",
"char",
"short",
"int",
"long",
"unsigned",
"signed",
"float",
"double",
"print",
"formats",
"event_enable",
"event_disable",
"event_clear",
"test_statement",
"spinlock_lock",
"spinlock_unlock",
"event_sc",
"printf",
"pause",
"flush",
"event_trace_step",
"event_trace_step_in",
"event_trace_step_out",
"event_trace_instrumentation_step",
"event_trace_instrumentation_step_in",
"spinlock_lock_custom_wait",
"event_inject",
"poi",
"db",
"dd",
"dw",
"dq",
"neg",
"hi",
"low",
"not",
"check_address",
"disassemble_len",
"disassemble_len32",
"disassemble_len64",
"interlocked_increment",
"interlocked_decrement",
"reference",
"physical_to_virtual",
"virtual_to_physical",
"ed",
"eb",
"eq",
"interlocked_exchange",
"interlocked_exchange_add",
"interlocked_compare_exchange",
"strlen",
"strcmp",
"memcmp",
"wcslen",
"wcscmp",
"event_inject_error_code",
"memcpy",
"poi",
"db",
"dd",
"dw",
"dq",
"neg",
"hi",
"low",
"not",
"check_address",
"disassemble_len",
"disassemble_len32",
"disassemble_len64",
"interlocked_increment",
"interlocked_decrement",
"reference",
"physical_to_virtual",
"virtual_to_physical",
"ed",
"eb",
"eq",
"interlocked_exchange",
"interlocked_exchange_add",
"interlocked_compare_exchange",
"strlen",
"strcmp",
"memcmp",
"wcslen",
"wcscmp"};
const char * OperatorsTwoOperandList[] = {
"@OR",
"@XOR",
"@AND",
"@ASR",
"@ASL",
"@ADD",
"@SUB",
"@MUL",
"@DIV",
"@MOD",
"@GT",
"@LT",
"@EGT",
"@ELT",
"@EQUAL",
"@NEQ"};
const char * OperatorsOneOperandList[] = {
"@INC",
"@DEC",
"@REFERENCE",
"@DEREFERENCE"};
const char * ThreeOpFunc1[] = {
"@INTERLOCKED_COMPARE_EXCHANGE"};
const char * ThreeOpFunc2[] = {
"@EVENT_INJECT_ERROR_CODE",
"@MEMCPY",
};
const char * TwoOpFunc1[] = {
"@ED",
"@EB",
"@EQ",
"@INTERLOCKED_EXCHANGE",
"@INTERLOCKED_EXCHANGE_ADD",
};
const char * TwoOpFunc2[] = {
"@SPINLOCK_LOCK_CUSTOM_WAIT",
"@EVENT_INJECT",
};
const char * OneOpFunc1[] = {
"@POI",
"@DB",
"@DD",
"@DW",
"@DQ",
"@NEG",
"@HI",
"@LOW",
"@NOT",
"@CHECK_ADDRESS",
"@DISASSEMBLE_LEN",
"@DISASSEMBLE_LEN32",
"@DISASSEMBLE_LEN64",
"@INTERLOCKED_INCREMENT",
"@INTERLOCKED_DECREMENT",
"@REFERENCE",
"@PHYSICAL_TO_VIRTUAL",
"@VIRTUAL_TO_PHYSICAL",
};
const char * OneOpFunc2[] = {
"@PRINT",
"@FORMATS",
"@EVENT_ENABLE",
"@EVENT_DISABLE",
"@EVENT_CLEAR",
"@TEST_STATEMENT",
"@SPINLOCK_LOCK",
"@SPINLOCK_UNLOCK",
"@EVENT_SC",
};
const char * OneOpFunc3[] = {
"@STRLEN"};
const char * TwoOpFunc3[] = {
"@STRCMP"};
const char * ThreeOpFunc3[] = {
"@MEMCMP"};
const char * OneOpFunc4[] = {
"@WCSLEN"};
const char * TwoOpFunc4[] = {
"@WCSCMP"};
const char * ZeroOpFunc1[] = {
"@PAUSE",
"@FLUSH",
"@EVENT_TRACE_STEP",
"@EVENT_TRACE_STEP_IN",
"@EVENT_TRACE_STEP_OUT",
"@EVENT_TRACE_INSTRUMENTATION_STEP",
"@EVENT_TRACE_INSTRUMENTATION_STEP_IN",
};
const char * VarArgFunc1[] = {
"@PRINTF"};
const char * VARIABLETYPE[] = {
"@VOID",
"@BOOL",
"@CHAR",
"@SHORT",
"@INT",
"@LONG",
"@UNSIGNED",
"@SIGNED",
"@FLOAT",
"@DOUBLE",
};
const SYMBOL_MAP SemanticRulesMapList[] = {
{"@INC", FUNC_INC},
{"@DEC", FUNC_DEC},
{"@REFERENCE", FUNC_REFERENCE},
{"@DEREFERENCE", FUNC_DEREFERENCE},
{"@OR", FUNC_OR},
{"@XOR", FUNC_XOR},
{"@AND", FUNC_AND},
{"@ASR", FUNC_ASR},
{"@ASL", FUNC_ASL},
{"@ADD", FUNC_ADD},
{"@SUB", FUNC_SUB},
{"@MUL", FUNC_MUL},
{"@DIV", FUNC_DIV},
{"@MOD", FUNC_MOD},
{"@GT", FUNC_GT},
{"@LT", FUNC_LT},
{"@EGT", FUNC_EGT},
{"@ELT", FUNC_ELT},
{"@EQUAL", FUNC_EQUAL},
{"@NEQ", FUNC_NEQ},
{"@START_OF_IF", FUNC_START_OF_IF},
{"@JMP", FUNC_JMP},
{"@JZ", FUNC_JZ},
{"@JNZ", FUNC_JNZ},
{"@JMP_TO_END_AND_JZCOMPLETED", FUNC_JMP_TO_END_AND_JZCOMPLETED},
{"@END_OF_IF", FUNC_END_OF_IF},
{"@START_OF_WHILE", FUNC_START_OF_WHILE},
{"@END_OF_WHILE", FUNC_END_OF_WHILE},
{"@VARGSTART", FUNC_VARGSTART},
{"@MOV", FUNC_MOV},
{"@START_OF_DO_WHILE", FUNC_START_OF_DO_WHILE},
{"@", FUNC_},
{"@START_OF_DO_WHILE_COMMANDS", FUNC_START_OF_DO_WHILE_COMMANDS},
{"@END_OF_DO_WHILE", FUNC_END_OF_DO_WHILE},
{"@START_OF_FOR", FUNC_START_OF_FOR},
{"@FOR_INC_DEC", FUNC_FOR_INC_DEC},
{"@START_OF_FOR_OMMANDS", FUNC_START_OF_FOR_OMMANDS},
{"@END_OF_IF", FUNC_END_OF_IF},
{"@IGNORE_LVALUE", FUNC_IGNORE_LVALUE},
{"@END_OF_USER_DEFINED_FUNCTION", FUNC_END_OF_USER_DEFINED_FUNCTION},
{"@RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE", FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITH_VALUE},
{"@RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE", FUNC_RETURN_OF_USER_DEFINED_FUNCTION_WITHOUT_VALUE},
{"@CALL_USER_DEFINED_FUNCTION_PARAMETER", FUNC_CALL_USER_DEFINED_FUNCTION_PARAMETER},
{"@END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE", FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITHOUT_RETURNING_VALUE},
{"@END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE", FUNC_END_OF_CALLING_USER_DEFINED_FUNCTION_WITH_RETURNING_VALUE},
{"@CALL_USER_DEFINED_FUNCTION", FUNC_CALL_USER_DEFINED_FUNCTION},
{"@START_OF_USER_DEFINED_FUNCTION", FUNC_START_OF_USER_DEFINED_FUNCTION},
{"@MOV_RETURN_VALUE", FUNC_MOV_RETURN_VALUE},
{"@VOID", FUNC_VOID},
{"@BOOL", FUNC_BOOL},
{"@CHAR", FUNC_CHAR},
{"@SHORT", FUNC_SHORT},
{"@INT", FUNC_INT},
{"@LONG", FUNC_LONG},
{"@UNSIGNED", FUNC_UNSIGNED},
{"@SIGNED", FUNC_SIGNED},
{"@FLOAT", FUNC_FLOAT},
{"@DOUBLE", FUNC_DOUBLE},
{"@PRINT", FUNC_PRINT},
{"@FORMATS", FUNC_FORMATS},
{"@EVENT_ENABLE", FUNC_EVENT_ENABLE},
{"@EVENT_DISABLE", FUNC_EVENT_DISABLE},
{"@EVENT_CLEAR", FUNC_EVENT_CLEAR},
{"@TEST_STATEMENT", FUNC_TEST_STATEMENT},
{"@SPINLOCK_LOCK", FUNC_SPINLOCK_LOCK},
{"@SPINLOCK_UNLOCK", FUNC_SPINLOCK_UNLOCK},
{"@EVENT_SC", FUNC_EVENT_SC},
{"@PRINTF", FUNC_PRINTF},
{"@PAUSE", FUNC_PAUSE},
{"@FLUSH", FUNC_FLUSH},
{"@EVENT_TRACE_STEP", FUNC_EVENT_TRACE_STEP},
{"@EVENT_TRACE_STEP_IN", FUNC_EVENT_TRACE_STEP_IN},
{"@EVENT_TRACE_STEP_OUT", FUNC_EVENT_TRACE_STEP_OUT},
{"@EVENT_TRACE_INSTRUMENTATION_STEP", FUNC_EVENT_TRACE_INSTRUMENTATION_STEP},
{"@EVENT_TRACE_INSTRUMENTATION_STEP_IN", FUNC_EVENT_TRACE_INSTRUMENTATION_STEP_IN},
{"@SPINLOCK_LOCK_CUSTOM_WAIT", FUNC_SPINLOCK_LOCK_CUSTOM_WAIT},
{"@EVENT_INJECT", FUNC_EVENT_INJECT},
{"@POI", FUNC_POI},
{"@DB", FUNC_DB},
{"@DD", FUNC_DD},
{"@DW", FUNC_DW},
{"@DQ", FUNC_DQ},
{"@NEG", FUNC_NEG},
{"@HI", FUNC_HI},
{"@LOW", FUNC_LOW},
{"@NOT", FUNC_NOT},
{"@CHECK_ADDRESS", FUNC_CHECK_ADDRESS},
{"@DISASSEMBLE_LEN", FUNC_DISASSEMBLE_LEN},
{"@DISASSEMBLE_LEN32", FUNC_DISASSEMBLE_LEN32},
{"@DISASSEMBLE_LEN64", FUNC_DISASSEMBLE_LEN64},
{"@INTERLOCKED_INCREMENT", FUNC_INTERLOCKED_INCREMENT},
{"@INTERLOCKED_DECREMENT", FUNC_INTERLOCKED_DECREMENT},
{"@REFERENCE", FUNC_REFERENCE},
{"@PHYSICAL_TO_VIRTUAL", FUNC_PHYSICAL_TO_VIRTUAL},
{"@VIRTUAL_TO_PHYSICAL", FUNC_VIRTUAL_TO_PHYSICAL},
{"@ED", FUNC_ED},
{"@EB", FUNC_EB},
{"@EQ", FUNC_EQ},
{"@INTERLOCKED_EXCHANGE", FUNC_INTERLOCKED_EXCHANGE},
{"@INTERLOCKED_EXCHANGE_ADD", FUNC_INTERLOCKED_EXCHANGE_ADD},
{"@INTERLOCKED_COMPARE_EXCHANGE", FUNC_INTERLOCKED_COMPARE_EXCHANGE},
{"@STRLEN", FUNC_STRLEN},
{"@STRCMP", FUNC_STRCMP},
{"@MEMCMP", FUNC_MEMCMP},
{"@WCSLEN", FUNC_WCSLEN},
{"@WCSCMP", FUNC_WCSCMP},
{"@EVENT_INJECT_ERROR_CODE", FUNC_EVENT_INJECT_ERROR_CODE},
{"@MEMCPY", FUNC_MEMCPY},
{"@POI", FUNC_POI},
{"@DB", FUNC_DB},
{"@DD", FUNC_DD},
{"@DW", FUNC_DW},
{"@DQ", FUNC_DQ},
{"@NEG", FUNC_NEG},
{"@HI", FUNC_HI},
{"@LOW", FUNC_LOW},
{"@NOT", FUNC_NOT},
{"@CHECK_ADDRESS", FUNC_CHECK_ADDRESS},
{"@DISASSEMBLE_LEN", FUNC_DISASSEMBLE_LEN},
{"@DISASSEMBLE_LEN32", FUNC_DISASSEMBLE_LEN32},
{"@DISASSEMBLE_LEN64", FUNC_DISASSEMBLE_LEN64},
{"@INTERLOCKED_INCREMENT", FUNC_INTERLOCKED_INCREMENT},
{"@INTERLOCKED_DECREMENT", FUNC_INTERLOCKED_DECREMENT},
{"@REFERENCE", FUNC_REFERENCE},
{"@PHYSICAL_TO_VIRTUAL", FUNC_PHYSICAL_TO_VIRTUAL},
{"@VIRTUAL_TO_PHYSICAL", FUNC_VIRTUAL_TO_PHYSICAL},
{"@ED", FUNC_ED},
{"@EB", FUNC_EB},
{"@EQ", FUNC_EQ},
{"@INTERLOCKED_EXCHANGE", FUNC_INTERLOCKED_EXCHANGE},
{"@INTERLOCKED_EXCHANGE_ADD", FUNC_INTERLOCKED_EXCHANGE_ADD},
{"@INTERLOCKED_COMPARE_EXCHANGE", FUNC_INTERLOCKED_COMPARE_EXCHANGE},
{"@STRLEN", FUNC_STRLEN},
{"@STRCMP", FUNC_STRCMP},
{"@MEMCMP", FUNC_MEMCMP},
{"@WCSLEN", FUNC_WCSLEN},
{"@WCSCMP", FUNC_WCSCMP},
};
const SYMBOL_MAP RegisterMapList[] = {
{"rax", REGISTER_RAX},
{"eax", REGISTER_EAX},
{"ax", REGISTER_AX},
{"ah", REGISTER_AH},
{"al", REGISTER_AL},
{"rcx", REGISTER_RCX},
{"ecx", REGISTER_ECX},
{"cx", REGISTER_CX},
{"ch", REGISTER_CH},
{"cl", REGISTER_CL},
{"rdx", REGISTER_RDX},
{"edx", REGISTER_EDX},
{"dx", REGISTER_DX},
{"dh", REGISTER_DH},
{"dl", REGISTER_DL},
{"rbx", REGISTER_RBX},
{"ebx", REGISTER_EBX},
{"bx", REGISTER_BX},
{"bh", REGISTER_BH},
{"bl", REGISTER_BL},
{"rsp", REGISTER_RSP},
{"esp", REGISTER_ESP},
{"sp", REGISTER_SP},
{"spl", REGISTER_SPL},
{"rbp", REGISTER_RBP},
{"ebp", REGISTER_EBP},
{"bp", REGISTER_BP},
{"bpl", REGISTER_BPL},
{"rsi", REGISTER_RSI},
{"esi", REGISTER_ESI},
{"si", REGISTER_SI},
{"sil", REGISTER_SIL},
{"rdi", REGISTER_RDI},
{"edi", REGISTER_EDI},
{"di", REGISTER_DI},
{"dil", REGISTER_DIL},
{"r8", REGISTER_R8},
{"r8d", REGISTER_R8D},
{"r8w", REGISTER_R8W},
{"r8h", REGISTER_R8H},
{"r8l", REGISTER_R8L},
{"r9", REGISTER_R9},
{"r9d", REGISTER_R9D},
{"r9w", REGISTER_R9W},
{"r9h", REGISTER_R9H},
{"r9l", REGISTER_R9L},
{"r10", REGISTER_R10},
{"r10d", REGISTER_R10D},
{"r10w", REGISTER_R10W},
{"r10h", REGISTER_R10H},
{"r10l", REGISTER_R10L},
{"r11", REGISTER_R11},
{"r11d", REGISTER_R11D},
{"r11w", REGISTER_R11W},
{"r11h", REGISTER_R11H},
{"r11l", REGISTER_R11L},
{"r12", REGISTER_R12},
{"r12d", REGISTER_R12D},
{"r12w", REGISTER_R12W},
{"r12h", REGISTER_R12H},
{"r12l", REGISTER_R12L},
{"r13", REGISTER_R13},
{"r13d", REGISTER_R13D},
{"r13w", REGISTER_R13W},
{"r13h", REGISTER_R13H},
{"r13l", REGISTER_R13L},
{"r14", REGISTER_R14},
{"r14d", REGISTER_R14D},
{"r14w", REGISTER_R14W},
{"r14h", REGISTER_R14H},
{"r14l", REGISTER_R14L},
{"r15", REGISTER_R15},
{"r15d", REGISTER_R15D},
{"r15w", REGISTER_R15W},
{"r15h", REGISTER_R15H},
{"r15l", REGISTER_R15L},
{"ds", REGISTER_DS},
{"es", REGISTER_ES},
{"fs", REGISTER_FS},
{"gs", REGISTER_GS},
{"cs", REGISTER_CS},
{"ss", REGISTER_SS},
{"rflags", REGISTER_RFLAGS},
{"eflags", REGISTER_EFLAGS},
{"flags", REGISTER_FLAGS},
{"cf", REGISTER_CF},
{"pf", REGISTER_PF},
{"af", REGISTER_AF},
{"zf", REGISTER_ZF},
{"sf", REGISTER_SF},
{"tf", REGISTER_TF},
{"if", REGISTER_IF},
{"df", REGISTER_DF},
{"of", REGISTER_OF},
{"iopl", REGISTER_IOPL},
{"nt", REGISTER_NT},
{"rf", REGISTER_RF},
{"vm", REGISTER_VM},
{"ac", REGISTER_AC},
{"vif", REGISTER_VIF},
{"vip", REGISTER_VIP},
{"id", REGISTER_ID},
{"rip", REGISTER_RIP},
{"eip", REGISTER_EIP},
{"ip", REGISTER_IP},
{"idtr", REGISTER_IDTR},
{"ldtr", REGISTER_LDTR},
{"gdtr", REGISTER_GDTR},
{"tr", REGISTER_TR},
{"cr0", REGISTER_CR0},
{"cr2", REGISTER_CR2},
{"cr3", REGISTER_CR3},
{"cr4", REGISTER_CR4},
{"cr8", REGISTER_CR8},
{"dr0", REGISTER_DR0},
{"dr1", REGISTER_DR1},
{"dr2", REGISTER_DR2},
{"dr3", REGISTER_DR3},
{"dr6", REGISTER_DR6},
{"dr7", REGISTER_DR7}};
const SYMBOL_MAP PseudoRegisterMapList[] = {
{"pid", PSEUDO_REGISTER_PID},
{"tid", PSEUDO_REGISTER_TID},
{"pname", PSEUDO_REGISTER_PNAME},
{"core", PSEUDO_REGISTER_CORE},
{"proc", PSEUDO_REGISTER_PROC},
{"thread", PSEUDO_REGISTER_THREAD},
{"peb", PSEUDO_REGISTER_PEB},
{"teb", PSEUDO_REGISTER_TEB},
{"ip", PSEUDO_REGISTER_IP},
{"buffer", PSEUDO_REGISTER_BUFFER},
{"context", PSEUDO_REGISTER_CONTEXT},
{"event_tag", PSEUDO_REGISTER_EVENT_TAG},
{"event_id", PSEUDO_REGISTER_EVENT_ID},
{"event_stage", PSEUDO_REGISTER_EVENT_STAGE}};
const struct _TOKEN LalrLhs[RULES_COUNT] =
{
{NON_TERMINAL, "S"},
{NON_TERMINAL, "BE"},
{NON_TERMINAL, "B1"},
{NON_TERMINAL, "B1"},
{NON_TERMINAL, "B2"},
{NON_TERMINAL, "B2"},
{NON_TERMINAL, "B3"},
{NON_TERMINAL, "B3"},
{NON_TERMINAL, "B4"},
{NON_TERMINAL, "B4"},
{NON_TERMINAL, "B5"},
{NON_TERMINAL, "B5"},
{NON_TERMINAL, "B6"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "EXP"},
{NON_TERMINAL, "E3"},
{NON_TERMINAL, "E3"},
{NON_TERMINAL, "E3"},
{NON_TERMINAL, "E4"},
{NON_TERMINAL, "E4"},
{NON_TERMINAL, "E4"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "STRING"},
{NON_TERMINAL, "WSTRING"},
{NON_TERMINAL, "StringNumber"},
{NON_TERMINAL, "StringNumber"},
{NON_TERMINAL, "WstringNumber"},
{NON_TERMINAL, "WstringNumber"}};
const struct _TOKEN LalrRhs[RULES_COUNT][MAX_RHS_LEN] =
{
{{NON_TERMINAL, "BE"}},
{{NON_TERMINAL, "B1"}},
{{NON_TERMINAL, "B1"}, {SPECIAL_TOKEN, "||"}, {NON_TERMINAL, "B2"}, {SEMANTIC_RULE, "@OR"}},
{{NON_TERMINAL, "B2"}},
{{NON_TERMINAL, "B2"}, {SPECIAL_TOKEN, "&&"}, {NON_TERMINAL, "B3"}, {SEMANTIC_RULE, "@AND"}},
{{NON_TERMINAL, "B3"}},
{{NON_TERMINAL, "B3"}, {SPECIAL_TOKEN, "|"}, {NON_TERMINAL, "B4"}, {SEMANTIC_RULE, "@OR"}},
{{NON_TERMINAL, "B4"}},
{{NON_TERMINAL, "B4"}, {SPECIAL_TOKEN, "^"}, {NON_TERMINAL, "B5"}, {SEMANTIC_RULE, "@XOR"}},
{{NON_TERMINAL, "B5"}},
{{NON_TERMINAL, "B5"}, {SPECIAL_TOKEN, "&"}, {NON_TERMINAL, "B6"}, {SEMANTIC_RULE, "@AND"}},
{{NON_TERMINAL, "B6"}},
{{NON_TERMINAL, "CMP"}},
{{NON_TERMINAL, "CMP"}, {KEYWORD, ">"}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@GT"}},
{{NON_TERMINAL, "CMP"}, {KEYWORD, "<"}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@LT"}},
{{NON_TERMINAL, "CMP"}, {SPECIAL_TOKEN, ">="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@EGT"}},
{{NON_TERMINAL, "CMP"}, {SPECIAL_TOKEN, "<="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@ELT"}},
{{NON_TERMINAL, "CMP"}, {SPECIAL_TOKEN, "=="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@EQUAL"}},
{{NON_TERMINAL, "CMP"}, {SPECIAL_TOKEN, "!="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@NEQ"}},
{{NON_TERMINAL, "EXP"}},
{{NON_TERMINAL, "E3"}},
{{NON_TERMINAL, "E3"}, {SPECIAL_TOKEN, ">>"}, {NON_TERMINAL, "E4"}, {SEMANTIC_RULE, "@ASR"}},
{{NON_TERMINAL, "E3"}, {SPECIAL_TOKEN, "<<"}, {NON_TERMINAL, "E4"}, {SEMANTIC_RULE, "@ASL"}},
{{NON_TERMINAL, "E4"}},
{{NON_TERMINAL, "E4"}, {SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E5"}, {SEMANTIC_RULE, "@ADD"}},
{{NON_TERMINAL, "E4"}, {SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E5"}, {SEMANTIC_RULE, "@SUB"}},
{{NON_TERMINAL, "E5"}},
{{NON_TERMINAL, "E5"}, {SPECIAL_TOKEN, "/"}, {NON_TERMINAL, "E10"}, {SEMANTIC_RULE, "@DIV"}},
{{NON_TERMINAL, "E5"}, {SPECIAL_TOKEN, "%"}, {NON_TERMINAL, "E10"}, {SEMANTIC_RULE, "@MOD"}},
{{NON_TERMINAL, "E5"}, {SPECIAL_TOKEN, "*"}, {NON_TERMINAL, "E10"}, {SEMANTIC_RULE, "@MUL"}},
{{NON_TERMINAL, "E10"}},
{{NON_TERMINAL, "E12"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NEG"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E12"}},
{{KEYWORD, "~"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NOT"}},
{{SPECIAL_TOKEN, "*"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@POI"}},
{{SPECIAL_TOKEN, "&"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@REFERENCE"}},
{{KEYWORD, "poi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@POI"}},
{{KEYWORD, "db"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DB"}},
{{KEYWORD, "dd"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DD"}},
{{KEYWORD, "dw"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DW"}},
{{KEYWORD, "dq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DQ"}},
{{KEYWORD, "neg"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@NEG"}},
{{KEYWORD, "hi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@HI"}},
{{KEYWORD, "low"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@LOW"}},
{{KEYWORD, "not"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@NOT"}},
{{KEYWORD, "check_address"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@CHECK_ADDRESS"}},
{{KEYWORD, "strlen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@STRLEN"}},
{{KEYWORD, "wcslen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@WCSLEN"}},
{{KEYWORD, "disassemble_len"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN"}},
{{KEYWORD, "disassemble_len32"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN32"}},
{{KEYWORD, "disassemble_len64"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DISASSEMBLE_LEN64"}},
{{KEYWORD, "interlocked_increment"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@INTERLOCKED_INCREMENT"}},
{{KEYWORD, "interlocked_decrement"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@INTERLOCKED_DECREMENT"}},
{{KEYWORD, "reference"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@REFERENCE"}},
{{KEYWORD, "physical_to_virtual"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@PHYSICAL_TO_VIRTUAL"}},
{{KEYWORD, "virtual_to_physical"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@VIRTUAL_TO_PHYSICAL"}},
{{KEYWORD, "ed"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@ED"}},
{{KEYWORD, "eb"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@EB"}},
{{KEYWORD, "eq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@EQ"}},
{{KEYWORD, "interlocked_exchange"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE"}},
{{KEYWORD, "interlocked_exchange_add"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE_ADD"}},
{{KEYWORD, "wcscmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@WCSCMP"}},
{{KEYWORD, "interlocked_compare_exchange"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@INTERLOCKED_COMPARE_EXCHANGE"}},
{{KEYWORD, "strlen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@STRLEN"}},
{{KEYWORD, "strcmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@STRCMP"}},
{{KEYWORD, "memcmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "StringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@MEMCMP"}},
{{KEYWORD, "wcslen"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "WstringNumber"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@WCSLEN"}},
{{KEYWORD, "wcscmp"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "WstringNumber"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "WstringNumber"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@WCSCMP"}},
{{SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BE"}, {SPECIAL_TOKEN, ")"}},
{{REGISTER, "_register"}, {SEMANTIC_RULE, "@PUSH"}},
{{GLOBAL_ID, "_global_id"}, {SEMANTIC_RULE, "@PUSH"}},
{{LOCAL_ID, "_local_id"}, {SEMANTIC_RULE, "@PUSH"}},
{{FUNCTION_PARAMETER_ID, "_function_parameter_id"}, {SEMANTIC_RULE, "@PUSH"}},
{{HEX, "_hex"}, {SEMANTIC_RULE, "@PUSH"}},
{{DECIMAL, "_decimal"}, {SEMANTIC_RULE, "@PUSH"}},
{{OCTAL, "_octal"}, {SEMANTIC_RULE, "@PUSH"}},
{{BINARY, "_binary"}, {SEMANTIC_RULE, "@PUSH"}},
{{PSEUDO_REGISTER, "_pseudo_register"}, {SEMANTIC_RULE, "@PUSH"}},
{{STRING, "_string"}, {SEMANTIC_RULE, "@PUSH"}},
{{WSTRING, "_wstring"}, {SEMANTIC_RULE, "@PUSH"}},
{{NON_TERMINAL, "EXP"}},
{{NON_TERMINAL, "STRING"}},
{{NON_TERMINAL, "EXP"}},
{{NON_TERMINAL, "WSTRING"}}};
const unsigned int LalrRhsSize[RULES_COUNT] =
{
1,
1,
4,
1,
4,
1,
4,
1,
4,
1,
4,
1,
1,
4,
4,
4,
4,
4,
4,
1,
1,
4,
4,
1,
4,
4,
1,
4,
4,
4,
1,
1,
3,
2,
3,
3,
3,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
5,
7,
7,
7,
7,
7,
7,
9,
5,
7,
9,
5,
7,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1};
const char * LalrNoneTerminalMap[NONETERMINAL_COUNT] =
{
"WstringNumber",
"B3",
"B6",
"E4",
"B4",
"E3",
"B2",
"CMP",
"WSTRING",
"E5",
"StringNumber",
"E12",
"E10",
"B1",
"S",
"B5",
"STRING",
"EXP",
"BE"};
const char * LalrTerminalMap[TERMINAL_COUNT] =
{
"&&",
"interlocked_compare_exchange",
"physical_to_virtual",
"^",
"<<",
"||",
"%",
"_global_id",
"_pseudo_register",
"dq",
">=",
"db",
"check_address",
"wcscmp",
"interlocked_exchange_add",
"|",
"_decimal",
"_hex",
"_function_parameter_id",
"low",
")",
"~",
"poi",
"_string",
"memcmp",
"/",
"wcslen",
"&",
"interlocked_increment",
"_binary",
"$",
"_register",
"!=",
"strlen",
"disassemble_len64",
"eb",
"eq",
"interlocked_decrement",
"_wstring",
"hi",
"disassemble_len32",
"virtual_to_physical",
"neg",
"dd",
">>",
"+",
"not",
"disassemble_len",
"_local_id",
"(",
"*",
"reference",
"-",
"<=",
",",
">",
"<",
"ed",
"==",
"interlocked_exchange",
"_octal",
"dw",
"strcmp"};
const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT] =
{
{-999, 5, 8, 12, 6, 11, 4, 9, -999, 13, -999, 15, 14, 3, 1, 7, -999, 10, 2},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 84, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 86, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 89, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 90, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 92, -999, -999, -999, -999, -999, -999, -999},
{-999, 5, 8, 12, 6, 11, 4, 9, -999, 13, -999, 15, 14, 3, -999, 7, -999, 10, 93},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 5, 8, 12, 6, 11, 113, 9, -999, 13, -999, 15, 14, -999, -999, 7, -999, 10, -999},
{-999, 114, 8, 12, 6, 11, -999, 9, -999, 13, -999, 15, 14, -999, -999, 7, -999, 10, -999},
{-999, -999, 8, 12, 115, 11, -999, 9, -999, 13, -999, 15, 14, -999, -999, 7, -999, 10, -999},
{-999, -999, 8, 12, -999, 11, -999, 9, -999, 13, -999, 15, 14, -999, -999, 116, -999, 10, -999},
{-999, -999, 117, 12, -999, 11, -999, 9, -999, 13, -999, 15, 14, -999, -999, -999, -999, 10, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 118, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 119, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 120, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 121, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 122, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 123, -999},
{-999, -999, -999, 124, -999, -999, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 125, -999, -999, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, 126, -999, 15, 14, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, 127, -999, 15, 14, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 15, 128, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 15, 129, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 15, 130, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, 133, 15, 14, -999, -999, -999, 132, 131, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, 136, 15, 14, -999, -999, -999, 132, 135, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 137, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 138, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 139, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 140, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{143, -999, -999, 12, -999, 11, -999, -999, 142, 13, -999, 15, 14, -999, -999, -999, -999, 141, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 145, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 146, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 147, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 149, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 150, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, 151, 15, 14, -999, -999, -999, 132, 131, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 152, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 153, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 154, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 155, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 156, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 157, -999},
{159, -999, -999, 12, -999, 11, -999, -999, 142, 13, -999, 15, 14, -999, -999, -999, -999, 158, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 160, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 161, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 162, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 163, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 164, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 165, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 166, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 167, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 168, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, 201, 15, 14, -999, -999, -999, 132, 131, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 202, -999},
{204, -999, -999, 12, -999, 11, -999, -999, 142, 13, -999, 15, 14, -999, -999, -999, -999, 203, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, 205, 15, 14, -999, -999, -999, 132, 131, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 206, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 207, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 208, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 209, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 210, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 211, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 222, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, 12, -999, 11, -999, -999, -999, 13, -999, 15, 14, -999, -999, -999, -999, 223, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999}};
const int LalrActionTable[LALR_STATE_COUNT][LALR_TERMINAL_COUNT] =
{
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -1, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, 60, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -2, -999, -999, -999, -999, -999, -999, -999, -999, -999, -2, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{61, -999, -999, -999, -999, -4, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -4, -999, -999, -999, -999, -999, -999, -999, -999, -999, -4, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-6, -999, -999, -999, -999, -6, -999, -999, -999, -999, -999, -999, -999, -999, -999, 62, -999, -999, -999, -999, -6, -999, -999, -999, -999, -999, -999, -999, -999, -999, -6, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-8, -999, -999, 63, -999, -8, -999, -999, -999, -999, -999, -999, -999, -999, -999, -8, -999, -999, -999, -999, -8, -999, -999, -999, -999, -999, -999, -999, -999, -999, -8, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-10, -999, -999, -10, -999, -10, -999, -999, -999, -999, -999, -999, -999, -999, -999, -10, -999, -999, -999, -999, -10, -999, -999, -999, -999, -999, -999, 64, -999, -999, -10, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-12, -999, -999, -12, -999, -12, -999, -999, -999, -999, -999, -999, -999, -999, -999, -12, -999, -999, -999, -999, -12, -999, -999, -999, -999, -999, -999, -12, -999, -999, -12, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-13, -999, -999, -13, -999, -13, -999, -999, -999, -999, 69, -999, -999, -999, -999, -13, -999, -999, -999, -999, -13, -999, -999, -999, -999, -999, -999, -13, -999, -999, -13, -999, 67, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 70, -999, 65, 68, -999, 66, -999, -999, -999, -999},
{-20, -999, -999, -20, -999, -20, -999, -999, -999, -999, -20, -999, -999, -999, -999, -20, -999, -999, -999, -999, -20, -999, -999, -999, -999, -999, -999, -20, -999, -999, -20, -999, -20, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -20, -999, -20, -20, -999, -20, -999, -999, -999, -999},
{-21, -999, -999, -21, 71, -21, -999, -999, -999, -999, -21, -999, -999, -999, -999, -21, -999, -999, -999, -999, -21, -999, -999, -999, -999, -999, -999, -21, -999, -999, -21, -999, -21, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 72, -999, -999, -999, -999, -999, -999, -999, -999, -21, -21, -21, -21, -999, -21, -999, -999, -999, -999},
{-24, -999, -999, -24, -24, -24, -999, -999, -999, -999, -24, -999, -999, -999, -999, -24, -999, -999, -999, -999, -24, -999, -999, -999, -999, -999, -999, -24, -999, -999, -24, -999, -24, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -24, 74, -999, -999, -999, -999, -999, -999, 73, -24, -24, -24, -24, -999, -24, -999, -999, -999, -999},
{-27, -999, -999, -27, -27, -27, 77, -999, -999, -999, -27, -999, -999, -999, -999, -27, -999, -999, -999, -999, -27, -999, -999, -999, -999, 76, -999, -27, -999, -999, -27, -999, -27, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -27, -27, -999, -999, -999, -999, 75, -999, -27, -27, -27, -27, -27, -999, -27, -999, -999, -999, -999},
{-31, -999, -999, -31, -31, -31, -31, -999, -999, -999, -31, -999, -999, -999, -999, -31, -999, -999, -999, -999, -31, -999, -999, -999, -999, -31, -999, -31, -999, -999, -31, -999, -31, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -31, -31, -999, -999, -999, -999, -31, -999, -31, -31, -31, -31, -31, -999, -31, -999, -999, -999, -999},
{-32, -999, -999, -32, -32, -32, -32, -999, -999, -999, -32, -999, -999, -999, -999, -32, -999, -999, -999, -999, -32, -999, -999, -999, -999, -32, -999, -32, -999, -999, -32, -999, -32, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -32, -32, -999, -999, -999, -999, -32, -999, -32, -32, -32, -32, -32, -999, -32, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 78, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 79, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 80, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 81, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 82, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-78, -999, -999, -78, -78, -78, -78, -999, -999, -999, -78, -999, -999, -999, -999, -78, -999, -999, -999, -999, -78, -999, -999, -999, -999, -78, -999, -78, -999, -999, -78, -999, -78, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -78, -78, -999, -999, -999, -999, -78, -999, -78, -78, -78, -78, -78, -999, -78, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 83, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, -999, 54, -999, 36, -999, 44, -999, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, -999, 34, 31, 51, 33, -999, 42, -999, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-72, -999, -999, -72, -72, -72, -72, -999, -999, -999, -72, -999, -999, -999, -999, -72, -999, -999, -999, -999, -72, -999, -999, -999, -999, -72, -999, -72, -999, -999, -72, -999, -72, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -72, -72, -999, -999, -999, -999, -72, -999, -72, -72, -72, -72, -72, -999, -72, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 85, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, -999, 54, -999, 36, -999, 44, -999, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, -999, 34, 31, 51, 33, -999, 42, -999, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 87, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 88, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, -999, 54, -999, 36, -999, 44, -999, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, -999, 34, 31, 51, 33, -999, 42, -999, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, -999, 54, -999, 36, -999, 44, -999, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, -999, 34, 31, 51, 33, -999, 42, -999, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 91, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, -999, 54, -999, 36, -999, 44, -999, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, -999, 34, 31, 51, 33, -999, 42, -999, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 94, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 95, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 96, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 97, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 98, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 99, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 100, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-74, -999, -999, -74, -74, -74, -74, -999, -999, -999, -74, -999, -999, -999, -999, -74, -999, -999, -999, -999, -74, -999, -999, -999, -999, -74, -999, -74, -999, -999, -74, -999, -74, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -74, -74, -999, -999, -999, -999, -74, -999, -74, -74, -74, -74, -74, -999, -74, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 101, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 102, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 103, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-77, -999, -999, -77, -77, -77, -77, -999, -999, -999, -77, -999, -999, -999, -999, -77, -999, -999, -999, -999, -77, -999, -999, -999, -999, -77, -999, -77, -999, -999, -77, -999, -77, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -77, -77, -999, -999, -999, -999, -77, -999, -77, -77, -77, -77, -77, -999, -77, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 104, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 105, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 106, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-76, -999, -999, -76, -76, -76, -76, -999, -999, -999, -76, -999, -999, -999, -999, -76, -999, -999, -999, -999, -76, -999, -999, -999, -999, -76, -999, -76, -999, -999, -76, -999, -76, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -76, -76, -999, -999, -999, -999, -76, -999, -76, -76, -76, -76, -76, -999, -76, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 107, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-73, -999, -999, -73, -73, -73, -73, -999, -999, -999, -73, -999, -999, -999, -999, -73, -999, -999, -999, -999, -73, -999, -999, -999, -999, -73, -999, -73, -999, -999, -73, -999, -73, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -73, -73, -999, -999, -999, -999, -73, -999, -73, -73, -73, -73, -73, -999, -73, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 108, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-75, -999, -999, -75, -75, -75, -75, -999, -999, -999, -75, -999, -999, -999, -999, -75, -999, -999, -999, -999, -75, -999, -999, -999, -999, -75, -999, -75, -999, -999, -75, -999, -75, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -75, -75, -999, -999, -999, -999, -75, -999, -75, -75, -75, -75, -75, -999, -75, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 109, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 110, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-79, -999, -999, -79, -79, -79, -79, -999, -999, -999, -79, -999, -999, -999, -999, -79, -999, -999, -999, -999, -79, -999, -999, -999, -999, -79, -999, -79, -999, -999, -79, -999, -79, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -79, -79, -999, -999, -999, -999, -79, -999, -79, -79, -79, -79, -79, -999, -79, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 111, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-71, -999, -999, -71, -71, -71, -71, -999, -999, -999, -71, -999, -999, -999, -999, -71, -999, -999, -999, -999, -71, -999, -999, -999, -999, -71, -999, -71, -999, -999, -71, -999, -71, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -71, -71, -999, -999, -999, -999, -71, -999, -71, -71, -71, -71, -71, -999, -71, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 112, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, 134, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, 134, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-37, -999, -999, -37, -37, -37, -37, -999, -999, -999, -37, -999, -999, -999, -999, -37, -999, -999, -999, -999, -37, -999, -999, -999, -999, -37, -999, -37, -999, -999, -37, -999, -37, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -37, -37, -999, -999, -999, -999, -37, -999, -37, -37, -37, -37, -37, -999, -37, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, 144, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-36, -999, -999, -36, -36, -36, -36, -999, -999, -999, -36, -999, -999, -999, -999, -36, -999, -999, -999, -999, -36, -999, -999, -999, -999, -36, -999, -36, -999, -999, -36, -999, -36, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -36, -36, -999, -999, -999, -999, -36, -999, -36, -36, -36, -36, -36, -999, -36, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-35, -999, -999, -35, -35, -35, -35, -999, -999, -999, -35, -999, -999, -999, -999, -35, -999, -999, -999, -999, -35, -999, -999, -999, -999, -35, -999, -35, -999, -999, -35, -999, -35, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -35, -35, -999, -999, -999, -999, -35, -999, -35, -35, -35, -35, -35, -999, -35, -999, -999, -999, -999},
{-33, -999, -999, -33, -33, -33, -33, -999, -999, -999, -33, -999, -999, -999, -999, -33, -999, -999, -999, -999, -33, -999, -999, -999, -999, -33, -999, -33, -999, -999, -33, -999, -33, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -33, -33, -999, -999, -999, -999, -33, -999, -33, -33, -33, -33, -33, -999, -33, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-34, -999, -999, -34, -34, -34, -34, -999, -999, -999, -34, -999, -999, -999, -999, -34, -999, -999, -999, -999, -34, -999, -999, -999, -999, -34, -999, -34, -999, -999, -34, -999, -34, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -34, -34, -999, -999, -999, -999, -34, -999, -34, -34, -34, -34, -34, -999, -34, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 148, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, 134, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, 144, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{61, -999, -999, -999, -999, -3, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -3, -999, -999, -999, -999, -999, -999, -999, -999, -999, -3, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-5, -999, -999, -999, -999, -5, -999, -999, -999, -999, -999, -999, -999, -999, -999, 62, -999, -999, -999, -999, -5, -999, -999, -999, -999, -999, -999, -999, -999, -999, -5, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-7, -999, -999, 63, -999, -7, -999, -999, -999, -999, -999, -999, -999, -999, -999, -7, -999, -999, -999, -999, -7, -999, -999, -999, -999, -999, -999, -999, -999, -999, -7, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-9, -999, -999, -9, -999, -9, -999, -999, -999, -999, -999, -999, -999, -999, -999, -9, -999, -999, -999, -999, -9, -999, -999, -999, -999, -999, -999, 64, -999, -999, -9, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-11, -999, -999, -11, -999, -11, -999, -999, -999, -999, -999, -999, -999, -999, -999, -11, -999, -999, -999, -999, -11, -999, -999, -999, -999, -999, -999, -11, -999, -999, -11, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-14, -999, -999, -14, -999, -14, -999, -999, -999, -999, -14, -999, -999, -999, -999, -14, -999, -999, -999, -999, -14, -999, -999, -999, -999, -999, -999, -14, -999, -999, -14, -999, -14, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -14, -999, -14, -14, -999, -14, -999, -999, -999, -999},
{-18, -999, -999, -18, -999, -18, -999, -999, -999, -999, -18, -999, -999, -999, -999, -18, -999, -999, -999, -999, -18, -999, -999, -999, -999, -999, -999, -18, -999, -999, -18, -999, -18, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -18, -999, -18, -18, -999, -18, -999, -999, -999, -999},
{-19, -999, -999, -19, -999, -19, -999, -999, -999, -999, -19, -999, -999, -999, -999, -19, -999, -999, -999, -999, -19, -999, -999, -999, -999, -999, -999, -19, -999, -999, -19, -999, -19, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -19, -999, -19, -19, -999, -19, -999, -999, -999, -999},
{-15, -999, -999, -15, -999, -15, -999, -999, -999, -999, -15, -999, -999, -999, -999, -15, -999, -999, -999, -999, -15, -999, -999, -999, -999, -999, -999, -15, -999, -999, -15, -999, -15, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -15, -999, -15, -15, -999, -15, -999, -999, -999, -999},
{-16, -999, -999, -16, -999, -16, -999, -999, -999, -999, -16, -999, -999, -999, -999, -16, -999, -999, -999, -999, -16, -999, -999, -999, -999, -999, -999, -16, -999, -999, -16, -999, -16, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -16, -999, -16, -16, -999, -16, -999, -999, -999, -999},
{-17, -999, -999, -17, -999, -17, -999, -999, -999, -999, -17, -999, -999, -999, -999, -17, -999, -999, -999, -999, -17, -999, -999, -999, -999, -999, -999, -17, -999, -999, -17, -999, -17, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -17, -999, -17, -17, -999, -17, -999, -999, -999, -999},
{-23, -999, -999, -23, -23, -23, -999, -999, -999, -999, -23, -999, -999, -999, -999, -23, -999, -999, -999, -999, -23, -999, -999, -999, -999, -999, -999, -23, -999, -999, -23, -999, -23, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -23, 74, -999, -999, -999, -999, -999, -999, 73, -23, -23, -23, -23, -999, -23, -999, -999, -999, -999},
{-22, -999, -999, -22, -22, -22, -999, -999, -999, -999, -22, -999, -999, -999, -999, -22, -999, -999, -999, -999, -22, -999, -999, -999, -999, -999, -999, -22, -999, -999, -22, -999, -22, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -22, 74, -999, -999, -999, -999, -999, -999, 73, -22, -22, -22, -22, -999, -22, -999, -999, -999, -999},
{-26, -999, -999, -26, -26, -26, 77, -999, -999, -999, -26, -999, -999, -999, -999, -26, -999, -999, -999, -999, -26, -999, -999, -999, -999, 76, -999, -26, -999, -999, -26, -999, -26, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -26, -26, -999, -999, -999, -999, 75, -999, -26, -26, -26, -26, -26, -999, -26, -999, -999, -999, -999},
{-25, -999, -999, -25, -25, -25, 77, -999, -999, -999, -25, -999, -999, -999, -999, -25, -999, -999, -999, -999, -25, -999, -999, -999, -999, 76, -999, -25, -999, -999, -25, -999, -25, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -25, -25, -999, -999, -999, -999, 75, -999, -25, -25, -25, -25, -25, -999, -25, -999, -999, -999, -999},
{-30, -999, -999, -30, -30, -30, -30, -999, -999, -999, -30, -999, -999, -999, -999, -30, -999, -999, -999, -999, -30, -999, -999, -999, -999, -30, -999, -30, -999, -999, -30, -999, -30, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -30, -30, -999, -999, -999, -999, -30, -999, -30, -30, -30, -30, -30, -999, -30, -999, -999, -999, -999},
{-28, -999, -999, -28, -28, -28, -28, -999, -999, -999, -28, -999, -999, -999, -999, -28, -999, -999, -999, -999, -28, -999, -999, -999, -999, -28, -999, -28, -999, -999, -28, -999, -28, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -28, -28, -999, -999, -999, -999, -28, -999, -28, -28, -28, -28, -28, -999, -28, -999, -999, -999, -999},
{-29, -999, -999, -29, -29, -29, -29, -999, -999, -999, -29, -999, -999, -999, -999, -29, -999, -999, -999, -999, -29, -999, -999, -999, -999, -29, -999, -29, -999, -999, -29, -999, -29, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -29, -29, -999, -999, -999, -999, -29, -999, -29, -29, -29, -29, -29, -999, -29, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -82, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -82, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -83, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -83, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 169, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -80, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -80, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 170, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 171, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 172, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 173, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 174, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 175, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -84, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -85, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -85, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 177, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -81, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -81, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 178, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 179, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 180, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-70, -999, -999, -70, -70, -70, -70, -999, -999, -999, -70, -999, -999, -999, -999, -70, -999, -999, -999, -999, -70, -999, -999, -999, -999, -70, -999, -70, -999, -999, -70, -999, -70, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -70, -70, -999, -999, -999, -999, -70, -999, -70, -70, -70, -70, -70, -999, -70, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 181, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 182, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 183, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 184, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 185, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 186, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 187, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 188, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 189, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -84, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 191, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 192, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 193, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 194, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 195, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 196, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 197, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 198, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 199, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 200, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, 134, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-48, -999, -999, -48, -48, -48, -48, -999, -999, -999, -48, -999, -999, -999, -999, -48, -999, -999, -999, -999, -48, -999, -999, -999, -999, -48, -999, -48, -999, -999, -48, -999, -48, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -48, -48, -999, -999, -999, -999, -48, -999, -48, -48, -48, -48, -48, -999, -48, -999, -999, -999, -999},
{-65, -999, -999, -65, -65, -65, -65, -999, -999, -999, -65, -999, -999, -999, -999, -65, -999, -999, -999, -999, -65, -999, -999, -999, -999, -65, -999, -65, -999, -999, -65, -999, -65, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -65, -65, -999, -999, -999, -999, -65, -999, -65, -65, -65, -65, -65, -999, -65, -999, -999, -999, -999},
{-57, -999, -999, -57, -57, -57, -57, -999, -999, -999, -57, -999, -999, -999, -999, -57, -999, -999, -999, -999, -57, -999, -999, -999, -999, -57, -999, -57, -999, -999, -57, -999, -57, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -57, -57, -999, -999, -999, -999, -57, -999, -57, -57, -57, -57, -57, -999, -57, -999, -999, -999, -999},
{-45, -999, -999, -45, -45, -45, -45, -999, -999, -999, -45, -999, -999, -999, -999, -45, -999, -999, -999, -999, -45, -999, -999, -999, -999, -45, -999, -45, -999, -999, -45, -999, -45, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -45, -45, -999, -999, -999, -999, -45, -999, -45, -45, -45, -45, -45, -999, -45, -999, -999, -999, -999},
{-56, -999, -999, -56, -56, -56, -56, -999, -999, -999, -56, -999, -999, -999, -999, -56, -999, -999, -999, -999, -56, -999, -999, -999, -999, -56, -999, -56, -999, -999, -56, -999, -56, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -56, -56, -999, -999, -999, -999, -56, -999, -56, -56, -56, -56, -56, -999, -56, -999, -999, -999, -999},
{-39, -999, -999, -39, -39, -39, -39, -999, -999, -999, -39, -999, -999, -999, -999, -39, -999, -999, -999, -999, -39, -999, -999, -999, -999, -39, -999, -39, -999, -999, -39, -999, -39, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -39, -39, -999, -999, -999, -999, -39, -999, -39, -39, -39, -39, -39, -999, -39, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, 144, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-43, -999, -999, -43, -43, -43, -43, -999, -999, -999, -43, -999, -999, -999, -999, -43, -999, -999, -999, -999, -43, -999, -999, -999, -999, -43, -999, -43, -999, -999, -43, -999, -43, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -43, -43, -999, -999, -999, -999, -43, -999, -43, -43, -43, -43, -43, -999, -43, -999, -999, -999, -999},
{-51, -999, -999, -51, -51, -51, -51, -999, -999, -999, -51, -999, -999, -999, -999, -51, -999, -999, -999, -999, -51, -999, -999, -999, -999, -51, -999, -51, -999, -999, -51, -999, -51, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -51, -51, -999, -999, -999, -999, -51, -999, -51, -51, -51, -51, -51, -999, -51, -999, -999, -999, -999},
{-50, -999, -999, -50, -50, -50, -50, -999, -999, -999, -50, -999, -999, -999, -999, -50, -999, -999, -999, -999, -50, -999, -999, -999, -999, -50, -999, -50, -999, -999, -50, -999, -50, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -50, -50, -999, -999, -999, -999, -50, -999, -50, -50, -50, -50, -50, -999, -50, -999, -999, -999, -999},
{-46, -999, -999, -46, -46, -46, -46, -999, -999, -999, -46, -999, -999, -999, -999, -46, -999, -999, -999, -999, -46, -999, -999, -999, -999, -46, -999, -46, -999, -999, -46, -999, -46, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -46, -46, -999, -999, -999, -999, -46, -999, -46, -46, -46, -46, -46, -999, -46, -999, -999, -999, -999},
{-53, -999, -999, -53, -53, -53, -53, -999, -999, -999, -53, -999, -999, -999, -999, -53, -999, -999, -999, -999, -53, -999, -999, -999, -999, -53, -999, -53, -999, -999, -53, -999, -53, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -53, -53, -999, -999, -999, -999, -53, -999, -53, -53, -53, -53, -53, -999, -53, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, 134, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-42, -999, -999, -42, -42, -42, -42, -999, -999, -999, -42, -999, -999, -999, -999, -42, -999, -999, -999, -999, -42, -999, -999, -999, -999, -42, -999, -42, -999, -999, -42, -999, -42, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -42, -42, -999, -999, -999, -999, -42, -999, -42, -42, -42, -42, -42, -999, -42, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-47, -999, -999, -47, -47, -47, -47, -999, -999, -999, -47, -999, -999, -999, -999, -47, -999, -999, -999, -999, -47, -999, -999, -999, -999, -47, -999, -47, -999, -999, -47, -999, -47, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -47, -47, -999, -999, -999, -999, -47, -999, -47, -47, -47, -47, -47, -999, -47, -999, -999, -999, -999},
{-52, -999, -999, -52, -52, -52, -52, -999, -999, -999, -52, -999, -999, -999, -999, -52, -999, -999, -999, -999, -52, -999, -999, -999, -999, -52, -999, -52, -999, -999, -52, -999, -52, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -52, -52, -999, -999, -999, -999, -52, -999, -52, -52, -52, -52, -52, -999, -52, -999, -999, -999, -999},
{-55, -999, -999, -55, -55, -55, -55, -999, -999, -999, -55, -999, -999, -999, -999, -55, -999, -999, -999, -999, -55, -999, -999, -999, -999, -55, -999, -55, -999, -999, -55, -999, -55, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -55, -55, -999, -999, -999, -999, -55, -999, -55, -55, -55, -55, -55, -999, -55, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-49, -999, -999, -49, -49, -49, -49, -999, -999, -999, -49, -999, -999, -999, -999, -49, -999, -999, -999, -999, -49, -999, -999, -999, -999, -49, -999, -49, -999, -999, -49, -999, -49, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -49, -49, -999, -999, -999, -999, -49, -999, -49, -49, -49, -49, -49, -999, -49, -999, -999, -999, -999},
{-68, -999, -999, -68, -68, -68, -68, -999, -999, -999, -68, -999, -999, -999, -999, -68, -999, -999, -999, -999, -68, -999, -999, -999, -999, -68, -999, -68, -999, -999, -68, -999, -68, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -68, -68, -999, -999, -999, -999, -68, -999, -68, -68, -68, -68, -68, -999, -68, -999, -999, -999, -999},
{-44, -999, -999, -44, -44, -44, -44, -999, -999, -999, -44, -999, -999, -999, -999, -44, -999, -999, -999, -999, -44, -999, -999, -999, -999, -44, -999, -44, -999, -999, -44, -999, -44, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -44, -44, -999, -999, -999, -999, -44, -999, -44, -44, -44, -44, -44, -999, -44, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-54, -999, -999, -54, -54, -54, -54, -999, -999, -999, -54, -999, -999, -999, -999, -54, -999, -999, -999, -999, -54, -999, -999, -999, -999, -54, -999, -54, -999, -999, -54, -999, -54, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -54, -54, -999, -999, -999, -999, -54, -999, -54, -54, -54, -54, -54, -999, -54, -999, -999, -999, -999},
{-38, -999, -999, -38, -38, -38, -38, -999, -999, -999, -38, -999, -999, -999, -999, -38, -999, -999, -999, -999, -38, -999, -999, -999, -999, -38, -999, -38, -999, -999, -38, -999, -38, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -38, -38, -999, -999, -999, -999, -38, -999, -38, -38, -38, -38, -38, -999, -38, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-40, -999, -999, -40, -40, -40, -40, -999, -999, -999, -40, -999, -999, -999, -999, -40, -999, -999, -999, -999, -40, -999, -999, -999, -999, -40, -999, -40, -999, -999, -40, -999, -40, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -40, -40, -999, -999, -999, -999, -40, -999, -40, -40, -40, -40, -40, -999, -40, -999, -999, -999, -999},
{-41, -999, -999, -41, -41, -41, -41, -999, -999, -999, -41, -999, -999, -999, -999, -41, -999, -999, -999, -999, -41, -999, -999, -999, -999, -41, -999, -41, -999, -999, -41, -999, -41, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -41, -41, -999, -999, -999, -999, -41, -999, -41, -41, -41, -41, -41, -999, -41, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 212, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 213, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -84, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 214, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 215, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 216, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 217, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 218, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 219, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 220, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 221, -999, -999, -999, -999, -999, -999, -999, -999},
{-66, -999, -999, -66, -66, -66, -66, -999, -999, -999, -66, -999, -999, -999, -999, -66, -999, -999, -999, -999, -66, -999, -999, -999, -999, -66, -999, -66, -999, -999, -66, -999, -66, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -66, -66, -999, -999, -999, -999, -66, -999, -66, -66, -66, -66, -66, -999, -66, -999, -999, -999, -999},
{-63, -999, -999, -63, -63, -63, -63, -999, -999, -999, -63, -999, -999, -999, -999, -63, -999, -999, -999, -999, -63, -999, -999, -999, -999, -63, -999, -63, -999, -999, -63, -999, -63, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -63, -63, -999, -999, -999, -999, -63, -999, -63, -63, -63, -63, -63, -999, -63, -999, -999, -999, -999},
{-69, -999, -999, -69, -69, -69, -69, -999, -999, -999, -69, -999, -999, -999, -999, -69, -999, -999, -999, -999, -69, -999, -999, -999, -999, -69, -999, -69, -999, -999, -69, -999, -69, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -69, -69, -999, -999, -999, -999, -69, -999, -69, -69, -69, -69, -69, -999, -69, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-60, -999, -999, -60, -60, -60, -60, -999, -999, -999, -60, -999, -999, -999, -999, -60, -999, -999, -999, -999, -60, -999, -999, -999, -999, -60, -999, -60, -999, -999, -60, -999, -60, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -60, -60, -999, -999, -999, -999, -60, -999, -60, -60, -60, -60, -60, -999, -60, -999, -999, -999, -999},
{-58, -999, -999, -58, -58, -58, -58, -999, -999, -999, -58, -999, -999, -999, -999, -58, -999, -999, -999, -999, -58, -999, -999, -999, -999, -58, -999, -58, -999, -999, -58, -999, -58, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -58, -58, -999, -999, -999, -999, -58, -999, -58, -58, -58, -58, -58, -999, -58, -999, -999, -999, -999},
{-61, -999, -999, -61, -61, -61, -61, -999, -999, -999, -61, -999, -999, -999, -999, -61, -999, -999, -999, -999, -61, -999, -999, -999, -999, -61, -999, -61, -999, -999, -61, -999, -61, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -61, -61, -999, -999, -999, -999, -61, -999, -61, -61, -61, -61, -61, -999, -61, -999, -999, -999, -999},
{-62, -999, -999, -62, -62, -62, -62, -999, -999, -999, -62, -999, -999, -999, -999, -62, -999, -999, -999, -999, -62, -999, -999, -999, -999, -62, -999, -62, -999, -999, -62, -999, -62, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -62, -62, -999, -999, -999, -999, -62, -999, -62, -62, -62, -62, -62, -999, -62, -999, -999, -999, -999},
{-59, -999, -999, -59, -59, -59, -59, -999, -999, -999, -59, -999, -999, -999, -999, -59, -999, -999, -999, -999, -59, -999, -999, -999, -999, -59, -999, -59, -999, -999, -59, -999, -59, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -59, -59, -999, -999, -999, -999, -59, -999, -59, -59, -59, -59, -59, -999, -59, -999, -999, -999, -999},
{-999, 55, 20, -999, -999, -999, -999, 24, 56, 37, -999, 22, 39, 25, 48, -999, 49, 53, 41, 19, -999, 29, 54, -999, 36, -999, 44, 23, 35, 21, -999, 58, -999, 17, 40, 50, 38, 52, -999, 46, 28, 18, 27, 57, -999, 32, 34, 31, 51, 33, 26, 42, 30, -999, -999, -999, -999, 43, -999, 47, 45, 59, 16},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 224, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, 225, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999},
{-67, -999, -999, -67, -67, -67, -67, -999, -999, -999, -67, -999, -999, -999, -999, -67, -999, -999, -999, -999, -67, -999, -999, -999, -999, -67, -999, -67, -999, -999, -67, -999, -67, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -67, -67, -999, -999, -999, -999, -67, -999, -67, -67, -67, -67, -67, -999, -67, -999, -999, -999, -999},
{-64, -999, -999, -64, -64, -64, -64, -999, -999, -999, -64, -999, -999, -999, -999, -64, -999, -999, -999, -999, -64, -999, -999, -999, -999, -64, -999, -64, -999, -999, -64, -999, -64, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -999, -64, -64, -999, -999, -999, -999, -64, -999, -64, -64, -64, -64, -64, -999, -64, -999, -999, -999, -999}};
const struct _TOKEN LalrSemanticRules[RULES_COUNT] =
{
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@OR"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@AND"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@OR"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@XOR"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@AND"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@GT"},
{SEMANTIC_RULE, "@LT"},
{SEMANTIC_RULE, "@EGT"},
{SEMANTIC_RULE, "@ELT"},
{SEMANTIC_RULE, "@EQUAL"},
{SEMANTIC_RULE, "@NEQ"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@ASR"},
{SEMANTIC_RULE, "@ASL"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@ADD"},
{SEMANTIC_RULE, "@SUB"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@DIV"},
{SEMANTIC_RULE, "@MOD"},
{SEMANTIC_RULE, "@MUL"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@NEG"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@NOT"},
{SEMANTIC_RULE, "@POI"},
{SEMANTIC_RULE, "@REFERENCE"},
{SEMANTIC_RULE, "@POI"},
{SEMANTIC_RULE, "@DB"},
{SEMANTIC_RULE, "@DD"},
{SEMANTIC_RULE, "@DW"},
{SEMANTIC_RULE, "@DQ"},
{SEMANTIC_RULE, "@NEG"},
{SEMANTIC_RULE, "@HI"},
{SEMANTIC_RULE, "@LOW"},
{SEMANTIC_RULE, "@NOT"},
{SEMANTIC_RULE, "@CHECK_ADDRESS"},
{SEMANTIC_RULE, "@STRLEN"},
{SEMANTIC_RULE, "@WCSLEN"},
{SEMANTIC_RULE, "@DISASSEMBLE_LEN"},
{SEMANTIC_RULE, "@DISASSEMBLE_LEN32"},
{SEMANTIC_RULE, "@DISASSEMBLE_LEN64"},
{SEMANTIC_RULE, "@INTERLOCKED_INCREMENT"},
{SEMANTIC_RULE, "@INTERLOCKED_DECREMENT"},
{SEMANTIC_RULE, "@REFERENCE"},
{SEMANTIC_RULE, "@PHYSICAL_TO_VIRTUAL"},
{SEMANTIC_RULE, "@VIRTUAL_TO_PHYSICAL"},
{SEMANTIC_RULE, "@ED"},
{SEMANTIC_RULE, "@EB"},
{SEMANTIC_RULE, "@EQ"},
{SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE"},
{SEMANTIC_RULE, "@INTERLOCKED_EXCHANGE_ADD"},
{SEMANTIC_RULE, "@WCSCMP"},
{SEMANTIC_RULE, "@INTERLOCKED_COMPARE_EXCHANGE"},
{SEMANTIC_RULE, "@STRLEN"},
{SEMANTIC_RULE, "@STRCMP"},
{SEMANTIC_RULE, "@MEMCMP"},
{SEMANTIC_RULE, "@WCSLEN"},
{SEMANTIC_RULE, "@WCSCMP"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{UNKNOWN, ""},
{UNKNOWN, ""}};