1#line 1 "dhcp4_lexer.cc"
3#line 3 "dhcp4_lexer.cc"
5#define YY_INT_ALIGNED short int
12#define yy_create_buffer parser4__create_buffer
13#define yy_delete_buffer parser4__delete_buffer
14#define yy_scan_buffer parser4__scan_buffer
15#define yy_scan_string parser4__scan_string
16#define yy_scan_bytes parser4__scan_bytes
17#define yy_init_buffer parser4__init_buffer
18#define yy_flush_buffer parser4__flush_buffer
19#define yy_load_buffer_state parser4__load_buffer_state
20#define yy_switch_to_buffer parser4__switch_to_buffer
21#define yypush_buffer_state parser4_push_buffer_state
22#define yypop_buffer_state parser4_pop_buffer_state
23#define yyensure_buffer_stack parser4_ensure_buffer_stack
24#define yy_flex_debug parser4__flex_debug
25#define yyin parser4_in
26#define yyleng parser4_leng
27#define yylex parser4_lex
28#define yylineno parser4_lineno
29#define yyout parser4_out
30#define yyrestart parser4_restart
31#define yytext parser4_text
32#define yywrap parser4_wrap
33#define yyalloc parser4_alloc
34#define yyrealloc parser4_realloc
35#define yyfree parser4_free
42#define YY_FLEX_MAJOR_VERSION 2
43#define YY_FLEX_MINOR_VERSION 6
44#define YY_FLEX_SUBMINOR_VERSION 4
45#if YY_FLEX_SUBMINOR_VERSION > 0
53#ifdef yy_create_buffer
54#define parser4__create_buffer_ALREADY_DEFINED
56#define yy_create_buffer parser4__create_buffer
59#ifdef yy_delete_buffer
60#define parser4__delete_buffer_ALREADY_DEFINED
62#define yy_delete_buffer parser4__delete_buffer
66#define parser4__scan_buffer_ALREADY_DEFINED
68#define yy_scan_buffer parser4__scan_buffer
72#define parser4__scan_string_ALREADY_DEFINED
74#define yy_scan_string parser4__scan_string
78#define parser4__scan_bytes_ALREADY_DEFINED
80#define yy_scan_bytes parser4__scan_bytes
84#define parser4__init_buffer_ALREADY_DEFINED
86#define yy_init_buffer parser4__init_buffer
90#define parser4__flush_buffer_ALREADY_DEFINED
92#define yy_flush_buffer parser4__flush_buffer
95#ifdef yy_load_buffer_state
96#define parser4__load_buffer_state_ALREADY_DEFINED
98#define yy_load_buffer_state parser4__load_buffer_state
101#ifdef yy_switch_to_buffer
102#define parser4__switch_to_buffer_ALREADY_DEFINED
104#define yy_switch_to_buffer parser4__switch_to_buffer
107#ifdef yypush_buffer_state
108#define parser4_push_buffer_state_ALREADY_DEFINED
110#define yypush_buffer_state parser4_push_buffer_state
113#ifdef yypop_buffer_state
114#define parser4_pop_buffer_state_ALREADY_DEFINED
116#define yypop_buffer_state parser4_pop_buffer_state
119#ifdef yyensure_buffer_stack
120#define parser4_ensure_buffer_stack_ALREADY_DEFINED
122#define yyensure_buffer_stack parser4_ensure_buffer_stack
126#define parser4_lex_ALREADY_DEFINED
128#define yylex parser4_lex
132#define parser4_restart_ALREADY_DEFINED
134#define yyrestart parser4_restart
138#define parser4_lex_init_ALREADY_DEFINED
140#define yylex_init parser4_lex_init
143#ifdef yylex_init_extra
144#define parser4_lex_init_extra_ALREADY_DEFINED
146#define yylex_init_extra parser4_lex_init_extra
150#define parser4_lex_destroy_ALREADY_DEFINED
152#define yylex_destroy parser4_lex_destroy
156#define parser4_get_debug_ALREADY_DEFINED
158#define yyget_debug parser4_get_debug
162#define parser4_set_debug_ALREADY_DEFINED
164#define yyset_debug parser4_set_debug
168#define parser4_get_extra_ALREADY_DEFINED
170#define yyget_extra parser4_get_extra
174#define parser4_set_extra_ALREADY_DEFINED
176#define yyset_extra parser4_set_extra
180#define parser4_get_in_ALREADY_DEFINED
182#define yyget_in parser4_get_in
186#define parser4_set_in_ALREADY_DEFINED
188#define yyset_in parser4_set_in
192#define parser4_get_out_ALREADY_DEFINED
194#define yyget_out parser4_get_out
198#define parser4_set_out_ALREADY_DEFINED
200#define yyset_out parser4_set_out
204#define parser4_get_leng_ALREADY_DEFINED
206#define yyget_leng parser4_get_leng
210#define parser4_get_text_ALREADY_DEFINED
212#define yyget_text parser4_get_text
216#define parser4_get_lineno_ALREADY_DEFINED
218#define yyget_lineno parser4_get_lineno
222#define parser4_set_lineno_ALREADY_DEFINED
224#define yyset_lineno parser4_set_lineno
228#define parser4_wrap_ALREADY_DEFINED
230#define yywrap parser4_wrap
236#define parser4_alloc_ALREADY_DEFINED
238#define yyalloc parser4_alloc
242#define parser4_realloc_ALREADY_DEFINED
244#define yyrealloc parser4_realloc
248#define parser4_free_ALREADY_DEFINED
250#define yyfree parser4_free
256#define parser4_text_ALREADY_DEFINED
258#define yytext parser4_text
262#define parser4_leng_ALREADY_DEFINED
264#define yyleng parser4_leng
268#define parser4_in_ALREADY_DEFINED
270#define yyin parser4_in
274#define parser4_out_ALREADY_DEFINED
276#define yyout parser4_out
280#define parser4__flex_debug_ALREADY_DEFINED
282#define yy_flex_debug parser4__flex_debug
286#define parser4_lineno_ALREADY_DEFINED
288#define yylineno parser4_lineno
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
341#define INT8_MIN (-128)
344#define INT16_MIN (-32767-1)
347#define INT32_MIN (-2147483647-1)
350#define INT8_MAX (127)
353#define INT16_MAX (32767)
356#define INT32_MAX (2147483647)
359#define UINT8_MAX (255U)
362#define UINT16_MAX (65535U)
365#define UINT32_MAX (4294967295U)
369#define SIZE_MAX (~(size_t)0)
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
414#define BEGIN (yy_start) = 1 + 2 *
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
434#define YY_BUF_SIZE 32768
436#define YY_BUF_SIZE 16384
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; \
484#define unput(c) yyunput( c, (yytext_ptr) )
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
539#define YY_BUFFER_NEW 0
540#define YY_BUFFER_NORMAL 1
551#define YY_BUFFER_EOF_PENDING 2
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
575#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
581#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
588static char yy_hold_char;
589static int yy_n_chars;
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0;
595static int yy_start = 0;
600static int yy_did_buffer_switch_on_eof;
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
628#define yy_new_buffer yy_create_buffer
629#define yy_set_interactive(is_interactive) \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
638#define yy_set_bol(at_bol) \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
647#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
652#define parser4_wrap() (1)
653#define YY_SKIP_YYWRAP
669#define yytext_ptr yytext
677static int yy_get_next_buffer (
void );
678static void yynoreturn yy_fatal_error (
const char* msg );
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
692 (yy_c_buf_p) = yy_cp;
694#define YY_NUM_RULES 214
695#define YY_END_OF_BUFFER 215
705 207, 207, 0, 0, 0, 0, 0, 0, 0, 0,
706 215, 213, 10, 11, 213, 1, 207, 204, 207, 207,
707 213, 206, 205, 213, 213, 213, 213, 213, 200, 201,
708 213, 213, 213, 202, 203, 5, 5, 5, 213, 213,
709 213, 10, 11, 0, 0, 195, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 1, 207, 207,
713 0, 206, 207, 3, 2, 6, 0, 207, 0, 0,
714 0, 0, 0, 0, 4, 0, 0, 9, 0, 196,
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 198, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
725 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
727 0, 0, 0, 197, 199, 0, 0, 0, 0, 0,
728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
738 0, 0, 0, 0, 0, 0, 0, 0, 212, 210,
739 0, 209, 208, 0, 0, 0, 0, 0, 0, 0,
740 173, 0, 172, 0, 0, 94, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 91, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
749 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 18, 0, 0, 0, 0, 211, 208, 0,
753 0, 0, 0, 0, 0, 174, 0, 176, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 98, 0, 0, 0, 0, 0, 0, 80, 0,
756 0, 0, 0, 0, 0, 120, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 40, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 79, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
763 41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 117, 0, 0, 34, 0, 0, 38, 0, 0, 0,
767 0, 0, 0, 12, 178, 177, 0, 0, 0, 130,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 109, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 131, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
782 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 93, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 107, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 85, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 124, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 136, 105, 0, 0, 0, 0, 0,
802 0, 110, 35, 0, 0, 0, 0, 0, 46, 0,
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
805 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 125,
815 0, 0, 0, 0, 0, 0, 54, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 39, 0, 0, 0, 0, 33, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 53, 0, 0, 0, 122, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 0, 156, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 161, 0, 0, 0, 159,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 183, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 123, 0,
837 0, 0, 0, 0, 0, 0, 127, 0, 0, 0,
838 0, 0, 0, 0, 108, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 121, 22, 0, 132, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 165, 0, 0, 0, 0, 77, 0, 0, 0,
843 0, 0, 0, 135, 0, 37, 0, 154, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
846 101, 102, 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 81, 0, 0, 0, 0, 0, 55, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 129, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 187, 0, 78, 92,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 59, 0, 0, 0, 0, 0, 0, 162, 0,
856 0, 160, 0, 0, 151, 150, 0, 0, 0, 0,
857 0, 0, 21, 0, 0, 0, 0, 175, 0, 0,
859 0, 0, 0, 116, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 144, 0, 0, 0, 153, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 133, 0, 15, 0,
863 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 164, 0, 0, 0, 0, 0, 0, 0, 0,
865 60, 0, 0, 128, 0, 0, 0, 119, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
867 52, 0, 84, 0, 181, 0, 0, 186, 0, 104,
868 0, 0, 0, 193, 0, 0, 0, 0, 0, 0,
870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 189, 0, 0, 114,
877 30, 0, 0, 0, 149, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 184, 0, 157,
879 0, 0, 0, 0, 0, 0, 0, 0, 28, 0,
881 0, 0, 27, 0, 0, 163, 0, 0, 0, 51,
882 0, 0, 0, 0, 0, 106, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 56, 0, 0, 103, 0, 0, 0, 44, 0,
886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887 0, 0, 0, 0, 0, 0, 134, 0, 0, 0,
888 29, 0, 0, 0, 185, 0, 0, 0, 0, 0,
889 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
890 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
892 188, 0, 76, 0, 47, 0, 0, 0, 182, 180,
893 0, 31, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 0, 0, 16, 0, 0, 0, 0, 169, 0,
895 0, 0, 0, 0, 0, 0, 0, 142, 0, 0,
896 0, 118, 0, 0, 0, 0, 0, 0, 0, 0,
897 0, 0, 89, 0, 0, 0, 0, 0, 48, 0,
898 0, 0, 0, 147, 0, 0, 0, 0, 0, 0,
899 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 170, 13, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 148, 0, 158, 0, 0,
903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 152, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 141, 0, 58, 57, 19, 0, 166, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 100, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 140,
910 0, 0, 0, 0, 50, 0, 63, 0, 45, 168,
911 0, 95, 0, 0, 0, 0, 0, 0, 0, 0,
912 75, 0, 0, 0, 0, 0, 0, 0, 72, 0,
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
916 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
919 0, 71, 0, 0, 0, 0, 146, 0, 0, 0,
920 0, 191, 194, 167, 0, 115, 96, 0, 0, 0,
921 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
922 0, 0, 0, 0, 138, 0, 0, 0, 0, 0,
923 0, 143, 0, 69, 0, 61, 0, 0, 0, 0,
925 0, 0, 97, 0, 0, 0, 0, 0, 0, 0,
926 137, 0, 0, 171, 192, 0, 0, 0, 0, 0,
927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
928 68, 0, 0, 0, 0, 26, 24, 0, 0, 0,
929 73, 0, 0, 99, 0, 65, 0, 0, 0, 0,
930 0, 0, 0, 0, 64, 0, 139, 25, 190, 0
933static const YY_CHAR yy_ec[256] =
935 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
936 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
937 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
938 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
939 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
940 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
941 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
942 5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
943 5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
944 42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
946 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
947 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
948 70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
949 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
950 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
951 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
952 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
953 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
954 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
955 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
957 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
958 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
959 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
960 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
961 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
965static const YY_CHAR yy_meta[74] =
967 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
971 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
973 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
979 0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
980 2447, 2448, 34, 2443, 145, 0, 207, 2448, 214, 221,
981 13, 228, 2448, 2423, 118, 25, 2, 6, 2448, 2448,
982 73, 11, 17, 2448, 2448, 2448, 104, 2431, 2384, 0,
983 2421, 108, 2438, 24, 262, 2448, 2380, 67, 2386, 84,
984 75, 88, 224, 91, 89, 290, 220, 2378, 206, 285,
985 236, 204, 197, 60, 232, 2387, 247, 294, 315, 307,
986 286, 2370, 212, 325, 354, 328, 2389, 0, 366, 382,
987 397, 411, 404, 2448, 0, 2448, 419, 425, 249, 319,
988 238, 331, 399, 329, 2448, 2386, 2427, 2448, 404, 2448,
990 438, 2414, 405, 2383, 415, 10, 409, 311, 411, 418,
991 428, 2424, 0, 499, 418, 2366, 2363, 2367, 402, 2363,
992 80, 2371, 216, 2357, 2358, 2363, 78, 2373, 2356, 2365,
993 2355, 2364, 221, 2355, 223, 2356, 2354, 400, 2402, 2406,
994 2346, 2399, 2339, 174, 2360, 2360, 2354, 278, 2347, 2345,
995 2346, 2338, 2343, 2337, 423, 2348, 346, 2333, 2332, 2346,
996 405, 2332, 420, 355, 2326, 495, 407, 428, 2347, 2344,
997 2345, 428, 2343, 2378, 2377, 2323, 2323, 433, 2324, 433,
998 2316, 2333, 2325, 0, 446, 462, 471, 464, 476, 481,
999 2324, 2448, 2369, 486, 2318, 466, 479, 485, 2372, 510,
1001 2371, 502, 2370, 2448, 2448, 548, 2369, 521, 2328, 2320,
1002 2307, 2318, 2322, 2323, 2303, 2314, 2318, 2315, 2314, 478,
1003 518, 2352, 2316, 2297, 2294, 2302, 2297, 2311, 2307, 2298,
1004 2294, 2306, 2306, 2297, 2281, 2285, 2298, 2300, 2297, 2289,
1005 2279, 2297, 2448, 2292, 505, 2330, 2276, 2285, 2327, 2274,
1006 2284, 2287, 518, 2283, 2322, 2267, 2269, 2280, 2318, 2263,
1007 2321, 2275, 2255, 2270, 542, 2260, 2266, 524, 2257, 2255,
1008 2255, 2261, 2252, 2251, 2258, 2248, 2307, 2263, 2262, 2256,
1009 498, 2263, 2258, 2250, 2240, 2255, 2254, 2249, 2253, 2234,
1010 2250, 2236, 2242, 2249, 2231, 457, 2236, 2233, 2232, 2227,
1012 2241, 551, 2240, 2283, 2242, 529, 2233, 552, 2448, 2448,
1013 554, 2448, 2448, 2220, 536, 543, 2268, 559, 2278, 553,
1014 2448, 2277, 2448, 2271, 603, 2448, 552, 2211, 2220, 2268,
1015 2228, 2211, 2228, 2264, 2224, 2207, 2213, 2265, 2220, 2223,
1016 2214, 2217, 2203, 2214, 2258, 2252, 2210, 2207, 594, 2213,
1017 2253, 2188, 2246, 2199, 2194, 2191, 2242, 2199, 2188, 2204,
1018 2238, 2184, 601, 2198, 2183, 2196, 2194, 2192, 2192, 2191,
1019 2186, 2193, 2188, 2184, 570, 2182, 2185, 2180, 2166, 2178,
1020 2174, 2224, 563, 2218, 2448, 2182, 2216, 2166, 2165, 2164,
1021 2157, 2159, 2171, 2162, 2169, 2150, 2167, 2162, 581, 2209,
1023 2162, 2159, 2162, 2448, 2161, 2150, 2150, 2162, 547, 2137,
1024 2138, 2159, 2150, 2140, 2191, 2136, 2150, 584, 2136, 2148,
1025 2147, 2146, 2141, 2183, 2143, 2142, 2141, 2140, 2183, 2142,
1026 2122, 2180, 2448, 2122, 2121, 629, 2134, 2448, 2448, 2133,
1027 2122, 2114, 572, 2173, 2172, 2448, 2171, 2448, 607, 655,
1028 610, 2170, 2112, 2123, 2162, 2115, 2117, 2119, 2106, 2114,
1029 2102, 2448, 2107, 2100, 2112, 2115, 2102, 2101, 2448, 595,
1030 2103, 2100, 613, 2098, 2100, 2448, 2145, 2107, 2104, 2089,
1031 2102, 2097, 637, 2104, 2092, 2085, 2136, 2448, 2083, 2099,
1032 2133, 2094, 2091, 2092, 2076, 2085, 2127, 2078, 2077, 2072,
1034 2071, 2122, 2066, 626, 2085, 2059, 2066, 2071, 2081, 2115,
1035 2119, 2448, 2064, 2060, 2058, 2067, 2066, 2060, 2067, 2051,
1036 2051, 2061, 2049, 2063, 2063, 2051, 2047, 2045, 2448, 2102,
1037 2448, 2044, 2055, 2094, 2039, 2044, 2053, 2047, 2041, 2050,
1038 2092, 2086, 2048, 2032, 2027, 2047, 2022, 2028, 631, 2042,
1039 2035, 2039, 2022, 2080, 2021, 2021, 2072, 2017, 2018, 2017,
1040 2448, 2030, 2067, 2448, 2018, 2016, 2448, 2027, 2063, 2023,
1041 2007, 2024, 2064, 2448, 2448, 2448, 630, 621, 681, 2448,
1042 2015, 2014, 294, 2021, 2001, 2011, 2053, 1998, 2051, 1996,
1043 2006, 2048, 1993, 2000, 1993, 2005, 1987, 1987, 2002, 2001,
1045 603, 2000, 1999, 1999, 1981, 1986, 2027, 1994, 1991, 1985,
1046 2030, 1974, 1990, 1989, 2448, 1974, 1971, 2029, 1984, 1976,
1047 1982, 1973, 1981, 1966, 1982, 1964, 1976, 1968, 640, 1959,
1048 1958, 1952, 1957, 1972, 1969, 1970, 1949, 1959, 1965, 2008,
1049 1963, 1955, 1946, 2448, 1947, 1949, 1958, 1950, 1955, 1994,
1050 1993, 1944, 16, 1953, 1990, 1935, 1988, 1935, 1938, 1931,
1051 2448, 1945, 1924, 1928, 1942, 1934, 1979, 1931, 1938, 1976,
1052 2448, 1921, 1935, 1934, 1937, 1918, 1970, 1969, 1916, 1967,
1053 1927, 1911, 1964, 1963, 2448, 1908, 1922, 1921, 679, 1922,
1054 1921, 1957, 1921, 1916, 1899, 1904, 1906, 2448, 1912, 1902,
1056 2448, 654, 666, 1896, 1894, 1901, 1911, 1903, 1890, 1884,
1057 1896, 1895, 1940, 659, 1944, 1898, 649, 20, 242, 210,
1058 437, 541, 577, 564, 585, 646, 649, 641, 698, 651,
1059 661, 664, 703, 666, 660, 664, 662, 664, 711, 717,
1060 675, 676, 2448, 679, 675, 666, 681, 686, 683, 686,
1061 685, 673, 687, 685, 693, 729, 691, 736, 737, 687,
1062 679, 689, 736, 694, 744, 2448, 745, 698, 700, 696,
1063 690, 693, 751, 747, 710, 699, 712, 2448, 702, 713,
1064 702, 715, 705, 718, 762, 763, 706, 717, 702, 725,
1065 704, 710, 765, 729, 713, 725, 769, 770, 717, 772,
1067 736, 731, 736, 734, 778, 720, 732, 735, 739, 731,
1068 728, 2448, 792, 751, 752, 742, 745, 756, 741, 748,
1069 754, 746, 760, 800, 776, 763, 768, 765, 747, 754,
1070 768, 813, 770, 767, 768, 766, 775, 2448, 771, 766,
1071 781, 778, 764, 766, 785, 782, 770, 777, 778, 787,
1072 791, 827, 789, 780, 778, 777, 788, 784, 840, 787,
1073 798, 783, 784, 790, 806, 796, 2448, 806, 806, 799,
1074 810, 808, 853, 795, 797, 812, 799, 798, 860, 817,
1075 803, 809, 807, 2448, 2448, 817, 822, 827, 815, 825,
1076 827, 2448, 2448, 828, 815, 833, 820, 814, 2448, 819,
1078 837, 824, 874, 825, 877, 823, 827, 845, 886, 2448,
1079 2448, 831, 835, 834, 831, 891, 844, 834, 835, 831,
1080 844, 855, 856, 851, 852, 854, 847, 849, 845, 851,
1081 851, 853, 868, 851, 910, 867, 872, 849, 872, 858,
1082 857, 2448, 864, 865, 865, 878, 916, 874, 864, 879,
1083 880, 867, 899, 907, 876, 871, 926, 927, 889, 929,
1084 2448, 935, 878, 894, 898, 939, 889, 888, 883, 884,
1085 896, 891, 887, 890, 891, 901, 910, 947, 894, 913,
1086 905, 900, 958, 915, 916, 907, 2448, 921, 910, 913,
1087 921, 923, 908, 924, 918, 965, 931, 915, 916, 2448,
1089 932, 935, 918, 977, 920, 939, 2448, 938, 941, 927,
1090 922, 940, 980, 938, 934, 931, 984, 985, 947, 933,
1091 951, 950, 951, 937, 952, 944, 951, 941, 959, 958,
1092 945, 962, 2448, 954, 960, 963, 1008, 2448, 957, 962,
1093 1006, 958, 970, 964, 965, 963, 965, 975, 1020, 964,
1094 965, 965, 1024, 968, 980, 973, 2448, 969, 977, 975,
1095 1026, 968, 989, 975, 977, 983, 991, 982, 987, 997,
1096 998, 1003, 1044, 1016, 1021, 1003, 1000, 996, 1010, 993,
1097 993, 2448, 994, 1054, 997, 2448, 1008, 998, 1018, 1017,
1098 1008, 1019, 1062, 1023, 1016, 1020, 1024, 1007, 1024, 1015,
1100 1070, 1017, 2448, 1067, 1016, 1019, 1037, 1019, 1020, 1020,
1101 1041, 1038, 1043, 1044, 1030, 1038, 1047, 1027, 1042, 1049,
1102 1091, 2448, 1092, 1093, 1035, 1045, 1055, 1039, 1059, 1047,
1103 1043, 1050, 1059, 1047, 1054, 1055, 1067, 1108, 1055, 1053,
1104 1055, 1072, 1113, 1063, 1062, 1068, 1066, 1064, 1059, 1120,
1105 1071, 1122, 1118, 1124, 2448, 1081, 1074, 1065, 1084, 1072,
1106 1082, 1083, 1079, 1092, 1092, 2448, 1076, 1072, 1079, 2448,
1107 1080, 1140, 1099, 1080, 1099, 1100, 1102, 1141, 1094, 1148,
1108 1149, 1099, 1097, 1108, 1107, 1091, 1096, 1114, 2448, 1136,
1109 1127, 1159, 1099, 1121, 1116, 1116, 1120, 1165, 2448, 1108,
1111 1108, 1111, 1128, 1123, 1127, 1122, 2448, 1114, 1131, 1111,
1112 1132, 1122, 1173, 1126, 2448, 1140, 1140, 1178, 1125, 1134,
1113 1182, 1140, 1145, 1131, 1191, 1134, 1145, 1137, 1143, 1139,
1114 1157, 1158, 1159, 2448, 2448, 1158, 2448, 1143, 1154, 1145,
1115 1164, 1157, 1155, 1148, 1160, 1204, 1168, 1157, 1164, 1165,
1116 1171, 2448, 1164, 1216, 1157, 1218, 2448, 1219, 1161, 1167,
1117 1174, 1218, 1180, 2448, 1181, 2448, 1168, 2448, 1170, 1184,
1118 1189, 1172, 1231, 1188, 1189, 1229, 1181, 1186, 1237, 1233,
1119 1186, 1240, 2448, 1191, 1188, 1243, 1244, 1201, 1202, 1204,
1120 2448, 2448, 1243, 1192, 1208, 1251, 1193, 1205, 1210, 1225,
1122 1256, 2448, 1213, 1206, 1215, 1206, 1217, 2448, 1262, 1199,
1123 1210, 1225, 1261, 1213, 1224, 1225, 1226, 1223, 1267, 1230,
1124 1220, 1230, 1236, 1223, 1219, 1279, 1275, 1233, 1277, 1284,
1125 1241, 2448, 1242, 1236, 1245, 1246, 1243, 1233, 1236, 1236,
1126 1241, 1296, 1243, 1298, 1241, 1246, 1301, 1297, 1238, 1253,
1127 1246, 1250, 1263, 1264, 1262, 1311, 2448, 1265, 2448, 2448,
1128 1270, 1262, 1272, 1257, 1313, 1260, 1260, 1321, 1265, 1275,
1129 1324, 2448, 1272, 1273, 1275, 1328, 1269, 1272, 2448, 1290,
1130 1291, 2448, 1291, 1279, 2448, 2448, 1292, 1275, 1295, 1282,
1131 1341, 1291, 2448, 1343, 1292, 1345, 1325, 2448, 1347, 1304,
1133 1349, 1300, 1347, 2448, 1295, 1354, 1304, 1298, 1295, 1298,
1134 1300, 1317, 1356, 1309, 1321, 1324, 1312, 1315, 1308, 1315,
1135 1306, 2448, 1314, 1329, 1314, 2448, 1316, 1317, 1332, 1332,
1136 1335, 1335, 1332, 1376, 1338, 1330, 2448, 1331, 2448, 1341,
1137 1333, 2448, 1339, 1344, 1345, 1342, 1386, 1334, 1349, 1350,
1138 1342, 2448, 1339, 1340, 1340, 1346, 1345, 1343, 1397, 1358,
1139 2448, 1399, 1346, 2448, 1347, 1348, 1354, 2448, 1363, 1357,
1140 1412, 1359, 1352, 1364, 1359, 1369, 1380, 1373, 1379, 1375,
1141 2448, 1384, 2448, 1381, 2448, 1378, 1401, 2448, 1428, 2448,
1142 1386, 1371, 1431, 2448, 1432, 1389, 1394, 1376, 1436, 1432,
1144 1396, 1393, 1389, 1382, 1437, 1395, 1396, 1386, 1391, 1403,
1145 1448, 1403, 1451, 1447, 1410, 1407, 1451, 1399, 1404, 1402,
1146 1461, 1417, 1405, 1464, 1460, 1423, 1467, 1428, 1417, 1411,
1147 1471, 1413, 1414, 1428, 1431, 1431, 1477, 1419, 1436, 1432,
1148 1430, 1437, 1421, 1479, 1480, 1481, 1444, 1437, 1436, 1436,
1149 1431, 1449, 2448, 1440, 1446, 1451, 1438, 1439, 1438, 1440,
1150 1495, 1436, 1454, 1503, 1461, 1474, 2448, 1506, 1459, 2448,
1151 2448, 1450, 1461, 1510, 2448, 1456, 1461, 1459, 1509, 1467,
1152 1472, 1460, 1476, 1466, 1464, 1478, 1465, 2448, 1467, 2448,
1153 1470, 1521, 1464, 1469, 1529, 1477, 1487, 1488, 2448, 1534,
1155 1487, 1531, 2448, 1482, 1538, 2448, 1481, 1496, 1484, 2448,
1156 1494, 1495, 1544, 1502, 1506, 2448, 1542, 1508, 1484, 1502,
1157 1503, 1512, 1494, 1501, 1513, 1512, 1503, 1553, 1505, 1501,
1158 1561, 1503, 1504, 1564, 1560, 1566, 1516, 1568, 1521, 1526,
1159 1519, 2448, 1572, 1573, 2448, 1522, 1575, 1517, 2448, 1520,
1160 1530, 1574, 1522, 1537, 1524, 1539, 1525, 1532, 1532, 1587,
1161 1544, 1545, 1533, 1532, 1592, 1545, 2448, 1589, 1540, 1537,
1162 2448, 1551, 1538, 1559, 2448, 1556, 1601, 1554, 1551, 1552,
1163 2448, 1605, 1564, 1547, 1549, 1565, 1558, 1548, 1564, 1565,
1164 1574, 1564, 1616, 1576, 1560, 1569, 1615, 2448, 1573, 1622,
1166 2448, 1571, 2448, 1565, 2448, 1572, 1626, 1622, 2448, 2448,
1167 1585, 2448, 1625, 1587, 1588, 1573, 1574, 1582, 1636, 1584,
1168 1633, 1634, 1589, 2448, 1584, 1602, 1589, 1596, 2448, 1593,
1169 1598, 1596, 1648, 1649, 1597, 1594, 1594, 2448, 1609, 1610,
1170 1611, 2448, 1612, 1602, 1614, 1659, 1612, 1661, 1603, 1611,
1171 1612, 1625, 2448, 1626, 1607, 1608, 1615, 1617, 2448, 1631,
1172 1628, 1668, 1629, 2448, 1633, 1618, 1618, 1633, 1626, 1625,
1173 1636, 1623, 2448, 1639, 1627, 1630, 1686, 1626, 1645, 1647,
1174 1638, 1647, 1649, 1653, 2448, 2448, 1646, 1637, 1696, 1639,
1175 1698, 1699, 1700, 1658, 1702, 2448, 1644, 2448, 1699, 1661,
1177 1662, 1649, 1657, 1668, 1655, 1666, 1652, 1650, 1658, 1657,
1178 1662, 1654, 1719, 1672, 1673, 1663, 1680, 1679, 1720, 1664,
1179 1683, 1684, 2448, 1689, 1682, 1687, 1688, 1733, 1690, 1693,
1180 1680, 1689, 2448, 1738, 2448, 2448, 2448, 1699, 2448, 1740,
1181 1682, 1742, 1743, 1686, 1745, 1693, 1742, 1743, 1705, 1745,
1182 1691, 1695, 1713, 1754, 1713, 2448, 1704, 1694, 1753, 1719,
1183 1712, 1708, 1762, 1705, 1707, 1706, 1713, 1709, 1711, 2448,
1184 1716, 1726, 1711, 1719, 2448, 1714, 2448, 1726, 2448, 2448,
1185 1731, 2448, 1732, 1732, 1723, 1779, 1723, 1733, 1718, 1731,
1186 2448, 1733, 1741, 1786, 1727, 1729, 1726, 1750, 2448, 1737,
1188 1744, 1745, 1748, 1737, 1791, 1738, 1746, 1755, 1754, 1757,
1189 1750, 1745, 1745, 1757, 1752, 2448, 1763, 1751, 1804, 1755,
1190 1767, 1812, 2448, 1758, 1770, 1815, 1764, 1766, 1764, 1765,
1191 1820, 1773, 1760, 1775, 1780, 1825, 1826, 1827, 1784, 1829,
1192 1830, 1774, 1778, 1774, 1790, 1773, 1785, 1779, 2448, 1795,
1193 1839, 2448, 1796, 1781, 1799, 1790, 2448, 1791, 1805, 1801,
1194 1794, 2448, 2448, 2448, 1848, 2448, 2448, 1791, 1799, 1794,
1195 1847, 1813, 1810, 1855, 1816, 2448, 1857, 1799, 1859, 1802,
1196 1815, 1814, 1815, 1805, 2448, 1806, 1866, 1819, 1828, 1821,
1197 1865, 2448, 1812, 2448, 1824, 2448, 1868, 1874, 1816, 1832,
1199 1877, 1878, 2448, 1835, 1829, 1822, 1842, 1839, 1831, 1835,
1200 2448, 1882, 1831, 2448, 2448, 1831, 1839, 1886, 1846, 1839,
1201 1894, 1842, 1842, 1838, 1840, 1899, 1900, 1842, 1858, 1843,
1202 2448, 1904, 1851, 1858, 1907, 2448, 2448, 1860, 1909, 1857,
1203 2448, 1861, 1860, 2448, 1861, 2448, 1855, 1855, 1872, 1873,
1204 1918, 1864, 1920, 1921, 2448, 1922, 2448, 2448, 2448, 2448,
1205 1928, 1931, 1934, 1935, 1937, 1940, 1943, 1946
1210 2061, 2061, 2062, 2062, 2061, 2061, 2061, 2061, 2061, 2061,
1211 2060, 2060, 2060, 2060, 2060, 2063, 2060, 2060, 2060, 2060,
1212 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1213 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2064,
1214 2060, 2060, 2060, 2065, 15, 2060, 45, 45, 45, 45,
1215 45, 45, 45, 45, 45, 2066, 45, 45, 45, 45,
1216 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1217 45, 45, 45, 45, 45, 45, 45, 2063, 2060, 2060,
1218 2060, 2060, 2060, 2060, 2067, 2060, 2060, 2060, 2060, 2060,
1219 2060, 2060, 2060, 2060, 2060, 2060, 2064, 2060, 2065, 2060,
1221 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1222 45, 2068, 45, 2066, 45, 45, 45, 45, 45, 45,
1223 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1224 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1225 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1226 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1227 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1228 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1229 45, 45, 45, 2067, 2060, 2060, 2060, 2060, 2060, 2060,
1230 2060, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1232 45, 45, 2068, 2060, 2060, 114, 45, 45, 45, 45,
1233 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1234 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1235 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1236 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1237 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1238 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1239 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1240 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1241 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1243 45, 45, 45, 45, 45, 45, 45, 2060, 2060, 2060,
1244 2060, 2060, 2060, 2060, 45, 45, 45, 45, 45, 45,
1245 2060, 45, 2060, 45, 114, 2060, 45, 45, 45, 45,
1246 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1247 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1248 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1249 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1250 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1251 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1252 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1254 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1255 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1256 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1257 45, 45, 2060, 45, 45, 45, 45, 2060, 2060, 2060,
1258 45, 45, 45, 45, 45, 2060, 45, 2060, 45, 114,
1259 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260 45, 2060, 45, 45, 45, 45, 45, 45, 2060, 45,
1261 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1262 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1263 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1265 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1266 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1267 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1268 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1270 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271 2060, 45, 45, 2060, 45, 45, 2060, 45, 45, 2060,
1272 45, 45, 45, 2060, 2060, 2060, 45, 45, 45, 2060,
1273 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1276 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1277 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1278 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1280 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1281 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1282 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1285 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1287 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1290 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1291 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1292 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1294 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1305 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 2060, 2060, 45, 45, 45, 45, 45,
1307 45, 2060, 2060, 45, 45, 45, 45, 45, 2060, 45,
1309 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060,
1310 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1313 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1316 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1317 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1318 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060,
1320 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323 45, 45, 2060, 45, 45, 45, 45, 2060, 45, 45,
1324 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1326 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1328 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1336 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 45, 2060, 45, 45, 45, 2060,
1338 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1342 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1343 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 2060, 2060, 45, 2060, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 2060, 45, 45, 45, 45, 2060, 45, 45, 45,
1348 45, 45, 45, 2060, 45, 2060, 45, 2060, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1351 2060, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1353 45, 2060, 45, 45, 45, 45, 45, 2060, 45, 45,
1354 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1355 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1356 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1357 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 45, 45, 45, 2060, 45, 2060, 2060,
1359 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 2060, 45, 45, 45, 45, 45, 45, 2060, 45,
1361 45, 2060, 45, 45, 2060, 2060, 45, 45, 45, 45,
1362 45, 45, 2060, 45, 45, 45, 45, 2060, 45, 45,
1364 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1365 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45,
1367 45, 45, 45, 45, 45, 45, 2060, 45, 2060, 45,
1368 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1369 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1370 2060, 45, 45, 2060, 45, 45, 45, 2060, 45, 45,
1371 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1372 2060, 45, 2060, 45, 2060, 45, 45, 2060, 45, 2060,
1373 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1375 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1376 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1377 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1380 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1381 45, 45, 45, 45, 45, 45, 2060, 45, 45, 2060,
1382 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1383 45, 45, 45, 45, 45, 45, 45, 2060, 45, 2060,
1384 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1386 45, 45, 2060, 45, 45, 2060, 45, 45, 45, 2060,
1387 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1389 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390 45, 2060, 45, 45, 2060, 45, 45, 45, 2060, 45,
1391 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1393 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1394 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1397 2060, 45, 2060, 45, 2060, 45, 45, 45, 2060, 2060,
1398 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1399 45, 45, 45, 2060, 45, 45, 45, 45, 2060, 45,
1400 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1401 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1402 45, 45, 2060, 45, 45, 45, 45, 45, 2060, 45,
1403 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1404 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1405 45, 45, 45, 45, 2060, 2060, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 2060, 45, 2060, 45, 45,
1408 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 2060, 45, 2060, 2060, 2060, 45, 2060, 45,
1412 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1413 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1414 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060,
1415 45, 45, 45, 45, 2060, 45, 2060, 45, 2060, 2060,
1416 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1417 2060, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1419 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1420 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1421 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1423 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1424 45, 2060, 45, 45, 45, 45, 2060, 45, 45, 45,
1425 45, 2060, 2060, 2060, 45, 2060, 2060, 45, 45, 45,
1426 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1427 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1428 45, 2060, 45, 2060, 45, 2060, 45, 45, 45, 45,
1430 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1431 2060, 45, 45, 2060, 2060, 45, 45, 45, 45, 45,
1432 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1433 2060, 45, 45, 45, 45, 2060, 2060, 45, 45, 45,
1434 2060, 45, 45, 2060, 45, 2060, 45, 45, 45, 45,
1435 45, 45, 45, 45, 2060, 45, 2060, 2060, 2060, 0,
1436 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060
1441 2060, 13, 14, 13, 2060, 15, 16, 2060, 17, 18,
1442 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1443 84, 778, 37, 14, 37, 85, 25, 26, 38, 100,
1444 843, 27, 37, 14, 37, 42, 28, 42, 38, 90,
1445 91, 29, 197, 30, 13, 14, 13, 89, 90, 25,
1446 31, 91, 13, 14, 13, 13, 14, 13, 32, 40,
1447 779, 13, 14, 13, 33, 40, 101, 90, 91, 197,
1448 89, 34, 35, 13, 14, 13, 93, 15, 16, 94,
1449 17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1450 23, 24, 13, 14, 13, 89, 39, 103, 25, 26,
1452 13, 14, 13, 27, 39, 42, 105, 42, 28, 42,
1453 106, 42, 41, 29, 107, 30, 110, 111, 92, 138,
1454 41, 25, 31, 103, 225, 226, 87, 139, 87, 105,
1455 32, 88, 88, 88, 88, 88, 33, 107, 106, 110,
1456 216, 111, 217, 34, 35, 44, 44, 44, 45, 45,
1457 46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1458 45, 47, 45, 45, 45, 45, 45, 48, 45, 45,
1459 49, 45, 50, 45, 51, 45, 52, 45, 45, 45,
1460 45, 53, 54, 45, 55, 45, 45, 56, 45, 45,
1461 57, 58, 59, 60, 61, 62, 63, 64, 65, 51,
1463 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1464 76, 77, 55, 45, 45, 45, 45, 45, 79, 247,
1465 80, 80, 80, 80, 80, 79, 105, 82, 82, 82,
1466 82, 82, 248, 81, 83, 83, 83, 83, 83, 79,
1467 81, 82, 82, 82, 82, 82, 136, 81, 108, 105,
1468 103, 119, 844, 137, 81, 120, 81, 165, 109, 121,
1469 135, 166, 122, 81, 219, 123, 232, 845, 233, 124,
1470 81, 108, 235, 220, 221, 187, 115, 81, 45, 185,
1471 140, 131, 116, 132, 45, 117, 109, 45, 236, 45,
1472 141, 45, 142, 45, 133, 113, 144, 145, 45, 45,
1474 146, 45, 45, 187, 134, 185, 147, 45, 45, 45,
1475 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1476 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1477 125, 161, 45, 126, 127, 162, 45, 128, 129, 148,
1478 45, 107, 252, 149, 199, 163, 253, 150, 45, 186,
1479 130, 707, 45, 110, 45, 114, 262, 156, 708, 151,
1480 153, 185, 154, 152, 155, 157, 187, 158, 174, 175,
1481 167, 199, 159, 160, 168, 186, 180, 169, 108, 83,
1482 83, 83, 83, 83, 170, 171, 181, 188, 109, 172,
1483 173, 182, 81, 79, 190, 80, 80, 80, 80, 80,
1485 275, 108, 263, 176, 276, 87, 177, 87, 81, 100,
1486 88, 88, 88, 88, 88, 81, 178, 83, 83, 83,
1487 83, 83, 79, 179, 82, 82, 82, 82, 82, 186,
1488 81, 81, 88, 88, 88, 88, 88, 81, 88, 88,
1489 88, 88, 88, 99, 194, 196, 101, 198, 200, 212,
1490 99, 201, 267, 81, 202, 189, 239, 194, 213, 240,
1491 81, 198, 214, 241, 287, 288, 201, 268, 269, 270,
1492 200, 196, 194, 295, 207, 198, 200, 202, 201, 272,
1493 99, 308, 273, 274, 99, 208, 289, 296, 99, 198,
1494 290, 260, 309, 304, 291, 846, 99, 310, 302, 308,
1496 99, 318, 99, 99, 205, 278, 309, 310, 316, 308,
1497 319, 320, 206, 206, 206, 206, 206, 424, 309, 425,
1498 310, 206, 206, 206, 206, 206, 206, 311, 375, 318,
1499 313, 316, 312, 324, 320, 339, 322, 319, 340, 435,
1500 279, 280, 281, 316, 206, 206, 206, 206, 206, 206,
1501 366, 282, 389, 283, 408, 284, 285, 409, 286, 322,
1502 324, 325, 325, 325, 325, 325, 327, 367, 341, 394,
1503 325, 325, 325, 325, 325, 325, 342, 322, 438, 395,
1504 438, 376, 343, 443, 377, 445, 529, 447, 390, 441,
1505 847, 436, 443, 325, 325, 325, 325, 325, 325, 442,
1507 322, 438, 391, 439, 473, 539, 488, 573, 445, 540,
1508 474, 489, 443, 513, 431, 447, 450, 450, 450, 450,
1509 450, 451, 848, 514, 849, 450, 450, 450, 450, 450,
1510 450, 503, 504, 549, 567, 573, 505, 550, 577, 568,
1511 578, 679, 615, 850, 530, 573, 596, 616, 450, 450,
1512 450, 450, 450, 450, 597, 703, 598, 599, 600, 490,
1513 601, 604, 702, 726, 491, 577, 727, 578, 45, 45,
1514 45, 45, 45, 579, 605, 636, 606, 45, 45, 45,
1515 45, 45, 45, 703, 812, 637, 701, 754, 755, 702,
1516 824, 704, 825, 680, 851, 813, 840, 841, 852, 842,
1518 45, 45, 45, 45, 45, 45, 836, 853, 854, 855,
1519 856, 857, 837, 858, 859, 825, 860, 861, 824, 862,
1520 865, 866, 867, 863, 868, 869, 870, 864, 871, 872,
1521 873, 874, 875, 876, 877, 878, 879, 880, 881, 882,
1522 883, 884, 885, 886, 887, 888, 890, 891, 889, 892,
1523 893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
1524 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
1525 913, 914, 915, 916, 917, 918, 919, 920, 921, 922,
1526 923, 924, 925, 926, 927, 929, 930, 931, 934, 935,
1527 936, 928, 939, 937, 932, 940, 941, 942, 933, 938,
1529 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
1530 953, 954, 955, 956, 957, 958, 959, 960, 961, 962,
1531 963, 964, 965, 966, 967, 968, 969, 970, 971, 972,
1532 973, 974, 975, 976, 977, 978, 979, 980, 981, 954,
1533 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
1534 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1002,
1535 1003, 1004, 1005, 1001, 1006, 1007, 1008, 1009, 1010, 1011,
1536 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
1537 1022, 1023, 1024, 1026, 1027, 1028, 1025, 1029, 1030, 1031,
1538 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
1540 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
1541 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
1542 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
1543 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1544 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
1545 1092, 1093, 1094, 1095, 1096, 1097, 1075, 1098, 1099, 1074,
1546 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1547 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1548 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
1549 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
1551 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1149, 1150, 1151,
1552 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1148, 1159, 1160,
1553 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1554 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
1555 1123, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1556 1190, 1192, 1191, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
1557 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1558 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1190, 1191,
1559 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
1560 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1237, 1239,
1562 1240, 1241, 1236, 1242, 1243, 1244, 1245, 1246, 1247, 1248,
1563 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
1564 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
1565 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
1566 1279, 1280, 1238, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1567 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
1568 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307,
1569 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
1570 1318, 1319, 1320, 1321, 1322, 1300, 1323, 1324, 1325, 1326,
1571 1327, 1301, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335,
1573 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345,
1574 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
1575 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
1576 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375,
1577 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
1578 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
1579 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1406, 1407,
1580 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
1581 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1397, 1426,
1582 1427, 1428, 1376, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
1584 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1585 1447, 1405, 1448, 1449, 1450, 1451, 1452, 1446, 1453, 1454,
1586 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1587 1465, 1466, 1467, 1468, 1470, 1471, 1474, 1472, 1469, 1473,
1588 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484,
1589 1485, 1487, 1488, 1489, 1490, 1486, 1491, 1492, 1493, 1494,
1590 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504,
1591 1505, 1506, 1507, 1508, 1487, 1509, 1510, 1511, 1512, 1513,
1592 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
1593 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533,
1595 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
1596 1544, 1545, 1546, 1547, 1548, 1552, 1549, 1553, 1554, 1550,
1597 1555, 1556, 1551, 1557, 1558, 1559, 1560, 1561, 1562, 1563,
1598 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
1599 1574, 1575, 1576, 1577, 1579, 1580, 1581, 1582, 1583, 1584,
1600 1585, 1586, 1587, 1588, 1578, 1589, 1590, 1591, 1592, 1566,
1601 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, 1602, 1603,
1602 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613,
1603 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623,
1604 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
1606 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
1607 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653,
1608 1654, 1655, 1656, 1657, 1600, 1658, 1659, 1660, 1661, 1662,
1609 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1644, 1671,
1610 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681,
1611 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
1612 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701,
1613 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
1614 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721,
1615 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
1617 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
1618 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1619 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762,
1620 1763, 1764, 1765, 1761, 1766, 1767, 1768, 1769, 1770, 1771,
1621 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
1622 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
1623 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801,
1624 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811,
1625 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
1626 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831,
1628 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841,
1629 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851,
1630 1853, 1854, 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
1631 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
1632 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881,
1633 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
1634 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1635 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911,
1636 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
1637 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
1639 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
1640 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
1641 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
1642 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,
1643 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
1644 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1645 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
1646 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
1647 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2020,
1648 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031,
1650 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041,
1651 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051,
1652 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 12, 12,
1653 12, 36, 36, 36, 78, 97, 78, 99, 99, 99,
1654 112, 112, 112, 184, 839, 184, 203, 203, 203, 838,
1655 835, 834, 833, 832, 831, 830, 829, 828, 827, 826,
1656 823, 822, 821, 820, 819, 818, 817, 816, 815, 814,
1657 811, 810, 809, 808, 807, 806, 805, 804, 803, 802,
1658 801, 800, 799, 798, 797, 796, 795, 794, 793, 792,
1659 791, 790, 789, 788, 787, 786, 785, 784, 783, 782,
1661 781, 780, 777, 776, 775, 774, 773, 772, 771, 770,
1662 769, 768, 767, 766, 765, 764, 763, 762, 761, 760,
1663 759, 758, 757, 756, 753, 752, 751, 750, 749, 748,
1664 747, 746, 745, 744, 743, 742, 741, 740, 739, 738,
1665 737, 736, 735, 734, 733, 732, 731, 730, 729, 728,
1666 725, 724, 723, 722, 721, 720, 719, 718, 717, 716,
1667 715, 714, 713, 712, 711, 710, 709, 706, 705, 701,
1668 700, 699, 698, 697, 696, 695, 694, 693, 692, 691,
1669 690, 689, 688, 687, 686, 685, 684, 683, 682, 681,
1670 678, 677, 676, 675, 674, 673, 672, 671, 670, 669,
1672 668, 667, 666, 665, 664, 663, 662, 661, 660, 659,
1673 658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
1674 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1675 638, 635, 634, 633, 632, 631, 630, 629, 628, 627,
1676 626, 625, 624, 623, 622, 621, 620, 619, 618, 617,
1677 614, 613, 612, 611, 610, 609, 608, 607, 603, 602,
1678 595, 594, 593, 592, 591, 590, 589, 588, 587, 586,
1679 585, 584, 583, 582, 581, 580, 576, 575, 574, 572,
1680 571, 570, 569, 566, 565, 564, 563, 562, 561, 560,
1681 559, 558, 557, 556, 555, 554, 553, 552, 551, 548,
1683 547, 546, 545, 544, 543, 542, 541, 538, 537, 536,
1684 535, 534, 533, 532, 531, 528, 527, 526, 525, 524,
1685 523, 522, 521, 520, 519, 518, 517, 516, 515, 512,
1686 511, 510, 509, 508, 507, 506, 502, 501, 500, 499,
1687 498, 497, 496, 495, 494, 493, 492, 487, 486, 485,
1688 484, 483, 482, 481, 480, 479, 478, 477, 476, 475,
1689 472, 471, 470, 469, 468, 467, 466, 465, 464, 463,
1690 462, 461, 460, 459, 458, 457, 456, 455, 454, 453,
1691 452, 449, 448, 446, 444, 440, 437, 434, 433, 432,
1692 430, 429, 428, 427, 426, 423, 422, 421, 420, 419,
1694 418, 417, 416, 415, 414, 413, 412, 411, 410, 407,
1695 406, 405, 404, 403, 402, 401, 400, 399, 398, 397,
1696 396, 393, 392, 388, 387, 386, 385, 384, 383, 382,
1697 381, 380, 379, 378, 374, 373, 372, 371, 370, 369,
1698 368, 365, 364, 363, 362, 361, 360, 359, 358, 357,
1699 356, 355, 354, 353, 352, 351, 350, 349, 348, 347,
1700 346, 345, 344, 338, 337, 336, 335, 334, 333, 332,
1701 331, 330, 329, 328, 326, 204, 323, 321, 317, 315,
1702 314, 307, 306, 305, 303, 301, 300, 299, 298, 297,
1703 294, 293, 292, 277, 271, 266, 265, 264, 261, 259,
1705 258, 257, 256, 255, 254, 251, 250, 249, 246, 245,
1706 244, 243, 242, 238, 237, 234, 231, 230, 229, 228,
1707 227, 224, 223, 222, 218, 215, 211, 210, 209, 204,
1708 195, 193, 192, 191, 183, 164, 143, 118, 104, 102,
1709 43, 98, 96, 95, 86, 43, 2060, 11, 2060, 2060,
1710 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1711 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1712 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1713 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1714 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1716 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1717 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1723 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1724 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 21, 653, 3, 3, 3, 21, 1, 1, 3, 44,
1726 718, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1727 28, 1, 106, 1, 5, 5, 5, 26, 32, 1,
1728 1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1729 653, 8, 8, 8, 1, 8, 44, 27, 28, 106,
1730 26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1731 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1732 2, 2, 9, 9, 9, 31, 5, 48, 2, 2,
1734 10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1735 51, 42, 9, 2, 52, 2, 54, 55, 31, 64,
1736 10, 2, 2, 48, 127, 127, 25, 64, 25, 50,
1737 2, 25, 25, 25, 25, 25, 2, 52, 51, 54,
1738 121, 55, 121, 2, 2, 15, 15, 15, 15, 15,
1739 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1740 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1741 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1742 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1743 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1745 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1746 15, 15, 15, 15, 15, 15, 15, 15, 17, 144,
1747 17, 17, 17, 17, 17, 19, 62, 19, 19, 19,
1748 19, 19, 144, 17, 20, 20, 20, 20, 20, 22,
1749 19, 22, 22, 22, 22, 22, 63, 20, 53, 62,
1750 57, 59, 719, 63, 22, 59, 17, 73, 53, 59,
1751 62, 73, 59, 19, 123, 59, 133, 720, 133, 59,
1752 20, 53, 135, 123, 123, 91, 57, 22, 45, 89,
1753 65, 61, 57, 61, 45, 57, 53, 45, 135, 45,
1754 65, 45, 65, 45, 61, 56, 67, 67, 45, 45,
1756 67, 45, 56, 91, 61, 89, 67, 45, 45, 45,
1757 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1758 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1759 60, 71, 56, 60, 60, 71, 56, 60, 60, 68,
1760 56, 69, 148, 68, 108, 71, 148, 68, 56, 90,
1761 60, 583, 56, 76, 56, 56, 157, 70, 583, 68,
1762 69, 92, 69, 68, 69, 70, 94, 70, 75, 75,
1763 74, 108, 70, 70, 74, 90, 76, 74, 75, 79,
1764 79, 79, 79, 79, 74, 74, 76, 92, 75, 74,
1765 74, 76, 79, 80, 94, 80, 80, 80, 80, 80,
1767 164, 75, 157, 75, 164, 81, 75, 81, 80, 99,
1768 81, 81, 81, 81, 81, 79, 75, 83, 83, 83,
1769 83, 83, 82, 75, 82, 82, 82, 82, 82, 93,
1770 83, 80, 87, 87, 87, 87, 87, 82, 88, 88,
1771 88, 88, 88, 101, 103, 105, 99, 107, 109, 119,
1772 101, 110, 161, 83, 111, 93, 138, 115, 119, 138,
1773 82, 155, 119, 138, 167, 167, 180, 161, 161, 161,
1774 178, 105, 103, 172, 115, 107, 109, 111, 110, 163,
1775 101, 185, 163, 163, 101, 115, 168, 172, 101, 155,
1776 168, 155, 186, 180, 168, 721, 101, 187, 178, 188,
1778 101, 196, 101, 101, 114, 166, 189, 190, 194, 185,
1779 197, 198, 114, 114, 114, 114, 114, 296, 186, 296,
1780 187, 114, 114, 114, 114, 114, 114, 188, 253, 196,
1781 190, 194, 189, 202, 198, 220, 200, 197, 220, 306,
1782 166, 166, 166, 208, 114, 114, 114, 114, 114, 114,
1783 245, 166, 265, 166, 281, 166, 166, 281, 166, 200,
1784 202, 206, 206, 206, 206, 206, 208, 245, 221, 268,
1785 206, 206, 206, 206, 206, 206, 221, 302, 308, 268,
1786 311, 253, 221, 316, 253, 318, 399, 320, 265, 315,
1787 722, 306, 327, 206, 206, 206, 206, 206, 206, 315,
1789 302, 308, 265, 311, 349, 409, 363, 443, 318, 409,
1790 349, 363, 316, 383, 302, 320, 325, 325, 325, 325,
1791 325, 327, 723, 383, 724, 325, 325, 325, 325, 325,
1792 325, 375, 375, 418, 436, 443, 375, 418, 449, 436,
1793 449, 549, 483, 725, 399, 451, 470, 483, 325, 325,
1794 325, 325, 325, 325, 470, 578, 470, 470, 470, 363,
1795 470, 473, 577, 601, 363, 449, 601, 449, 450, 450,
1796 450, 450, 450, 451, 473, 504, 473, 450, 450, 450,
1797 450, 450, 450, 578, 689, 504, 579, 629, 629, 577,
1798 702, 579, 703, 549, 726, 689, 717, 717, 727, 717,
1800 450, 450, 450, 450, 450, 450, 714, 728, 729, 730,
1801 731, 732, 714, 733, 734, 703, 735, 736, 702, 737,
1802 738, 739, 740, 737, 741, 742, 744, 737, 745, 746,
1803 747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
1804 757, 758, 759, 760, 761, 762, 763, 764, 762, 765,
1805 767, 768, 769, 770, 771, 772, 773, 774, 775, 776,
1806 777, 779, 780, 781, 782, 783, 784, 785, 786, 787,
1807 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
1808 798, 799, 800, 801, 802, 803, 804, 804, 805, 806,
1809 807, 802, 809, 808, 804, 810, 811, 813, 804, 808,
1811 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
1812 824, 825, 826, 827, 828, 829, 830, 831, 832, 833,
1813 834, 835, 836, 837, 839, 840, 841, 842, 843, 844,
1814 845, 846, 847, 848, 849, 850, 851, 852, 853, 825,
1815 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
1816 864, 865, 866, 868, 869, 870, 871, 872, 873, 874,
1817 875, 876, 877, 873, 878, 879, 880, 881, 882, 883,
1818 886, 887, 888, 889, 890, 891, 894, 895, 896, 897,
1819 898, 900, 901, 902, 903, 904, 901, 905, 906, 907,
1820 908, 909, 912, 913, 914, 915, 916, 917, 918, 919,
1822 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
1823 930, 931, 932, 933, 934, 935, 936, 937, 938, 939,
1824 940, 941, 943, 944, 945, 946, 947, 948, 949, 950,
1825 951, 952, 953, 954, 955, 956, 957, 958, 959, 960,
1826 962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
1827 972, 973, 974, 975, 976, 977, 954, 978, 979, 953,
1828 980, 981, 982, 983, 984, 985, 986, 988, 989, 990,
1829 991, 992, 993, 994, 995, 996, 997, 998, 999, 1001,
1830 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011, 1012,
1831 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
1833 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
1834 1034, 1035, 1036, 1037, 1039, 1040, 1041, 1029, 1042, 1043,
1835 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
1836 1054, 1055, 1056, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
1837 1004, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
1838 1074, 1076, 1075, 1077, 1078, 1079, 1080, 1081, 1083, 1084,
1839 1085, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
1840 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1104, 1074, 1075,
1841 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
1842 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1123, 1124, 1125,
1844 1126, 1127, 1123, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
1845 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
1846 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
1847 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
1848 1167, 1168, 1124, 1169, 1171, 1172, 1173, 1174, 1175, 1176,
1849 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186,
1850 1187, 1188, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197,
1851 1198, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1208, 1209,
1852 1210, 1211, 1212, 1213, 1214, 1190, 1216, 1217, 1218, 1219,
1853 1220, 1191, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1855 1229, 1230, 1231, 1232, 1233, 1236, 1238, 1239, 1240, 1241,
1856 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
1857 1253, 1254, 1255, 1256, 1258, 1259, 1260, 1261, 1262, 1263,
1858 1265, 1267, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276,
1859 1277, 1278, 1279, 1280, 1281, 1282, 1284, 1285, 1286, 1287,
1860 1288, 1289, 1290, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
1861 1300, 1301, 1303, 1304, 1305, 1306, 1307, 1309, 1310, 1311,
1862 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
1863 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1300, 1330,
1864 1331, 1333, 1276, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
1866 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
1867 1351, 1309, 1352, 1353, 1354, 1355, 1356, 1350, 1358, 1361,
1868 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
1869 1373, 1374, 1375, 1376, 1377, 1378, 1381, 1380, 1376, 1380,
1870 1383, 1384, 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1395,
1871 1396, 1397, 1399, 1400, 1401, 1396, 1402, 1403, 1405, 1406,
1872 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416,
1873 1417, 1418, 1419, 1420, 1397, 1421, 1423, 1424, 1425, 1427,
1874 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438,
1875 1440, 1441, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
1877 1451, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1462,
1878 1463, 1465, 1466, 1467, 1469, 1470, 1469, 1471, 1472, 1469,
1879 1473, 1474, 1469, 1475, 1476, 1477, 1478, 1479, 1480, 1482,
1880 1484, 1486, 1487, 1489, 1491, 1492, 1493, 1495, 1496, 1497,
1881 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
1882 1508, 1509, 1510, 1511, 1501, 1512, 1513, 1514, 1515, 1487,
1883 1516, 1517, 1518, 1519, 1520, 1520, 1521, 1522, 1523, 1524,
1884 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534,
1885 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
1886 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1554, 1555,
1888 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565,
1889 1566, 1568, 1569, 1572, 1573, 1574, 1576, 1577, 1578, 1579,
1890 1580, 1581, 1582, 1583, 1521, 1584, 1585, 1586, 1587, 1589,
1891 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1566, 1600,
1892 1601, 1602, 1604, 1605, 1607, 1608, 1609, 1611, 1612, 1613,
1893 1614, 1615, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
1894 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634,
1895 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1643, 1644, 1646,
1896 1647, 1648, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
1897 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1668,
1899 1669, 1670, 1672, 1673, 1674, 1676, 1677, 1678, 1679, 1680,
1900 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
1901 1692, 1693, 1694, 1695, 1696, 1697, 1699, 1700, 1702, 1704,
1902 1706, 1707, 1708, 1702, 1711, 1713, 1714, 1715, 1716, 1717,
1903 1718, 1719, 1720, 1721, 1722, 1723, 1725, 1726, 1727, 1728,
1904 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1739, 1740,
1905 1741, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1906 1752, 1754, 1755, 1756, 1757, 1758, 1760, 1761, 1762, 1763,
1907 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1774, 1775,
1908 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1787,
1910 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1797, 1799,
1911 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809,
1912 1810, 1811, 1809, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
1913 1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, 1828, 1829,
1914 1830, 1831, 1832, 1834, 1838, 1840, 1841, 1842, 1843, 1844,
1915 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854,
1916 1855, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865,
1917 1866, 1867, 1868, 1869, 1871, 1872, 1873, 1874, 1876, 1878,
1918 1881, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1892,
1919 1893, 1894, 1895, 1896, 1897, 1898, 1900, 1901, 1902, 1903,
1921 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1922 1914, 1915, 1917, 1918, 1919, 1920, 1921, 1922, 1924, 1925,
1923 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
1924 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945,
1925 1946, 1947, 1948, 1950, 1951, 1953, 1954, 1955, 1956, 1958,
1926 1959, 1960, 1961, 1965, 1968, 1969, 1970, 1971, 1972, 1973,
1927 1974, 1975, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
1928 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1995, 1997, 1998,
1929 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2007,
1930 2009, 2010, 2012, 2013, 2016, 2017, 2018, 2019, 2020, 2021,
1932 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2032,
1933 2033, 2034, 2035, 2038, 2039, 2040, 2042, 2043, 2045, 2047,
1934 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2056, 2061, 2061,
1935 2061, 2062, 2062, 2062, 2063, 2064, 2063, 2065, 2065, 2065,
1936 2066, 2066, 2066, 2067, 716, 2067, 2068, 2068, 2068, 715,
1937 713, 712, 711, 710, 709, 708, 707, 706, 705, 704,
1938 700, 699, 697, 696, 695, 694, 693, 692, 691, 690,
1939 688, 687, 686, 684, 683, 682, 681, 680, 679, 678,
1940 677, 676, 675, 674, 673, 672, 670, 669, 668, 667,
1941 666, 665, 664, 663, 662, 660, 659, 658, 657, 656,
1943 655, 654, 652, 651, 650, 649, 648, 647, 646, 645,
1944 643, 642, 641, 640, 639, 638, 637, 636, 635, 634,
1945 633, 632, 631, 630, 628, 627, 626, 625, 624, 623,
1946 622, 621, 620, 619, 618, 617, 616, 614, 613, 612,
1947 611, 610, 609, 608, 607, 606, 605, 604, 603, 602,
1948 600, 599, 598, 597, 596, 595, 594, 593, 592, 591,
1949 590, 589, 588, 587, 586, 585, 584, 582, 581, 573,
1950 572, 571, 570, 569, 568, 566, 565, 563, 562, 560,
1951 559, 558, 557, 556, 555, 554, 553, 552, 551, 550,
1952 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
1954 538, 537, 536, 535, 534, 533, 532, 530, 528, 527,
1955 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
1956 516, 515, 514, 513, 511, 510, 509, 508, 507, 506,
1957 505, 503, 502, 501, 500, 499, 498, 497, 496, 495,
1958 494, 493, 492, 491, 490, 489, 487, 486, 485, 484,
1959 482, 481, 480, 479, 478, 477, 475, 474, 472, 471,
1960 468, 467, 466, 465, 464, 463, 461, 460, 459, 458,
1961 457, 456, 455, 454, 453, 452, 447, 445, 444, 442,
1962 441, 440, 437, 435, 434, 432, 431, 430, 429, 428,
1963 427, 426, 425, 424, 423, 422, 421, 420, 419, 417,
1965 416, 415, 414, 413, 412, 411, 410, 408, 407, 406,
1966 405, 403, 402, 401, 400, 398, 397, 396, 395, 394,
1967 393, 392, 391, 390, 389, 388, 387, 386, 384, 382,
1968 381, 380, 379, 378, 377, 376, 374, 373, 372, 371,
1969 370, 369, 368, 367, 366, 365, 364, 362, 361, 360,
1970 359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1971 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
1972 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
1973 328, 324, 322, 319, 317, 314, 307, 305, 304, 303,
1974 301, 300, 299, 298, 297, 295, 294, 293, 292, 291,
1976 290, 289, 288, 287, 286, 285, 284, 283, 282, 280,
1977 279, 278, 277, 276, 275, 274, 273, 272, 271, 270,
1978 269, 267, 266, 264, 263, 262, 261, 260, 259, 258,
1979 257, 256, 255, 254, 252, 251, 250, 249, 248, 247,
1980 246, 244, 242, 241, 240, 239, 238, 237, 236, 235,
1981 234, 233, 232, 231, 230, 229, 228, 227, 226, 225,
1982 224, 223, 222, 219, 218, 217, 216, 215, 214, 213,
1983 212, 211, 210, 209, 207, 203, 201, 199, 195, 193,
1984 191, 183, 182, 181, 179, 177, 176, 175, 174, 173,
1985 171, 170, 169, 165, 162, 160, 159, 158, 156, 154,
1987 153, 152, 151, 150, 149, 147, 146, 145, 143, 142,
1988 141, 140, 139, 137, 136, 134, 132, 131, 130, 129,
1989 128, 126, 125, 124, 122, 120, 118, 117, 116, 112,
1990 104, 102, 97, 96, 77, 72, 66, 58, 49, 47,
1991 43, 41, 39, 38, 24, 14, 11, 2060, 2060, 2060,
1992 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1993 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1994 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1995 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1996 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1998 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1999 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
2004static char *yy_last_accepting_cpos;
2011 146, 148, 150, 155, 156, 161, 162, 163, 175, 178,
2012 183, 190, 199, 208, 217, 226, 235, 244, 254, 263,
2013 272, 281, 290, 299, 308, 317, 326, 335, 344, 353,
2014 362, 371, 380, 389, 401, 410, 419, 428, 439, 450,
2015 461, 472, 483, 494, 505, 516, 527, 536, 545, 554,
2016 565, 574, 585, 596, 607, 618, 630, 642, 654, 665,
2017 676, 685, 694, 703, 712, 721, 732, 743, 754, 765,
2018 776, 787, 798, 809, 819, 830, 839, 849, 863, 879,
2019 888, 897, 906, 915, 937, 959, 968, 978, 987, 998,
2020 1007, 1016, 1025, 1034, 1043, 1054, 1065, 1076, 1086, 1095,
2022 1106, 1117, 1128, 1139, 1151, 1160, 1169, 1178, 1187, 1196,
2023 1205, 1214, 1223, 1232, 1242, 1253, 1265, 1274, 1283, 1293,
2024 1303, 1313, 1323, 1333, 1343, 1352, 1362, 1371, 1380, 1389,
2025 1398, 1408, 1418, 1427, 1437, 1446, 1455, 1464, 1473, 1482,
2026 1491, 1500, 1509, 1518, 1527, 1536, 1545, 1554, 1563, 1572,
2027 1581, 1590, 1599, 1608, 1617, 1626, 1635, 1644, 1653, 1662,
2028 1671, 1680, 1689, 1698, 1707, 1716, 1725, 1734, 1743, 1752,
2029 1764, 1776, 1786, 1796, 1806, 1816, 1826, 1836, 1846, 1856,
2030 1866, 1875, 1884, 1893, 1902, 1913, 1924, 1937, 1950, 1963,
2031 1972, 1981, 1990, 1999, 2008, 2109, 2125, 2174, 2182, 2197,
2033 2198, 2199, 2200, 2201, 2202, 2204, 2222, 2235, 2240, 2244,
2040#define REJECT reject_used_but_not_detected
2041#define yymore() yymore_used_but_not_detected
2042#define YY_MORE_ADJ 0
2043#define YY_RESTORE_YY_MORE_OFFSET
2045#line 1 "dhcp4_lexer.ll"
2051#line 8 "dhcp4_lexer.ll"
2054#ifndef __clang_analyzer__
2063#include <boost/lexical_cast.hpp>
2077bool start_token_flag =
false;
2080unsigned int comment_start_line = 0;
2087#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
2088#line 2088 "dhcp4_lexer.cc"
2103#define YY_NO_INPUT 1
2109#line 95 "dhcp4_lexer.ll"
2113#define YY_USER_ACTION driver.loc_.columns(yyleng);
2114#line 2114 "dhcp4_lexer.cc"
2115#line 2115 "dhcp4_lexer.cc"
2120#define DIR_INCLUDE 3
2123#ifndef YY_NO_UNISTD_H
2135#ifndef YY_EXTRA_TYPE
2136#define YY_EXTRA_TYPE void *
2143static int yy_init_globals (
void );
2186#ifndef YY_SKIP_YYWRAP
2188extern "C" int yywrap (
void );
2190extern int yywrap (
void );
2203static void yy_flex_strncpy (
char *,
const char *,
int );
2206#ifdef YY_NEED_STRLEN
2207static int yy_flex_strlen (
const char * );
2214static int yyinput (
void );
2216static int input (
void );
2228#ifndef YY_READ_BUF_SIZE
2231#define YY_READ_BUF_SIZE 16384
2233#define YY_READ_BUF_SIZE 8192
2243#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2253#define YY_INPUT(buf,result,max_size) \
2255 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2259 for ( n = 0; n < max_size && \
2260 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2261 buf[n] = (char) c; \
2263 buf[n++] = (char) c; \
2264 if ( c == EOF && ferror( yyin ) ) \
2265 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2271 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2273 if( errno != EINTR) \
2275 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2293#define yyterminate() return YY_NULL
2297#ifndef YY_START_STACK_INCR
2298#define YY_START_STACK_INCR 25
2302#ifndef YY_FATAL_ERROR
2304#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2325#define YY_DECL_IS_OURS 1
2328extern int yylex (
void);
2330#define YY_DECL int yylex (void)
2339#ifndef YY_USER_ACTION
2340#define YY_USER_ACTION
2345#define YY_BREAK break;
2349#define YY_RULE_SETUP \
2397#line 101 "dhcp4_lexer.ll"
2401#line 105 "dhcp4_lexer.ll"
2409 if (start_token_flag) {
2410 start_token_flag =
false;
2411 switch (start_token_value) {
2412 case Parser4Context::PARSER_JSON:
2415 case Parser4Context::PARSER_DHCP4:
2417 case Parser4Context::SUBPARSER_DHCP4:
2419 case Parser4Context::PARSER_INTERFACES:
2421 case Parser4Context::PARSER_SUBNET4:
2423 case Parser4Context::PARSER_POOL4:
2425 case Parser4Context::PARSER_HOST_RESERVATION:
2427 case Parser4Context::PARSER_OPTION_DEFS:
2429 case Parser4Context::PARSER_OPTION_DEF:
2431 case Parser4Context::PARSER_OPTION_DATA:
2433 case Parser4Context::PARSER_HOOKS_LIBRARY:
2435 case Parser4Context::PARSER_DHCP_DDNS:
2437 case Parser4Context::PARSER_CONFIG_CONTROL:
2443#line 2443 "dhcp4_lexer.cc"
2448 yy_cp = (yy_c_buf_p);
2451 *
yy_cp = (yy_hold_char);
2459 yy_current_state = (yy_start);
2464 if ( yy_accept[yy_current_state] )
2466 (yy_last_accepting_state) = yy_current_state;
2467 (yy_last_accepting_cpos) =
yy_cp;
2469 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2471 yy_current_state = (int) yy_def[yy_current_state];
2472 if ( yy_current_state >= 2061 )
2473 yy_c = yy_meta[yy_c];
2475 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2478 while ( yy_current_state != 2060 );
2479 yy_cp = (yy_last_accepting_cpos);
2480 yy_current_state = (yy_last_accepting_state);
2484 yy_act = yy_accept[yy_current_state];
2496 fprintf( stderr,
"--scanner backing up\n" );
2498 fprintf( stderr,
"--accepting rule at line %ld (\"%s\")\n",
2500 else if (
yy_act == 214 )
2501 fprintf( stderr,
"--accepting default rule (\"%s\")\n",
2503 else if (
yy_act == 215 )
2504 fprintf( stderr,
"--(end of buffer or a NUL)\n" );
2506 fprintf( stderr,
"--EOF (start condition %d)\n",
YY_START );
2514 *
yy_cp = (yy_hold_char);
2515 yy_cp = (yy_last_accepting_cpos);
2516 yy_current_state = (yy_last_accepting_state);
2517 goto yy_find_action;
2521#line 146 "dhcp4_lexer.ll"
2526#line 148 "dhcp4_lexer.ll"
2531#line 150 "dhcp4_lexer.ll"
2534 comment_start_line = driver.loc_.end.line;;
2539#line 155 "dhcp4_lexer.ll"
2544#line 156 "dhcp4_lexer.ll"
2548#line 157 "dhcp4_lexer.ll"
2555#line 161 "dhcp4_lexer.ll"
2560#line 162 "dhcp4_lexer.ll"
2565#line 163 "dhcp4_lexer.ll"
2570 std::string tmp(
yytext+1);
2571 tmp.resize(tmp.size() - 1);
2573 driver.includeFile(tmp);
2579#line 172 "dhcp4_lexer.ll"
2586#line 175 "dhcp4_lexer.ll"
2591#line 178 "dhcp4_lexer.ll"
2600#line 183 "dhcp4_lexer.ll"
2603 driver.loc_.lines(
yyleng);
2609#line 190 "dhcp4_lexer.ll"
2611 switch(driver.ctx_) {
2621#line 199 "dhcp4_lexer.ll"
2623 switch(driver.ctx_) {
2633#line 208 "dhcp4_lexer.ll"
2635 switch(driver.ctx_) {
2645#line 217 "dhcp4_lexer.ll"
2647 switch(driver.ctx_) {
2657#line 226 "dhcp4_lexer.ll"
2659 switch(driver.ctx_) {
2669#line 235 "dhcp4_lexer.ll"
2671 switch(driver.ctx_) {
2681#line 244 "dhcp4_lexer.ll"
2683 switch(driver.ctx_) {
2694#line 254 "dhcp4_lexer.ll"
2696 switch(driver.ctx_) {
2697 case Parser4Context::INTERFACES_CONFIG:
2706#line 263 "dhcp4_lexer.ll"
2708 switch(driver.ctx_) {
2709 case Parser4Context::OUTBOUND_INTERFACE:
2710 return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2712 return Dhcp4Parser::make_STRING(
"same-as-inbound", driver.loc_);
2718#line 272 "dhcp4_lexer.ll"
2720 switch(driver.ctx_) {
2721 case Parser4Context::OUTBOUND_INTERFACE:
2722 return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
2724 return Dhcp4Parser::make_STRING(
"use-routing", driver.loc_);
2730#line 281 "dhcp4_lexer.ll"
2732 switch(driver.ctx_) {
2742#line 290 "dhcp4_lexer.ll"
2744 switch(driver.ctx_) {
2754#line 299 "dhcp4_lexer.ll"
2756 switch(driver.ctx_) {
2766#line 308 "dhcp4_lexer.ll"
2768 switch(driver.ctx_) {
2778#line 317 "dhcp4_lexer.ll"
2780 switch(driver.ctx_) {
2790#line 326 "dhcp4_lexer.ll"
2792 switch(driver.ctx_) {
2802#line 335 "dhcp4_lexer.ll"
2804 switch(driver.ctx_) {
2814#line 344 "dhcp4_lexer.ll"
2816 switch(driver.ctx_) {
2826#line 353 "dhcp4_lexer.ll"
2828 switch(driver.ctx_) {
2838#line 362 "dhcp4_lexer.ll"
2840 switch(driver.ctx_) {
2850#line 371 "dhcp4_lexer.ll"
2852 switch(driver.ctx_) {
2862#line 380 "dhcp4_lexer.ll"
2864 switch(driver.ctx_) {
2874#line 389 "dhcp4_lexer.ll"
2876 switch(driver.ctx_) {
2889#line 401 "dhcp4_lexer.ll"
2891 switch(driver.ctx_) {
2901#line 410 "dhcp4_lexer.ll"
2903 switch(driver.ctx_) {
2913#line 419 "dhcp4_lexer.ll"
2915 switch(driver.ctx_) {
2925#line 428 "dhcp4_lexer.ll"
2927 switch(driver.ctx_) {
2939#line 439 "dhcp4_lexer.ll"
2941 switch(driver.ctx_) {
2953#line 450 "dhcp4_lexer.ll"
2955 switch(driver.ctx_) {
2967#line 461 "dhcp4_lexer.ll"
2969 switch(driver.ctx_) {
2981#line 472 "dhcp4_lexer.ll"
2983 switch(driver.ctx_) {
2995#line 483 "dhcp4_lexer.ll"
2997 switch(driver.ctx_) {
3009#line 494 "dhcp4_lexer.ll"
3011 switch(driver.ctx_) {
3023#line 505 "dhcp4_lexer.ll"
3025 switch(driver.ctx_) {
3037#line 516 "dhcp4_lexer.ll"
3039 switch(driver.ctx_) {
3051#line 527 "dhcp4_lexer.ll"
3053 switch(driver.ctx_) {
3063#line 536 "dhcp4_lexer.ll"
3065 switch(driver.ctx_) {
3075#line 545 "dhcp4_lexer.ll"
3077 switch(driver.ctx_) {
3087#line 554 "dhcp4_lexer.ll"
3089 switch(driver.ctx_) {
3101#line 565 "dhcp4_lexer.ll"
3103 switch(driver.ctx_) {
3113#line 574 "dhcp4_lexer.ll"
3115 switch(driver.ctx_) {
3127#line 585 "dhcp4_lexer.ll"
3129 switch(driver.ctx_) {
3141#line 596 "dhcp4_lexer.ll"
3143 switch(driver.ctx_) {
3155#line 607 "dhcp4_lexer.ll"
3157 switch(driver.ctx_) {
3169#line 618 "dhcp4_lexer.ll"
3171 switch(driver.ctx_) {
3184#line 630 "dhcp4_lexer.ll"
3186 switch(driver.ctx_) {
3199#line 642 "dhcp4_lexer.ll"
3201 switch(driver.ctx_) {
3214#line 654 "dhcp4_lexer.ll"
3216 switch(driver.ctx_) {
3228#line 665 "dhcp4_lexer.ll"
3230 switch(driver.ctx_) {
3242#line 676 "dhcp4_lexer.ll"
3244 switch(driver.ctx_) {
3254#line 685 "dhcp4_lexer.ll"
3256 switch(driver.ctx_) {
3266#line 694 "dhcp4_lexer.ll"
3268 switch(driver.ctx_) {
3278#line 703 "dhcp4_lexer.ll"
3280 switch(driver.ctx_) {
3290#line 712 "dhcp4_lexer.ll"
3292 switch(driver.ctx_) {
3302#line 721 "dhcp4_lexer.ll"
3304 switch(driver.ctx_) {
3316#line 732 "dhcp4_lexer.ll"
3318 switch(driver.ctx_) {
3330#line 743 "dhcp4_lexer.ll"
3332 switch(driver.ctx_) {
3344#line 754 "dhcp4_lexer.ll"
3346 switch(driver.ctx_) {
3358#line 765 "dhcp4_lexer.ll"
3360 switch(driver.ctx_) {
3372#line 776 "dhcp4_lexer.ll"
3374 switch(driver.ctx_) {
3386#line 787 "dhcp4_lexer.ll"
3388 switch(driver.ctx_) {
3400#line 798 "dhcp4_lexer.ll"
3402 switch(driver.ctx_) {
3414#line 809 "dhcp4_lexer.ll"
3416 switch(driver.ctx_) {
3427#line 819 "dhcp4_lexer.ll"
3429 switch(driver.ctx_) {
3441#line 830 "dhcp4_lexer.ll"
3443 switch (driver.ctx_) {
3453#line 839 "dhcp4_lexer.ll"
3455 switch(driver.ctx_) {
3466#line 849 "dhcp4_lexer.ll"
3468 switch(driver.ctx_) {
3483#line 863 "dhcp4_lexer.ll"
3485 switch(driver.ctx_) {
3502#line 879 "dhcp4_lexer.ll"
3504 switch(driver.ctx_) {
3514#line 888 "dhcp4_lexer.ll"
3516 switch(driver.ctx_) {
3526#line 897 "dhcp4_lexer.ll"
3528 switch(driver.ctx_) {
3538#line 906 "dhcp4_lexer.ll"
3540 switch(driver.ctx_) {
3550#line 915 "dhcp4_lexer.ll"
3552 switch(driver.ctx_) {
3575#line 937 "dhcp4_lexer.ll"
3577 switch(driver.ctx_) {
3600#line 959 "dhcp4_lexer.ll"
3602 switch(driver.ctx_) {
3612#line 968 "dhcp4_lexer.ll"
3614 switch(driver.ctx_) {
3625#line 978 "dhcp4_lexer.ll"
3627 switch(driver.ctx_) {
3637#line 987 "dhcp4_lexer.ll"
3639 switch(driver.ctx_) {
3651#line 998 "dhcp4_lexer.ll"
3653 switch(driver.ctx_) {
3663#line 1007 "dhcp4_lexer.ll"
3665 switch(driver.ctx_) {
3675#line 1016 "dhcp4_lexer.ll"
3677 switch(driver.ctx_) {
3687#line 1025 "dhcp4_lexer.ll"
3689 switch(driver.ctx_) {
3699#line 1034 "dhcp4_lexer.ll"
3701 switch(driver.ctx_) {
3711#line 1043 "dhcp4_lexer.ll"
3713 switch(driver.ctx_) {
3725#line 1054 "dhcp4_lexer.ll"
3727 switch(driver.ctx_) {
3739#line 1065 "dhcp4_lexer.ll"
3741 switch(driver.ctx_) {
3753#line 1076 "dhcp4_lexer.ll"
3755 switch(driver.ctx_) {
3766#line 1086 "dhcp4_lexer.ll"
3768 switch(driver.ctx_) {
3778#line 1095 "dhcp4_lexer.ll"
3780 switch(driver.ctx_) {
3792#line 1106 "dhcp4_lexer.ll"
3794 switch(driver.ctx_) {
3806#line 1117 "dhcp4_lexer.ll"
3808 switch(driver.ctx_) {
3820#line 1128 "dhcp4_lexer.ll"
3822 switch(driver.ctx_) {
3834#line 1139 "dhcp4_lexer.ll"
3836 switch(driver.ctx_) {
3848#line 1151 "dhcp4_lexer.ll"
3850 switch(driver.ctx_) {
3860#line 1160 "dhcp4_lexer.ll"
3862 switch(driver.ctx_) {
3872#line 1169 "dhcp4_lexer.ll"
3874 switch(driver.ctx_) {
3884#line 1178 "dhcp4_lexer.ll"
3886 switch(driver.ctx_) {
3896#line 1187 "dhcp4_lexer.ll"
3898 switch(driver.ctx_) {
3908#line 1196 "dhcp4_lexer.ll"
3910 switch(driver.ctx_) {
3920#line 1205 "dhcp4_lexer.ll"
3922 switch(driver.ctx_) {
3932#line 1214 "dhcp4_lexer.ll"
3934 switch(driver.ctx_) {
3944#line 1223 "dhcp4_lexer.ll"
3946 switch(driver.ctx_) {
3956#line 1232 "dhcp4_lexer.ll"
3958 switch(driver.ctx_) {
3969#line 1242 "dhcp4_lexer.ll"
3971 switch(driver.ctx_) {
3983#line 1253 "dhcp4_lexer.ll"
3985 switch(driver.ctx_) {
3998#line 1265 "dhcp4_lexer.ll"
4000 switch(driver.ctx_) {
4010#line 1274 "dhcp4_lexer.ll"
4012 switch(driver.ctx_) {
4022#line 1283 "dhcp4_lexer.ll"
4024 switch(driver.ctx_) {
4035#line 1293 "dhcp4_lexer.ll"
4037 switch(driver.ctx_) {
4048#line 1303 "dhcp4_lexer.ll"
4050 switch(driver.ctx_) {
4061#line 1313 "dhcp4_lexer.ll"
4063 switch(driver.ctx_) {
4074#line 1323 "dhcp4_lexer.ll"
4076 switch(driver.ctx_) {
4087#line 1333 "dhcp4_lexer.ll"
4089 switch(driver.ctx_) {
4100#line 1343 "dhcp4_lexer.ll"
4102 switch(driver.ctx_) {
4112#line 1352 "dhcp4_lexer.ll"
4114 switch(driver.ctx_) {
4125#line 1362 "dhcp4_lexer.ll"
4127 switch(driver.ctx_) {
4137#line 1371 "dhcp4_lexer.ll"
4139 switch(driver.ctx_) {
4149#line 1380 "dhcp4_lexer.ll"
4151 switch(driver.ctx_) {
4161#line 1389 "dhcp4_lexer.ll"
4163 switch(driver.ctx_) {
4173#line 1398 "dhcp4_lexer.ll"
4175 switch(driver.ctx_) {
4186#line 1408 "dhcp4_lexer.ll"
4188 switch(driver.ctx_) {
4199#line 1418 "dhcp4_lexer.ll"
4201 switch(driver.ctx_) {
4211#line 1427 "dhcp4_lexer.ll"
4213 switch(driver.ctx_) {
4223#line 1437 "dhcp4_lexer.ll"
4225 switch(driver.ctx_) {
4235#line 1446 "dhcp4_lexer.ll"
4237 switch(driver.ctx_) {
4247#line 1455 "dhcp4_lexer.ll"
4249 switch(driver.ctx_) {
4259#line 1464 "dhcp4_lexer.ll"
4261 switch(driver.ctx_) {
4271#line 1473 "dhcp4_lexer.ll"
4273 switch(driver.ctx_) {
4283#line 1482 "dhcp4_lexer.ll"
4285 switch(driver.ctx_) {
4295#line 1491 "dhcp4_lexer.ll"
4297 switch(driver.ctx_) {
4307#line 1500 "dhcp4_lexer.ll"
4309 switch(driver.ctx_) {
4319#line 1509 "dhcp4_lexer.ll"
4321 switch(driver.ctx_) {
4331#line 1518 "dhcp4_lexer.ll"
4333 switch(driver.ctx_) {
4343#line 1527 "dhcp4_lexer.ll"
4345 switch(driver.ctx_) {
4355#line 1536 "dhcp4_lexer.ll"
4357 switch(driver.ctx_) {
4367#line 1545 "dhcp4_lexer.ll"
4369 switch(driver.ctx_) {
4379#line 1554 "dhcp4_lexer.ll"
4381 switch(driver.ctx_) {
4391#line 1563 "dhcp4_lexer.ll"
4393 switch(driver.ctx_) {
4403#line 1572 "dhcp4_lexer.ll"
4405 switch(driver.ctx_) {
4415#line 1581 "dhcp4_lexer.ll"
4417 switch(driver.ctx_) {
4427#line 1590 "dhcp4_lexer.ll"
4429 switch(driver.ctx_) {
4439#line 1599 "dhcp4_lexer.ll"
4441 switch(driver.ctx_) {
4451#line 1608 "dhcp4_lexer.ll"
4453 switch(driver.ctx_) {
4463#line 1617 "dhcp4_lexer.ll"
4465 switch(driver.ctx_) {
4475#line 1626 "dhcp4_lexer.ll"
4477 switch(driver.ctx_) {
4487#line 1635 "dhcp4_lexer.ll"
4489 switch(driver.ctx_) {
4499#line 1644 "dhcp4_lexer.ll"
4501 switch(driver.ctx_) {
4511#line 1653 "dhcp4_lexer.ll"
4513 switch(driver.ctx_) {
4523#line 1662 "dhcp4_lexer.ll"
4525 switch(driver.ctx_) {
4535#line 1671 "dhcp4_lexer.ll"
4537 switch(driver.ctx_) {
4547#line 1680 "dhcp4_lexer.ll"
4549 switch(driver.ctx_) {
4559#line 1689 "dhcp4_lexer.ll"
4561 switch(driver.ctx_) {
4571#line 1698 "dhcp4_lexer.ll"
4573 switch(driver.ctx_) {
4583#line 1707 "dhcp4_lexer.ll"
4585 switch(driver.ctx_) {
4595#line 1716 "dhcp4_lexer.ll"
4597 switch(driver.ctx_) {
4607#line 1725 "dhcp4_lexer.ll"
4609 switch(driver.ctx_) {
4619#line 1734 "dhcp4_lexer.ll"
4621 switch(driver.ctx_) {
4631#line 1743 "dhcp4_lexer.ll"
4633 switch(driver.ctx_) {
4643#line 1752 "dhcp4_lexer.ll"
4645 switch(driver.ctx_) {
4658#line 1764 "dhcp4_lexer.ll"
4660 switch(driver.ctx_) {
4673#line 1776 "dhcp4_lexer.ll"
4679 std::string tmp(
yytext+1);
4680 tmp.resize(tmp.size() - 1);
4686#line 1786 "dhcp4_lexer.ll"
4692 std::string tmp(
yytext+1);
4693 tmp.resize(tmp.size() - 1);
4699#line 1796 "dhcp4_lexer.ll"
4705 std::string tmp(
yytext+1);
4706 tmp.resize(tmp.size() - 1);
4712#line 1806 "dhcp4_lexer.ll"
4718 std::string tmp(
yytext+1);
4719 tmp.resize(tmp.size() - 1);
4725#line 1816 "dhcp4_lexer.ll"
4731 std::string tmp(
yytext+1);
4732 tmp.resize(tmp.size() - 1);
4738#line 1826 "dhcp4_lexer.ll"
4744 std::string tmp(
yytext+1);
4745 tmp.resize(tmp.size() - 1);
4751#line 1836 "dhcp4_lexer.ll"
4757 std::string tmp(
yytext+1);
4758 tmp.resize(tmp.size() - 1);
4764#line 1846 "dhcp4_lexer.ll"
4770 std::string tmp(
yytext+1);
4771 tmp.resize(tmp.size() - 1);
4777#line 1856 "dhcp4_lexer.ll"
4783 std::string tmp(
yytext+1);
4784 tmp.resize(tmp.size() - 1);
4790#line 1866 "dhcp4_lexer.ll"
4792 switch(driver.ctx_) {
4802#line 1875 "dhcp4_lexer.ll"
4804 switch(driver.ctx_) {
4814#line 1884 "dhcp4_lexer.ll"
4816 switch(driver.ctx_) {
4826#line 1893 "dhcp4_lexer.ll"
4828 switch(driver.ctx_) {
4838#line 1902 "dhcp4_lexer.ll"
4840 switch(driver.ctx_) {
4852#line 1913 "dhcp4_lexer.ll"
4854 switch(driver.ctx_) {
4866#line 1924 "dhcp4_lexer.ll"
4868 switch(driver.ctx_) {
4882#line 1937 "dhcp4_lexer.ll"
4884 switch(driver.ctx_) {
4898#line 1950 "dhcp4_lexer.ll"
4900 switch(driver.ctx_) {
4914#line 1963 "dhcp4_lexer.ll"
4916 switch(driver.ctx_) {
4926#line 1972 "dhcp4_lexer.ll"
4928 switch(driver.ctx_) {
4938#line 1981 "dhcp4_lexer.ll"
4940 switch(driver.ctx_) {
4950#line 1990 "dhcp4_lexer.ll"
4952 switch(driver.ctx_) {
4962#line 1999 "dhcp4_lexer.ll"
4964 switch(driver.ctx_) {
4974#line 2008 "dhcp4_lexer.ll"
4979 std::string raw(
yytext+1);
4980 size_t len = raw.size() - 1;
4982 std::string decoded;
4983 decoded.reserve(len);
4984 for (
size_t pos = 0; pos < len; ++pos) {
4990 driver.error(driver.loc_,
"Bad quote in \"" + raw +
"\"");
4996 driver.error(driver.loc_,
"Overflow escape in \"" + raw +
"\"");
5003 decoded.push_back(c);
5006 decoded.push_back(
'\b');
5009 decoded.push_back(
'\f');
5012 decoded.push_back(
'\n');
5015 decoded.push_back(
'\r');
5018 decoded.push_back(
'\t');
5023 if (pos + 4 > len) {
5025 driver.error(driver.loc_,
5026 "Overflow unicode escape in \"" + raw +
"\"");
5028 if ((raw[pos] !=
'0') || (raw[pos + 1] !=
'0')) {
5029 driver.error(driver.loc_,
5030 "Unsupported unicode escape in \"" + raw +
"\"",
5035 if ((c >=
'0') && (c <=
'9')) {
5037 }
else if ((c >=
'A') && (c <=
'F')) {
5038 b = (c -
'A' + 10) << 4;
5039 }
else if ((c >=
'a') && (c <=
'f')) {
5040 b = (c -
'a' + 10) << 4;
5043 driver.error(driver.loc_,
"Not hexadecimal in unicode escape in \"" + raw +
"\"");
5047 if ((c >=
'0') && (c <=
'9')) {
5049 }
else if ((c >=
'A') && (c <=
'F')) {
5051 }
else if ((c >=
'a') && (c <=
'f')) {
5055 driver.error(driver.loc_,
"Not hexadecimal in unicode escape in \"" + raw +
"\"");
5057 decoded.push_back(
static_cast<char>(b & 0xff));
5061 driver.error(driver.loc_,
"Bad escape in \"" + raw +
"\"");
5065 if ((c >= 0) && (c < 0x20)) {
5067 driver.error(driver.loc_,
"Invalid control in \"" + raw +
"\"");
5069 decoded.push_back(c);
5079#line 2109 "dhcp4_lexer.ll"
5082 std::string raw(
yytext+1);
5083 size_t len = raw.size() - 1;
5085 for (; pos < len; ++pos) {
5087 if ((c >= 0) && (c < 0x20)) {
5091 driver.error(driver.loc_,
5092 "Invalid control in " + std::string(
yytext),
5099#line 2125 "dhcp4_lexer.ll"
5102 std::string raw(
yytext+1);
5103 size_t len = raw.size() - 1;
5106 for (; pos < len; ++pos) {
5125 if ((pos + 4 > len) ||
5126 !std::isxdigit(raw[pos + 1]) ||
5127 !std::isxdigit(raw[pos + 2]) ||
5128 !std::isxdigit(raw[pos + 3]) ||
5129 !std::isxdigit(raw[pos + 4])) {
5140 std::string trailer =
"";
5141 if (raw[len - 1] ==
'\\') {
5144 driver.error(driver.loc_,
5145 "Bad escape in " + std::string(
yytext) + trailer,
5151#line 2174 "dhcp4_lexer.ll"
5154 std::string raw(
yytext+1);
5155 driver.error(driver.loc_,
5156 "Overflow escape in " + std::string(
yytext),
5162#line 2182 "dhcp4_lexer.ll"
5165 std::string raw(
yytext+1);
5166 size_t pos = raw.size() - 1;
5167 for (; pos > 0; --pos) {
5173 driver.error(driver.loc_,
5174 "Overflow unicode escape in " + std::string(
yytext),
5180#line 2197 "dhcp4_lexer.ll"
5185#line 2198 "dhcp4_lexer.ll"
5190#line 2199 "dhcp4_lexer.ll"
5195#line 2200 "dhcp4_lexer.ll"
5200#line 2201 "dhcp4_lexer.ll"
5205#line 2202 "dhcp4_lexer.ll"
5210#line 2204 "dhcp4_lexer.ll"
5214 int64_t integer = 0;
5220 integer = boost::lexical_cast<int64_t>(tmp);
5221 }
catch (
const boost::bad_lexical_cast &) {
5222 driver.error(driver.loc_,
"Failed to convert " + tmp +
" to an integer.");
5231#line 2222 "dhcp4_lexer.ll"
5237 fp = boost::lexical_cast<double>(tmp);
5238 }
catch (
const boost::bad_lexical_cast &) {
5239 driver.error(driver.loc_,
"Failed to convert " + tmp +
" to a floating point.");
5247#line 2235 "dhcp4_lexer.ll"
5255#line 2240 "dhcp4_lexer.ll"
5262#line 2244 "dhcp4_lexer.ll"
5263driver.error (driver.loc_,
"JSON true reserved keyword is lower case only");
5267#line 2246 "dhcp4_lexer.ll"
5268driver.error (driver.loc_,
"JSON false reserved keyword is lower case only");
5272#line 2248 "dhcp4_lexer.ll"
5273driver.error (driver.loc_,
"JSON null reserved keyword is lower case only");
5277#line 2250 "dhcp4_lexer.ll"
5278driver.error (driver.loc_,
"Invalid character: " + std::string(
yytext));
5281#line 2252 "dhcp4_lexer.ll"
5283 if (driver.states_.empty()) {
5286 driver.loc_ = driver.locs_.back();
5287 driver.locs_.pop_back();
5288 driver.file_ = driver.files_.back();
5289 driver.files_.pop_back();
5290 if (driver.sfile_) {
5291 fclose(driver.sfile_);
5294 if (!driver.sfiles_.empty()) {
5295 driver.sfile_ = driver.sfiles_.back();
5296 driver.sfiles_.pop_back();
5299 parser4__switch_to_buffer(driver.states_.back());
5300 driver.states_.pop_back();
5307#line 2275 "dhcp4_lexer.ll"
5310#line 5310 "dhcp4_lexer.cc"
5318 *
yy_cp = (yy_hold_char);
5352 (yy_c_buf_p) = (
yytext_ptr) + yy_amount_of_matched_text;
5354 yy_current_state = yy_get_previous_state( );
5365 yy_next_state = yy_try_NUL_trans( yy_current_state );
5369 if ( yy_next_state )
5372 yy_cp = ++(yy_c_buf_p);
5373 yy_current_state = yy_next_state;
5380 yy_cp = (yy_last_accepting_cpos);
5381 yy_current_state = (yy_last_accepting_state);
5382 goto yy_find_action;
5386 else switch ( yy_get_next_buffer( ) )
5390 (yy_did_buffer_switch_on_eof) = 0;
5411 if ( ! (yy_did_buffer_switch_on_eof) )
5421 yy_current_state = yy_get_previous_state( );
5423 yy_cp = (yy_c_buf_p);
5431 yy_current_state = yy_get_previous_state( );
5433 yy_cp = (yy_c_buf_p);
5435 goto yy_find_action;
5442 "fatal flex scanner internal error--no action found" );
5463static int yy_get_next_buffer (
void)
5470 int number_to_move, i;
5475 "fatal flex scanner internal error--end of buffer missed" );
5499 number_to_move = (int) ((yy_c_buf_p) - (
yytext_ptr) - 1);
5501 for ( i = 0; i < number_to_move; ++i )
5502 *(dest++) = *(source++);
5515 while ( num_to_read <= 0 )
5521 int yy_c_buf_p_offset =
5528 if ( new_size <= 0 )
5544 "fatal error - scanner input buffer overflow" );
5546 (yy_c_buf_p) = &b->
yy_ch_buf[yy_c_buf_p_offset];
5558 (yy_n_chars), num_to_read );
5563 if ( (yy_n_chars) == 0 )
5584 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5588 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
5593 (yy_n_chars) += number_to_move;
5615 yy_current_state = (yy_start);
5621 if ( yy_accept[yy_current_state] )
5623 (yy_last_accepting_state) = yy_current_state;
5624 (yy_last_accepting_cpos) =
yy_cp;
5626 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5628 yy_current_state = (int) yy_def[yy_current_state];
5629 if ( yy_current_state >= 2061 )
5630 yy_c = yy_meta[yy_c];
5632 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5635 return yy_current_state;
5651 char *
yy_cp = (yy_c_buf_p);
5654 if ( yy_accept[yy_current_state] )
5656 (yy_last_accepting_state) = yy_current_state;
5657 (yy_last_accepting_cpos) =
yy_cp;
5659 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5661 yy_current_state = (int) yy_def[yy_current_state];
5662 if ( yy_current_state >= 2061 )
5663 yy_c = yy_meta[yy_c];
5665 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5666 yy_is_jam = (yy_current_state == 2060);
5668 return yy_is_jam ? 0 : yy_current_state;
5680 static int yyinput (
void)
5682 static int input (
void)
5691 *(yy_c_buf_p) = (yy_hold_char);
5701 *(yy_c_buf_p) =
'\0';
5705 int offset = (int) ((yy_c_buf_p) - (
yytext_ptr));
5708 switch ( yy_get_next_buffer( ) )
5731 if ( ! (yy_did_buffer_switch_on_eof) )
5747 c = *(
unsigned char *) (yy_c_buf_p);
5748 *(yy_c_buf_p) =
'\0';
5749 (yy_hold_char) = *++(yy_c_buf_p);
5807 *(yy_c_buf_p) = (yy_hold_char);
5820 (yy_did_buffer_switch_on_eof) = 1;
5836 (yy_hold_char) = *(yy_c_buf_p);
5984 if (new_buffer == NULL)
5993 *(yy_c_buf_p) = (yy_hold_char);
6000 (yy_buffer_stack_top)++;
6005 (yy_did_buffer_switch_on_eof) = 1;
6025 if ((yy_buffer_stack_top) > 0)
6026 --(yy_buffer_stack_top);
6030 (yy_did_buffer_switch_on_eof) = 1;
6047 if (!(yy_buffer_stack)) {
6057 if ( ! (yy_buffer_stack) )
6058 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
6060 memset((yy_buffer_stack), 0, num_to_alloc *
sizeof(
struct yy_buffer_state*));
6062 (yy_buffer_stack_max) = num_to_alloc;
6063 (yy_buffer_stack_top) = 0;
6067 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6072 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6077 if ( ! (yy_buffer_stack) )
6078 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
6081 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size *
sizeof(
struct yy_buffer_state*));
6082 (yy_buffer_stack_max) = num_to_alloc;
6161 for ( i = 0; i < _yybytes_len; ++i )
6162 buf[i] = yybytes[i];
6179#ifndef YY_EXIT_FAILURE
6180#define YY_EXIT_FAILURE 2
6184static void yynoreturn yy_fatal_error (
const char* msg )
6186 fprintf( stderr,
"%s\n", msg );
6200 int yyless_macro_arg = (n); \
6201 YY_LESS_LINENO(yyless_macro_arg);\
6202 yytext[yyleng] = (yy_hold_char); \
6203 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6204 (yy_hold_char) = *(yy_c_buf_p); \
6205 *(yy_c_buf_p) = '\0'; \
6206 yyleng = yyless_macro_arg; \
6305static int yy_init_globals (
void)
6311 (yy_buffer_stack) = NULL;
6312 (yy_buffer_stack_top) = 0;
6313 (yy_buffer_stack_max) = 0;
6314 (yy_c_buf_p) = NULL;
6347 yyfree((yy_buffer_stack) );
6348 (yy_buffer_stack) = NULL;
6365static void yy_flex_strncpy (
char* s1,
const char * s2,
int n )
6369 for ( i = 0; i < n; ++i )
6374#ifdef YY_NEED_STRLEN
6375static int yy_flex_strlen (
const char * s )
6378 for ( n = 0; s[n]; ++n )
6387 return malloc(size);
6400 return realloc(ptr, size);
6405 free( (
char *) ptr );
6410#define YYTABLES_NAME "yytables"
6415#line 2275 "dhcp4_lexer.ll"
6421Parser4Context::scanStringBegin(
const std::string& str,
ParserType parser_type)
6423 start_token_flag =
true;
6424 start_token_value = parser_type;
6431 buffer = parser4__scan_bytes(str.c_str(), str.size());
6433 fatal(
"cannot scan string");
6440 const std::string& filename,
6443 start_token_flag =
true;
6444 start_token_value = parser_type;
6453 buffer = parser4__create_buffer(f, 65536 );
6455 fatal(
"cannot scan file " + filename);
6457 parser4__switch_to_buffer(buffer);
6465 static_cast<void>(parser4_lex_destroy());
6476 parser4__delete_buffer(
states_.back());
6484 fatal(
"Too many nested include.");
6487 FILE* f = fopen(filename.c_str(),
"r");
6489 fatal(
"Can't open include file " + filename);
6497 buffer = parser4__create_buffer(f, 65536 );
6499 fatal(
"Can't scan include file " + filename);
6501 parser4__switch_to_buffer(buffer);
6514 void dummy() { yy_fatal_error(
"Fix me: how to disable its definition?"); }
unsigned char flex_uint8_t
Evaluation error exception raised when trying to parse.
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE_ID(const location_type &l)
static symbol_type make_SUB_INTERFACES4(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_GENERATED_PREFIX(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_MATCH_CLIENT_ID(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_MAX_RETRIES(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_MEMFILE(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_REQUIRE_ALL(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_ALL(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_SERVER_HOSTNAME(const location_type &l)
static symbol_type make_KEY_FILE(const location_type &l)
static symbol_type make_TEST(const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_BOOT_FILE_NAME(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_SUBNET4(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_EARLY_GLOBAL_RESERVATIONS_LOOKUP(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_MYSQL(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_GLOBAL(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_OUT_OF_POOL(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_ECHO_CLIENT_ID(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_SUB_SUBNET4(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE(const location_type &l)
static symbol_type make_DHCP4(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_AUTHORITATIVE(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_RESERVATION_MODE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEXT_SERVER(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_RAW(const location_type &l)
static symbol_type make_OUTBOUND_INTERFACE(const location_type &l)
static symbol_type make_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_SUB_POOL4(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_CLIENT_ID(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_RESERVATIONS_LOOKUP_FIRST(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP4(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_DHCP_SOCKET_TYPE(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_DISABLED(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_SUB_DHCP4(const location_type &l)
static symbol_type make_SUBNET_4O6_SUBNET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CIRCUIT_ID(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_RETRY_WAIT_TIME(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
std::vector< std::string > files_
File name stack.
void scanEnd()
Method called after the last tokens are scanned.
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
std::string file_
File name.
@ SUBNET4
Used while parsing Dhcp4/Subnet4 structures.
@ DATABASE_TYPE
Used while parsing Dhcp4/*-database/type.
@ POOLS
Used while parsing Dhcp4/subnet4/pools structures.
@ CLIENT_CLASSES
Used while parsing Dhcp4/client-classes structures.
@ RESERVATIONS
Used while parsing Dhcp4/reservations structures.
@ HOSTS_DATABASE
Used while parsing Dhcp4/hosts-database[s] structures.
@ NCR_PROTOCOL
Used while parsing Dhcp4/dhcp-ddns/ncr-protocol.
@ LOGGERS
Used while parsing Dhcp4/loggers structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp4/*-database/on-fail.
@ NCR_FORMAT
Used while parsing Dhcp4/dhcp-ddns/ncr-format.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ CONFIG
Used while parsing content of Dhcp4.
@ OUTPUT_OPTIONS
Used while parsing Dhcp4/loggers/output_options structures.
@ RESERVATION_MODE
Used while parsing Dhcp4/reservation-mode.
@ CONTROL_SOCKET
Used while parsing Dhcp4/control-socket structures.
@ DHCP_DDNS
Used while parsing Dhcp4/dhcp-ddns.
@ OPTION_DATA
Used while parsing Dhcp4/option-data, Dhcp4/subnet4/option-data or anywhere option-data is present (c...
@ DHCP_MULTI_THREADING
Used while parsing Dhcp4/multi-threading structures.
@ LEASE_DATABASE
Used while parsing Dhcp4/lease-database structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp4/expired-leases-processing.
@ SANITY_CHECKS
Sanity checks.
@ CONFIG_CONTROL
Used while parsing Dhcp4/config-control.
@ INTERFACES_CONFIG
Used while parsing Dhcp4/interfaces structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp4/host-reservation-identifiers.
@ OPTION_DEF
Used while parsing Dhcp4/option-def structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ HOOKS_LIBRARIES
Used while parsing Dhcp4/hooks-libraries.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp4/dhcp-queue-control structures.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp4/dhcp-ddns/replace-client-name.
@ RELAY
Used while parsing Dhcp4/subnet4relay structures.
@ DHCP_SOCKET_TYPE
Used while parsing Dhcp4/interfaces/dhcp-socket-type structures.
ParserType
Defines currently supported scopes.
static void fatal(const std::string &what)
Fatal error handler.
FILE * sfile_
sFile (aka FILE)
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
isc::dhcp::location loc_
Location of the current token.
void includeFile(const std::string &filename)
Divert input to an include file.
std::vector< isc::dhcp::location > locs_
Location stack.
#define yy_load_buffer_state
unsigned char flex_uint8_t
unsigned int flex_uint32_t
#define yypush_buffer_state
#define yyget_in
Get the input stream.
struct yy_buffer_state * YY_BUFFER_STATE
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
#define yyget_out
Get the output stream.
#define yyensure_buffer_stack
#define EOB_ACT_END_OF_FILE
#define YY_CURRENT_BUFFER_LVALUE
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
#define YY_CURRENT_BUFFER
#define YY_INPUT(buf, result, max_size)
#define YY_STATE_EOF(state)
#define YY_END_OF_BUFFER_CHAR
#define YY_FATAL_ERROR(msg)
unsigned short int flex_uint16_t
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define YY_DO_BEFORE_ACTION
#define EOB_ACT_LAST_MATCH
#define YY_BUFFER_EOF_PENDING
#define EOB_ACT_CONTINUE_SCAN
#define yyget_lineno
Get the current line number.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
int yy_bs_column
The column count.
int yy_bs_lineno
The line count.