Skip to main content
aboutsummaryrefslogblamecommitdiffstats
blob: da02ccb0e10542d2cf76fb3dfd106eeafc1fc726 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
                                                                                








                                                                                  




















                                                                                                                  
               






                                                                               
                                
                                
















                                






                                
                                



















                                
                                
                                





                                    
                                













                                         
                                
                                



                                         
                                
                                


                                     
                                

                                      

                                

                                          
                                
                                    
                                
                                





                                          
                                
                                  
                                
                                     
                                
                                


                                        
                                
                                

                                   
                                



                                           
                                
                                

                                    
                                
                                


                                     

                                

                                        
                                
                                  
                                


                                      
                                



                                        
                                
                                
                                
                                     
                                


                                    
                                
                                

                                       
                                
                                


                                         
                                
                                   

                                     
                                
                                

                                        
                                

                                

                                      
                                
                                

                                         
                                
                                
                                
                                        
                                
                                

                                           
                                
                                


                                      
                                


                                      
                                
                                   
                                
                                           
                                
                                


                                         
                                


                                      
                                


                                      
                                
                                


                                      
                                


                                         
                                
                                

                                      
                                
                                


                                      
                                
                                

                                      
                                


                                      
                                
                                

                                     
                                

                                        
                                

                                     
                                

                                     
                                


                                     
                                

                                           
                                


                                     
                                
                                

                                         
                                

                                         
                                
                                
                                        
                                








                                         
                                




                                            
                                
                                




                                      
                                  
                                






























                                               
                                   








                                         
                                
                                         
                                
                                               
                                



                                               
                                













                                            
                                




                                            
                                
                                            
                                

                                              
                                


                                      

                                
                                  
                                
                                  
                                

                                   
                                
                                     
                                
                                     
                                

                                   
                                
                                     
                                
                                     
                                

                                   
                                



























                                                  
                                   



                                            
                                
                                      
                                
                                         
                                

                                   
                                
                                
                                   
                                

                                   
                                
                                

                                   
                                
                                      
                                

                                





                                        
                                
                                   
                                   




                                

                                      
                                

                                      

                                




                                      


                                



                                         


                                




















                                      








                                                                      
































































































































































































































































































































































































































































































































































                                                              










                                                                        
                                          
                                          
                                         

                                         
                                       
                                      

                                          
                                          
                                          
                                         

                                         







                                          
                                     





                                          


                                          




                                          
                                        
                                         
                                      
                                          

                                          
                                          
                                          
                                          









                                          
                                     





                                          
                                         
                                         
                                      





                                          


                                         
                                    
                                      
                                          
                                          
                                          
                                          
                                         
                                    
                                          



                                          
                                         

                                          
                                        






                                          
                                      






                                          

                                         
                                        
                                  




                                          
                                 
                                          
                                            
                                       


                                     

                                          





























                                                    

                                          

                                        




                                         
                                        






                                               

                                          
                                         
                                       




                                          


                                          





                                      
                                       
                                         
                                          




                                       

                                          















                                            
                                      



















                                           

                                          
















































                                            
                                         

                                       
                                        

                                      




                                         
                                 



                                          


















                                         

                                          













                                          





                                
                     






                                                                      


                                                              
                                
                                





















                                                              
                                
                                   
                                





                                                              
                                
                                   
                                




                                                              
                                
                                   
                                





                                                              
                                
                                   
                                






                                                              

                                




                                                              
                                
                                   
                                





                                                              
                                
                                   
                                




                                                              
                                
                                   
                                





                                                              
                                
                                   
                                






                                                              
                                
                                










                                                              
                                









                                                              
                                


























                                                              
                                















                                                              
                                







                                                             
                                















                                                           
                                







                                                            
                                
































































































































                                                              






                                                                        






















































                                                       






                                                          
                                          








                                          



















                                                    
                                          


                                          































































                                                  
                                          

                                             
                                          

                                                  

                                         





                                          






                                                          














                                                 
                                          






































                                                   






                                                            




























                                            






                                                            
                                            


                                              
                                          
                                              
                                            


                                             

                                           
                  






                                                                              
                                            



















                                                  






                                                                                    







                                                    
                                                 


                                                   






                                                                          







                                                   
                                             


                                                  






                                                                          











                                                 






                                                                    

                                           
                                       



                                          
                                      

                                         

                                     






                                                                  

                                                   





                                                  
                                              


                                                






                                                                              


                                             
                                       













                                                
                                       













































                                                 






                                                                    































                                                              






                                                                        
                                            
                                            




                                                   

                                          













































                                                    









                                                                









































                  





































































                               
                              




                           
                        






                            
                
                               




                                            
                               





                                              
                         


                                     
                      
                        
                                   

                               
                          
                              
                                 






















                                        
                                 
                                  
                          
                              

                                            















                                              
                             
                                   
                                       
                                  


                                
                                  
                                      







                                              

                                         




                                        
                              




                                       
                                         



                                   
                                     
                                 





                                    

                                      




                                     





                                                               
                                  

                                   







                                                                   
                                   
                                   
                                    
                                          


                                   
                                    
                                   
                                 

                                   

                                    















































                                                                        
/*******************************************************************************
* Copyright (c) 2006, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.cpp;

public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPNoCastExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,4,5,
            6,3,2,2,1,1,1,2,2,2,
            2,2,2,2,2,2,4,7,9,3,
            0,1,2,2,1,2,3,4,1,0,
            3,1,0,3,5,1,1,3,3,1,
            3,3,3,1,3,3,1,3,3,1,
            3,3,3,3,1,3,3,1,3,1,
            3,1,3,1,3,1,3,1,5,1,
            2,1,1,3,3,3,3,3,3,3,
            3,3,3,3,1,2,1,3,1,0,
            1,0,1,1,0,1,1,1,1,1,
            1,1,1,1,3,4,3,2,1,4,
            2,1,2,5,7,5,1,4,1,0,
            5,7,2,8,1,1,2,2,3,2,
            3,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,2,1,0,
            4,4,2,2,2,2,2,1,0,1,
            1,1,1,1,1,2,1,2,2,2,
            1,1,2,2,1,2,2,1,2,2,
            1,2,2,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3,4,4,5,2,
            5,6,5,0,1,0,7,8,0,1,
            3,1,0,1,3,1,7,6,0,7,
            6,1,0,6,5,6,4,1,3,1,
            0,1,1,2,1,1,3,1,3,1,
            1,1,1,3,9,2,2,3,2,5,
            3,7,0,1,2,2,1,0,1,1,
            1,3,1,2,1,1,2,3,1,1,
            1,3,2,1,2,2,9,8,2,1,
            3,1,3,1,0,1,0,2,1,1,
            3,1,3,2,1,5,8,1,2,3,
            1,1,7,6,3,0,0,1,3,1,
            1,5,6,6,7,7,0,0,1,0,
            1,1,1,2,4,2,2,1,5,1,
            1,1,1,1,1,1,2,1,0,1,
            3,1,1,2,3,2,1,2,2,1,
            0,1,3,3,5,5,4,1,1,1,
            1,0,1,5,2,2,1,2,2,1,
            0,1,3,4,3,1,1,5,2,1,
            1,3,3,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,2,
            2,7,1,0,1,3,1,1,2,4,
            2,4,7,9,5,1,3,1,0,1,
            1,2,4,4,2,1,2,5,5,3,
            3,1,4,3,1,0,1,3,1,1,
            -107,0,0,0,-2,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-4,0,0,0,0,0,
            -536,0,0,0,-10,0,0,0,0,0,
            -49,0,0,-54,0,-289,0,0,0,0,
            0,0,0,0,0,0,0,0,-58,0,
            0,0,-59,0,-306,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-5,0,
            -414,0,0,0,-187,0,0,0,0,-177,
            0,0,-16,0,0,0,0,0,0,0,
            0,0,0,-121,-1,0,0,0,0,0,
            0,-176,0,0,0,0,0,0,0,0,
            0,0,0,-62,0,0,0,0,0,0,
            -262,0,-357,0,0,-271,0,0,0,0,
            0,0,-300,-50,0,0,0,0,0,0,
            0,0,0,0,-114,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-57,0,0,0,0,0,
            0,0,0,-116,0,0,0,-118,0,-275,
            0,-135,0,0,0,-234,-317,0,0,0,
            0,0,0,-115,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-104,-61,0,
            0,0,0,0,0,0,0,0,-6,0,
            0,-126,0,0,0,0,0,-68,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-7,0,0,
            -224,0,0,0,-130,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-53,-196,
            0,0,0,0,-389,0,0,-181,-162,-8,
            0,0,0,0,0,0,0,0,0,0,
            0,-9,0,-218,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-128,0,0,0,0,0,0,
            0,0,-11,-165,0,0,0,0,0,0,
            -105,-170,0,0,-51,0,0,0,0,-12,
            0,0,-69,0,0,0,-129,0,0,0,
            0,0,0,0,0,0,0,0,-166,0,
            -513,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-13,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-537,0,0,0,-15,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-132,
            0,0,0,-28,-113,0,0,0,-163,0,
            0,0,-119,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-395,0,0,0,0,0,0,
            0,-103,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-255,0,0,0,0,
            0,0,0,0,0,-123,0,0,-29,-297,
            0,0,0,0,0,-272,0,0,-17,0,
            -137,-142,0,-30,-444,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-417,
            0,0,0,0,-141,0,0,0,-3,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-228,0,0,0,0,0,0,0,
            0,0,-31,0,0,0,0,0,0,0,
            0,-319,0,0,0,-32,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-184,0,0,0,0,-322,0,0,0,
            -257,-33,0,0,0,-283,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-34,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-334,0,0,0,-335,0,
            0,0,0,-35,0,0,0,0,0,0,
            -323,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-225,0,0,0,0,0,
            -386,0,0,0,0,0,0,0,0,-36,
            -205,0,0,-18,0,0,0,0,-324,0,
            0,0,-37,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-186,-39,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-299,0,0,0,
            0,0,0,0,0,0,-377,0,0,0,
            0,0,0,0,0,-41,0,0,0,-38,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-40,0,0,0,0,
            -342,0,0,0,-55,0,0,0,-91,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-56,0,0,0,0,0,-188,0,
            0,0,-405,0,0,0,0,-197,-337,0,
            0,-92,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-202,0,0,0,0,
            0,0,0,0,0,0,-376,0,0,0,
            -344,0,0,0,-93,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-195,0,0,0,0,0,
            0,0,0,-207,-219,0,0,-94,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-209,0,0,0,0,-220,0,0,
            -95,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -229,0,0,0,0,-478,0,0,0,-233,
            -221,0,0,-96,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-240,-296,0,0,-97,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -63,0,0,0,0,0,0,0,0,0,
            -469,-303,0,0,0,-247,0,0,0,-98,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-211,0,0,0,0,0,0,
            0,0,0,0,-385,0,0,0,-248,0,
            0,0,-99,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-64,0,0,0,
            0,0,0,0,0,0,-528,-399,0,0,
            0,-249,0,0,0,-100,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-298,
            0,0,0,0,0,0,0,0,0,0,
            -66,0,0,0,-250,-286,0,0,-101,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-67,0,0,0,0,0,0,0,
            0,0,-529,-254,0,0,0,0,-108,0,
            0,-203,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-327,0,0,0,0,
            0,0,0,0,0,0,-267,0,0,0,
            0,-109,0,0,-531,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-320,0,
            0,0,0,0,-268,0,0,0,0,-270,
            0,0,0,0,-279,0,0,-345,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-498,0,0,0,0,0,-274,0,0,
            0,0,-110,0,0,0,-356,0,0,0,
            -111,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-282,0,0,0,
            0,-360,0,0,0,-223,0,0,0,-435,
            0,0,0,-131,-380,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-143,-287,
            0,0,0,-381,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-144,0,
            0,0,-232,0,0,0,-437,0,0,0,
            -145,-455,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-146,-292,0,0,0,
            -90,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-147,0,0,0,0,0,
            0,0,0,0,-138,0,0,0,-294,0,
            0,0,0,0,0,0,0,-148,-88,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-347,0,
            0,-89,0,0,0,-149,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-150,0,0,0,0,
            0,-151,0,-85,0,0,0,-152,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-265,0,0,
            0,0,0,-86,0,0,0,-153,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-154,0,0,
            0,0,-87,0,0,0,-314,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-355,0,0,0,
            0,-396,0,0,0,0,0,0,0,0,
            0,0,0,0,-79,0,0,0,-155,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-156,0,
            0,0,-71,-310,-365,0,0,-140,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-375,0,0,
            0,0,0,0,0,0,0,0,0,-378,
            0,0,0,0,0,-157,-80,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -465,0,0,0,0,-158,-471,0,0,0,
            -472,0,0,0,0,0,0,-538,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-354,0,-238,0,0,0,-159,0,0,
            0,0,0,0,-266,0,-81,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -160,0,0,0,-82,0,0,0,-161,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-167,0,
            0,0,-242,0,0,0,0,0,0,0,
            0,0,0,0,0,-290,-47,0,0,0,
            0,-168,-321,-305,0,0,0,0,0,0,
            0,0,0,0,0,0,-295,-190,0,0,
            0,0,0,0,-112,-52,0,0,0,-136,
            0,0,0,-169,-127,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-172,-236,
            0,-48,0,0,0,0,-173,-102,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -239,0,0,0,0,0,0,0,0,0,
            0,0,0,-328,0,-174,-388,0,0,-106,
            0,0,0,0,-373,0,-392,0,-343,0,
            0,0,-175,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-20,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-359,0,0,-178,
            -201,0,0,0,0,-179,0,0,0,0,
            0,0,0,0,0,0,-180,0,0,0,
            0,0,0,0,0,0,0,0,0,-183,
            0,0,0,0,0,0,-120,0,0,0,
            -83,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-311,0,0,-84,0,0,
            0,-191,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-433,0,0,-164,0,-212,0,0,0,
            0,-304,0,-390,-117,0,-182,0,0,0,
            -246,0,0,0,0,0,-308,0,0,-192,
            0,0,0,0,0,-418,0,-412,0,-453,
            0,0,0,0,0,-198,0,0,0,0,
            0,0,0,0,0,0,0,0,-309,-206,
            0,0,0,0,-259,0,0,-216,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-325,0,0,0,0,0,0,0,-363,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-217,0,0,0,0,
            0,0,0,0,0,-530,0,0,0,0,
            0,0,0,0,0,0,0,0,-74,0,
            0,0,-351,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-326,0,0,0,-331,-427,
            -244,-333,0,0,0,0,-226,0,-336,-434,
            0,0,0,-413,0,0,0,0,0,0,
            0,-237,0,0,0,-204,0,0,0,0,
            0,0,0,-330,0,0,0,-364,0,0,
            0,0,0,0,0,0,-475,0,0,0,
            0,-75,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-139,0,0,
            0,0,0,0,0,-273,0,0,0,0,
            0,0,0,0,0,0,-424,0,0,-462,
            0,0,-241,0,0,0,0,-291,-243,0,
            -352,0,0,-452,0,-122,-253,0,0,0,
            0,0,0,0,-258,0,0,0,0,0,
            0,0,0,0,0,0,0,-485,0,0,
            -353,0,0,-260,-425,0,0,0,0,0,
            0,0,0,0,0,0,-339,-261,-313,0,
            0,0,-293,0,0,0,0,0,0,0,
            0,0,0,0,0,-487,0,0,0,0,
            0,0,0,0,0,0,0,-470,0,0,
            0,0,0,0,-372,0,0,0,-276,0,
            -404,0,0,0,0,0,0,0,0,0,
            0,0,0,-504,0,0,-280,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-312,0,0,0,-341,0,-281,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-518,0,0,-542,0,0,-284,-235,-285,
            0,0,0,0,0,0,0,0,0,0,
            -361,-499,-421,-367,0,0,0,0,-473,0,
            0,0,0,0,0,0,0,0,0,-520,
            0,0,-391,0,0,-422,0,0,0,0,
            0,-301,0,0,0,0,0,0,0,-302,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-134,0,0,
            -278,0,0,-307,0,0,0,0,0,0,
            0,0,0,0,0,0,-171,0,0,0,
            -185,0,0,0,-464,0,0,0,0,0,
            0,0,0,0,0,-522,0,0,0,0,
            0,0,0,0,0,0,0,0,-362,-70,
            0,0,0,0,-490,0,-468,0,0,0,
            0,0,-524,-416,0,0,0,0,-402,0,
            0,0,0,0,-403,0,0,-124,0,0,
            -350,-231,0,0,0,0,0,-358,0,-245,
            0,0,0,0,0,0,0,0,-315,0,
            0,0,0,-406,-43,0,-316,0,0,0,
            0,0,0,0,0,0,0,0,0,-332,
            -382,0,-227,0,0,0,-346,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-446,-420,0,-539,0,0,0,0,-457,
            0,0,0,0,0,0,-476,0,0,0,
            0,-441,0,0,0,0,0,0,0,0,
            0,0,-213,-443,0,0,0,0,-526,0,
            0,0,0,0,0,-429,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-544,0,0,-466,0,-467,-199,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -348,-368,-480,-44,0,0,0,0,-493,0,
            -432,0,0,-371,0,-474,-384,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-477,0,
            0,0,0,-269,0,0,-494,0,0,0,
            0,0,0,0,0,0,0,-76,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-77,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-78,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-21,
            0,0,0,-397,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-22,0,0,0,-398,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-23,0,0,0,-400,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-24,0,
            0,0,-401,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-25,0,0,0,-407,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-26,0,0,0,-409,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-27,0,0,
            0,-415,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -60,0,0,0,-423,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-72,0,0,0,-430,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-73,0,0,0,
            -431,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-193,
            0,0,0,-454,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-379,0,0,0,0,0,0,0,
            0,0,0,0,0,-482,-445,0,0,0,
            0,0,0,0,0,0,0,0,0,-19,
            0,0,0,-456,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-366,-214,-458,-215,0,0,-251,0,-459,
            -460,0,0,0,0,-394,0,0,-501,0,
            -496,-448,0,0,0,0,0,0,0,0,
            0,0,0,-461,0,-463,-500,0,-505,0,
            0,-481,0,0,0,-514,0,0,0,0,
            0,-483,0,0,0,0,0,0,-479,0,
            0,-509,0,0,0,0,0,0,0,0,
            0,-507,0,-189,0,0,0,0,-484,0,
            0,0,0,-14,0,0,0,0,-442,0,
            0,0,0,0,0,0,0,-511,0,0,
            0,-486,-45,0,-410,0,0,0,0,0,
            -512,-517,0,-491,0,0,0,0,0,0,
            0,0,-515,-277,0,-516,0,0,0,0,
            0,0,-525,-495,-533,0,0,0,0,0,
            0,0,0,0,-125,0,0,0,0,0,
            -502,-510,0,0,-519,-527,0,0,0,0,
            0,0,-532,0,0,-521,0,0,0,0,
            -543,0,0,0,0,-383,0,0,0,0,
            0,0,0,0,0,0,0,0,-506,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-534,0,-263,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-535,0,-540,0,0,0,0,-541,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-338,0,0,0,0,0,0,0,
            0,0,0,0,-369,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-230,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -393,0,0,0,0,0,0,0,0,0,
            0,0,-419,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-288,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-428,0,
            0,0,0,0,0,0,0,0,0,0,
            -252,0,-318,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-370,0,0,0,0,0,
            0,0,0,0,0,0,0,-436,0,-523,
            -222,0,0,0,0,0,0,0,0,0,
            -264,0,0,0,0,0,-208,0,0,-46,
            0,0,0,0,0,0,-329,0,0,0,
            0,0,0,0,0,0,0,-133,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-340,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-349,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-387,0,0,0,
            0,0,0,-408,0,0,0,-411,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-426,0,0,0,0,-438,0,0,0,
            -374,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-508,0,0,0,0,0,0,
            0,0,-439,0,0,0,0,0,0,-447,
            0,0,0,0,0,0,-449,0,-42,0,
            0,-65,0,0,0,0,0,-200,0,0,
            0,-440,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-488,0,0,0,0,0,
            -210,0,0,0,-256,0,0,0,0,0,
            0,0,-489,0,0,0,0,-492,0,-194,
            0,0,0,0,0,0,0,-450,0,-451,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -497,0,-503,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            176,4,137,82,82,34,34,68,68,39,
            39,43,43,202,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,66,66,5,5,
            12,12,45,45,138,138,139,57,57,44,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,18,
            140,140,140,114,114,19,19,19,19,19,
            19,19,19,19,19,19,19,19,20,20,
            177,177,178,178,179,143,143,144,144,141,
            141,145,142,142,21,21,22,23,23,23,
            25,25,25,25,26,26,26,27,27,27,
            28,28,28,28,28,29,29,29,31,31,
            32,32,33,33,36,36,37,37,38,38,
            42,42,41,41,41,41,41,41,41,41,
            41,41,41,41,41,40,30,146,146,96,
            96,180,180,91,203,203,69,69,69,69,
            69,69,69,69,69,70,70,70,67,67,
            56,56,181,181,71,71,71,102,102,182,
            182,72,72,72,72,183,183,73,73,73,
            73,73,74,74,83,83,83,83,83,83,
            83,83,51,51,51,51,51,115,115,113,
            113,52,184,24,24,24,24,24,49,49,
            86,86,86,86,86,153,153,148,148,148,
            148,148,149,149,149,150,150,150,151,151,
            151,152,152,152,87,87,87,87,87,88,
            88,88,13,14,14,14,14,14,14,14,
            14,14,14,14,97,119,119,119,119,119,
            119,117,117,117,154,155,155,118,118,185,
            157,157,156,156,121,121,103,80,80,122,
            54,48,158,158,55,53,85,85,159,159,
            147,147,123,124,124,125,77,77,160,160,
            64,64,64,61,61,60,65,65,76,76,
            59,59,59,50,89,89,99,98,98,63,
            63,62,62,58,58,46,100,100,100,92,
            92,92,93,93,94,94,94,95,95,104,
            104,104,106,106,105,105,204,204,90,90,
            187,187,187,187,187,127,47,47,162,186,
            186,128,128,129,129,129,130,164,188,188,
            35,35,116,131,131,131,131,190,108,107,
            107,120,120,120,165,166,166,166,166,166,
            166,166,166,166,166,166,192,192,189,189,
            191,191,167,168,168,168,168,169,193,110,
            109,109,194,194,170,170,170,170,101,101,
            101,195,195,8,8,9,196,196,197,171,
            161,161,172,172,173,174,174,7,7,10,
            198,198,198,198,198,198,198,198,198,198,
            198,198,198,198,198,198,198,198,198,198,
            198,198,198,198,198,198,198,198,198,198,
            198,198,198,198,198,198,198,198,198,198,
            198,198,78,81,81,175,175,133,133,134,
            134,134,134,134,134,3,135,135,132,132,
            111,111,84,79,75,75,163,163,112,112,
            199,199,199,136,136,126,126,200,200,176,
            176,1119,35,2754,2722,1791,3467,27,30,31,
            995,1019,26,28,2699,262,25,23,50,1054,
            106,76,77,107,1139,73,1233,1154,1282,1246,
            1334,150,1310,1393,1380,155,274,1480,1506,142,
            2717,49,157,143,1618,695,1892,35,950,32,
            4557,4443,27,30,31,995,1019,341,28,587,
            1941,2164,34,1618,232,1869,35,950,32,3531,
            4443,27,30,31,995,1019,341,28,500,71,
            353,587,35,1887,391,2275,1223,235,230,231,
            587,35,3066,1504,35,950,32,24,275,41,
            30,31,995,1019,1229,2253,321,2200,323,1199,
            316,1946,587,35,2164,3028,434,242,245,248,
            251,644,354,2804,1312,321,2200,323,1721,316,
            1946,322,1063,587,3549,155,1476,3549,346,969,
            934,351,2804,135,49,539,1644,565,754,2975,
            738,2907,3236,3528,4245,2320,35,950,32,2746,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,345,
            1233,1154,1282,1246,1334,49,1310,1393,1380,835,
            742,1480,1506,142,1446,384,520,143,1225,2977,
            2493,2810,1718,35,950,32,1631,1631,40,30,
            31,995,1019,521,2320,35,950,32,2746,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,107,1139,345,1233,
            1154,1282,1246,1334,2900,1310,1393,1380,1618,1547,
            1480,1506,142,334,291,520,143,290,1432,1592,
            2810,232,327,35,280,1559,516,4174,1217,35,
            950,32,521,3198,27,30,31,995,1019,57,
            28,545,69,878,244,230,231,2870,1766,1812,
            2876,69,2467,3557,3471,2320,35,950,32,2746,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,345,
            1233,1154,1282,1246,1334,516,1310,1393,1380,1088,
            2125,1480,1506,142,3379,1906,520,143,2038,1446,
            1853,2810,88,2977,2977,102,2887,740,3538,2876,
            3319,3319,2086,521,2528,35,950,32,2746,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,107,1139,345,1233,
            1154,1282,1246,1334,1088,1310,1393,1380,2900,2900,
            1480,1506,142,1377,1456,520,143,335,334,2027,
            2810,1618,327,35,280,1603,516,4811,61,734,
            2229,501,521,1381,35,950,32,1088,3198,27,
            30,31,995,1019,56,28,4568,2990,3146,1877,
            2876,2663,35,950,32,68,1384,27,30,31,
            995,1019,26,28,933,262,25,23,50,1054,
            106,76,77,107,1139,2230,1233,1154,1282,1246,
            1334,358,1310,1393,1380,517,463,1480,1506,142,
            355,535,381,143,3709,2389,35,950,32,2246,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,462,
            1233,1154,1282,1246,1334,356,1310,1393,1380,93,
            1088,1480,1506,142,2249,1618,381,143,3709,2837,
            35,950,32,1611,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,3375,1233,1154,1282,1246,1334,53,
            1310,1393,1380,60,2075,1480,3020,163,4413,388,
            382,1726,3127,35,950,32,1272,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,752,1233,1154,1282,
            1246,1334,4030,1310,1393,1380,241,3593,2679,413,
            1800,329,446,389,382,1726,587,35,283,49,
            1381,1618,1088,1199,1449,2595,35,950,32,3629,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,155,
            1233,1154,1282,1246,1334,87,1310,1393,1380,603,
            1906,1480,1506,142,392,1618,381,143,3709,2892,
            35,950,32,1325,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,1611,1233,1154,1282,1246,1334,52,
            1310,1393,1380,64,51,1480,1506,142,330,337,
            157,143,3127,35,950,32,2288,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,2070,1233,1154,1282,
            1246,1334,49,1310,1393,1380,4531,1800,1480,3020,
            163,1621,330,379,382,1726,2892,35,950,32,
            1549,1384,27,30,31,995,1019,26,28,933,
            262,25,23,50,1054,106,76,77,107,1139,
            494,1233,1154,1282,1246,1334,357,1310,1393,1380,
            407,625,1480,1506,142,1800,535,375,143,1718,
            35,950,32,2152,1243,2535,30,31,995,1019,
            1325,2892,35,950,32,565,1384,27,30,31,
            995,1019,26,28,933,262,25,23,50,1054,
            106,76,77,107,1139,2448,1233,1154,1282,1246,
            1334,1951,1310,1393,1380,3391,337,1480,1506,142,
            400,1088,375,143,2156,35,1887,391,1325,2892,
            35,950,32,1409,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,374,1233,1154,1282,1246,1334,49,
            1310,1393,1380,336,337,1480,1506,142,1801,664,
            375,143,155,2461,35,950,32,3573,1384,27,
            30,31,995,1019,26,28,933,262,25,23,
            50,1054,106,76,77,107,1139,1611,1233,1154,
            1282,1246,1334,328,1310,1393,1380,1611,373,1480,
            1506,142,441,2065,141,143,2892,35,950,32,
            1105,1384,27,30,31,995,1019,26,28,933,
            262,25,23,50,1054,106,76,77,107,1139,
            3129,1233,1154,1282,1246,1334,1620,1310,1393,1380,
            3554,2519,1480,1506,142,416,371,158,143,2892,
            35,950,32,378,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,1447,1233,1154,1282,1246,1334,155,
            1310,1393,1380,1611,4385,1480,1506,142,1618,1611,
            154,143,2892,35,950,32,3134,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,1336,1233,1154,1282,
            1246,1334,90,1310,1393,1380,3554,2519,1480,1506,
            142,2556,3394,153,143,2892,35,950,32,378,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,376,
            1233,1154,1282,1246,1334,49,1310,1393,1380,746,
            405,1480,1506,142,1618,56,152,143,2892,35,
            950,32,742,1384,27,30,31,995,1019,26,
            28,933,262,25,23,50,1054,106,76,77,
            107,1139,1467,1233,1154,1282,1246,1334,352,1310,
            1393,1380,450,49,1480,1506,142,3121,56,151,
            143,2892,35,950,32,3237,1384,27,30,31,
            995,1019,26,28,933,262,25,23,50,1054,
            106,76,77,107,1139,3681,1233,1154,1282,1246,
            1334,49,1310,1393,1380,676,1611,1480,1506,142,
            1618,56,150,143,2892,35,950,32,331,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,107,1139,1553,1233,
            1154,1282,1246,1334,2108,1310,1393,1380,450,4137,
            1480,1506,142,1618,56,149,143,2892,35,950,
            32,1984,1384,27,30,31,995,1019,26,28,
            933,262,25,23,50,1054,106,76,77,107,
            1139,1174,1233,1154,1282,1246,1334,2147,1310,1393,
            1380,1611,155,1480,1506,142,1618,4582,148,143,
            2892,35,950,32,3122,1384,27,30,31,995,
            1019,26,28,933,262,25,23,50,1054,106,
            76,77,107,1139,1864,1233,1154,1282,1246,1334,
            67,1310,1393,1380,3554,2631,1480,1506,142,1618,
            4668,147,143,2892,35,950,32,4121,1384,27,
            30,31,995,1019,26,28,933,262,25,23,
            50,1054,106,76,77,107,1139,2686,1233,1154,
            1282,1246,1334,66,1310,1393,1380,1611,155,1480,
            1506,142,1618,4682,146,143,2892,35,950,32,
            742,1384,27,30,31,995,1019,26,28,933,
            262,25,23,50,1054,106,76,77,107,1139,
            1312,1233,1154,1282,1246,1334,65,1310,1393,1380,
            3554,1324,1480,1506,142,1618,2559,145,143,2892,
            35,950,32,529,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,1445,1233,1154,1282,1246,1334,64,
            1310,1393,1380,1611,49,1480,1506,142,1140,160,
            144,143,2892,35,950,32,1329,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,2488,1233,1154,1282,
            1246,1334,326,1310,1393,1380,3554,49,1480,1506,
            142,2534,246,139,143,3011,35,950,32,528,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,1088,
            1233,1154,1282,1246,1334,49,1310,1393,1380,2935,
            49,1480,1506,142,3279,666,188,143,3127,35,
            950,32,742,1384,27,30,31,995,1019,26,
            28,933,262,25,23,50,1054,106,76,77,
            107,1139,1906,1233,1154,1282,1246,1334,49,1310,
            1393,1380,747,590,1480,3020,163,3127,35,950,
            32,848,1384,27,30,31,995,1019,26,28,
            933,262,25,23,50,1054,106,76,77,107,
            1139,97,1233,1154,1282,1246,1334,49,1310,1393,
            1380,1277,1088,1480,3020,163,587,35,2645,2428,
            587,35,1887,391,2687,3127,35,950,32,426,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,70,
            1233,1154,1282,1246,1334,455,1310,1393,1380,408,
            1964,1480,3020,163,3127,35,950,32,295,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,107,1139,325,1233,
            1154,1282,1246,1334,98,1310,1393,1380,535,580,
            1480,3020,163,587,35,2164,277,587,35,1887,
            391,1015,3182,35,950,32,425,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,327,1233,1154,1282,
            1246,1334,437,1310,1393,1380,1234,1618,1480,3020,
            163,3127,35,950,32,428,1384,27,30,31,
            995,1019,26,28,933,262,25,23,50,1054,
            106,76,77,107,1139,1378,1233,1154,1282,1246,
            1334,3119,1310,1393,2638,1785,35,950,32,1618,
            4758,27,30,31,995,1019,59,28,846,3127,
            35,950,32,4202,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,55,1233,1154,1282,1246,1334,2720,
            1310,2576,3127,35,950,32,932,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,1311,1233,1154,1282,
            1246,1334,1548,2606,3127,35,950,32,1591,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,107,1139,69,1233,
            1154,1282,1246,2458,3127,35,950,32,1679,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,107,1139,1278,1233,
            1154,1282,2509,3127,35,950,32,2585,1384,27,
            30,31,995,1019,26,28,933,262,25,23,
            50,1054,106,76,77,107,1139,752,1233,1154,
            1282,2529,1522,35,950,32,3531,4599,27,30,
            31,995,1019,341,28,3127,35,950,32,2429,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,2562,
            1233,1154,2338,49,2437,1795,2987,1199,1785,35,
            950,32,2900,4758,27,30,31,995,1019,58,
            28,334,321,2200,323,287,316,1946,1718,35,
            950,32,424,155,3321,30,31,995,1019,315,
            327,35,456,1152,409,4664,1707,3127,35,950,
            32,2819,1384,27,30,31,995,1019,26,28,
            933,262,25,23,50,1054,106,76,77,107,
            1139,2560,1233,1154,2376,1199,2139,587,35,1887,
            391,587,35,1887,391,308,312,3416,2347,35,
            950,32,2487,4758,27,30,31,995,1019,26,
            28,155,2585,514,587,3337,2164,74,486,3393,
            200,3717,436,393,430,2695,435,3127,35,950,
            32,3965,1384,27,30,31,995,1019,26,28,
            933,262,25,23,50,1054,106,76,77,107,
            1139,2066,1233,1154,2396,3127,35,950,32,1127,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,107,1139,2050,
            1233,1154,2402,2067,35,950,32,2716,4443,27,
            30,31,995,1019,341,28,1446,587,35,1887,
            391,2977,3327,666,1401,35,3671,32,3531,4599,
            27,30,31,995,1019,341,28,1618,587,35,
            1887,391,449,3896,3919,1280,3237,35,1887,391,
            1352,2755,49,3019,1457,674,35,1887,391,237,
            262,1801,2745,321,2200,323,2900,316,1946,2132,
            2411,54,1355,274,2900,334,1199,2225,49,354,
            3380,274,1199,334,321,2200,323,2807,316,1946,
            49,1101,35,2164,3359,346,969,934,351,1801,
            2942,2369,159,3378,1618,3154,2235,752,155,232,
            2151,652,2738,2819,879,1706,3658,752,2671,1956,
            35,950,32,2350,4599,27,30,31,995,1019,
            341,28,235,230,231,276,3658,71,324,3127,
            35,950,32,275,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,85,242,245,248,251,644,1618,1055,2900,
            1267,757,35,1887,391,288,761,1063,335,321,
            2200,323,630,319,1946,298,354,1726,42,3006,
            368,420,422,3577,2975,738,2907,3236,3528,4245,
            1226,101,346,969,934,351,274,1240,44,3006,
            344,3127,35,950,32,1601,1384,27,30,31,
            995,1019,26,28,933,262,25,23,50,1054,
            106,76,77,107,1139,2437,1233,2408,3127,35,
            950,32,2085,1384,27,30,31,995,1019,26,
            28,933,262,25,23,50,1054,106,76,77,
            107,1139,259,1233,2438,2555,541,49,3142,4547,
            232,1199,2384,1812,1618,3353,1511,587,35,1887,
            391,1101,35,2164,277,72,228,49,239,262,
            2310,3093,155,247,230,231,752,155,155,353,
            1,179,3600,4687,541,3554,2416,1816,3514,203,
            215,4515,49,202,212,213,214,216,168,49,
            2280,1801,1645,3231,228,1244,35,296,2418,167,
            155,182,166,169,170,171,172,173,232,179,
            3600,354,49,3554,394,430,3499,203,215,4515,
            1800,202,212,213,214,216,168,346,969,934,
            351,240,230,231,297,1644,2419,167,180,183,
            166,169,170,171,172,173,2077,35,950,32,
            2716,4443,27,30,31,995,1019,341,28,3127,
            35,950,32,2437,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,107,1139,1325,2199,587,35,1887,391,49,
            2650,1879,49,3050,2746,2746,3158,2289,683,49,
            843,35,456,4102,155,4664,321,2200,323,4733,
            316,1946,2491,3000,2703,2703,1980,1457,3413,337,
            274,2977,354,530,1364,35,950,32,1800,4599,
            27,30,31,995,1019,341,28,752,346,969,
            934,351,3127,35,950,32,531,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,1139,2900,2239,929,35,
            1887,391,396,430,2900,335,587,35,2164,279,
            508,362,342,335,321,2200,323,1618,317,1946,
            345,1325,354,2226,541,2287,3223,3229,2643,2143,
            354,2437,2746,49,2213,306,1610,2516,348,969,
            934,351,1801,1586,228,2155,348,969,934,351,
            155,3592,2703,506,507,2871,332,337,431,179,
            3600,2447,541,3554,2694,155,4657,203,215,4515,
            4740,202,212,213,214,216,168,49,2153,1476,
            3549,4691,228,587,35,2164,3570,167,155,4214,
            166,169,170,171,172,173,517,179,3600,232,
            541,3554,453,3896,3919,203,215,4515,1618,202,
            212,213,214,216,168,1244,3827,296,363,1988,
            228,1795,250,230,231,167,155,177,166,169,
            170,171,172,173,603,179,3600,2696,541,3554,
            395,430,454,203,215,4515,526,202,212,213,
            214,216,168,587,35,2164,282,49,228,2557,
            301,1597,1855,167,155,175,166,169,170,171,
            172,173,689,179,3600,150,541,3554,2424,1446,
            2450,203,215,4515,2977,202,212,213,214,216,
            168,49,752,1795,49,875,228,4066,4116,1979,
            290,167,155,176,166,169,170,171,172,173,
            775,179,3600,49,541,3554,1356,1190,683,203,
            215,4515,2417,202,212,213,214,216,168,2900,
            2697,432,221,533,228,2632,3557,1457,3451,167,
            155,186,166,169,170,171,172,173,49,179,
            3600,2241,1199,3554,2586,3687,2977,203,215,4515,
            385,202,212,213,214,216,168,2216,35,1887,
            391,1016,35,3127,1365,587,3679,167,1558,4263,
            166,169,170,171,172,173,1695,35,950,32,
            3531,4443,27,30,31,995,1019,341,28,1879,
            1355,2900,49,2746,1199,2560,49,587,4234,541,
            3451,1801,1844,861,49,1801,2156,541,3612,1016,
            35,399,94,2703,2738,1016,35,399,1784,4162,
            159,1446,2375,35,278,155,2977,228,2493,383,
            2444,35,278,155,179,3600,321,2200,323,2703,
            316,1946,179,3600,1882,49,3554,2658,2962,2746,
            203,215,4515,315,202,212,213,214,216,168,
            2623,1777,195,929,35,1887,391,2711,831,345,
            167,2900,191,166,169,170,171,172,173,362,
            334,232,1795,49,96,947,1195,4189,3206,541,
            1795,2810,314,2974,3223,3229,3283,1618,49,308,
            312,3416,1800,1989,253,230,231,1801,47,228,
            4276,3237,181,49,49,155,3988,1199,1199,2240,
            3714,305,4011,4307,179,3600,49,742,3554,178,
            4747,380,203,215,4515,3965,202,212,213,214,
            216,168,1033,155,3607,1795,541,1795,587,35,
            1887,391,167,1859,185,166,169,170,171,172,
            173,1738,2726,1795,49,1325,228,630,2746,1795,
            89,49,155,102,2734,3234,49,2732,4724,196,
            2102,179,3600,49,198,3554,197,571,345,203,
            215,4515,46,202,212,213,214,216,168,49,
            3686,337,304,3392,2453,35,281,1795,201,167,
            2810,194,166,169,170,171,172,173,3127,35,
            950,32,2032,1384,27,30,31,995,1019,26,
            28,933,262,25,23,50,1054,106,76,77,
            107,2251,3127,35,950,32,199,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,107,2286,3127,35,950,32,
            3353,1384,27,30,31,995,1019,26,28,933,
            262,25,23,50,1054,106,76,77,107,2315,
            3127,1941,950,1973,2738,1384,27,30,31,995,
            1019,26,28,933,262,25,23,50,1054,106,
            76,77,84,3127,35,950,32,2739,1384,27,
            30,31,995,1019,26,28,933,262,25,23,
            50,1054,106,76,77,83,3127,35,950,32,
            1713,1384,27,30,31,995,1019,26,28,933,
            262,25,23,50,1054,106,76,77,82,3127,
            35,950,32,2743,1384,27,30,31,995,1019,
            26,28,933,262,25,23,50,1054,106,76,
            77,81,3127,35,950,32,2753,1384,27,30,
            31,995,1019,26,28,933,262,25,23,50,
            1054,106,76,77,80,3127,35,950,32,2759,
            1384,27,30,31,995,1019,26,28,933,262,
            25,23,50,1054,106,76,77,79,3127,35,
            950,32,2761,1384,27,30,31,995,1019,26,
            28,933,262,25,23,50,1054,106,76,77,
            78,2956,35,950,32,2754,1384,27,30,31,
            995,1019,26,28,933,262,25,23,50,1054,
            106,76,77,104,3127,35,950,32,2794,1384,
            27,30,31,995,1019,26,28,933,262,25,
            23,50,1054,106,76,77,109,3127,35,950,
            32,2795,1384,27,30,31,995,1019,26,28,
            933,262,25,23,50,1054,106,76,77,108,
            3127,35,950,32,2796,1384,27,30,31,995,
            1019,26,28,933,262,25,23,50,1054,106,
            76,77,105,1992,35,3671,32,3531,4443,27,
            30,31,995,1019,341,28,2775,1869,35,950,
            32,3531,4443,27,30,31,995,1019,341,28,
            3072,35,950,32,2797,1384,27,30,31,995,
            1019,26,28,933,262,25,23,50,1054,86,
            76,77,1566,49,87,49,2746,1199,1355,1199,
            2763,2767,1199,321,2200,323,1827,316,1946,1795,
            2746,2821,587,35,296,4211,228,321,2200,323,
            2369,316,1946,155,2768,155,2769,49,159,1618,
            228,971,1977,1902,315,1945,1016,35,399,205,
            215,4515,2776,204,212,213,214,216,300,587,
            35,296,49,205,215,4515,3486,204,212,213,
            214,216,1618,3372,587,35,1887,391,527,173,
            206,208,210,3278,2719,217,207,209,2746,1914,
            309,312,3416,2746,206,208,210,3278,1618,217,
            207,209,2799,49,2329,2447,3410,2746,345,49,
            4657,2213,2619,228,2584,2817,3076,4401,1801,3532,
            421,422,3577,1618,49,3673,1618,345,1199,2996,
            945,4401,3513,2824,2800,2685,205,215,4515,1199,
            204,212,213,214,216,3286,35,1887,391,2810,
            2755,2826,2778,4256,155,2802,2803,1897,238,262,
            1983,2113,4119,2746,2059,155,1795,206,208,210,
            3278,1990,217,207,209,161,1956,35,950,32,
            274,4599,27,30,31,995,1019,341,28,1869,
            35,950,32,3531,4443,27,30,31,995,1019,
            341,28,3167,5442,4401,4235,1855,1795,232,1494,
            35,950,32,2724,4443,27,30,31,995,1019,
            341,28,1618,526,1618,5442,2900,5442,5442,1795,
            5442,236,230,231,5442,335,321,2200,323,5442,
            317,1946,275,2001,5442,527,222,2746,406,321,
            2200,323,5442,316,1946,1653,4329,5442,3652,2746,
            5442,243,246,249,252,644,4255,228,192,318,
            3454,323,5442,5442,4233,433,1063,5442,5442,228,
            445,5442,459,5442,5442,674,35,1887,391,5442,
            205,215,4515,5442,204,212,213,214,216,5442,
            5442,1740,205,215,4515,2746,204,212,213,214,
            216,5442,5442,2088,5442,4324,5442,2746,5442,5442,
            49,206,208,210,3278,228,523,207,209,1801,
            47,5442,5442,206,208,210,3278,228,522,207,
            209,5442,1146,674,35,1887,391,5442,205,215,
            4515,5442,204,212,213,214,216,5442,5442,2175,
            205,215,4515,2746,204,212,213,214,216,2972,
            5442,1355,5442,1355,5442,1199,5442,1199,49,206,
            208,210,3278,228,218,207,209,1801,2016,5442,
            5442,206,208,210,3278,5442,307,207,209,5442,
            3115,159,5442,159,5442,5442,205,215,4515,5442,
            204,212,213,214,216,2160,35,950,32,2492,
            4443,27,30,31,995,1019,341,28,1355,5442,
            49,1180,1199,5442,1199,2746,4815,206,208,210,
            3278,1286,502,207,209,2746,4815,1901,5442,5442,
            49,2746,2977,5442,2746,228,5442,1901,159,5442,
            155,2746,2977,5442,5442,228,5442,2737,1878,2867,
            4322,2703,2746,5442,345,318,3454,323,1281,410,
            4309,2703,929,35,1887,391,5442,5442,1281,410,
            4309,5442,345,5442,5442,5442,2810,2900,5442,674,
            35,1887,391,5442,5442,5442,334,2900,2121,411,
            412,413,3278,5442,870,5442,334,49,5442,411,
            412,413,3278,5442,3308,5442,1801,47,5442,5442,
            5442,5442,3245,5442,49,5442,3146,362,5442,2558,
            5442,5442,3245,1801,3571,5442,3154,362,5442,5442,
            5442,1773,3223,3229,5442,5442,3115,674,35,1887,
            391,1773,3223,3229,674,35,1887,391,674,35,
            1887,391,5442,5442,5442,2972,5442,5442,5442,5442,
            5442,5442,1649,35,1887,391,5442,674,35,1887,
            391,2650,49,5442,5442,2746,414,416,5442,49,
            5442,1801,47,49,5442,5442,414,417,1801,47,
            5442,5442,1801,47,621,2703,5442,49,5442,5442,
            1126,2160,49,4541,2721,2247,1801,47,541,5442,
            5442,1801,47,674,35,1887,391,5442,5442,4122,
            2168,35,1887,391,2607,5442,1635,2651,345,49,
            5442,2746,49,541,155,5442,541,5442,587,35,
            1887,391,2517,5442,187,5442,2746,5442,49,5442,
            4289,2703,5442,345,5442,49,345,1801,47,155,
            5442,508,155,5442,1801,47,345,5442,5442,941,
            2611,5442,603,49,5442,2810,534,4159,2810,5442,
            5442,5442,1801,664,5442,49,5442,788,2810,541,
            1151,587,35,1887,391,587,35,1887,391,5442,
            537,5442,5442,49,505,507,189,541,49,345,
            49,5442,541,5442,2746,155,5442,508,49,5442,
            49,5442,2746,5442,2746,187,49,345,5442,5442,
            49,4289,345,155,345,1801,3540,5442,155,1801,
            1930,5442,345,187,345,5442,3850,5442,187,4289,
            5442,49,5442,2810,4289,2746,2810,2746,5442,5442,
            505,507,5442,5442,2810,5442,2810,5442,1730,5442,
            5442,5442,5442,5442,5442,345,512,345,510,5442,
            5442,5442,5442,5442,5442,5442,4266,4139,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,2810,5442,4212,
            5442,5442,4142,5442,5442,4172,5442,5442,5442,538,
            4198,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,3399,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,4226,5442,0,39,5457,0,39,5456,
            0,581,29,0,443,684,0,457,725,0,
            38,599,0,38,5457,0,38,5456,0,2647,
            125,0,1,447,0,461,924,0,460,957,
            0,3448,91,0,581,390,0,35,33,0,
            32,34,0,39,599,0,1,575,0,1,
            5715,0,1,5714,0,1,5713,0,1,5712,
            0,1,5711,0,1,5710,0,1,5709,0,
            1,5708,0,1,5707,0,1,5706,0,1,
            5705,0,39,1,5457,0,39,1,5456,0,
            633,1,0,284,397,0,284,289,0,5676,
            241,0,5675,241,0,5782,241,0,5781,241,
            0,5703,241,0,5702,241,0,5701,241,0,
            5700,241,0,5699,241,0,5698,241,0,5697,
            241,0,5696,241,0,5715,241,0,5714,241,
            0,5713,241,0,5712,241,0,5711,241,0,
            5710,241,0,5709,241,0,5708,241,0,5707,
            241,0,5706,241,0,5705,241,0,39,5457,
            241,0,39,5456,241,0,5480,241,0,5457,
            48,0,5456,48,0,43,5478,0,43,37,
            0,2647,127,0,2647,126,0,5448,1,0,
            5447,1,0,2772,237,0,32,391,0,29,
            390,0,333,448,0,1,92,0,47,37,
            0,5480,1,0,39,1,0,504,3264,0,
            5480,1,229,0,39,1,229,0,229,419,
            0,5457,37,0,5456,37,0,5478,45,0,
            37,45,0,5457,36,0,5456,36,0,5457,
            2,37,0,5456,2,37,0,5452,408,0,
            5451,408,0,1,605,0,1,4184,0,1,
            599,0,229,418,0,333,95,0,35,73,
            0,3042,320,0,1,333,0,4108,279,0,
            504,4355,0,1,229,0,229,220,0,1,
            3519,0,1,3525,0,229,219,0,5454,1,
            0,5450,1,0,1,229,4084,0,5451,229,
            0,4104,229,0,5454,386,0,5453,386,0,
            4179,229,0,10,12,0,8,10,12,0,
            4252,193,0,184,3595,0,4271,386,0,8,
            12,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,0,49,
            50,51,52,53,54,0,56,57,58,59,
            60,61,62,0,64,65,66,67,0,6,
            0,71,0,3,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,0,49,50,51,52,53,
            54,69,56,57,58,59,60,61,62,0,
            64,65,66,67,0,92,93,71,4,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            0,49,50,51,52,53,54,68,56,57,
            58,59,60,61,62,0,64,65,66,67,
            0,1,2,71,4,0,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,0,49,50,51,
            52,53,54,68,56,57,58,59,60,61,
            62,0,64,65,66,67,0,1,2,0,
            4,10,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,0,49,50,51,52,53,54,0,
            56,57,58,59,60,61,62,0,64,65,
            66,67,0,6,0,0,87,88,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,63,49,
            50,51,52,53,54,0,56,57,58,59,
            60,61,62,0,64,65,66,67,99,92,
            93,89,9,91,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,0,49,50,51,52,53,
            54,0,56,57,58,59,60,61,62,0,
            64,65,66,67,99,6,0,1,2,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            0,49,50,51,52,53,54,68,56,57,
            58,59,60,61,62,0,64,65,66,67,
            5,92,93,0,1,2,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,0,49,50,51,
            52,53,54,0,56,57,58,59,60,61,
            62,0,64,65,66,67,0,1,2,8,
            0,5,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,71,49,50,51,52,53,54,69,
            56,57,58,59,60,61,62,0,64,65,
            66,67,0,1,2,0,4,0,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,0,49,
            50,51,52,53,54,68,56,57,58,59,
            60,61,62,0,64,65,66,67,0,1,
            2,0,87,88,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,0,49,50,51,52,53,
            54,0,56,57,58,59,60,61,62,0,
            64,65,66,67,0,0,1,2,87,88,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            0,49,50,51,52,53,54,0,56,57,
            58,59,60,61,62,8,64,65,66,67,
            0,1,2,89,0,91,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,0,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,0,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,0,49,50,51,
            52,53,54,0,56,57,58,4,60,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,100,118,27,28,29,30,
            31,32,33,34,35,36,0,1,2,40,
            4,5,0,7,0,0,100,48,0,1,
            2,6,4,0,9,56,57,58,59,0,
            61,62,0,0,1,2,22,23,24,0,
            71,72,28,29,30,31,32,33,34,35,
            36,22,23,24,48,86,0,28,29,30,
            31,32,33,34,35,36,48,0,0,0,
            1,2,103,104,105,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,0,27,28,29,30,31,32,33,34,
            35,36,89,0,91,40,3,48,0,6,
            0,8,9,48,68,0,1,2,96,97,
            5,56,57,58,59,0,61,62,25,26,
            27,0,1,2,0,0,71,72,3,48,
            37,38,8,0,1,2,3,4,5,6,
            7,86,9,96,97,0,0,0,55,3,
            0,1,2,48,4,5,63,7,103,104,
            105,68,69,70,71,72,73,87,88,48,
            0,1,2,3,4,5,6,7,0,9,
            87,88,89,90,91,92,93,94,95,96,
            97,98,99,100,101,70,63,73,48,106,
            107,108,109,110,111,112,113,114,115,116,
            117,118,119,120,0,0,0,3,0,4,
            6,6,8,9,9,0,0,1,2,3,
            4,5,6,7,8,9,89,0,91,25,
            26,27,72,25,26,0,1,2,22,23,
            24,37,38,27,28,29,30,31,32,33,
            34,35,36,0,1,2,3,4,5,55,
            7,8,0,0,1,2,98,63,5,63,
            7,55,68,69,70,71,72,73,63,63,
            27,0,1,2,3,4,5,6,7,73,
            9,87,88,89,90,91,92,93,94,95,
            96,97,98,99,100,101,0,0,0,3,
            106,107,108,109,110,111,112,113,114,115,
            116,117,118,119,120,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,0,27,28,29,30,31,32,33,34,
            35,36,0,1,2,40,4,0,6,0,
            0,9,0,48,0,25,26,0,8,0,
            0,56,57,58,59,8,61,62,8,64,
            0,22,23,24,87,88,71,28,29,30,
            31,32,33,34,35,36,55,27,0,1,
            2,86,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,67,0,27,
            28,29,30,31,32,33,34,35,36,70,
            73,0,40,63,0,1,2,3,4,5,
            48,7,8,25,26,0,0,55,56,57,
            58,59,0,61,62,10,64,0,1,2,
            101,27,5,0,7,0,107,108,109,110,
            111,112,113,114,115,116,117,0,86,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,59,0,27,28,29,30,
            31,32,33,34,35,36,0,1,2,40,
            68,69,6,0,0,1,2,48,4,5,
            0,7,55,68,0,56,57,58,59,0,
            61,62,8,64,98,22,23,24,0,72,
            71,28,29,30,31,32,33,34,35,36,
            55,27,23,24,48,86,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,0,0,27,28,29,30,31,32,33,
            34,35,36,0,1,2,40,0,0,1,
            2,3,4,5,48,7,0,0,0,3,
            3,0,56,57,58,59,8,61,62,8,
            64,0,1,2,3,4,5,71,7,8,
            0,1,2,0,4,0,6,55,8,9,
            120,48,86,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,0,63,
            27,28,29,30,31,32,33,34,35,36,
            0,73,71,40,63,0,1,2,3,4,
            5,48,7,0,73,60,3,0,90,56,
            57,58,59,73,61,62,0,64,0,0,
            1,2,3,4,71,6,8,0,9,0,
            90,0,1,2,3,4,5,8,7,86,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,0,63,27,28,29,
            30,31,32,33,34,35,36,0,1,2,
            40,4,63,6,68,69,9,69,48,0,
            63,73,3,103,104,105,56,57,58,59,
            71,61,62,72,64,0,0,1,2,3,
            4,5,6,7,0,9,0,1,2,3,
            4,5,8,7,0,0,86,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,0,0,27,28,29,30,31,32,
            33,34,35,36,0,1,2,40,4,63,
            6,0,48,9,3,48,70,72,0,63,
            55,67,0,56,57,58,59,9,61,62,
            0,64,0,3,0,0,1,2,8,0,
            1,2,3,4,5,0,7,0,1,2,
            0,1,2,86,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,0,
            48,27,28,29,30,31,32,33,34,35,
            36,69,0,63,40,0,1,2,68,69,
            65,66,48,73,0,0,72,3,0,0,
            56,57,58,59,0,61,62,3,64,0,
            0,1,2,0,4,0,6,8,0,9,
            0,3,0,1,2,3,4,5,6,7,
            86,9,10,11,12,13,14,15,16,17,
            18,19,20,21,0,1,2,25,26,0,
            65,66,8,55,55,37,38,0,0,37,
            38,39,4,41,42,43,44,45,46,47,
            55,49,50,51,52,53,54,0,69,0,
            71,63,60,61,102,90,0,65,66,0,
            1,2,3,4,5,6,7,0,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,67,55,55,25,26,0,1,2,0,
            4,5,3,7,106,68,37,38,39,0,
            41,42,43,44,45,46,47,119,49,50,
            51,52,53,54,0,1,2,68,0,60,
            101,94,95,0,65,66,107,68,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            0,1,2,25,26,0,0,0,0,4,
            3,3,48,0,0,37,38,39,0,41,
            42,43,44,45,46,47,0,49,50,51,
            52,53,54,0,1,2,0,0,60,0,
            4,4,0,1,2,67,0,74,48,71,
            0,1,2,3,4,5,6,7,22,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,0,55,68,25,26,0,1,2,
            0,48,0,70,4,3,68,37,38,39,
            48,41,42,43,44,45,46,47,72,49,
            50,51,52,53,54,0,0,0,0,70,
            60,6,94,95,8,65,66,0,1,2,
            3,4,5,6,7,48,9,10,11,12,
            13,14,15,16,17,18,19,20,21,103,
            104,105,25,26,0,0,0,3,0,0,
            4,0,8,8,37,38,39,8,41,42,
            43,44,45,46,47,0,49,50,51,52,
            53,54,27,0,0,0,27,60,3,73,
            72,0,65,66,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,55,63,0,25,
            26,63,0,0,69,3,8,73,0,68,
            0,37,38,39,4,41,42,43,44,45,
            46,47,0,49,50,51,52,53,54,0,
            0,0,22,69,60,94,95,0,75,10,
            10,67,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,0,25,26,40,
            40,73,8,0,0,0,0,48,48,37,
            38,39,0,41,42,43,44,45,46,47,
            0,49,50,51,52,53,54,0,0,0,
            0,3,60,5,6,0,69,9,8,67,
            0,0,90,0,4,0,3,0,0,4,
            55,55,0,25,26,0,0,27,55,55,
            55,55,0,0,0,37,38,73,0,41,
            0,3,0,3,39,3,0,0,0,3,
            3,3,70,55,0,0,39,0,3,0,
            3,63,72,65,66,55,68,69,70,70,
            55,0,0,0,0,0,0,55,0,0,
            69,0,0,0,0,87,88,89,70,0,
            92,93,94,95,96,97,98,99,100,101,
            0,69,69,0,106,0,108,109,110,111,
            112,113,114,115,116,117,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,55,0,
            0,25,26,70,70,40,121,72,72,70,
            72,70,70,37,38,39,102,41,42,43,
            44,45,46,47,0,49,50,51,52,53,
            54,0,1,2,3,4,5,6,7,90,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,0,0,0,25,26,0,0,
            0,0,102,39,0,102,0,0,37,38,
            39,0,41,42,43,44,45,46,47,0,
            49,50,51,52,53,54,0,0,0,0,
            0,60,0,0,118,0,1,2,3,4,
            5,6,7,0,9,10,11,12,13,14,
            15,16,17,18,19,20,21,0,0,0,
            25,26,0,0,0,0,0,0,0,0,
            0,0,37,38,39,0,41,42,43,44,
            45,46,47,0,49,50,51,52,53,54,
            0,1,2,3,4,5,6,7,63,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,0,0,0,25,26,0,0,0,
            0,0,0,0,0,0,0,37,38,39,
            0,41,42,43,44,45,46,47,0,49,
            50,51,52,53,54,0,0,0,0,0,
            60,0,1,2,3,4,5,6,7,0,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,0,0,0,25,26,0,0,
            0,0,0,0,0,0,0,0,37,38,
            39,0,41,42,43,44,45,46,47,0,
            49,50,51,52,53,54,0,1,2,3,
            4,5,6,7,0,9,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            0,25,26,0,0,0,0,0,0,0,
            0,0,0,37,38,39,0,41,42,43,
            44,45,46,47,0,49,50,51,52,53,
            54,0,1,2,3,4,5,6,7,0,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,0,0,0,25,26,0,0,
            0,0,0,0,0,0,0,0,37,38,
            39,0,41,42,43,44,45,46,47,0,
            49,50,51,52,53,54,0,1,2,0,
            4,0,0,0,0,0,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,0,0,0,28,29,30,31,32,33,
            34,35,36,0,0,0,40,0,0,0,
            0,0,0,0,0,0,1,2,0,4,
            0,0,56,57,58,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,0,0,28,29,30,31,32,33,34,
            35,36,0,0,0,40,0,1,2,3,
            4,5,6,7,8,9,0,0,0,0,
            0,56,57,58,0,0,0,0,22,23,
            24,0,0,27,28,29,30,31,32,33,
            34,35,36,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,0,0,0,
            28,29,30,31,32,33,34,35,36,63,
            0,0,0,0,0,0,0,0,0,73,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            5442,5404,5383,5383,5383,5383,5383,5383,5420,5383,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,5408,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,333,1,1,1,3507,
            1,5616,2815,114,3684,1,1,5453,398,3776,
            5442,5449,156,4749,1811,4136,3657,2252,3655,4034,
            3220,4134,3475,4111,2601,4110,10,5423,5423,5423,
            5423,5423,5423,5423,5423,5423,5423,5423,5423,5423,
            5423,5423,5423,5423,5423,5423,5423,5423,5423,5423,
            5423,5423,5423,5423,5423,5423,5423,5423,5423,5423,
            5423,5423,5423,5423,5423,5423,5423,5423,5423,5423,
            5423,5423,5423,5423,299,5423,5423,5423,5423,5423,
            5423,1476,5423,5423,5423,5423,5423,5423,5423,387,
            5423,5423,5423,5423,39,3752,3728,5423,5480,5442,
            5423,5423,5423,5423,5423,5423,5423,5423,5423,5423,
            5423,5423,8,5426,5426,5426,5426,5426,5426,5426,
            5426,5426,5426,5426,5426,5426,5426,5426,5426,5426,
            5426,5426,5426,5426,5426,5426,5426,5426,5426,5426,
            5426,5426,5426,5426,5426,5426,5426,5426,5426,5426,
            5426,5426,5426,5426,5426,5426,5426,5426,5426,5426,
            5442,5426,5426,5426,5426,5426,5426,2769,5426,5426,
            5426,5426,5426,5426,5426,5442,5426,5426,5426,5426,
            289,5176,5176,5426,284,5442,5426,5426,5426,5426,
            5426,5426,5426,5426,5426,5426,5426,5426,5442,5404,
            5383,5383,5383,5383,5383,5383,5411,5383,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,5408,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,5442,1,1,1,
            1,1,1,2777,1,1,1,3507,1,5616,
            2815,303,3684,1,1,5453,5442,5078,5075,120,
            5480,5744,1811,4136,3657,2252,3655,4034,3220,4134,
            3475,4111,2601,4110,5442,5404,5383,5383,5383,5383,
            5383,5383,5411,5383,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,5408,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,5442,1,1,1,1,1,1,134,
            1,1,1,3507,1,5616,2815,116,3684,1,
            1,5453,110,3776,5442,461,2911,2938,1811,4136,
            3657,2252,3655,4034,3220,4134,3475,4111,2601,4110,
            5442,5404,5383,5383,5383,5383,5383,5383,5411,5383,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,5408,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,5105,1,
            1,1,1,1,1,135,1,1,1,3507,
            1,5616,2815,130,3684,1,1,5453,2339,3752,
            3728,3984,2404,4007,1811,4136,3657,2252,3655,4034,
            3220,4134,3475,4111,2601,4110,5442,5404,5383,5383,
            5383,5383,5383,5383,5411,5383,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,5408,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,5442,1,1,1,1,1,
            1,5442,1,1,1,3507,1,5616,2815,115,
            3684,1,1,5453,2339,3776,5442,5456,5457,5442,
            1811,4136,3657,2252,3655,4034,3220,4134,3475,4111,
            2601,4110,5442,5404,5383,5383,5383,5383,5383,5383,
            5411,5383,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5408,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            5442,1,1,1,1,1,1,2806,1,1,
            1,3507,1,5616,2815,5442,3684,1,1,5453,
            2634,3752,3728,5442,5262,5259,1811,4136,3657,2252,
            3655,4034,3220,4134,3475,4111,2601,4110,5442,5404,
            5383,5383,5383,5383,5383,5383,5411,5383,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,5408,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,5442,1,1,1,
            1,1,1,5442,1,1,1,3507,1,5616,
            2815,5442,3684,1,1,5453,5442,5456,5457,5450,
            518,2634,1811,4136,3657,2252,3655,4034,3220,4134,
            3475,4111,2601,4110,5442,5404,5383,5383,5383,5383,
            5383,5383,5411,5383,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,5408,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,5449,1,1,1,1,1,1,894,
            1,1,1,3507,1,5616,2815,5442,3684,1,
            1,5453,5442,5078,5075,124,5480,5442,1811,4136,
            3657,2252,3655,4034,3220,4134,3475,4111,2601,4110,
            5442,5404,5383,5383,5383,5383,5383,5383,5411,5383,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,5408,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,5442,1,
            1,1,1,1,1,2823,1,1,1,3507,
            1,5616,2815,5442,3684,1,1,5453,48,5262,
            5259,123,2911,2938,1811,4136,3657,2252,3655,4034,
            3220,4134,3475,4111,2601,4110,5442,5404,5383,5383,
            5383,5383,5383,5383,5411,5383,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,5408,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,5442,1,1,1,1,1,
            1,5442,1,1,1,3507,1,5616,2815,5442,
            3684,1,1,5453,113,400,5456,5457,2911,2938,
            1811,4136,3657,2252,3655,4034,3220,4134,3475,4111,
            2601,4110,5442,4084,1,1,1,1,1,1,
            4104,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5451,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            5442,1,1,1,1,1,1,5442,1,1,
            1,3507,1,5616,2815,5446,3684,1,1,5453,
            36,5336,5333,3984,136,4007,1811,4136,3657,2252,
            3655,4034,3220,4134,3475,4111,2601,4110,39,5078,
            5075,1149,633,3800,3869,4184,137,3892,942,5707,
            5705,5714,5713,5709,5710,5708,5711,5712,5715,5706,
            5702,5781,5782,3846,3823,5442,5696,5703,5699,5675,
            5701,5700,5697,5698,5676,3938,3915,5461,5843,2839,
            799,892,5463,828,4080,880,5442,5464,5462,619,
            5458,5459,5460,5442,1136,5844,5845,2750,1433,5442,
            5314,5314,229,5310,229,229,229,5318,229,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,2291,5445,229,1,1,1,
            1,1,1,1,1,1,5442,5078,5075,1,
            633,5123,5442,4184,224,5442,2291,5307,397,5173,
            5173,1731,284,112,1688,1,1,1,3025,225,
            5857,671,128,299,5456,5457,5702,5781,5782,5442,
            419,229,5696,5703,5699,5675,5701,5700,5697,5698,
            5676,5702,5781,5782,2325,5945,5442,5696,5703,5699,
            5675,5701,5700,5697,5698,5676,284,129,5442,5442,
            8786,8786,5880,5881,5882,5442,5314,5314,229,5310,
            229,229,229,5362,229,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            122,37,229,1,1,1,1,1,1,1,
            1,1,3984,33,4007,1,5117,5478,5442,5117,
            5442,5117,5117,5307,5957,37,5298,5298,2463,2434,
            5298,1,1,1,3025,5442,5857,671,5117,5117,
            5117,43,5268,5268,1,313,418,229,3624,5478,
            5117,5117,160,347,5078,5075,586,633,599,333,
            4184,5945,333,2463,2434,5442,5442,111,5117,2772,
            5442,5078,5075,2791,633,5123,5117,4184,5880,5881,
            5882,5117,5117,5117,5117,5117,5117,2911,2938,5265,
            5442,5166,5162,605,5170,599,5374,4184,132,5374,
            5117,5117,5117,5117,5117,5117,5117,5117,5117,5117,
            5117,5117,5117,5117,5117,1155,1059,160,2538,5117,
            5117,5117,5117,5117,5117,5117,5117,5117,5117,5117,
            5117,5117,5117,5117,5442,39,460,5120,117,5480,
            5120,333,5120,5120,333,350,29,390,390,5289,
            390,390,5289,390,5289,5289,3984,5442,4007,5120,
            5120,5120,2078,3172,3089,293,5456,5457,390,390,
            390,5120,5120,5289,390,390,390,390,390,390,
            390,390,390,1,5166,5162,5353,5170,5359,5120,
            5356,5452,5442,38,5096,5093,2372,5120,5090,5108,
            4184,5081,5120,5120,5120,5120,5120,5120,1059,5289,
            5451,311,5166,5162,605,5170,599,5374,4184,5289,
            5374,5120,5120,5120,5120,5120,5120,5120,5120,5120,
            5120,5120,5120,5120,5120,5120,91,121,5442,5111,
            5120,5120,5120,5120,5120,5120,5120,5120,5120,5120,
            5120,5120,5120,5120,5120,5442,5383,5383,229,5383,
            229,229,229,5386,229,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            119,5442,229,1,1,8867,1,1,1,1,
            1,1,447,1,1,1,1,5442,5102,226,
            5442,5102,5442,5380,5442,3172,3089,5442,5454,138,
            408,1,1,1,3315,5448,5653,2815,5347,3684,
            100,5702,5781,5782,2911,2938,220,5696,5703,5699,
            5675,5701,5700,5697,5698,5676,3555,5350,5442,8718,
            8713,5945,5442,5383,5383,229,5383,229,229,229,
            229,229,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,5453,118,229,
            1,1,8867,1,1,1,1,1,1,1949,
            5447,5442,1,4224,1,5166,5162,605,5170,599,
            5380,4184,311,3172,3089,303,133,3422,1,1,
            1,3315,5442,5653,2815,5744,3684,5442,5456,5457,
            1102,311,599,5442,4184,5442,2778,1906,1863,1820,
            1777,1734,1691,1648,1605,1562,1519,29,5945,5442,
            5383,5383,229,5383,229,229,229,5395,229,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1898,5442,229,1,1,8867,
            1,1,1,1,1,1,37,5298,5298,1,
            4459,3120,333,227,5442,5078,5075,5380,633,599,
            5442,4184,581,5886,5442,1,1,1,3315,338,
            5653,2815,5452,3684,2372,5702,5781,5782,5442,427,
            219,5696,5703,5699,5675,5701,5700,5697,5698,5676,
            3674,5451,5781,5782,5478,5945,5442,5383,5383,229,
            5383,229,229,229,5386,229,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,5442,5442,229,1,1,8867,1,1,1,
            1,1,1,37,5298,5298,1,5442,1,5166,
            5162,605,5170,599,5380,4184,349,1,1,1683,
            4830,1,1,1,1,3315,365,5653,2815,5401,
            3684,1,5166,5162,586,5170,599,220,4184,5277,
            1,5304,5304,5442,5301,536,333,4203,365,333,
            5074,2981,5945,5442,5383,5383,229,5383,229,229,
            229,5386,229,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,5442,1059,
            229,1,1,8867,1,1,1,1,1,1,
            442,365,5449,1,1059,333,5078,5075,605,633,
            599,5380,4184,320,5280,3942,5371,5442,365,1,
            1,1,3315,365,5653,2815,5442,3684,5442,347,
            39,39,2965,5480,220,333,5448,99,333,8,
            365,1,5166,5162,605,5170,599,5439,4184,5945,
            5442,5383,5383,229,5383,229,229,229,229,229,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,5442,1059,229,1,1,
            8867,1,1,1,1,1,1,448,39,39,
            1,5480,1059,5292,4251,3120,5292,4871,5380,237,
            1242,5447,5283,5880,5881,5882,1,1,1,3315,
            5439,5653,2815,2078,3684,5442,369,5166,5162,586,
            5170,599,1,4184,1,1,1,5166,5162,586,
            5170,599,5398,4184,47,5442,5945,5442,5383,5383,
            229,5383,229,229,229,229,229,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,5442,5442,229,1,1,8867,1,1,
            1,1,1,1,92,1,1,1,1,1059,
            5295,5442,2243,5295,2967,5380,1286,1992,131,1059,
            4550,5453,364,1,1,1,3315,2404,5653,2815,
            1,3684,5442,2965,5442,5442,5456,5457,343,1,
            5166,5162,5353,5170,5359,5442,5356,5442,8718,8713,
            292,673,673,5945,5442,5383,5383,229,5383,229,
            229,229,229,229,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5442,
            3430,229,1,1,8867,1,1,1,1,1,
            1,3228,5442,1059,1,5442,5262,5259,343,343,
            3961,789,5380,343,5442,360,5846,3623,29,443,
            1,1,1,3315,5442,5653,2815,4103,3684,5442,
            95,39,39,5442,5480,457,5365,5450,75,5365,
            5442,3500,5442,1,1,1,1,1,1,1,
            5945,1,1,1,1,1,1,1,1,1,
            1,1,1,1,5442,5456,5457,1,1,138,
            3961,789,5454,5081,5084,5504,5505,125,399,1,
            1,1,390,1,1,1,1,1,1,1,
            5087,1,1,1,1,1,1,5442,1015,5442,
            5449,2533,1,5982,4152,5801,5442,1,1,1,
            5166,5162,1149,5170,3800,3869,4184,5442,3892,5126,
            5153,5159,5132,5135,5147,5144,5150,5141,5138,5129,
            5156,5453,2675,581,3846,3823,5442,5078,5075,5442,
            633,599,4105,4184,808,5099,3938,3915,5461,5442,
            2839,799,892,5463,828,4080,880,953,5464,5462,
            619,5458,5459,5460,5442,5324,5321,5900,5442,1433,
            1102,2577,2505,1,39,39,2778,519,39,5078,
            5075,1149,633,3800,3869,4184,5436,3892,575,5707,
            5705,5714,5713,5709,5710,5708,5711,5712,5715,5706,
            45,5330,5330,3846,3823,5442,5442,5442,5442,2770,
            4108,4471,5478,372,5442,3938,3915,5461,127,2839,
            799,892,5463,828,4080,880,431,5464,5462,619,
            5458,5459,5460,5442,5343,5339,39,398,1433,370,
            5480,391,5442,5324,5321,5417,5442,3357,5327,5449,
            140,5078,5075,1149,633,3800,3869,4184,1371,3892,
            575,5707,5705,5714,5713,5709,5710,5708,5711,5712,
            5715,5706,5442,2675,4343,3846,3823,37,5298,5298,
            5442,5478,103,1341,2075,4473,5271,3938,3915,5461,
            5478,2839,799,892,5463,828,4080,880,3261,5464,
            5462,619,5458,5459,5460,5442,1,5442,451,1389,
            1433,1774,2577,2505,5448,39,39,1,5166,5162,
            1149,5170,3800,3869,4184,5478,3892,5126,5153,5159,
            5132,5135,5147,5144,5150,5141,5138,5129,5156,5880,
            5881,5882,3846,3823,1,5442,5442,2965,322,1,
            2723,126,5277,5452,3938,3915,5461,5452,2839,799,
            892,5463,828,4080,880,5442,5464,5462,619,5458,
            5459,5460,5451,193,286,5442,5451,1433,3042,5447,
            2570,5442,39,39,39,5078,5075,1149,633,3800,
            3869,4184,5414,3892,575,5707,5705,5714,5713,5709,
            5710,5708,5711,5712,5715,5706,2675,1059,1,3846,
            3823,1059,279,5442,4053,5377,532,5280,5442,5274,
            39,3938,3915,5461,5480,2839,799,892,5463,828,
            4080,880,1,5464,5462,619,5458,5459,5460,1,
            1,5442,2998,5727,1433,2577,2505,292,5430,5389,
            5389,5417,39,5078,5075,1149,633,3800,3869,4184,
            5414,3892,575,5707,5705,5714,5713,5709,5710,5708,
            5711,5712,5715,5706,1,390,5442,3846,3823,5392,
            5392,532,162,5442,398,73,5442,3873,3873,3938,
            3915,5461,294,2839,799,892,5463,828,4080,880,
            5442,5464,5462,619,5458,5459,5460,5442,1,423,
            1,584,1433,5914,5908,5442,8153,5912,190,5417,
            48,429,5803,5442,5457,48,3804,5442,35,5456,
            5114,581,5442,5906,5907,184,5442,190,3422,581,
            5368,3277,452,310,5442,5937,5938,162,5442,5915,
            5442,4528,5442,4762,1094,4805,5442,5442,5442,4823,
            3505,4828,2117,5917,377,5442,3217,5442,4873,5442,
            4530,869,2165,1515,1543,5457,5918,5939,5916,2204,
            5456,5442,5442,511,509,5442,5442,3636,5442,5442,
            4205,5442,513,2,5442,5928,5927,5940,3265,1,
            5909,5910,5933,5934,5931,5932,5911,5913,5935,5936,
            525,3130,4067,524,5941,5442,5921,5922,5923,5919,
            5920,5929,5930,5925,5924,5926,39,5078,5075,1149,
            633,3800,3869,4184,5446,3892,575,5707,5705,5714,
            5713,5709,5710,5708,5711,5712,5715,5706,37,5442,
            5442,3846,3823,4838,4840,4146,5433,3258,3296,3265,
            3334,2035,2618,3938,3915,5461,4152,2839,799,892,
            5463,828,4080,880,1,5464,5462,619,5458,5459,
            5460,39,5078,5075,1149,633,3800,3869,4184,4223,
            3892,575,5707,5705,5714,5713,5709,5710,5708,5711,
            5712,5715,5706,5442,5442,5442,3846,3823,5442,5442,
            5442,5442,1,3672,5442,4152,5442,5442,3938,3915,
            5461,5442,2839,799,892,5463,828,4080,880,5442,
            5464,5462,619,5458,5459,5460,5442,5442,5442,5442,
            5442,1433,5442,5442,5445,39,5078,5075,1149,633,
            3800,3869,4184,5442,3892,575,5707,5705,5714,5713,
            5709,5710,5708,5711,5712,5715,5706,5442,5442,5442,
            3846,3823,5442,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,3938,3915,5461,5442,2839,799,892,5463,
            828,4080,880,5442,5464,5462,619,5458,5459,5460,
            39,5078,5075,1149,633,3800,3869,4184,1050,3892,
            575,5707,5705,5714,5713,5709,5710,5708,5711,5712,
            5715,5706,5442,5442,5442,3846,3823,5442,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,3938,3915,5461,
            5442,2839,799,892,5463,828,4080,880,5442,5464,
            5462,619,5458,5459,5460,5442,5442,5442,5442,5442,
            1433,39,5078,5075,4752,633,3800,3869,4184,5442,
            3892,575,5707,5705,5714,5713,5709,5710,5708,5711,
            5712,5715,5706,5442,5442,5442,3846,3823,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,3938,3915,
            5461,5442,2839,799,892,5463,828,4080,880,5442,
            5464,5462,619,5458,5459,5460,39,5078,5075,1149,
            633,3800,3869,4184,5442,3892,575,5707,5705,5714,
            5713,5709,5710,5708,5711,5712,5715,5706,5442,5442,
            5442,3846,3823,5442,5442,5442,5442,5442,5442,5442,
            5442,5442,5442,3938,3915,5461,5442,2839,799,892,
            5463,828,4080,880,5442,5464,5462,619,5458,5459,
            5460,39,5078,5075,1149,633,3800,3869,4184,5442,
            3892,575,5707,5705,5714,5713,5709,5710,5708,5711,
            5712,5715,5706,5442,5442,5442,3846,3823,5442,5442,
            5442,5442,5442,5442,5442,5442,5442,5442,3938,3915,
            5461,5442,2839,799,892,5463,828,4080,880,5442,
            5464,5462,619,5458,5459,5460,5442,5078,5075,5442,
            5480,5442,5442,5442,5442,5442,802,5707,5705,5714,
            5713,5709,5710,5708,5711,5712,5715,5706,5702,5781,
            5782,5442,5442,5442,5696,5703,5699,5675,5701,5700,
            5697,5698,5676,5442,5442,5442,5843,5442,5442,5442,
            5442,5442,5442,5442,5442,241,5252,5248,5442,5256,
            5442,5442,1136,5844,5845,802,5239,5245,5218,5221,
            5233,5230,5236,5227,5224,5215,5242,5194,5188,5185,
            5442,5442,5442,5212,5191,5203,5182,5197,5200,5209,
            5206,5179,5442,5442,5442,5843,32,391,391,5286,
            391,391,5286,391,5286,5286,5442,5442,5442,5442,
            5442,1136,5844,5845,5442,5442,5442,5442,391,391,
            391,5442,223,5286,391,391,391,391,391,391,
            391,391,391,5707,5705,5714,5713,5709,5710,5708,
            5711,5712,5715,5706,5702,5781,5782,5442,5442,5442,
            5696,5703,5699,5675,5701,5700,5697,5698,5676,5286,
            5442,5442,5442,5442,5442,5442,5442,5442,5442,5286
        };
    };
    public final static char termAction[] = TermAction.termAction;
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            117,7,865,1,158,767,767,767,767,1058,
            158,404,404,907,404,245,865,247,866,866,
            866,866,866,866,866,866,866,406,412,417,
            414,421,419,426,424,428,427,429,459,430,
            865,849,947,947,947,947,904,592,9,9,
            401,947,292,204,404,404,9,904,204,779,
            946,1114,1060,995,849,404,406,686,686,592,
            865,866,866,866,866,866,866,866,866,866,
            866,866,866,866,866,866,866,866,866,866,
            865,865,865,865,865,865,865,865,865,865,
            865,865,866,204,204,195,849,747,747,747,
            747,392,204,9,9,1056,984,995,114,995,
            109,995,341,995,979,1058,904,292,292,9,
            767,292,946,865,902,1113,204,901,903,901,
            204,292,414,414,412,412,412,419,419,419,
            419,417,417,424,421,421,427,426,428,1072,
            429,1056,252,70,584,583,540,1002,1002,1058,
            247,158,158,158,158,904,904,747,746,747,
            401,904,508,347,111,391,112,1058,904,904,
            392,747,866,947,410,160,204,1060,904,904,
            903,1114,865,195,292,445,204,72,74,904,
            1114,865,865,865,865,158,158,849,509,399,
            397,347,904,643,454,641,392,114,511,904,
            392,904,204,410,1056,1113,1060,904,902,204,
            588,576,587,74,392,902,204,204,204,204,
            592,592,509,397,514,904,347,1072,112,767,
            394,61,1062,347,643,642,643,643,392,511,
            511,904,904,410,411,410,865,160,66,406,
            1060,530,865,585,585,517,517,904,68,1056,
            693,204,904,204,204,397,397,1114,114,114,
            747,767,901,636,1064,898,158,643,643,643,
            643,904,511,513,755,513,410,592,866,292,
            66,530,865,865,74,904,1114,204,72,576,
            530,1037,397,396,902,647,114,296,363,902,
            643,643,898,450,866,1072,525,760,904,1056,
            643,643,726,513,514,866,904,411,204,292,
            741,74,530,397,451,647,647,634,1074,500,
            158,112,333,363,902,643,114,1058,1064,866,
            866,1113,898,771,974,727,904,514,741,204,
            741,514,647,647,295,500,634,775,1058,746,
            767,749,749,451,114,829,771,904,158,726,
            904,1058,1058,904,158,734,741,514,296,647,
            451,524,450,204,1058,904,363,296,363,745,
            745,769,830,1058,904,592,904,904,904,75,
            734,647,865,208,898,451,904,904,363,947,
            947,769,829,1072,866,1072,451,828,158,158,
            158,830,158,904,467,451,451,904,114,204,
            904,904,203,736,514,204,514,114,904,451,
            746,821,158,821,830,1072,830,849,849,847,
            828,849,451,451,528,827,947,736,514,208,
            451,107,693,830,204,898,204,847,500,158,
            204,769,208,749,204,204,1050,830,528,830,
            451,500,865,830,827,513,745,114,114,1052,
            865,828,592,451,204,449,207,901,830,204,
            451,449,449,830
        };
    };
    public final static char asb[] = Asb.asb;
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            8,72,118,73,27,69,120,0,28,11,
            12,40,23,42,65,13,43,56,29,30,
            44,14,31,32,15,16,33,66,34,45,
            17,18,46,35,47,57,49,60,50,36,
            51,58,19,22,20,24,21,52,53,54,
            39,3,37,38,9,6,25,26,41,68,
            7,1,2,4,10,5,0,5,7,3,
            63,6,9,90,28,11,12,23,13,56,
            29,30,14,31,32,15,16,33,34,17,
            18,35,57,36,10,58,19,22,20,24,
            21,1,2,4,73,8,40,0,48,4,
            72,1,2,67,8,0,11,12,42,65,
            13,43,44,14,15,16,66,7,45,17,
            18,46,47,49,60,50,51,10,19,20,
            21,52,53,54,39,1,2,37,38,9,
            6,25,26,5,41,4,61,3,0,91,
            89,25,26,92,93,87,88,55,94,95,
            96,97,98,99,100,101,107,72,90,70,
            108,109,110,111,112,113,114,115,116,117,
            118,71,27,120,68,1,2,9,6,4,
            3,63,69,73,8,0,71,60,37,38,
            9,6,25,26,41,46,3,4,52,53,
            54,39,50,44,49,12,21,11,17,15,
            16,18,19,14,13,20,10,43,47,45,
            42,51,67,8,7,5,1,2,66,65,
            0,65,66,10,43,47,45,42,51,12,
            21,11,17,15,16,18,19,14,13,20,
            52,53,54,39,50,44,49,5,7,4,
            3,37,38,9,6,25,26,41,46,1,
            2,118,8,0,67,40,23,13,56,29,
            14,31,32,15,16,33,34,17,18,35,
            57,36,58,19,22,20,24,21,12,11,
            28,8,3,9,6,27,62,64,86,30,
            61,48,7,1,2,5,4,10,59,0,
            4,8,67,1,2,0,86,59,7,103,
            104,105,62,8,3,9,6,5,72,71,
            27,61,28,11,12,40,23,13,56,29,
            30,14,31,32,15,16,33,34,17,18,
            35,57,36,10,58,19,22,20,24,21,
            4,1,2,48,0,60,23,24,7,5,
            1,2,4,74,67,119,106,37,38,63,
            3,91,89,6,92,93,25,26,88,87,
            55,94,95,96,97,9,98,99,100,68,
            90,73,120,70,108,109,110,111,112,113,
            114,115,116,117,72,118,101,107,71,69,
            27,8,0,4,8,72,67,0,68,72,
            90,69,118,73,71,120,11,12,42,65,
            13,43,44,14,15,16,66,45,17,18,
            46,47,49,60,50,51,10,19,20,21,
            52,53,54,39,37,38,25,26,41,8,
            27,5,7,1,2,4,3,9,6,0,
            1,2,69,71,8,0,74,68,72,90,
            73,67,63,3,8,69,27,70,0,23,
            60,24,8,68,90,70,69,73,0,28,
            11,12,23,13,29,30,14,31,32,15,
            16,33,7,34,17,18,35,36,19,22,
            20,24,21,1,2,8,63,9,6,5,
            4,73,27,3,0,9,6,7,5,4,
            1,2,3,63,68,70,69,8,73,90,
            0,8,73,11,12,42,65,13,43,44,
            14,15,16,66,7,45,17,18,46,47,
            49,60,50,51,10,19,20,21,52,53,
            54,1,2,3,37,38,9,6,25,26,
            5,41,4,39,0,8,72,67,74,0,
            4,55,8,72,67,0,64,28,11,12,
            40,23,13,56,29,86,30,14,31,32,
            15,16,33,59,34,17,18,35,57,36,
            10,58,19,62,22,20,24,21,8,3,
            9,6,71,27,61,7,4,48,5,1,
            2,0,28,11,12,40,23,13,56,29,
            30,14,31,32,15,16,33,34,17,18,
            35,57,36,10,58,19,22,20,24,21,
            1,2,4,90,0,22,1,2,4,103,
            104,105,0,23,24,74,3,72,27,67,
            60,8,90,73,70,69,68,0,68,70,
            69,1,2,0,8,69,71,70,0,72,
            8,63,3,70,69,27,55,0,102,0,
            8,67,69,0,8,67,70,0,65,66,
            37,38,9,6,25,26,5,41,46,3,
            4,7,52,53,54,39,50,44,49,12,
            21,11,17,15,16,18,19,14,13,20,
            10,43,47,45,42,51,63,1,2,0,
            86,103,104,105,48,72,102,121,71,61,
            74,62,59,64,76,78,84,82,75,80,
            81,83,85,67,77,79,27,8,28,40,
            23,56,29,30,31,32,33,34,35,57,
            36,58,22,24,60,65,66,10,43,47,
            45,42,51,12,21,11,17,15,16,18,
            19,14,13,20,52,53,54,39,50,44,
            49,37,38,25,26,41,46,9,6,3,
            4,7,5,1,2,0,66,65,25,26,
            6,92,93,98,9,99,5,41,70,55,
            68,111,112,108,109,110,116,115,117,88,
            87,113,114,96,97,94,95,100,101,37,
            38,69,89,106,63,3,28,11,12,40,
            23,13,56,29,30,14,31,32,15,16,
            33,34,17,18,35,57,36,10,58,19,
            20,24,21,1,2,4,22,0,10,56,
            40,57,58,12,21,11,17,15,16,18,
            19,14,13,20,74,72,90,118,71,67,
            120,119,91,106,89,37,38,25,26,92,
            93,87,88,55,68,94,95,96,97,98,
            99,100,101,107,70,108,109,110,111,112,
            113,114,115,116,117,69,28,23,29,30,
            31,32,33,34,35,36,22,24,27,8,
            73,3,63,7,5,9,6,1,2,4,
            0,27,8,3,7,5,9,6,4,1,
            2,72,0,40,23,13,56,29,14,31,
            32,15,16,33,34,17,18,35,57,36,
            10,58,19,22,20,24,21,12,11,28,
            8,3,9,27,62,59,64,86,30,61,
            55,4,6,7,1,2,5,48,0
        };
    };
    public final static byte asr[] = Asr.asr;
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            31,12,71,12,12,12,12,12,12,75,
            12,12,12,227,12,171,141,91,71,71,
            213,71,71,71,71,71,71,12,12,12,
            12,12,12,12,12,12,12,12,71,12,
            71,277,41,41,41,41,91,132,23,23,
            65,5,82,283,12,12,23,217,283,71,
            48,202,12,12,277,12,12,50,50,132,
            141,71,71,71,71,71,71,71,71,71,
            71,71,71,71,71,71,71,71,71,71,
            71,71,71,71,71,71,71,71,71,71,
            71,141,71,283,283,145,1,12,12,12,
            12,125,283,36,36,121,244,245,154,245,
            28,245,84,245,238,10,91,82,82,36,
            12,82,41,186,171,128,283,170,91,170,
            283,82,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,12,12,
            12,121,77,144,63,63,12,12,12,10,
            91,12,12,12,12,190,11,12,12,12,
            161,91,12,23,189,75,25,75,91,11,
            12,12,71,41,23,58,283,12,11,91,
            135,202,71,159,82,12,283,267,23,91,
            202,141,141,141,141,12,12,36,123,123,
            123,260,190,56,56,12,210,154,23,210,
            201,190,283,46,161,128,12,217,190,283,
            12,16,12,270,200,190,283,283,283,283,
            132,132,12,23,205,91,114,12,156,12,
            12,34,247,260,56,56,23,23,201,23,
            218,11,190,23,44,12,141,161,136,12,
            12,23,71,12,12,63,63,91,15,121,
            270,283,190,283,283,123,87,202,154,182,
            12,12,75,23,116,18,12,23,23,106,
            106,190,218,104,12,12,46,132,71,82,
            136,87,71,71,23,11,202,283,267,165,
            23,12,23,87,171,23,154,255,23,210,
            23,97,167,114,71,12,102,12,91,121,
            106,106,177,104,205,71,218,44,283,82,
            23,270,87,87,114,222,23,12,255,248,
            12,181,34,270,171,97,94,108,18,71,
            71,207,167,12,75,89,210,205,61,283,
            23,205,255,222,153,116,12,12,75,12,
            12,198,198,114,94,204,12,210,12,231,
            210,75,75,11,12,23,61,205,255,23,
            114,184,12,283,75,210,270,255,23,12,
            12,23,138,108,11,132,11,210,210,281,
            87,222,186,69,18,114,210,157,270,41,
            41,175,149,12,71,12,114,12,12,12,
            12,150,12,218,112,114,114,218,99,283,
            11,11,283,23,205,283,23,154,157,114,
            12,220,12,12,150,12,150,285,285,193,
            12,285,114,114,12,23,41,61,205,23,
            114,12,41,150,283,18,283,273,23,12,
            283,175,69,198,283,283,23,150,12,150,
            114,18,141,150,220,205,12,99,99,16,
            71,12,235,114,283,13,68,170,150,283,
            114,13,12,150
        };
    };
    public final static char nasb[] = Nasb.nasb;
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,153,151,120,150,149,5,
            2,0,164,0,34,94,93,65,5,2,
            9,10,4,0,43,1,0,154,190,0,
            4,176,0,158,0,5,10,9,2,13,
            4,46,0,142,0,144,0,177,0,5,
            2,9,10,140,0,108,0,4,179,0,
            126,0,76,0,4,197,0,68,130,43,
            10,9,2,13,5,0,13,2,9,10,
            5,82,0,154,185,0,63,0,195,0,
            2,45,0,43,162,0,161,0,43,56,
            0,193,0,155,0,109,0,174,5,173,
            0,4,40,39,0,4,10,9,2,65,
            5,89,50,0,137,66,0,66,139,138,
            0,4,96,0,2,114,0,49,43,181,
            4,40,0,34,93,94,4,0,68,40,
            49,69,4,43,0,122,103,0,94,93,
            50,5,59,0,94,93,50,65,59,5,
            10,9,2,0,163,0,5,101,194,0,
            1,122,0,186,0,4,30,0,45,2,
            3,0,40,4,24,183,0,107,0,137,
            2,66,0,4,68,0,66,50,0,2,
            57,0,5,10,9,13,3,1,0,112,
            0,115,4,49,81,0,4,46,198,0,
            5,101,170,0,4,180,0,2,5,120,
            116,117,118,13,86,0,39,5,2,9,
            10,4,160,0,4,49,81,83,0,4,
            49,81,101,47,5,0,50,5,89,24,
            4,0,46,4,182,0,4,46,40,0,
            46,4,34,0,4,46,102,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            113,114,2,31,13,10,79,115,9,100,
            48,52,60,68,74,75,86,87,102,105,
            107,104,54,106,11,12,120,47,64,66,
            70,73,76,83,89,98,7,8,112,53,
            14,55,61,67,84,88,90,93,94,97,
            99,109,110,111,19,63,91,101,77,95,
            122,103,1,46,58,78,121,20,44,33,
            119,30,118,96,108,49,50,56,57,59,
            69,71,72,85,92,65,17,18,6,32,
            4,15,16,21,22,23,24,25,26,27,
            28,51,80,81,82,5,29,34,35,36,
            37,38,39,40,41,42,43,117,3,123,
            62,116
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            130,135,136,0,0,134,0,0,229,235,
            133,0,143,0,132,0,0,142,148,0,
            0,149,158,180,159,160,161,162,163,151,
            164,165,166,126,141,167,168,0,128,131,
            169,0,129,138,137,152,177,0,0,0,
            0,0,0,0,0,172,0,145,155,0,
            204,0,187,201,205,0,0,127,171,0,
            0,0,0,0,0,206,175,0,0,0,
            0,125,178,0,0,186,0,0,202,212,
            157,208,209,210,0,0,146,0,0,207,
            220,174,196,0,0,211,0,0,0,0,
            240,241,0,147,179,189,190,191,192,193,
            195,0,198,0,199,0,214,217,0,0,
            219,0,238,0,239,0,0,139,140,144,
            0,0,154,156,0,170,0,181,182,183,
            184,185,188,0,0,0,194,0,197,203,
            0,215,216,0,0,221,224,0,226,228,
            0,232,233,234,237,124,0,150,153,0,
            173,0,176,0,0,200,213,218,0,0,
            222,223,225,227,0,230,231,236,242,243,
            0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            159,311,583,602,304,319,534,550,561,572,
            372,267,281,298,333,42,292,392,430,167,
            591,477,20,51,71,80,85,90,130,195,
            326,341,346,144,273,287,505,27,144,382,
            346,610,27,217,246,1,14,61,76,106,
            351,361,365,448,470,499,526,530,620,624,
            628,97,7,97,410,426,439,460,518,116,
            116,232,439,541,557,568,579,207,488,56,
            56,156,222,225,56,241,262,225,225,56,
            369,467,474,156,56,643,110,355,414,454,
            56,355,401,177,104,452,632,639,632,639,
            65,420,137,104,104,251
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            18,135,5,5,135,135,5,5,5,5,
            379,135,95,135,339,48,278,398,436,173,
            67,483,25,25,25,59,59,95,135,200,
            331,331,339,149,278,101,510,38,152,387,
            597,615,32,211,211,5,18,5,59,95,
            331,95,95,135,244,5,5,5,5,5,
            244,641,11,101,379,379,379,464,510,120,
            125,236,443,545,545,545,545,211,492,59,
            59,5,5,228,230,244,5,265,265,230,
            95,5,244,5,503,5,113,358,417,457,
            522,513,404,180,95,95,634,634,636,636,
            67,422,139,202,187,253
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            47,118,18,18,80,118,18,18,18,18,
            72,85,48,80,117,78,54,72,71,47,
            18,20,3,7,8,170,170,166,116,47,
            117,117,119,129,55,48,140,134,129,72,
            18,18,134,95,60,136,75,173,170,166,
            119,184,52,56,144,19,18,18,18,18,
            18,12,112,166,72,71,71,38,140,131,
            131,59,71,18,18,18,18,95,20,174,
            170,186,93,100,62,76,61,160,77,119,
            73,145,144,177,140,17,166,119,102,70,
            140,140,72,47,166,67,138,45,138,45,
            173,102,116,47,47,60
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            102,71,73,73,71,71,73,73,73,73,
            73,71,27,71,1,68,1,73,121,67,
            3,73,68,68,68,1,1,27,71,67,
            1,1,1,71,1,1,4,68,69,27,
            1,1,68,73,73,73,102,73,1,27,
            1,27,27,71,118,73,73,73,73,73,
            118,1,73,1,73,73,73,72,4,1,
            1,6,73,68,68,68,68,73,3,1,
            1,73,73,3,1,118,73,1,1,1,
            27,73,118,73,5,73,1,48,70,72,
            1,48,75,74,27,27,4,4,4,4,
            3,1,67,1,1,3
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            85,154,250,250,107,154,250,250,250,250,
            95,109,85,107,154,107,87,95,95,85,
            250,250,182,226,226,54,54,82,154,85,
            154,154,154,312,87,85,149,50,312,95,
            250,250,50,141,63,26,95,30,54,82,
            154,22,87,33,79,250,250,250,250,250,
            250,230,6,82,95,95,95,281,149,154,
            154,121,95,250,250,250,250,141,250,30,
            54,24,141,143,63,137,63,60,68,154,
            95,57,79,152,149,250,82,154,1,95,
            149,149,95,85,82,11,118,158,118,158,
            30,1,154,85,85,63
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            322,3,60,0,126,0,321,3,102,0,
            126,172,0,126,178,74,0,216,0,254,
            126,55,124,0,20,0,297,126,55,48,
            0,20,53,0,33,132,0,20,53,0,
            0,297,126,55,48,203,0,20,178,0,
            254,126,55,132,0,179,127,0,141,0,
            218,3,296,0,296,0,2,0,126,0,
            254,126,55,131,0,179,127,223,0,179,
            127,22,223,0,179,127,317,22,0,128,
            188,167,127,0,128,0,188,167,127,0,
            134,128,0,171,0,313,126,171,0,126,
            171,0,222,128,0,167,312,242,0,136,
            0,0,0,0,135,0,0,0,0,311,
            126,165,253,0,127,0,253,0,129,0,
            0,127,0,310,126,165,252,0,127,0,
            0,44,127,0,0,152,3,0,126,284,
            283,126,74,282,171,0,283,126,74,282,
            171,0,215,0,216,0,282,171,0,96,
            0,0,215,0,216,0,203,96,0,0,
            215,0,216,0,283,126,282,171,0,215,
            0,203,0,0,215,0,226,126,3,0,
            126,0,0,0,0,0,226,126,3,215,
            0,222,3,0,211,126,0,208,0,146,
            0,172,167,127,0,10,0,0,0,0,
            213,63,0,125,0,226,126,3,183,0,
            183,0,2,0,0,126,0,0,0,0,
            0,199,3,0,201,0,235,126,165,39,
            30,0,179,127,59,62,0,196,128,0,
            128,179,127,280,62,0,179,127,280,62,
            0,179,127,70,123,59,0,235,126,165,
            244,59,0,235,126,165,244,225,59,0,
            277,278,126,165,123,307,56,0,277,278,
            126,165,307,56,0,179,127,276,56,0,
            135,0,188,179,127,276,242,0,136,0,
            179,127,276,242,0,188,167,127,10,0,
            167,127,10,0,167,127,0,93,136,0,
            269,126,146,0,269,126,171,0,162,84,
            0,302,161,304,305,3,81,0,126,171,
            0,304,305,3,81,0,128,0,126,171,
            0,162,3,75,191,80,0,126,128,0,
            191,80,0,108,2,131,126,128,0,224,
            3,75,0,199,168,0,33,169,0,168,
            0,175,33,169,0,224,3,85,0,191,
            156,224,3,83,0,62,171,0,224,3,
            83,0,126,171,62,171,0,303,126,165,
            0,162,0,213,77,0,30,171,0,162,
            107,159,0,30,169,0,218,3,0,213,
            63,266,0,162,63,0,180,3,299,66,
            127,0,126,0,0,0,0,299,66,127,
            0,2,145,126,0,0,0,0,180,3,
            46,0,147,0,125,48,167,127,0,31,
            147,0,93,136,31,147,0,219,179,127,
            0,146,31,147,0,180,3,51,0,162,
            3,51,0,162,3,68,180,55,42,0,
            180,55,42,0,20,2,131,126,0,162,
            3,68,180,55,45,0,180,55,45,0,
            162,3,68,180,55,47,0,180,55,47,
            0,162,3,68,180,55,43,0,180,55,
            43,0,218,3,125,188,167,127,10,0,
            125,188,167,127,10,0,136,2,0,126,
            0,218,3,124,259,167,127,10,0,259,
            167,127,10,0,135,2,0,126,0,218,
            3,135,0,218,3,140,0,162,63,140,
            0,261,0,31,0,31,139,0,166,0,
            134,0,162,3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            4724,4828,4823,4805,0,4233,4211,4066,3234,0,
            3652,3595,3513,3410,3372,3334,3296,3258,3220,3000,
            2962,3505,0,3416,0,2102,1190,875,0,3130,
            2570,0,3652,3595,1983,1897,3513,3410,3372,3334,
            3296,3258,1811,3220,3000,2962,1553,1467,0,4747,
            3120,4691,0,4205,3261,0,3538,740,0,4515,
            4309,0,4276,4515,2819,3154,4309,3076,3486,4289,
            4067,2492,4053,605,2724,586,2703,0,747,746,
            0,4541,4531,0,4541,4531,4189,4459,4413,4116,
            4401,4355,4102,4343,3652,3595,3513,3410,3372,3334,
            3296,3258,3220,3000,2962,0,4541,4531,4189,4459,
            4413,4116,4401,4355,4102,4343,0,2770,2750,0,
            2492,4276,3531,2819,3154,4557,2724,2716,3451,3379,
            4547,3146,878,879,734,0,2200,1946,969,934,
            3154,3146,3076,586,2703,2965,2810,0,953,808,
            0,789,0,4245,541,2746,0,4740,4733,4687,
            4682,4668,4664,4657,4599,4582,4443,4815,4385,3573,
            4811,4758,4174,3471,2977,3467,3198,2755,2717,1384,
            0,2611,2607,4740,4733,4687,2247,2160,4682,621,
            4668,4664,4657,4599,4582,3115,3353,3283,4443,3206,
            4815,2981,2791,2634,2243,4385,3573,2156,4811,2871,
            4758,3658,2738,4174,3471,2977,652,3467,3198,2755,
            4245,599,2746,2717,1384,2558,1329,742,633,2618,
            3076,3486,4289,4067,2492,4276,4053,4515,2819,3154,
            605,2724,586,4309,2703,2538,2325,953,808,4030,
            1102,2291,2372,2339,2463,2434,2404,2938,2911,2675,
            2647,2577,2505,3776,3752,3728,3172,3089,4007,3984,
            3961,3938,3915,3892,3869,3846,3823,3800,2839,4080,
            2035,2252,2204,2165,2117,2078,1389,1341,1242,1286,
            894,1992,1059,835,754,695,541,1949,1906,1863,
            1820,1777,1734,1691,1648,1605,1562,1519,1476,1433,
            1199,1015,971,1155,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,298,126,268,51,42,45,47,43,10,
            135,124,131,7,132,4,3,127,46,41,
            5,26,25,6,9,38,37,140,145,148,
            147,150,149,153,151,155,154,158,60,159,
            69,3,55,55,55,55,127,3,55,55,
            168,126,63,3,65,66,55,5,162,65,
            66,167,166,124,3,123,125,106,119,3,
            63,89,91,26,25,93,92,6,95,94,
            68,55,87,88,9,97,96,99,98,100,
            117,116,115,114,113,112,111,110,109,108,
            70,107,101,180,162,168,126,180,180,180,
            180,167,218,126,126,126,270,271,253,272,
            242,273,56,274,275,10,127,63,63,126,
            124,63,299,3,188,4,180,48,127,48,
            218,162,147,147,145,145,145,149,149,149,
            149,148,148,151,150,150,154,153,155,162,
            158,126,63,3,216,215,135,125,124,10,
            127,68,68,68,68,188,259,254,257,254,
            211,127,172,165,312,276,307,276,127,179,
            167,254,204,3,300,168,152,261,188,127,
            179,167,72,211,213,159,222,126,3,127,
            167,3,3,3,3,125,124,69,167,9,
            6,126,167,229,125,124,127,123,165,127,
            167,48,180,126,126,4,219,5,48,226,
            227,146,228,126,167,48,162,162,162,162,
            3,3,172,172,311,127,169,223,59,48,
            203,62,171,314,125,124,230,230,179,165,
            126,179,188,156,263,266,63,181,4,123,
            125,156,70,222,199,187,183,127,3,126,
            69,226,188,218,218,6,126,167,244,225,
            55,48,280,282,126,3,183,230,230,126,
            126,188,126,278,123,279,126,3,63,162,
            4,126,70,70,3,179,167,199,126,211,
            156,125,172,185,188,165,244,68,55,127,
            74,126,211,313,72,291,199,124,127,126,
            126,126,72,278,277,70,69,263,218,213,
            220,126,126,126,128,126,165,30,48,171,
            64,59,62,126,179,126,283,72,69,72,
            70,167,211,316,223,22,127,277,126,226,
            220,235,237,126,39,126,3,123,59,297,
            48,10,40,128,283,165,295,127,296,69,
            127,22,317,179,60,156,126,235,126,165,
            269,247,281,39,70,127,69,68,55,229,
            229,284,126,69,179,3,179,127,127,3,
            126,126,3,70,69,156,127,179,126,70,
            70,126,303,79,77,1,162,8,85,83,
            81,80,75,82,84,78,76,59,74,218,
            179,179,322,220,235,152,165,252,179,225,
            297,285,102,8,72,213,72,3,3,3,
            191,3,123,162,123,178,69,126,126,165,
            225,68,3,72,224,168,224,305,146,75,
            224,126,126,40,90,321,168,156,199,156,
            304,126,3,156,285,310,229,156,156,126,
            70,191,161,269,162,190,69,70,121,302,
            156,190,8,156
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "no_cast_start",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "handler",
            "exception_declaration",
            "type_id_list"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 61,
           SCOPE_UBOUND      = 115,
           SCOPE_SIZE        = 116,
           MAX_NAME_LENGTH   = 37;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 544,
           NT_OFFSET         = 122,
           LA_STATE_OFFSET   = 5982,
           MAX_LA            = 2147483647,
           NUM_RULES         = 540,
           NUM_NONTERMINALS  = 204,
           NUM_SYMBOLS       = 326,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 645,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 120,
           EOLT_SYMBOL       = 120,
           ACCEPT_ACTION     = 5074,
           ERROR_ACTION      = 5442;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}

Back to the top