diff --git a/.gitignore b/.gitignore index 1dbc687..7fdf2a6 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,6 @@ target/ #Ipython Notebook .ipynb_checkpoints + +# ANTLR +.antlr \ No newline at end of file diff --git a/kin/grammar/PBXProj.g4 b/kin/grammar/PBXProj.g4 index a57b2f3..89bd55a 100644 --- a/kin/grammar/PBXProj.g4 +++ b/kin/grammar/PBXProj.g4 @@ -282,8 +282,10 @@ pbx_shell_script_build_phase isa_pbx_shell_script_build_phase build_action_mask files + input_file_list_paths? input_paths name? + output_file_list_paths? output_paths run_only_for_deployment_postprocessing shell_path @@ -560,6 +562,7 @@ xc_language_specification_identifier attributes : 'attributes' '=' '{' class_prefix? + default_build_system_type_for_workspace? last_swift_migration? last_swift_update_check? last_upgrade_check @@ -573,6 +576,10 @@ last_swift_migration : 'LastSwiftMigration' '=' NON_QUOTED_STRING ';' ; +default_build_system_type_for_workspace + : 'DefaultBuildSystemTypeForWorkspace' '=' NON_QUOTED_STRING ';' + ; + last_swift_update_check : 'LastSwiftUpdateCheck' '=' NON_QUOTED_STRING ';' ; @@ -662,12 +669,20 @@ targets : 'targets' '=' reference_list ';' ; +input_file_list_paths + : 'inputFileListPaths' '=' any_string_list ';' + ; + input_paths : 'inputPaths' '=' any_string_list ';' ; +output_file_list_paths + : 'outputFileListPaths' '=' any_string_list ';' + ; + output_paths - : 'outputPaths' '=' non_quoted_strings_list ';' + : 'outputPaths' '=' any_string_list ';' ; shell_path @@ -789,6 +804,7 @@ REFERENCE HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX + | ('FR_'|'G_') (HEX)+ ; QUOTED_STRING diff --git a/kin/grammar/PBXProj.tokens b/kin/grammar/PBXProj.tokens index 75468eb..a23024d 100644 --- a/kin/grammar/PBXProj.tokens +++ b/kin/grammar/PBXProj.tokens @@ -97,19 +97,22 @@ T__95=96 T__96=97 T__97=98 T__98=99 -ARCHIVE_VERSION=100 -CLASSES=101 -ISA=102 -OBJECT_VERSION=103 -OBJECTS=104 -ROOT_OBJECT=105 -REFERENCE=106 -QUOTED_STRING=107 -NON_QUOTED_STRING=108 -VARIABLE=109 -WS=110 -COMMENT=111 -LINE_COMMENT=112 +T__99=100 +T__100=101 +T__101=102 +ARCHIVE_VERSION=103 +CLASSES=104 +ISA=105 +OBJECT_VERSION=106 +OBJECTS=107 +ROOT_OBJECT=108 +REFERENCE=109 +QUOTED_STRING=110 +NON_QUOTED_STRING=111 +VARIABLE=112 +WS=113 +COMMENT=114 +LINE_COMMENT=115 '{'=1 '}'=2 '='=3 @@ -167,51 +170,54 @@ LINE_COMMENT=112 'xcLanguageSpecificationIdentifier'=55 'attributes'=56 'LastSwiftMigration'=57 -'LastSwiftUpdateCheck'=58 -'LastUpgradeCheck'=59 -'LastTestingUpgradeCheck'=60 -'ORGANIZATIONNAME'=61 -'TargetAttributes'=62 -'CreatedOnToolsVersion'=63 -'TestTargetID'=64 -'DevelopmentTeam'=65 -'ProvisioningStyle'=66 -'compatibilityVersion'=67 -'developmentRegion'=68 -'hasScannedForEncodings'=69 -'knownRegions'=70 -'mainGroup'=71 -'productRefGroup'=72 -'projectDirPath'=73 -'projectReferences'=74 -'projectRoot'=75 -'targets'=76 -'inputPaths'=77 -'outputPaths'=78 -'shellPath'=79 -'shellScript'=80 -'showEnvVarsInLog'=81 -'target'=82 -'targetProxy'=83 -'fileType'=84 -'remoteRef'=85 -'baseConfigurationReference'=86 -'buildSettings'=87 -'dstPath'=88 -'dstSubfolderSpec'=89 -'ProductGroup'=90 -'ProjectRef'=91 -'buildConfigurations'=92 -'defaultConfigurationIsVisible'=93 -'defaultConfigurationName'=94 -'settings'=95 -'SystemCapabilities'=96 -'currentVersion'=97 -'versionGroupType'=98 -'CLASSPREFIX'=99 -'archiveVersion'=100 -'classes'=101 -'isa'=102 -'objectVersion'=103 -'objects'=104 -'rootObject'=105 +'DefaultBuildSystemTypeForWorkspace'=58 +'LastSwiftUpdateCheck'=59 +'LastUpgradeCheck'=60 +'LastTestingUpgradeCheck'=61 +'ORGANIZATIONNAME'=62 +'TargetAttributes'=63 +'CreatedOnToolsVersion'=64 +'TestTargetID'=65 +'DevelopmentTeam'=66 +'ProvisioningStyle'=67 +'compatibilityVersion'=68 +'developmentRegion'=69 +'hasScannedForEncodings'=70 +'knownRegions'=71 +'mainGroup'=72 +'productRefGroup'=73 +'projectDirPath'=74 +'projectReferences'=75 +'projectRoot'=76 +'targets'=77 +'inputFileListPaths'=78 +'inputPaths'=79 +'outputFileListPaths'=80 +'outputPaths'=81 +'shellPath'=82 +'shellScript'=83 +'showEnvVarsInLog'=84 +'target'=85 +'targetProxy'=86 +'fileType'=87 +'remoteRef'=88 +'baseConfigurationReference'=89 +'buildSettings'=90 +'dstPath'=91 +'dstSubfolderSpec'=92 +'ProductGroup'=93 +'ProjectRef'=94 +'buildConfigurations'=95 +'defaultConfigurationIsVisible'=96 +'defaultConfigurationName'=97 +'settings'=98 +'SystemCapabilities'=99 +'currentVersion'=100 +'versionGroupType'=101 +'CLASSPREFIX'=102 +'archiveVersion'=103 +'classes'=104 +'isa'=105 +'objectVersion'=106 +'objects'=107 +'rootObject'=108 diff --git a/kin/grammar/PBXProjLexer.py b/kin/grammar/PBXProjLexer.py index 3eaf96d..0042515 100644 --- a/kin/grammar/PBXProjLexer.py +++ b/kin/grammar/PBXProjLexer.py @@ -8,7 +8,7 @@ def serializedATN(): with StringIO() as buf: buf.write(u"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2") - buf.write(u"r\u072f\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4") + buf.write(u"u\u078d\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4") buf.write(u"\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r") buf.write(u"\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22") buf.write(u"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4") @@ -23,751 +23,791 @@ def serializedATN(): buf.write(u"\tS\4T\tT\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4") buf.write(u"\\\t\\\4]\t]\4^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\t") buf.write(u"d\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m") - buf.write(u"\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\3\2\3\2\3\3\3") - buf.write(u"\3\3\4\3\4\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3") - buf.write(u"\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3") - buf.write(u"\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3") - buf.write(u"\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3") - buf.write(u"\b\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\t\3") - buf.write(u"\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3") - buf.write(u"\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3") - buf.write(u"\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3") + buf.write(u"\tm\4n\tn\4o\to\4p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4") + buf.write(u"v\tv\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\6\3\6") + buf.write(u"\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6") + buf.write(u"\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7") + buf.write(u"\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b") + buf.write(u"\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t") + buf.write(u"\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t") + buf.write(u"\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n") + buf.write(u"\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\13") + buf.write(u"\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3") buf.write(u"\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13") - buf.write(u"\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f") - buf.write(u"\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r") - buf.write(u"\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r") - buf.write(u"\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16") - buf.write(u"\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3") - buf.write(u"\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20") - buf.write(u"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3") - buf.write(u"\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21") + buf.write(u"\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3") + buf.write(u"\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3") + buf.write(u"\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3") + buf.write(u"\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\16") + buf.write(u"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3") + buf.write(u"\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20") + buf.write(u"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3") + buf.write(u"\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21") buf.write(u"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3") - buf.write(u"\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22") - buf.write(u"\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3") buf.write(u"\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22") + buf.write(u"\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3") + buf.write(u"\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23") buf.write(u"\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3") - buf.write(u"\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23") + buf.write(u"\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\24") buf.write(u"\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3") - buf.write(u"\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25") - buf.write(u"\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3") - buf.write(u"\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26") - buf.write(u"\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3") - buf.write(u"\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27") - buf.write(u"\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3") - buf.write(u"\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30") - buf.write(u"\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\31\3\31\3") - buf.write(u"\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32") - buf.write(u"\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3") - buf.write(u"\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33") + buf.write(u"\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25") + buf.write(u"\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3") + buf.write(u"\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26") + buf.write(u"\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3") + buf.write(u"\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27") + buf.write(u"\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3") + buf.write(u"\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30") + buf.write(u"\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3") + buf.write(u"\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32") + buf.write(u"\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3") + buf.write(u"\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34") buf.write(u"\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3") - buf.write(u"\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34") - buf.write(u"\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3") - buf.write(u"\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36") - buf.write(u"\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3") - buf.write(u"\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3") - buf.write(u" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3!") - buf.write(u"\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3") - buf.write(u"\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3") - buf.write(u"#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%") - buf.write(u"\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3") - buf.write(u"&\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3") - buf.write(u"(\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*") - buf.write(u"\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3,\3") - buf.write(u",\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,") - buf.write(u"\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3-\3") - buf.write(u"-\3.\3.\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60") - buf.write(u"\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3") - buf.write(u"\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61") - buf.write(u"\3\61\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3") - buf.write(u"\62\3\62\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63") - buf.write(u"\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3") - buf.write(u"\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64") + buf.write(u"\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35") + buf.write(u"\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3") + buf.write(u"\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37") + buf.write(u"\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3") + buf.write(u"\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 ") + buf.write(u"\3 \3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3") + buf.write(u"!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3") + buf.write(u"\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3") + buf.write(u"$\3$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&") + buf.write(u"\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'") + buf.write(u"\3\'\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)") + buf.write(u"\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3+\3") + buf.write(u"+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,") + buf.write(u"\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3") + buf.write(u",\3,\3,\3,\3,\3-\3-\3.\3.\3/\3/\3\60\3\60\3\60\3\60\3") + buf.write(u"\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60") + buf.write(u"\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3") + buf.write(u"\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\62") + buf.write(u"\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3") + buf.write(u"\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63") + buf.write(u"\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3") + buf.write(u"\64\3\64\3\64\3\64\3\65\3\65\3\65\3\65\3\65\3\65\3\65") buf.write(u"\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3\65\3") - buf.write(u"\65\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66") - buf.write(u"\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3") - buf.write(u"\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\38\38\38") - buf.write(u"\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\3") - buf.write(u"8\38\38\38\38\38\38\38\38\38\38\38\38\38\39\39\39\39") - buf.write(u"\39\39\39\39\39\39\39\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3") - buf.write(u":\3:\3:\3:\3:\3:\3:\3:\3:\3;\3;\3;\3;\3;\3;\3;\3;\3;") - buf.write(u"\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3") - buf.write(u"<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3=\3=\3=\3=\3=\3=") - buf.write(u"\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3") - buf.write(u"=\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>") - buf.write(u"\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3") - buf.write(u"@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@") - buf.write(u"\3@\3@\3@\3@\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3") - buf.write(u"B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3B\3C\3C") - buf.write(u"\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3D\3") - buf.write(u"D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D") - buf.write(u"\3D\3D\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3") - buf.write(u"E\3E\3E\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F") - buf.write(u"\3F\3F\3F\3F\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G\3") - buf.write(u"G\3G\3G\3G\3H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3I\3I\3I\3I") - buf.write(u"\3I\3I\3I\3I\3I\3I\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3") - buf.write(u"J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3K\3K\3K\3K\3K\3K\3K\3K") - buf.write(u"\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3") - buf.write(u"L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N") - buf.write(u"\3N\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3") - buf.write(u"O\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3Q") - buf.write(u"\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3") - buf.write(u"R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T") - buf.write(u"\3T\3T\3T\3T\3T\3T\3U\3U\3U\3U\3U\3U\3U\3U\3U\3V\3V\3") - buf.write(u"V\3V\3V\3V\3V\3V\3V\3V\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W") - buf.write(u"\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3") - buf.write(u"X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3X\3Y\3Y\3Y\3Y") - buf.write(u"\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3") - buf.write(u"Z\3Z\3Z\3Z\3[\3[\3[\3[\3[\3[\3[\3[\3[\3[\3[\3[\3[\3\\") - buf.write(u"\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3]\3]\3]\3]") - buf.write(u"\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3^\3") - buf.write(u"^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^") - buf.write(u"\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3_\3_\3_\3_\3_\3_\3") - buf.write(u"_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_") - buf.write(u"\3_\3`\3`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3a\3a\3a\3a\3") - buf.write(u"a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3b\3b\3b\3b\3b\3b") - buf.write(u"\3b\3b\3b\3b\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3c\3c\3c\3") - buf.write(u"c\3c\3c\3c\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3d\3d\3d\3d") - buf.write(u"\3d\3d\3d\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3") - buf.write(u"e\3f\3f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3h\3h\3h\3h\3h") - buf.write(u"\3h\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3i\3i\3i\3i\3i\3") - buf.write(u"j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3k\3k") - buf.write(u"\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3") - buf.write(u"k\3l\3l\6l\u06f7\nl\rl\16l\u06f8\3l\3l\3l\3l\5l\u06ff") - buf.write(u"\nl\3m\6m\u0702\nm\rm\16m\u0703\3n\3n\3n\3o\3o\3p\3p") - buf.write(u"\3p\5p\u070e\np\3q\6q\u0711\nq\rq\16q\u0712\3q\3q\3r") - buf.write(u"\3r\3r\3r\7r\u071b\nr\fr\16r\u071e\13r\3r\3r\3r\3r\3") - buf.write(u"r\3s\3s\3s\3s\7s\u0729\ns\fs\16s\u072c\13s\3s\3s\3\u071c") - buf.write(u"\2t\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27") - buf.write(u"\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-") - buf.write(u"\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%") - buf.write(u"I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67") - buf.write(u"m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089") - buf.write(u"F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099") - buf.write(u"N\u009bO\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9") - buf.write(u"V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9") - buf.write(u"^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9") - buf.write(u"f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9") - buf.write(u"n\u00dbo\u00dd\2\u00df\2\u00e1p\u00e3q\u00e5r\3\2\7\7") - buf.write(u"\2/;C\\^^aac|\5\2\62;CHch\3\2$$\5\2\13\f\16\17\"\"\4") - buf.write(u"\2\f\f\17\17\u0733\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2") - buf.write(u"\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2") - buf.write(u"\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2") - buf.write(u"\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2") - buf.write(u"\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2") - buf.write(u"\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2") - buf.write(u"\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3") - buf.write(u"\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2") - buf.write(u"E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2") - buf.write(u"\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2") - buf.write(u"\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2") - buf.write(u"\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3") - buf.write(u"\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2") - buf.write(u"u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2") - buf.write(u"\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085") - buf.write(u"\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2") - buf.write(u"\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2") - buf.write(u"\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099") - buf.write(u"\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2") - buf.write(u"\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2") - buf.write(u"\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad") - buf.write(u"\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2") - buf.write(u"\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2") - buf.write(u"\2\u00bb\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1") - buf.write(u"\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2") - buf.write(u"\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2\2") - buf.write(u"\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5") - buf.write(u"\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2") - buf.write(u"\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2") - buf.write(u"\3\u00e7\3\2\2\2\5\u00e9\3\2\2\2\7\u00eb\3\2\2\2\t\u00ed") - buf.write(u"\3\2\2\2\13\u00ef\3\2\2\2\r\u0102\3\2\2\2\17\u010f\3") - buf.write(u"\2\2\2\21\u0125\3\2\2\2\23\u013c\3\2\2\2\25\u014d\3\2") - buf.write(u"\2\2\27\u0165\3\2\2\2\31\u016e\3\2\2\2\33\u0183\3\2\2") - buf.write(u"\2\35\u0193\3\2\2\2\37\u019e\3\2\2\2!\u01b0\3\2\2\2#") - buf.write(u"\u01c7\3\2\2\2%\u01e0\3\2\2\2\'\u01f5\3\2\2\2)\u0209") - buf.write(u"\3\2\2\2+\u0219\3\2\2\2-\u022e\3\2\2\2/\u0242\3\2\2\2") - buf.write(u"\61\u0251\3\2\2\2\63\u0259\3\2\2\2\65\u0269\3\2\2\2\67") - buf.write(u"\u0273\3\2\2\29\u0288\3\2\2\2;\u0293\3\2\2\2=\u02a0\3") - buf.write(u"\2\2\2?\u02b1\3\2\2\2A\u02c3\3\2\2\2C\u02d2\3\2\2\2E") - buf.write(u"\u02de\3\2\2\2G\u02e7\3\2\2\2I\u02f0\3\2\2\2K\u02f9\3") - buf.write(u"\2\2\2M\u030c\3\2\2\2O\u0311\3\2\2\2Q\u0316\3\2\2\2S") - buf.write(u"\u0321\3\2\2\2U\u0331\3\2\2\2W\u0337\3\2\2\2Y\u035a\3") - buf.write(u"\2\2\2[\u035c\3\2\2\2]\u035e\3\2\2\2_\u0360\3\2\2\2a") - buf.write(u"\u0377\3\2\2\2c\u0383\3\2\2\2e\u038e\3\2\2\2g\u039b\3") - buf.write(u"\2\2\2i\u03a7\3\2\2\2k\u03b8\3\2\2\2m\u03c4\3\2\2\2o") - buf.write(u"\u03cf\3\2\2\2q\u03f1\3\2\2\2s\u03fc\3\2\2\2u\u040f\3") - buf.write(u"\2\2\2w\u0424\3\2\2\2y\u0435\3\2\2\2{\u044d\3\2\2\2}") - buf.write(u"\u045e\3\2\2\2\177\u046f\3\2\2\2\u0081\u0485\3\2\2\2") - buf.write(u"\u0083\u0492\3\2\2\2\u0085\u04a2\3\2\2\2\u0087\u04b4") - buf.write(u"\3\2\2\2\u0089\u04c9\3\2\2\2\u008b\u04db\3\2\2\2\u008d") - buf.write(u"\u04f2\3\2\2\2\u008f\u04ff\3\2\2\2\u0091\u0509\3\2\2") - buf.write(u"\2\u0093\u0519\3\2\2\2\u0095\u0528\3\2\2\2\u0097\u053a") - buf.write(u"\3\2\2\2\u0099\u0546\3\2\2\2\u009b\u054e\3\2\2\2\u009d") - buf.write(u"\u0559\3\2\2\2\u009f\u0565\3\2\2\2\u00a1\u056f\3\2\2") - buf.write(u"\2\u00a3\u057b\3\2\2\2\u00a5\u058c\3\2\2\2\u00a7\u0593") - buf.write(u"\3\2\2\2\u00a9\u059f\3\2\2\2\u00ab\u05a8\3\2\2\2\u00ad") - buf.write(u"\u05b2\3\2\2\2\u00af\u05cd\3\2\2\2\u00b1\u05db\3\2\2") - buf.write(u"\2\u00b3\u05e3\3\2\2\2\u00b5\u05f4\3\2\2\2\u00b7\u0601") - buf.write(u"\3\2\2\2\u00b9\u060c\3\2\2\2\u00bb\u0620\3\2\2\2\u00bd") - buf.write(u"\u063e\3\2\2\2\u00bf\u0657\3\2\2\2\u00c1\u0660\3\2\2") - buf.write(u"\2\u00c3\u0673\3\2\2\2\u00c5\u0682\3\2\2\2\u00c7\u0693") - buf.write(u"\3\2\2\2\u00c9\u069f\3\2\2\2\u00cb\u06ae\3\2\2\2\u00cd") - buf.write(u"\u06b6\3\2\2\2\u00cf\u06ba\3\2\2\2\u00d1\u06c8\3\2\2") - buf.write(u"\2\u00d3\u06d0\3\2\2\2\u00d5\u06db\3\2\2\2\u00d7\u06fe") - buf.write(u"\3\2\2\2\u00d9\u0701\3\2\2\2\u00db\u0705\3\2\2\2\u00dd") - buf.write(u"\u0708\3\2\2\2\u00df\u070d\3\2\2\2\u00e1\u0710\3\2\2") - buf.write(u"\2\u00e3\u0716\3\2\2\2\u00e5\u0724\3\2\2\2\u00e7\u00e8") - buf.write(u"\7}\2\2\u00e8\4\3\2\2\2\u00e9\u00ea\7\177\2\2\u00ea\6") - buf.write(u"\3\2\2\2\u00eb\u00ec\7?\2\2\u00ec\b\3\2\2\2\u00ed\u00ee") - buf.write(u"\7=\2\2\u00ee\n\3\2\2\2\u00ef\u00f0\7R\2\2\u00f0\u00f1") - buf.write(u"\7D\2\2\u00f1\u00f2\7Z\2\2\u00f2\u00f3\7C\2\2\u00f3\u00f4") - buf.write(u"\7i\2\2\u00f4\u00f5\7i\2\2\u00f5\u00f6\7t\2\2\u00f6\u00f7") - buf.write(u"\7g\2\2\u00f7\u00f8\7i\2\2\u00f8\u00f9\7c\2\2\u00f9\u00fa") - buf.write(u"\7v\2\2\u00fa\u00fb\7g\2\2\u00fb\u00fc\7V\2\2\u00fc\u00fd") - buf.write(u"\7c\2\2\u00fd\u00fe\7t\2\2\u00fe\u00ff\7i\2\2\u00ff\u0100") - buf.write(u"\7g\2\2\u0100\u0101\7v\2\2\u0101\f\3\2\2\2\u0102\u0103") - buf.write(u"\7R\2\2\u0103\u0104\7D\2\2\u0104\u0105\7Z\2\2\u0105\u0106") - buf.write(u"\7D\2\2\u0106\u0107\7w\2\2\u0107\u0108\7k\2\2\u0108\u0109") - buf.write(u"\7n\2\2\u0109\u010a\7f\2\2\u010a\u010b\7H\2\2\u010b\u010c") - buf.write(u"\7k\2\2\u010c\u010d\7n\2\2\u010d\u010e\7g\2\2\u010e\16") - buf.write(u"\3\2\2\2\u010f\u0110\7R\2\2\u0110\u0111\7D\2\2\u0111") - buf.write(u"\u0112\7Z\2\2\u0112\u0113\7E\2\2\u0113\u0114\7q\2\2\u0114") - buf.write(u"\u0115\7p\2\2\u0115\u0116\7v\2\2\u0116\u0117\7c\2\2\u0117") - buf.write(u"\u0118\7k\2\2\u0118\u0119\7p\2\2\u0119\u011a\7g\2\2\u011a") - buf.write(u"\u011b\7t\2\2\u011b\u011c\7K\2\2\u011c\u011d\7v\2\2\u011d") - buf.write(u"\u011e\7g\2\2\u011e\u011f\7o\2\2\u011f\u0120\7R\2\2\u0120") - buf.write(u"\u0121\7t\2\2\u0121\u0122\7q\2\2\u0122\u0123\7z\2\2\u0123") - buf.write(u"\u0124\7{\2\2\u0124\20\3\2\2\2\u0125\u0126\7R\2\2\u0126") - buf.write(u"\u0127\7D\2\2\u0127\u0128\7Z\2\2\u0128\u0129\7E\2\2\u0129") - buf.write(u"\u012a\7q\2\2\u012a\u012b\7r\2\2\u012b\u012c\7{\2\2\u012c") - buf.write(u"\u012d\7H\2\2\u012d\u012e\7k\2\2\u012e\u012f\7n\2\2\u012f") - buf.write(u"\u0130\7g\2\2\u0130\u0131\7u\2\2\u0131\u0132\7D\2\2\u0132") - buf.write(u"\u0133\7w\2\2\u0133\u0134\7k\2\2\u0134\u0135\7n\2\2\u0135") - buf.write(u"\u0136\7f\2\2\u0136\u0137\7R\2\2\u0137\u0138\7j\2\2\u0138") - buf.write(u"\u0139\7c\2\2\u0139\u013a\7u\2\2\u013a\u013b\7g\2\2\u013b") - buf.write(u"\22\3\2\2\2\u013c\u013d\7R\2\2\u013d\u013e\7D\2\2\u013e") - buf.write(u"\u013f\7Z\2\2\u013f\u0140\7H\2\2\u0140\u0141\7k\2\2\u0141") - buf.write(u"\u0142\7n\2\2\u0142\u0143\7g\2\2\u0143\u0144\7T\2\2\u0144") - buf.write(u"\u0145\7g\2\2\u0145\u0146\7h\2\2\u0146\u0147\7g\2\2\u0147") - buf.write(u"\u0148\7t\2\2\u0148\u0149\7g\2\2\u0149\u014a\7p\2\2\u014a") - buf.write(u"\u014b\7e\2\2\u014b\u014c\7g\2\2\u014c\24\3\2\2\2\u014d") - buf.write(u"\u014e\7R\2\2\u014e\u014f\7D\2\2\u014f\u0150\7Z\2\2\u0150") - buf.write(u"\u0151\7H\2\2\u0151\u0152\7t\2\2\u0152\u0153\7c\2\2\u0153") - buf.write(u"\u0154\7o\2\2\u0154\u0155\7g\2\2\u0155\u0156\7y\2\2\u0156") - buf.write(u"\u0157\7q\2\2\u0157\u0158\7t\2\2\u0158\u0159\7m\2\2\u0159") - buf.write(u"\u015a\7u\2\2\u015a\u015b\7D\2\2\u015b\u015c\7w\2\2\u015c") - buf.write(u"\u015d\7k\2\2\u015d\u015e\7n\2\2\u015e\u015f\7f\2\2\u015f") - buf.write(u"\u0160\7R\2\2\u0160\u0161\7j\2\2\u0161\u0162\7c\2\2\u0162") - buf.write(u"\u0163\7u\2\2\u0163\u0164\7g\2\2\u0164\26\3\2\2\2\u0165") - buf.write(u"\u0166\7R\2\2\u0166\u0167\7D\2\2\u0167\u0168\7Z\2\2\u0168") - buf.write(u"\u0169\7I\2\2\u0169\u016a\7t\2\2\u016a\u016b\7q\2\2\u016b") - buf.write(u"\u016c\7w\2\2\u016c\u016d\7r\2\2\u016d\30\3\2\2\2\u016e") - buf.write(u"\u016f\7R\2\2\u016f\u0170\7D\2\2\u0170\u0171\7Z\2\2\u0171") - buf.write(u"\u0172\7J\2\2\u0172\u0173\7g\2\2\u0173\u0174\7c\2\2\u0174") - buf.write(u"\u0175\7f\2\2\u0175\u0176\7g\2\2\u0176\u0177\7t\2\2\u0177") - buf.write(u"\u0178\7u\2\2\u0178\u0179\7D\2\2\u0179\u017a\7w\2\2\u017a") - buf.write(u"\u017b\7k\2\2\u017b\u017c\7n\2\2\u017c\u017d\7f\2\2\u017d") - buf.write(u"\u017e\7R\2\2\u017e\u017f\7j\2\2\u017f\u0180\7c\2\2\u0180") - buf.write(u"\u0181\7u\2\2\u0181\u0182\7g\2\2\u0182\32\3\2\2\2\u0183") - buf.write(u"\u0184\7R\2\2\u0184\u0185\7D\2\2\u0185\u0186\7Z\2\2\u0186") - buf.write(u"\u0187\7P\2\2\u0187\u0188\7c\2\2\u0188\u0189\7v\2\2\u0189") - buf.write(u"\u018a\7k\2\2\u018a\u018b\7x\2\2\u018b\u018c\7g\2\2\u018c") - buf.write(u"\u018d\7V\2\2\u018d\u018e\7c\2\2\u018e\u018f\7t\2\2\u018f") - buf.write(u"\u0190\7i\2\2\u0190\u0191\7g\2\2\u0191\u0192\7v\2\2\u0192") - buf.write(u"\34\3\2\2\2\u0193\u0194\7R\2\2\u0194\u0195\7D\2\2\u0195") - buf.write(u"\u0196\7Z\2\2\u0196\u0197\7R\2\2\u0197\u0198\7t\2\2\u0198") - buf.write(u"\u0199\7q\2\2\u0199\u019a\7l\2\2\u019a\u019b\7g\2\2\u019b") - buf.write(u"\u019c\7e\2\2\u019c\u019d\7v\2\2\u019d\36\3\2\2\2\u019e") - buf.write(u"\u019f\7R\2\2\u019f\u01a0\7D\2\2\u01a0\u01a1\7Z\2\2\u01a1") - buf.write(u"\u01a2\7T\2\2\u01a2\u01a3\7g\2\2\u01a3\u01a4\7h\2\2\u01a4") - buf.write(u"\u01a5\7g\2\2\u01a5\u01a6\7t\2\2\u01a6\u01a7\7g\2\2\u01a7") - buf.write(u"\u01a8\7p\2\2\u01a8\u01a9\7e\2\2\u01a9\u01aa\7g\2\2\u01aa") - buf.write(u"\u01ab\7R\2\2\u01ab\u01ac\7t\2\2\u01ac\u01ad\7q\2\2\u01ad") - buf.write(u"\u01ae\7z\2\2\u01ae\u01af\7{\2\2\u01af \3\2\2\2\u01b0") - buf.write(u"\u01b1\7R\2\2\u01b1\u01b2\7D\2\2\u01b2\u01b3\7Z\2\2\u01b3") - buf.write(u"\u01b4\7T\2\2\u01b4\u01b5\7g\2\2\u01b5\u01b6\7u\2\2\u01b6") - buf.write(u"\u01b7\7q\2\2\u01b7\u01b8\7w\2\2\u01b8\u01b9\7t\2\2\u01b9") - buf.write(u"\u01ba\7e\2\2\u01ba\u01bb\7g\2\2\u01bb\u01bc\7u\2\2\u01bc") - buf.write(u"\u01bd\7D\2\2\u01bd\u01be\7w\2\2\u01be\u01bf\7k\2\2\u01bf") - buf.write(u"\u01c0\7n\2\2\u01c0\u01c1\7f\2\2\u01c1\u01c2\7R\2\2\u01c2") - buf.write(u"\u01c3\7j\2\2\u01c3\u01c4\7c\2\2\u01c4\u01c5\7u\2\2\u01c5") - buf.write(u"\u01c6\7g\2\2\u01c6\"\3\2\2\2\u01c7\u01c8\7R\2\2\u01c8") - buf.write(u"\u01c9\7D\2\2\u01c9\u01ca\7Z\2\2\u01ca\u01cb\7U\2\2\u01cb") - buf.write(u"\u01cc\7j\2\2\u01cc\u01cd\7g\2\2\u01cd\u01ce\7n\2\2\u01ce") - buf.write(u"\u01cf\7n\2\2\u01cf\u01d0\7U\2\2\u01d0\u01d1\7e\2\2\u01d1") - buf.write(u"\u01d2\7t\2\2\u01d2\u01d3\7k\2\2\u01d3\u01d4\7r\2\2\u01d4") - buf.write(u"\u01d5\7v\2\2\u01d5\u01d6\7D\2\2\u01d6\u01d7\7w\2\2\u01d7") - buf.write(u"\u01d8\7k\2\2\u01d8\u01d9\7n\2\2\u01d9\u01da\7f\2\2\u01da") - buf.write(u"\u01db\7R\2\2\u01db\u01dc\7j\2\2\u01dc\u01dd\7c\2\2\u01dd") - buf.write(u"\u01de\7u\2\2\u01de\u01df\7g\2\2\u01df$\3\2\2\2\u01e0") - buf.write(u"\u01e1\7R\2\2\u01e1\u01e2\7D\2\2\u01e2\u01e3\7Z\2\2\u01e3") - buf.write(u"\u01e4\7U\2\2\u01e4\u01e5\7q\2\2\u01e5\u01e6\7w\2\2\u01e6") - buf.write(u"\u01e7\7t\2\2\u01e7\u01e8\7e\2\2\u01e8\u01e9\7g\2\2\u01e9") - buf.write(u"\u01ea\7u\2\2\u01ea\u01eb\7D\2\2\u01eb\u01ec\7w\2\2\u01ec") - buf.write(u"\u01ed\7k\2\2\u01ed\u01ee\7n\2\2\u01ee\u01ef\7f\2\2\u01ef") - buf.write(u"\u01f0\7R\2\2\u01f0\u01f1\7j\2\2\u01f1\u01f2\7c\2\2\u01f2") - buf.write(u"\u01f3\7u\2\2\u01f3\u01f4\7g\2\2\u01f4&\3\2\2\2\u01f5") - buf.write(u"\u01f6\7R\2\2\u01f6\u01f7\7D\2\2\u01f7\u01f8\7Z\2\2\u01f8") - buf.write(u"\u01f9\7V\2\2\u01f9\u01fa\7c\2\2\u01fa\u01fb\7t\2\2\u01fb") - buf.write(u"\u01fc\7i\2\2\u01fc\u01fd\7g\2\2\u01fd\u01fe\7v\2\2\u01fe") - buf.write(u"\u01ff\7F\2\2\u01ff\u0200\7g\2\2\u0200\u0201\7r\2\2\u0201") - buf.write(u"\u0202\7g\2\2\u0202\u0203\7p\2\2\u0203\u0204\7f\2\2\u0204") - buf.write(u"\u0205\7g\2\2\u0205\u0206\7p\2\2\u0206\u0207\7e\2\2\u0207") - buf.write(u"\u0208\7{\2\2\u0208(\3\2\2\2\u0209\u020a\7R\2\2\u020a") - buf.write(u"\u020b\7D\2\2\u020b\u020c\7Z\2\2\u020c\u020d\7X\2\2\u020d") - buf.write(u"\u020e\7c\2\2\u020e\u020f\7t\2\2\u020f\u0210\7k\2\2\u0210") - buf.write(u"\u0211\7c\2\2\u0211\u0212\7p\2\2\u0212\u0213\7v\2\2\u0213") - buf.write(u"\u0214\7I\2\2\u0214\u0215\7t\2\2\u0215\u0216\7q\2\2\u0216") - buf.write(u"\u0217\7w\2\2\u0217\u0218\7r\2\2\u0218*\3\2\2\2\u0219") - buf.write(u"\u021a\7Z\2\2\u021a\u021b\7E\2\2\u021b\u021c\7D\2\2\u021c") - buf.write(u"\u021d\7w\2\2\u021d\u021e\7k\2\2\u021e\u021f\7n\2\2\u021f") - buf.write(u"\u0220\7f\2\2\u0220\u0221\7E\2\2\u0221\u0222\7q\2\2\u0222") - buf.write(u"\u0223\7p\2\2\u0223\u0224\7h\2\2\u0224\u0225\7k\2\2\u0225") - buf.write(u"\u0226\7i\2\2\u0226\u0227\7w\2\2\u0227\u0228\7t\2\2\u0228") - buf.write(u"\u0229\7c\2\2\u0229\u022a\7v\2\2\u022a\u022b\7k\2\2\u022b") - buf.write(u"\u022c\7q\2\2\u022c\u022d\7p\2\2\u022d,\3\2\2\2\u022e") - buf.write(u"\u022f\7Z\2\2\u022f\u0230\7E\2\2\u0230\u0231\7E\2\2\u0231") - buf.write(u"\u0232\7q\2\2\u0232\u0233\7p\2\2\u0233\u0234\7h\2\2\u0234") - buf.write(u"\u0235\7k\2\2\u0235\u0236\7i\2\2\u0236\u0237\7w\2\2\u0237") - buf.write(u"\u0238\7t\2\2\u0238\u0239\7c\2\2\u0239\u023a\7v\2\2\u023a") - buf.write(u"\u023b\7k\2\2\u023b\u023c\7q\2\2\u023c\u023d\7p\2\2\u023d") - buf.write(u"\u023e\7N\2\2\u023e\u023f\7k\2\2\u023f\u0240\7u\2\2\u0240") - buf.write(u"\u0241\7v\2\2\u0241.\3\2\2\2\u0242\u0243\7Z\2\2\u0243") - buf.write(u"\u0244\7E\2\2\u0244\u0245\7X\2\2\u0245\u0246\7g\2\2\u0246") - buf.write(u"\u0247\7t\2\2\u0247\u0248\7u\2\2\u0248\u0249\7k\2\2\u0249") - buf.write(u"\u024a\7q\2\2\u024a\u024b\7p\2\2\u024b\u024c\7I\2\2\u024c") - buf.write(u"\u024d\7t\2\2\u024d\u024e\7q\2\2\u024e\u024f\7w\2\2\u024f") - buf.write(u"\u0250\7r\2\2\u0250\60\3\2\2\2\u0251\u0252\7h\2\2\u0252") - buf.write(u"\u0253\7k\2\2\u0253\u0254\7n\2\2\u0254\u0255\7g\2\2\u0255") - buf.write(u"\u0256\7T\2\2\u0256\u0257\7g\2\2\u0257\u0258\7h\2\2\u0258") - buf.write(u"\62\3\2\2\2\u0259\u025a\7e\2\2\u025a\u025b\7q\2\2\u025b") - buf.write(u"\u025c\7p\2\2\u025c\u025d\7v\2\2\u025d\u025e\7c\2\2\u025e") - buf.write(u"\u025f\7k\2\2\u025f\u0260\7p\2\2\u0260\u0261\7g\2\2\u0261") - buf.write(u"\u0262\7t\2\2\u0262\u0263\7R\2\2\u0263\u0264\7q\2\2\u0264") - buf.write(u"\u0265\7t\2\2\u0265\u0266\7v\2\2\u0266\u0267\7c\2\2\u0267") - buf.write(u"\u0268\7n\2\2\u0268\64\3\2\2\2\u0269\u026a\7r\2\2\u026a") - buf.write(u"\u026b\7t\2\2\u026b\u026c\7q\2\2\u026c\u026d\7z\2\2\u026d") - buf.write(u"\u026e\7{\2\2\u026e\u026f\7V\2\2\u026f\u0270\7{\2\2\u0270") - buf.write(u"\u0271\7r\2\2\u0271\u0272\7g\2\2\u0272\66\3\2\2\2\u0273") - buf.write(u"\u0274\7t\2\2\u0274\u0275\7g\2\2\u0275\u0276\7o\2\2\u0276") - buf.write(u"\u0277\7q\2\2\u0277\u0278\7v\2\2\u0278\u0279\7g\2\2\u0279") - buf.write(u"\u027a\7I\2\2\u027a\u027b\7n\2\2\u027b\u027c\7q\2\2\u027c") - buf.write(u"\u027d\7d\2\2\u027d\u027e\7c\2\2\u027e\u027f\7n\2\2\u027f") - buf.write(u"\u0280\7K\2\2\u0280\u0281\7F\2\2\u0281\u0282\7U\2\2\u0282") - buf.write(u"\u0283\7v\2\2\u0283\u0284\7t\2\2\u0284\u0285\7k\2\2\u0285") - buf.write(u"\u0286\7p\2\2\u0286\u0287\7i\2\2\u02878\3\2\2\2\u0288") - buf.write(u"\u0289\7t\2\2\u0289\u028a\7g\2\2\u028a\u028b\7o\2\2\u028b") - buf.write(u"\u028c\7q\2\2\u028c\u028d\7v\2\2\u028d\u028e\7g\2\2\u028e") - buf.write(u"\u028f\7K\2\2\u028f\u0290\7p\2\2\u0290\u0291\7h\2\2\u0291") - buf.write(u"\u0292\7q\2\2\u0292:\3\2\2\2\u0293\u0294\7h\2\2\u0294") - buf.write(u"\u0295\7k\2\2\u0295\u0296\7n\2\2\u0296\u0297\7g\2\2\u0297") - buf.write(u"\u0298\7G\2\2\u0298\u0299\7p\2\2\u0299\u029a\7e\2\2\u029a") - buf.write(u"\u029b\7q\2\2\u029b\u029c\7f\2\2\u029c\u029d\7k\2\2\u029d") - buf.write(u"\u029e\7p\2\2\u029e\u029f\7i\2\2\u029f<\3\2\2\2\u02a0") - buf.write(u"\u02a1\7g\2\2\u02a1\u02a2\7z\2\2\u02a2\u02a3\7r\2\2\u02a3") - buf.write(u"\u02a4\7n\2\2\u02a4\u02a5\7k\2\2\u02a5\u02a6\7e\2\2\u02a6") - buf.write(u"\u02a7\7k\2\2\u02a7\u02a8\7v\2\2\u02a8\u02a9\7H\2\2\u02a9") - buf.write(u"\u02aa\7k\2\2\u02aa\u02ab\7n\2\2\u02ab\u02ac\7g\2\2\u02ac") - buf.write(u"\u02ad\7V\2\2\u02ad\u02ae\7{\2\2\u02ae\u02af\7r\2\2\u02af") - buf.write(u"\u02b0\7g\2\2\u02b0>\3\2\2\2\u02b1\u02b2\7n\2\2\u02b2") - buf.write(u"\u02b3\7c\2\2\u02b3\u02b4\7u\2\2\u02b4\u02b5\7v\2\2\u02b5") - buf.write(u"\u02b6\7M\2\2\u02b6\u02b7\7p\2\2\u02b7\u02b8\7q\2\2\u02b8") - buf.write(u"\u02b9\7y\2\2\u02b9\u02ba\7p\2\2\u02ba\u02bb\7H\2\2\u02bb") - buf.write(u"\u02bc\7k\2\2\u02bc\u02bd\7n\2\2\u02bd\u02be\7g\2\2\u02be") - buf.write(u"\u02bf\7V\2\2\u02bf\u02c0\7{\2\2\u02c0\u02c1\7r\2\2\u02c1") - buf.write(u"\u02c2\7g\2\2\u02c2@\3\2\2\2\u02c3\u02c4\7k\2\2\u02c4") - buf.write(u"\u02c5\7p\2\2\u02c5\u02c6\7e\2\2\u02c6\u02c7\7n\2\2\u02c7") - buf.write(u"\u02c8\7w\2\2\u02c8\u02c9\7f\2\2\u02c9\u02ca\7g\2\2\u02ca") - buf.write(u"\u02cb\7K\2\2\u02cb\u02cc\7p\2\2\u02cc\u02cd\7K\2\2\u02cd") - buf.write(u"\u02ce\7p\2\2\u02ce\u02cf\7f\2\2\u02cf\u02d0\7g\2\2\u02d0") - buf.write(u"\u02d1\7z\2\2\u02d1B\3\2\2\2\u02d2\u02d3\7k\2\2\u02d3") + buf.write(u"\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66") + buf.write(u"\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3") + buf.write(u"\67\3\67\38\38\38\38\38\38\38\38\38\38\38\38\38\38\3") + buf.write(u"8\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38\38") + buf.write(u"\38\38\39\39\39\39\39\39\39\39\39\39\39\3:\3:\3:\3:\3") + buf.write(u":\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3:\3;\3;\3;") + buf.write(u"\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3") + buf.write(u";\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3;\3<\3<\3<") + buf.write(u"\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3<\3") + buf.write(u"<\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=") + buf.write(u"\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3>\3") + buf.write(u">\3>\3>\3>\3>\3>\3>\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?") + buf.write(u"\3?\3?\3?\3?\3?\3?\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3") + buf.write(u"@\3@\3@\3@\3@\3@\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A") + buf.write(u"\3A\3A\3A\3A\3A\3A\3A\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3") + buf.write(u"B\3B\3B\3B\3B\3B\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C\3C") + buf.write(u"\3C\3C\3C\3C\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3D\3") + buf.write(u"D\3D\3D\3D\3D\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E\3E") + buf.write(u"\3E\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3F\3F\3F\3F\3F\3F\3") + buf.write(u"F\3F\3F\3F\3F\3F\3F\3F\3F\3G\3G\3G\3G\3G\3G\3G\3G\3G") + buf.write(u"\3G\3G\3G\3G\3G\3G\3G\3G\3G\3G\3G\3G\3G\3G\3H\3H\3H\3") + buf.write(u"H\3H\3H\3H\3H\3H\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I") + buf.write(u"\3I\3I\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3J\3") + buf.write(u"J\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3K\3L\3L") + buf.write(u"\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3M\3") + buf.write(u"M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3N\3N") + buf.write(u"\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3") + buf.write(u"O\3O\3O\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q") + buf.write(u"\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3") + buf.write(u"R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3S") + buf.write(u"\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3U\3U\3") + buf.write(u"U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3V\3V\3V") + buf.write(u"\3V\3V\3V\3V\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3X\3") + buf.write(u"X\3X\3X\3X\3X\3X\3X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y") + buf.write(u"\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3") + buf.write(u"Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3[\3[\3[\3[\3[\3[\3[\3[") + buf.write(u"\3[\3[\3[\3[\3[\3[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3") + buf.write(u"]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3^") + buf.write(u"\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3_\3_\3_\3_\3_\3") + buf.write(u"_\3_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`") + buf.write(u"\3`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3a\3a\3a\3a\3a\3a\3") + buf.write(u"a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a") + buf.write(u"\3a\3a\3a\3b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3") + buf.write(u"b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3c\3c") + buf.write(u"\3c\3c\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3d\3") + buf.write(u"d\3d\3d\3d\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e\3e") + buf.write(u"\3e\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3f\3") + buf.write(u"f\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3g\3h\3h\3h\3h\3h") + buf.write(u"\3h\3h\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3i\3i\3i\3i\3") + buf.write(u"i\3j\3j\3j\3j\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k\3k") + buf.write(u"\3k\3l\3l\3l\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\3m\3m\3m\3") + buf.write(u"m\3m\3m\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n") + buf.write(u"\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\5n\u074a") + buf.write(u"\nn\3n\6n\u074d\nn\rn\16n\u074e\5n\u0751\nn\3o\3o\6o") + buf.write(u"\u0755\no\ro\16o\u0756\3o\3o\3o\3o\5o\u075d\no\3p\6p") + buf.write(u"\u0760\np\rp\16p\u0761\3q\3q\3q\3r\3r\3s\3s\3s\5s\u076c") + buf.write(u"\ns\3t\6t\u076f\nt\rt\16t\u0770\3t\3t\3u\3u\3u\3u\7u") + buf.write(u"\u0779\nu\fu\16u\u077c\13u\3u\3u\3u\3u\3u\3v\3v\3v\3") + buf.write(u"v\7v\u0787\nv\fv\16v\u078a\13v\3v\3v\3\u077a\2w\3\3\5") + buf.write(u"\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33") + buf.write(u"\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32") + buf.write(u"\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+") + buf.write(u"U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008b") + buf.write(u"G\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b") + buf.write(u"O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00ab") + buf.write(u"W\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb") + buf.write(u"_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cb") + buf.write(u"g\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00db") + buf.write(u"o\u00ddp\u00dfq\u00e1r\u00e3\2\u00e5\2\u00e7s\u00e9t") + buf.write(u"\u00ebu\3\2\7\7\2/;C\\^^aac|\5\2\62;CHch\3\2$$\5\2\13") + buf.write(u"\f\16\17\"\"\4\2\f\f\17\17\u0794\2\3\3\2\2\2\2\5\3\2") + buf.write(u"\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2") + buf.write(u"\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2") + buf.write(u"\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2") + buf.write(u"\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3") + buf.write(u"\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2") + buf.write(u"\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\2") + buf.write(u"9\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2") + buf.write(u"\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2") + buf.write(u"\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2") + buf.write(u"\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3") + buf.write(u"\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2") + buf.write(u"i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2") + buf.write(u"\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2") + buf.write(u"\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3") + buf.write(u"\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2") + buf.write(u"\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2") + buf.write(u"\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097") + buf.write(u"\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2") + buf.write(u"\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2") + buf.write(u"\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab") + buf.write(u"\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2") + buf.write(u"\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2") + buf.write(u"\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf") + buf.write(u"\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2") + buf.write(u"\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2") + buf.write(u"\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3") + buf.write(u"\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2") + buf.write(u"\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2") + buf.write(u"\2\u00e1\3\2\2\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb") + buf.write(u"\3\2\2\2\3\u00ed\3\2\2\2\5\u00ef\3\2\2\2\7\u00f1\3\2") + buf.write(u"\2\2\t\u00f3\3\2\2\2\13\u00f5\3\2\2\2\r\u0108\3\2\2\2") + buf.write(u"\17\u0115\3\2\2\2\21\u012b\3\2\2\2\23\u0142\3\2\2\2\25") + buf.write(u"\u0153\3\2\2\2\27\u016b\3\2\2\2\31\u0174\3\2\2\2\33\u0189") + buf.write(u"\3\2\2\2\35\u0199\3\2\2\2\37\u01a4\3\2\2\2!\u01b6\3\2") + buf.write(u"\2\2#\u01cd\3\2\2\2%\u01e6\3\2\2\2\'\u01fb\3\2\2\2)\u020f") + buf.write(u"\3\2\2\2+\u021f\3\2\2\2-\u0234\3\2\2\2/\u0248\3\2\2\2") + buf.write(u"\61\u0257\3\2\2\2\63\u025f\3\2\2\2\65\u026f\3\2\2\2\67") + buf.write(u"\u0279\3\2\2\29\u028e\3\2\2\2;\u0299\3\2\2\2=\u02a6\3") + buf.write(u"\2\2\2?\u02b7\3\2\2\2A\u02c9\3\2\2\2C\u02d8\3\2\2\2E") + buf.write(u"\u02e4\3\2\2\2G\u02ed\3\2\2\2I\u02f6\3\2\2\2K\u02ff\3") + buf.write(u"\2\2\2M\u0312\3\2\2\2O\u0317\3\2\2\2Q\u031c\3\2\2\2S") + buf.write(u"\u0327\3\2\2\2U\u0337\3\2\2\2W\u033d\3\2\2\2Y\u0360\3") + buf.write(u"\2\2\2[\u0362\3\2\2\2]\u0364\3\2\2\2_\u0366\3\2\2\2a") + buf.write(u"\u037d\3\2\2\2c\u0389\3\2\2\2e\u0394\3\2\2\2g\u03a1\3") + buf.write(u"\2\2\2i\u03ad\3\2\2\2k\u03be\3\2\2\2m\u03ca\3\2\2\2o") + buf.write(u"\u03d5\3\2\2\2q\u03f7\3\2\2\2s\u0402\3\2\2\2u\u0415\3") + buf.write(u"\2\2\2w\u0438\3\2\2\2y\u044d\3\2\2\2{\u045e\3\2\2\2}") + buf.write(u"\u0476\3\2\2\2\177\u0487\3\2\2\2\u0081\u0498\3\2\2\2") + buf.write(u"\u0083\u04ae\3\2\2\2\u0085\u04bb\3\2\2\2\u0087\u04cb") + buf.write(u"\3\2\2\2\u0089\u04dd\3\2\2\2\u008b\u04f2\3\2\2\2\u008d") + buf.write(u"\u0504\3\2\2\2\u008f\u051b\3\2\2\2\u0091\u0528\3\2\2") + buf.write(u"\2\u0093\u0532\3\2\2\2\u0095\u0542\3\2\2\2\u0097\u0551") + buf.write(u"\3\2\2\2\u0099\u0563\3\2\2\2\u009b\u056f\3\2\2\2\u009d") + buf.write(u"\u0577\3\2\2\2\u009f\u058a\3\2\2\2\u00a1\u0595\3\2\2") + buf.write(u"\2\u00a3\u05a9\3\2\2\2\u00a5\u05b5\3\2\2\2\u00a7\u05bf") + buf.write(u"\3\2\2\2\u00a9\u05cb\3\2\2\2\u00ab\u05dc\3\2\2\2\u00ad") + buf.write(u"\u05e3\3\2\2\2\u00af\u05ef\3\2\2\2\u00b1\u05f8\3\2\2") + buf.write(u"\2\u00b3\u0602\3\2\2\2\u00b5\u061d\3\2\2\2\u00b7\u062b") + buf.write(u"\3\2\2\2\u00b9\u0633\3\2\2\2\u00bb\u0644\3\2\2\2\u00bd") + buf.write(u"\u0651\3\2\2\2\u00bf\u065c\3\2\2\2\u00c1\u0670\3\2\2") + buf.write(u"\2\u00c3\u068e\3\2\2\2\u00c5\u06a7\3\2\2\2\u00c7\u06b0") + buf.write(u"\3\2\2\2\u00c9\u06c3\3\2\2\2\u00cb\u06d2\3\2\2\2\u00cd") + buf.write(u"\u06e3\3\2\2\2\u00cf\u06ef\3\2\2\2\u00d1\u06fe\3\2\2") + buf.write(u"\2\u00d3\u0706\3\2\2\2\u00d5\u070a\3\2\2\2\u00d7\u0718") + buf.write(u"\3\2\2\2\u00d9\u0720\3\2\2\2\u00db\u0750\3\2\2\2\u00dd") + buf.write(u"\u075c\3\2\2\2\u00df\u075f\3\2\2\2\u00e1\u0763\3\2\2") + buf.write(u"\2\u00e3\u0766\3\2\2\2\u00e5\u076b\3\2\2\2\u00e7\u076e") + buf.write(u"\3\2\2\2\u00e9\u0774\3\2\2\2\u00eb\u0782\3\2\2\2\u00ed") + buf.write(u"\u00ee\7}\2\2\u00ee\4\3\2\2\2\u00ef\u00f0\7\177\2\2\u00f0") + buf.write(u"\6\3\2\2\2\u00f1\u00f2\7?\2\2\u00f2\b\3\2\2\2\u00f3\u00f4") + buf.write(u"\7=\2\2\u00f4\n\3\2\2\2\u00f5\u00f6\7R\2\2\u00f6\u00f7") + buf.write(u"\7D\2\2\u00f7\u00f8\7Z\2\2\u00f8\u00f9\7C\2\2\u00f9\u00fa") + buf.write(u"\7i\2\2\u00fa\u00fb\7i\2\2\u00fb\u00fc\7t\2\2\u00fc\u00fd") + buf.write(u"\7g\2\2\u00fd\u00fe\7i\2\2\u00fe\u00ff\7c\2\2\u00ff\u0100") + buf.write(u"\7v\2\2\u0100\u0101\7g\2\2\u0101\u0102\7V\2\2\u0102\u0103") + buf.write(u"\7c\2\2\u0103\u0104\7t\2\2\u0104\u0105\7i\2\2\u0105\u0106") + buf.write(u"\7g\2\2\u0106\u0107\7v\2\2\u0107\f\3\2\2\2\u0108\u0109") + buf.write(u"\7R\2\2\u0109\u010a\7D\2\2\u010a\u010b\7Z\2\2\u010b\u010c") + buf.write(u"\7D\2\2\u010c\u010d\7w\2\2\u010d\u010e\7k\2\2\u010e\u010f") + buf.write(u"\7n\2\2\u010f\u0110\7f\2\2\u0110\u0111\7H\2\2\u0111\u0112") + buf.write(u"\7k\2\2\u0112\u0113\7n\2\2\u0113\u0114\7g\2\2\u0114\16") + buf.write(u"\3\2\2\2\u0115\u0116\7R\2\2\u0116\u0117\7D\2\2\u0117") + buf.write(u"\u0118\7Z\2\2\u0118\u0119\7E\2\2\u0119\u011a\7q\2\2\u011a") + buf.write(u"\u011b\7p\2\2\u011b\u011c\7v\2\2\u011c\u011d\7c\2\2\u011d") + buf.write(u"\u011e\7k\2\2\u011e\u011f\7p\2\2\u011f\u0120\7g\2\2\u0120") + buf.write(u"\u0121\7t\2\2\u0121\u0122\7K\2\2\u0122\u0123\7v\2\2\u0123") + buf.write(u"\u0124\7g\2\2\u0124\u0125\7o\2\2\u0125\u0126\7R\2\2\u0126") + buf.write(u"\u0127\7t\2\2\u0127\u0128\7q\2\2\u0128\u0129\7z\2\2\u0129") + buf.write(u"\u012a\7{\2\2\u012a\20\3\2\2\2\u012b\u012c\7R\2\2\u012c") + buf.write(u"\u012d\7D\2\2\u012d\u012e\7Z\2\2\u012e\u012f\7E\2\2\u012f") + buf.write(u"\u0130\7q\2\2\u0130\u0131\7r\2\2\u0131\u0132\7{\2\2\u0132") + buf.write(u"\u0133\7H\2\2\u0133\u0134\7k\2\2\u0134\u0135\7n\2\2\u0135") + buf.write(u"\u0136\7g\2\2\u0136\u0137\7u\2\2\u0137\u0138\7D\2\2\u0138") + buf.write(u"\u0139\7w\2\2\u0139\u013a\7k\2\2\u013a\u013b\7n\2\2\u013b") + buf.write(u"\u013c\7f\2\2\u013c\u013d\7R\2\2\u013d\u013e\7j\2\2\u013e") + buf.write(u"\u013f\7c\2\2\u013f\u0140\7u\2\2\u0140\u0141\7g\2\2\u0141") + buf.write(u"\22\3\2\2\2\u0142\u0143\7R\2\2\u0143\u0144\7D\2\2\u0144") + buf.write(u"\u0145\7Z\2\2\u0145\u0146\7H\2\2\u0146\u0147\7k\2\2\u0147") + buf.write(u"\u0148\7n\2\2\u0148\u0149\7g\2\2\u0149\u014a\7T\2\2\u014a") + buf.write(u"\u014b\7g\2\2\u014b\u014c\7h\2\2\u014c\u014d\7g\2\2\u014d") + buf.write(u"\u014e\7t\2\2\u014e\u014f\7g\2\2\u014f\u0150\7p\2\2\u0150") + buf.write(u"\u0151\7e\2\2\u0151\u0152\7g\2\2\u0152\24\3\2\2\2\u0153") + buf.write(u"\u0154\7R\2\2\u0154\u0155\7D\2\2\u0155\u0156\7Z\2\2\u0156") + buf.write(u"\u0157\7H\2\2\u0157\u0158\7t\2\2\u0158\u0159\7c\2\2\u0159") + buf.write(u"\u015a\7o\2\2\u015a\u015b\7g\2\2\u015b\u015c\7y\2\2\u015c") + buf.write(u"\u015d\7q\2\2\u015d\u015e\7t\2\2\u015e\u015f\7m\2\2\u015f") + buf.write(u"\u0160\7u\2\2\u0160\u0161\7D\2\2\u0161\u0162\7w\2\2\u0162") + buf.write(u"\u0163\7k\2\2\u0163\u0164\7n\2\2\u0164\u0165\7f\2\2\u0165") + buf.write(u"\u0166\7R\2\2\u0166\u0167\7j\2\2\u0167\u0168\7c\2\2\u0168") + buf.write(u"\u0169\7u\2\2\u0169\u016a\7g\2\2\u016a\26\3\2\2\2\u016b") + buf.write(u"\u016c\7R\2\2\u016c\u016d\7D\2\2\u016d\u016e\7Z\2\2\u016e") + buf.write(u"\u016f\7I\2\2\u016f\u0170\7t\2\2\u0170\u0171\7q\2\2\u0171") + buf.write(u"\u0172\7w\2\2\u0172\u0173\7r\2\2\u0173\30\3\2\2\2\u0174") + buf.write(u"\u0175\7R\2\2\u0175\u0176\7D\2\2\u0176\u0177\7Z\2\2\u0177") + buf.write(u"\u0178\7J\2\2\u0178\u0179\7g\2\2\u0179\u017a\7c\2\2\u017a") + buf.write(u"\u017b\7f\2\2\u017b\u017c\7g\2\2\u017c\u017d\7t\2\2\u017d") + buf.write(u"\u017e\7u\2\2\u017e\u017f\7D\2\2\u017f\u0180\7w\2\2\u0180") + buf.write(u"\u0181\7k\2\2\u0181\u0182\7n\2\2\u0182\u0183\7f\2\2\u0183") + buf.write(u"\u0184\7R\2\2\u0184\u0185\7j\2\2\u0185\u0186\7c\2\2\u0186") + buf.write(u"\u0187\7u\2\2\u0187\u0188\7g\2\2\u0188\32\3\2\2\2\u0189") + buf.write(u"\u018a\7R\2\2\u018a\u018b\7D\2\2\u018b\u018c\7Z\2\2\u018c") + buf.write(u"\u018d\7P\2\2\u018d\u018e\7c\2\2\u018e\u018f\7v\2\2\u018f") + buf.write(u"\u0190\7k\2\2\u0190\u0191\7x\2\2\u0191\u0192\7g\2\2\u0192") + buf.write(u"\u0193\7V\2\2\u0193\u0194\7c\2\2\u0194\u0195\7t\2\2\u0195") + buf.write(u"\u0196\7i\2\2\u0196\u0197\7g\2\2\u0197\u0198\7v\2\2\u0198") + buf.write(u"\34\3\2\2\2\u0199\u019a\7R\2\2\u019a\u019b\7D\2\2\u019b") + buf.write(u"\u019c\7Z\2\2\u019c\u019d\7R\2\2\u019d\u019e\7t\2\2\u019e") + buf.write(u"\u019f\7q\2\2\u019f\u01a0\7l\2\2\u01a0\u01a1\7g\2\2\u01a1") + buf.write(u"\u01a2\7e\2\2\u01a2\u01a3\7v\2\2\u01a3\36\3\2\2\2\u01a4") + buf.write(u"\u01a5\7R\2\2\u01a5\u01a6\7D\2\2\u01a6\u01a7\7Z\2\2\u01a7") + buf.write(u"\u01a8\7T\2\2\u01a8\u01a9\7g\2\2\u01a9\u01aa\7h\2\2\u01aa") + buf.write(u"\u01ab\7g\2\2\u01ab\u01ac\7t\2\2\u01ac\u01ad\7g\2\2\u01ad") + buf.write(u"\u01ae\7p\2\2\u01ae\u01af\7e\2\2\u01af\u01b0\7g\2\2\u01b0") + buf.write(u"\u01b1\7R\2\2\u01b1\u01b2\7t\2\2\u01b2\u01b3\7q\2\2\u01b3") + buf.write(u"\u01b4\7z\2\2\u01b4\u01b5\7{\2\2\u01b5 \3\2\2\2\u01b6") + buf.write(u"\u01b7\7R\2\2\u01b7\u01b8\7D\2\2\u01b8\u01b9\7Z\2\2\u01b9") + buf.write(u"\u01ba\7T\2\2\u01ba\u01bb\7g\2\2\u01bb\u01bc\7u\2\2\u01bc") + buf.write(u"\u01bd\7q\2\2\u01bd\u01be\7w\2\2\u01be\u01bf\7t\2\2\u01bf") + buf.write(u"\u01c0\7e\2\2\u01c0\u01c1\7g\2\2\u01c1\u01c2\7u\2\2\u01c2") + buf.write(u"\u01c3\7D\2\2\u01c3\u01c4\7w\2\2\u01c4\u01c5\7k\2\2\u01c5") + buf.write(u"\u01c6\7n\2\2\u01c6\u01c7\7f\2\2\u01c7\u01c8\7R\2\2\u01c8") + buf.write(u"\u01c9\7j\2\2\u01c9\u01ca\7c\2\2\u01ca\u01cb\7u\2\2\u01cb") + buf.write(u"\u01cc\7g\2\2\u01cc\"\3\2\2\2\u01cd\u01ce\7R\2\2\u01ce") + buf.write(u"\u01cf\7D\2\2\u01cf\u01d0\7Z\2\2\u01d0\u01d1\7U\2\2\u01d1") + buf.write(u"\u01d2\7j\2\2\u01d2\u01d3\7g\2\2\u01d3\u01d4\7n\2\2\u01d4") + buf.write(u"\u01d5\7n\2\2\u01d5\u01d6\7U\2\2\u01d6\u01d7\7e\2\2\u01d7") + buf.write(u"\u01d8\7t\2\2\u01d8\u01d9\7k\2\2\u01d9\u01da\7r\2\2\u01da") + buf.write(u"\u01db\7v\2\2\u01db\u01dc\7D\2\2\u01dc\u01dd\7w\2\2\u01dd") + buf.write(u"\u01de\7k\2\2\u01de\u01df\7n\2\2\u01df\u01e0\7f\2\2\u01e0") + buf.write(u"\u01e1\7R\2\2\u01e1\u01e2\7j\2\2\u01e2\u01e3\7c\2\2\u01e3") + buf.write(u"\u01e4\7u\2\2\u01e4\u01e5\7g\2\2\u01e5$\3\2\2\2\u01e6") + buf.write(u"\u01e7\7R\2\2\u01e7\u01e8\7D\2\2\u01e8\u01e9\7Z\2\2\u01e9") + buf.write(u"\u01ea\7U\2\2\u01ea\u01eb\7q\2\2\u01eb\u01ec\7w\2\2\u01ec") + buf.write(u"\u01ed\7t\2\2\u01ed\u01ee\7e\2\2\u01ee\u01ef\7g\2\2\u01ef") + buf.write(u"\u01f0\7u\2\2\u01f0\u01f1\7D\2\2\u01f1\u01f2\7w\2\2\u01f2") + buf.write(u"\u01f3\7k\2\2\u01f3\u01f4\7n\2\2\u01f4\u01f5\7f\2\2\u01f5") + buf.write(u"\u01f6\7R\2\2\u01f6\u01f7\7j\2\2\u01f7\u01f8\7c\2\2\u01f8") + buf.write(u"\u01f9\7u\2\2\u01f9\u01fa\7g\2\2\u01fa&\3\2\2\2\u01fb") + buf.write(u"\u01fc\7R\2\2\u01fc\u01fd\7D\2\2\u01fd\u01fe\7Z\2\2\u01fe") + buf.write(u"\u01ff\7V\2\2\u01ff\u0200\7c\2\2\u0200\u0201\7t\2\2\u0201") + buf.write(u"\u0202\7i\2\2\u0202\u0203\7g\2\2\u0203\u0204\7v\2\2\u0204") + buf.write(u"\u0205\7F\2\2\u0205\u0206\7g\2\2\u0206\u0207\7r\2\2\u0207") + buf.write(u"\u0208\7g\2\2\u0208\u0209\7p\2\2\u0209\u020a\7f\2\2\u020a") + buf.write(u"\u020b\7g\2\2\u020b\u020c\7p\2\2\u020c\u020d\7e\2\2\u020d") + buf.write(u"\u020e\7{\2\2\u020e(\3\2\2\2\u020f\u0210\7R\2\2\u0210") + buf.write(u"\u0211\7D\2\2\u0211\u0212\7Z\2\2\u0212\u0213\7X\2\2\u0213") + buf.write(u"\u0214\7c\2\2\u0214\u0215\7t\2\2\u0215\u0216\7k\2\2\u0216") + buf.write(u"\u0217\7c\2\2\u0217\u0218\7p\2\2\u0218\u0219\7v\2\2\u0219") + buf.write(u"\u021a\7I\2\2\u021a\u021b\7t\2\2\u021b\u021c\7q\2\2\u021c") + buf.write(u"\u021d\7w\2\2\u021d\u021e\7r\2\2\u021e*\3\2\2\2\u021f") + buf.write(u"\u0220\7Z\2\2\u0220\u0221\7E\2\2\u0221\u0222\7D\2\2\u0222") + buf.write(u"\u0223\7w\2\2\u0223\u0224\7k\2\2\u0224\u0225\7n\2\2\u0225") + buf.write(u"\u0226\7f\2\2\u0226\u0227\7E\2\2\u0227\u0228\7q\2\2\u0228") + buf.write(u"\u0229\7p\2\2\u0229\u022a\7h\2\2\u022a\u022b\7k\2\2\u022b") + buf.write(u"\u022c\7i\2\2\u022c\u022d\7w\2\2\u022d\u022e\7t\2\2\u022e") + buf.write(u"\u022f\7c\2\2\u022f\u0230\7v\2\2\u0230\u0231\7k\2\2\u0231") + buf.write(u"\u0232\7q\2\2\u0232\u0233\7p\2\2\u0233,\3\2\2\2\u0234") + buf.write(u"\u0235\7Z\2\2\u0235\u0236\7E\2\2\u0236\u0237\7E\2\2\u0237") + buf.write(u"\u0238\7q\2\2\u0238\u0239\7p\2\2\u0239\u023a\7h\2\2\u023a") + buf.write(u"\u023b\7k\2\2\u023b\u023c\7i\2\2\u023c\u023d\7w\2\2\u023d") + buf.write(u"\u023e\7t\2\2\u023e\u023f\7c\2\2\u023f\u0240\7v\2\2\u0240") + buf.write(u"\u0241\7k\2\2\u0241\u0242\7q\2\2\u0242\u0243\7p\2\2\u0243") + buf.write(u"\u0244\7N\2\2\u0244\u0245\7k\2\2\u0245\u0246\7u\2\2\u0246") + buf.write(u"\u0247\7v\2\2\u0247.\3\2\2\2\u0248\u0249\7Z\2\2\u0249") + buf.write(u"\u024a\7E\2\2\u024a\u024b\7X\2\2\u024b\u024c\7g\2\2\u024c") + buf.write(u"\u024d\7t\2\2\u024d\u024e\7u\2\2\u024e\u024f\7k\2\2\u024f") + buf.write(u"\u0250\7q\2\2\u0250\u0251\7p\2\2\u0251\u0252\7I\2\2\u0252") + buf.write(u"\u0253\7t\2\2\u0253\u0254\7q\2\2\u0254\u0255\7w\2\2\u0255") + buf.write(u"\u0256\7r\2\2\u0256\60\3\2\2\2\u0257\u0258\7h\2\2\u0258") + buf.write(u"\u0259\7k\2\2\u0259\u025a\7n\2\2\u025a\u025b\7g\2\2\u025b") + buf.write(u"\u025c\7T\2\2\u025c\u025d\7g\2\2\u025d\u025e\7h\2\2\u025e") + buf.write(u"\62\3\2\2\2\u025f\u0260\7e\2\2\u0260\u0261\7q\2\2\u0261") + buf.write(u"\u0262\7p\2\2\u0262\u0263\7v\2\2\u0263\u0264\7c\2\2\u0264") + buf.write(u"\u0265\7k\2\2\u0265\u0266\7p\2\2\u0266\u0267\7g\2\2\u0267") + buf.write(u"\u0268\7t\2\2\u0268\u0269\7R\2\2\u0269\u026a\7q\2\2\u026a") + buf.write(u"\u026b\7t\2\2\u026b\u026c\7v\2\2\u026c\u026d\7c\2\2\u026d") + buf.write(u"\u026e\7n\2\2\u026e\64\3\2\2\2\u026f\u0270\7r\2\2\u0270") + buf.write(u"\u0271\7t\2\2\u0271\u0272\7q\2\2\u0272\u0273\7z\2\2\u0273") + buf.write(u"\u0274\7{\2\2\u0274\u0275\7V\2\2\u0275\u0276\7{\2\2\u0276") + buf.write(u"\u0277\7r\2\2\u0277\u0278\7g\2\2\u0278\66\3\2\2\2\u0279") + buf.write(u"\u027a\7t\2\2\u027a\u027b\7g\2\2\u027b\u027c\7o\2\2\u027c") + buf.write(u"\u027d\7q\2\2\u027d\u027e\7v\2\2\u027e\u027f\7g\2\2\u027f") + buf.write(u"\u0280\7I\2\2\u0280\u0281\7n\2\2\u0281\u0282\7q\2\2\u0282") + buf.write(u"\u0283\7d\2\2\u0283\u0284\7c\2\2\u0284\u0285\7n\2\2\u0285") + buf.write(u"\u0286\7K\2\2\u0286\u0287\7F\2\2\u0287\u0288\7U\2\2\u0288") + buf.write(u"\u0289\7v\2\2\u0289\u028a\7t\2\2\u028a\u028b\7k\2\2\u028b") + buf.write(u"\u028c\7p\2\2\u028c\u028d\7i\2\2\u028d8\3\2\2\2\u028e") + buf.write(u"\u028f\7t\2\2\u028f\u0290\7g\2\2\u0290\u0291\7o\2\2\u0291") + buf.write(u"\u0292\7q\2\2\u0292\u0293\7v\2\2\u0293\u0294\7g\2\2\u0294") + buf.write(u"\u0295\7K\2\2\u0295\u0296\7p\2\2\u0296\u0297\7h\2\2\u0297") + buf.write(u"\u0298\7q\2\2\u0298:\3\2\2\2\u0299\u029a\7h\2\2\u029a") + buf.write(u"\u029b\7k\2\2\u029b\u029c\7n\2\2\u029c\u029d\7g\2\2\u029d") + buf.write(u"\u029e\7G\2\2\u029e\u029f\7p\2\2\u029f\u02a0\7e\2\2\u02a0") + buf.write(u"\u02a1\7q\2\2\u02a1\u02a2\7f\2\2\u02a2\u02a3\7k\2\2\u02a3") + buf.write(u"\u02a4\7p\2\2\u02a4\u02a5\7i\2\2\u02a5<\3\2\2\2\u02a6") + buf.write(u"\u02a7\7g\2\2\u02a7\u02a8\7z\2\2\u02a8\u02a9\7r\2\2\u02a9") + buf.write(u"\u02aa\7n\2\2\u02aa\u02ab\7k\2\2\u02ab\u02ac\7e\2\2\u02ac") + buf.write(u"\u02ad\7k\2\2\u02ad\u02ae\7v\2\2\u02ae\u02af\7H\2\2\u02af") + buf.write(u"\u02b0\7k\2\2\u02b0\u02b1\7n\2\2\u02b1\u02b2\7g\2\2\u02b2") + buf.write(u"\u02b3\7V\2\2\u02b3\u02b4\7{\2\2\u02b4\u02b5\7r\2\2\u02b5") + buf.write(u"\u02b6\7g\2\2\u02b6>\3\2\2\2\u02b7\u02b8\7n\2\2\u02b8") + buf.write(u"\u02b9\7c\2\2\u02b9\u02ba\7u\2\2\u02ba\u02bb\7v\2\2\u02bb") + buf.write(u"\u02bc\7M\2\2\u02bc\u02bd\7p\2\2\u02bd\u02be\7q\2\2\u02be") + buf.write(u"\u02bf\7y\2\2\u02bf\u02c0\7p\2\2\u02c0\u02c1\7H\2\2\u02c1") + buf.write(u"\u02c2\7k\2\2\u02c2\u02c3\7n\2\2\u02c3\u02c4\7g\2\2\u02c4") + buf.write(u"\u02c5\7V\2\2\u02c5\u02c6\7{\2\2\u02c6\u02c7\7r\2\2\u02c7") + buf.write(u"\u02c8\7g\2\2\u02c8@\3\2\2\2\u02c9\u02ca\7k\2\2\u02ca") + buf.write(u"\u02cb\7p\2\2\u02cb\u02cc\7e\2\2\u02cc\u02cd\7n\2\2\u02cd") + buf.write(u"\u02ce\7w\2\2\u02ce\u02cf\7f\2\2\u02cf\u02d0\7g\2\2\u02d0") + buf.write(u"\u02d1\7K\2\2\u02d1\u02d2\7p\2\2\u02d2\u02d3\7K\2\2\u02d3") buf.write(u"\u02d4\7p\2\2\u02d4\u02d5\7f\2\2\u02d5\u02d6\7g\2\2\u02d6") - buf.write(u"\u02d7\7p\2\2\u02d7\u02d8\7v\2\2\u02d8\u02d9\7Y\2\2\u02d9") - buf.write(u"\u02da\7k\2\2\u02da\u02db\7f\2\2\u02db\u02dc\7v\2\2\u02dc") - buf.write(u"\u02dd\7j\2\2\u02ddD\3\2\2\2\u02de\u02df\7v\2\2\u02df") - buf.write(u"\u02e0\7c\2\2\u02e0\u02e1\7d\2\2\u02e1\u02e2\7Y\2\2\u02e2") - buf.write(u"\u02e3\7k\2\2\u02e3\u02e4\7f\2\2\u02e4\u02e5\7v\2\2\u02e5") - buf.write(u"\u02e6\7j\2\2\u02e6F\3\2\2\2\u02e7\u02e8\7w\2\2\u02e8") - buf.write(u"\u02e9\7u\2\2\u02e9\u02ea\7g\2\2\u02ea\u02eb\7u\2\2\u02eb") - buf.write(u"\u02ec\7V\2\2\u02ec\u02ed\7c\2\2\u02ed\u02ee\7d\2\2\u02ee") - buf.write(u"\u02ef\7u\2\2\u02efH\3\2\2\2\u02f0\u02f1\7e\2\2\u02f1") - buf.write(u"\u02f2\7j\2\2\u02f2\u02f3\7k\2\2\u02f3\u02f4\7n\2\2\u02f4") - buf.write(u"\u02f5\7f\2\2\u02f5\u02f6\7t\2\2\u02f6\u02f7\7g\2\2\u02f7") - buf.write(u"\u02f8\7p\2\2\u02f8J\3\2\2\2\u02f9\u02fa\7r\2\2\u02fa") - buf.write(u"\u02fb\7t\2\2\u02fb\u02fc\7q\2\2\u02fc\u02fd\7f\2\2\u02fd") - buf.write(u"\u02fe\7w\2\2\u02fe\u02ff\7e\2\2\u02ff\u0300\7v\2\2\u0300") - buf.write(u"\u0301\7K\2\2\u0301\u0302\7p\2\2\u0302\u0303\7u\2\2\u0303") - buf.write(u"\u0304\7v\2\2\u0304\u0305\7c\2\2\u0305\u0306\7n\2\2\u0306") - buf.write(u"\u0307\7n\2\2\u0307\u0308\7R\2\2\u0308\u0309\7c\2\2\u0309") - buf.write(u"\u030a\7v\2\2\u030a\u030b\7j\2\2\u030bL\3\2\2\2\u030c") - buf.write(u"\u030d\7p\2\2\u030d\u030e\7c\2\2\u030e\u030f\7o\2\2\u030f") - buf.write(u"\u0310\7g\2\2\u0310N\3\2\2\2\u0311\u0312\7r\2\2\u0312") - buf.write(u"\u0313\7c\2\2\u0313\u0314\7v\2\2\u0314\u0315\7j\2\2\u0315") - buf.write(u"P\3\2\2\2\u0316\u0317\7u\2\2\u0317\u0318\7q\2\2\u0318") - buf.write(u"\u0319\7w\2\2\u0319\u031a\7t\2\2\u031a\u031b\7e\2\2\u031b") - buf.write(u"\u031c\7g\2\2\u031c\u031d\7V\2\2\u031d\u031e\7t\2\2\u031e") - buf.write(u"\u031f\7g\2\2\u031f\u0320\7g\2\2\u0320R\3\2\2\2\u0321") - buf.write(u"\u0322\7d\2\2\u0322\u0323\7w\2\2\u0323\u0324\7k\2\2\u0324") - buf.write(u"\u0325\7n\2\2\u0325\u0326\7f\2\2\u0326\u0327\7C\2\2\u0327") - buf.write(u"\u0328\7e\2\2\u0328\u0329\7v\2\2\u0329\u032a\7k\2\2\u032a") - buf.write(u"\u032b\7q\2\2\u032b\u032c\7p\2\2\u032c\u032d\7O\2\2\u032d") - buf.write(u"\u032e\7c\2\2\u032e\u032f\7u\2\2\u032f\u0330\7m\2\2\u0330") - buf.write(u"T\3\2\2\2\u0331\u0332\7h\2\2\u0332\u0333\7k\2\2\u0333") - buf.write(u"\u0334\7n\2\2\u0334\u0335\7g\2\2\u0335\u0336\7u\2\2\u0336") - buf.write(u"V\3\2\2\2\u0337\u0338\7t\2\2\u0338\u0339\7w\2\2\u0339") - buf.write(u"\u033a\7p\2\2\u033a\u033b\7Q\2\2\u033b\u033c\7p\2\2\u033c") - buf.write(u"\u033d\7n\2\2\u033d\u033e\7{\2\2\u033e\u033f\7H\2\2\u033f") - buf.write(u"\u0340\7q\2\2\u0340\u0341\7t\2\2\u0341\u0342\7F\2\2\u0342") - buf.write(u"\u0343\7g\2\2\u0343\u0344\7r\2\2\u0344\u0345\7n\2\2\u0345") - buf.write(u"\u0346\7q\2\2\u0346\u0347\7{\2\2\u0347\u0348\7o\2\2\u0348") - buf.write(u"\u0349\7g\2\2\u0349\u034a\7p\2\2\u034a\u034b\7v\2\2\u034b") - buf.write(u"\u034c\7R\2\2\u034c\u034d\7q\2\2\u034d\u034e\7u\2\2\u034e") - buf.write(u"\u034f\7v\2\2\u034f\u0350\7r\2\2\u0350\u0351\7t\2\2\u0351") - buf.write(u"\u0352\7q\2\2\u0352\u0353\7e\2\2\u0353\u0354\7g\2\2\u0354") - buf.write(u"\u0355\7u\2\2\u0355\u0356\7u\2\2\u0356\u0357\7k\2\2\u0357") - buf.write(u"\u0358\7p\2\2\u0358\u0359\7i\2\2\u0359X\3\2\2\2\u035a") - buf.write(u"\u035b\7*\2\2\u035bZ\3\2\2\2\u035c\u035d\7.\2\2\u035d") - buf.write(u"\\\3\2\2\2\u035e\u035f\7+\2\2\u035f^\3\2\2\2\u0360\u0361") - buf.write(u"\7d\2\2\u0361\u0362\7w\2\2\u0362\u0363\7k\2\2\u0363\u0364") - buf.write(u"\7n\2\2\u0364\u0365\7f\2\2\u0365\u0366\7E\2\2\u0366\u0367") - buf.write(u"\7q\2\2\u0367\u0368\7p\2\2\u0368\u0369\7h\2\2\u0369\u036a") - buf.write(u"\7k\2\2\u036a\u036b\7i\2\2\u036b\u036c\7w\2\2\u036c\u036d") - buf.write(u"\7t\2\2\u036d\u036e\7c\2\2\u036e\u036f\7v\2\2\u036f\u0370") - buf.write(u"\7k\2\2\u0370\u0371\7q\2\2\u0371\u0372\7p\2\2\u0372\u0373") - buf.write(u"\7N\2\2\u0373\u0374\7k\2\2\u0374\u0375\7u\2\2\u0375\u0376") - buf.write(u"\7v\2\2\u0376`\3\2\2\2\u0377\u0378\7d\2\2\u0378\u0379") - buf.write(u"\7w\2\2\u0379\u037a\7k\2\2\u037a\u037b\7n\2\2\u037b\u037c") - buf.write(u"\7f\2\2\u037c\u037d\7R\2\2\u037d\u037e\7j\2\2\u037e\u037f") - buf.write(u"\7c\2\2\u037f\u0380\7u\2\2\u0380\u0381\7g\2\2\u0381\u0382") - buf.write(u"\7u\2\2\u0382b\3\2\2\2\u0383\u0384\7d\2\2\u0384\u0385") - buf.write(u"\7w\2\2\u0385\u0386\7k\2\2\u0386\u0387\7n\2\2\u0387\u0388") - buf.write(u"\7f\2\2\u0388\u0389\7T\2\2\u0389\u038a\7w\2\2\u038a\u038b") - buf.write(u"\7n\2\2\u038b\u038c\7g\2\2\u038c\u038d\7u\2\2\u038dd") - buf.write(u"\3\2\2\2\u038e\u038f\7f\2\2\u038f\u0390\7g\2\2\u0390") - buf.write(u"\u0391\7r\2\2\u0391\u0392\7g\2\2\u0392\u0393\7p\2\2\u0393") - buf.write(u"\u0394\7f\2\2\u0394\u0395\7g\2\2\u0395\u0396\7p\2\2\u0396") - buf.write(u"\u0397\7e\2\2\u0397\u0398\7k\2\2\u0398\u0399\7g\2\2\u0399") - buf.write(u"\u039a\7u\2\2\u039af\3\2\2\2\u039b\u039c\7r\2\2\u039c") - buf.write(u"\u039d\7t\2\2\u039d\u039e\7q\2\2\u039e\u039f\7f\2\2\u039f") - buf.write(u"\u03a0\7w\2\2\u03a0\u03a1\7e\2\2\u03a1\u03a2\7v\2\2\u03a2") - buf.write(u"\u03a3\7P\2\2\u03a3\u03a4\7c\2\2\u03a4\u03a5\7o\2\2\u03a5") - buf.write(u"\u03a6\7g\2\2\u03a6h\3\2\2\2\u03a7\u03a8\7r\2\2\u03a8") - buf.write(u"\u03a9\7t\2\2\u03a9\u03aa\7q\2\2\u03aa\u03ab\7f\2\2\u03ab") - buf.write(u"\u03ac\7w\2\2\u03ac\u03ad\7e\2\2\u03ad\u03ae\7v\2\2\u03ae") - buf.write(u"\u03af\7T\2\2\u03af\u03b0\7g\2\2\u03b0\u03b1\7h\2\2\u03b1") - buf.write(u"\u03b2\7g\2\2\u03b2\u03b3\7t\2\2\u03b3\u03b4\7g\2\2\u03b4") - buf.write(u"\u03b5\7p\2\2\u03b5\u03b6\7e\2\2\u03b6\u03b7\7g\2\2\u03b7") - buf.write(u"j\3\2\2\2\u03b8\u03b9\7r\2\2\u03b9\u03ba\7t\2\2\u03ba") - buf.write(u"\u03bb\7q\2\2\u03bb\u03bc\7f\2\2\u03bc\u03bd\7w\2\2\u03bd") - buf.write(u"\u03be\7e\2\2\u03be\u03bf\7v\2\2\u03bf\u03c0\7V\2\2\u03c0") - buf.write(u"\u03c1\7{\2\2\u03c1\u03c2\7r\2\2\u03c2\u03c3\7g\2\2\u03c3") - buf.write(u"l\3\2\2\2\u03c4\u03c5\7n\2\2\u03c5\u03c6\7k\2\2\u03c6") - buf.write(u"\u03c7\7p\2\2\u03c7\u03c8\7g\2\2\u03c8\u03c9\7G\2\2\u03c9") - buf.write(u"\u03ca\7p\2\2\u03ca\u03cb\7f\2\2\u03cb\u03cc\7k\2\2\u03cc") - buf.write(u"\u03cd\7p\2\2\u03cd\u03ce\7i\2\2\u03cen\3\2\2\2\u03cf") - buf.write(u"\u03d0\7z\2\2\u03d0\u03d1\7e\2\2\u03d1\u03d2\7N\2\2\u03d2") - buf.write(u"\u03d3\7c\2\2\u03d3\u03d4\7p\2\2\u03d4\u03d5\7i\2\2\u03d5") - buf.write(u"\u03d6\7w\2\2\u03d6\u03d7\7c\2\2\u03d7\u03d8\7i\2\2\u03d8") - buf.write(u"\u03d9\7g\2\2\u03d9\u03da\7U\2\2\u03da\u03db\7r\2\2\u03db") - buf.write(u"\u03dc\7g\2\2\u03dc\u03dd\7e\2\2\u03dd\u03de\7k\2\2\u03de") - buf.write(u"\u03df\7h\2\2\u03df\u03e0\7k\2\2\u03e0\u03e1\7e\2\2\u03e1") - buf.write(u"\u03e2\7c\2\2\u03e2\u03e3\7v\2\2\u03e3\u03e4\7k\2\2\u03e4") - buf.write(u"\u03e5\7q\2\2\u03e5\u03e6\7p\2\2\u03e6\u03e7\7K\2\2\u03e7") - buf.write(u"\u03e8\7f\2\2\u03e8\u03e9\7g\2\2\u03e9\u03ea\7p\2\2\u03ea") - buf.write(u"\u03eb\7v\2\2\u03eb\u03ec\7k\2\2\u03ec\u03ed\7h\2\2\u03ed") - buf.write(u"\u03ee\7k\2\2\u03ee\u03ef\7g\2\2\u03ef\u03f0\7t\2\2\u03f0") - buf.write(u"p\3\2\2\2\u03f1\u03f2\7c\2\2\u03f2\u03f3\7v\2\2\u03f3") - buf.write(u"\u03f4\7v\2\2\u03f4\u03f5\7t\2\2\u03f5\u03f6\7k\2\2\u03f6") - buf.write(u"\u03f7\7d\2\2\u03f7\u03f8\7w\2\2\u03f8\u03f9\7v\2\2\u03f9") - buf.write(u"\u03fa\7g\2\2\u03fa\u03fb\7u\2\2\u03fbr\3\2\2\2\u03fc") - buf.write(u"\u03fd\7N\2\2\u03fd\u03fe\7c\2\2\u03fe\u03ff\7u\2\2\u03ff") - buf.write(u"\u0400\7v\2\2\u0400\u0401\7U\2\2\u0401\u0402\7y\2\2\u0402") - buf.write(u"\u0403\7k\2\2\u0403\u0404\7h\2\2\u0404\u0405\7v\2\2\u0405") - buf.write(u"\u0406\7O\2\2\u0406\u0407\7k\2\2\u0407\u0408\7i\2\2\u0408") - buf.write(u"\u0409\7t\2\2\u0409\u040a\7c\2\2\u040a\u040b\7v\2\2\u040b") - buf.write(u"\u040c\7k\2\2\u040c\u040d\7q\2\2\u040d\u040e\7p\2\2\u040e") - buf.write(u"t\3\2\2\2\u040f\u0410\7N\2\2\u0410\u0411\7c\2\2\u0411") - buf.write(u"\u0412\7u\2\2\u0412\u0413\7v\2\2\u0413\u0414\7U\2\2\u0414") - buf.write(u"\u0415\7y\2\2\u0415\u0416\7k\2\2\u0416\u0417\7h\2\2\u0417") - buf.write(u"\u0418\7v\2\2\u0418\u0419\7W\2\2\u0419\u041a\7r\2\2\u041a") - buf.write(u"\u041b\7f\2\2\u041b\u041c\7c\2\2\u041c\u041d\7v\2\2\u041d") - buf.write(u"\u041e\7g\2\2\u041e\u041f\7E\2\2\u041f\u0420\7j\2\2\u0420") - buf.write(u"\u0421\7g\2\2\u0421\u0422\7e\2\2\u0422\u0423\7m\2\2\u0423") - buf.write(u"v\3\2\2\2\u0424\u0425\7N\2\2\u0425\u0426\7c\2\2\u0426") - buf.write(u"\u0427\7u\2\2\u0427\u0428\7v\2\2\u0428\u0429\7W\2\2\u0429") - buf.write(u"\u042a\7r\2\2\u042a\u042b\7i\2\2\u042b\u042c\7t\2\2\u042c") - buf.write(u"\u042d\7c\2\2\u042d\u042e\7f\2\2\u042e\u042f\7g\2\2\u042f") - buf.write(u"\u0430\7E\2\2\u0430\u0431\7j\2\2\u0431\u0432\7g\2\2\u0432") - buf.write(u"\u0433\7e\2\2\u0433\u0434\7m\2\2\u0434x\3\2\2\2\u0435") - buf.write(u"\u0436\7N\2\2\u0436\u0437\7c\2\2\u0437\u0438\7u\2\2\u0438") - buf.write(u"\u0439\7v\2\2\u0439\u043a\7V\2\2\u043a\u043b\7g\2\2\u043b") - buf.write(u"\u043c\7u\2\2\u043c\u043d\7v\2\2\u043d\u043e\7k\2\2\u043e") - buf.write(u"\u043f\7p\2\2\u043f\u0440\7i\2\2\u0440\u0441\7W\2\2\u0441") - buf.write(u"\u0442\7r\2\2\u0442\u0443\7i\2\2\u0443\u0444\7t\2\2\u0444") - buf.write(u"\u0445\7c\2\2\u0445\u0446\7f\2\2\u0446\u0447\7g\2\2\u0447") + buf.write(u"\u02d7\7z\2\2\u02d7B\3\2\2\2\u02d8\u02d9\7k\2\2\u02d9") + buf.write(u"\u02da\7p\2\2\u02da\u02db\7f\2\2\u02db\u02dc\7g\2\2\u02dc") + buf.write(u"\u02dd\7p\2\2\u02dd\u02de\7v\2\2\u02de\u02df\7Y\2\2\u02df") + buf.write(u"\u02e0\7k\2\2\u02e0\u02e1\7f\2\2\u02e1\u02e2\7v\2\2\u02e2") + buf.write(u"\u02e3\7j\2\2\u02e3D\3\2\2\2\u02e4\u02e5\7v\2\2\u02e5") + buf.write(u"\u02e6\7c\2\2\u02e6\u02e7\7d\2\2\u02e7\u02e8\7Y\2\2\u02e8") + buf.write(u"\u02e9\7k\2\2\u02e9\u02ea\7f\2\2\u02ea\u02eb\7v\2\2\u02eb") + buf.write(u"\u02ec\7j\2\2\u02ecF\3\2\2\2\u02ed\u02ee\7w\2\2\u02ee") + buf.write(u"\u02ef\7u\2\2\u02ef\u02f0\7g\2\2\u02f0\u02f1\7u\2\2\u02f1") + buf.write(u"\u02f2\7V\2\2\u02f2\u02f3\7c\2\2\u02f3\u02f4\7d\2\2\u02f4") + buf.write(u"\u02f5\7u\2\2\u02f5H\3\2\2\2\u02f6\u02f7\7e\2\2\u02f7") + buf.write(u"\u02f8\7j\2\2\u02f8\u02f9\7k\2\2\u02f9\u02fa\7n\2\2\u02fa") + buf.write(u"\u02fb\7f\2\2\u02fb\u02fc\7t\2\2\u02fc\u02fd\7g\2\2\u02fd") + buf.write(u"\u02fe\7p\2\2\u02feJ\3\2\2\2\u02ff\u0300\7r\2\2\u0300") + buf.write(u"\u0301\7t\2\2\u0301\u0302\7q\2\2\u0302\u0303\7f\2\2\u0303") + buf.write(u"\u0304\7w\2\2\u0304\u0305\7e\2\2\u0305\u0306\7v\2\2\u0306") + buf.write(u"\u0307\7K\2\2\u0307\u0308\7p\2\2\u0308\u0309\7u\2\2\u0309") + buf.write(u"\u030a\7v\2\2\u030a\u030b\7c\2\2\u030b\u030c\7n\2\2\u030c") + buf.write(u"\u030d\7n\2\2\u030d\u030e\7R\2\2\u030e\u030f\7c\2\2\u030f") + buf.write(u"\u0310\7v\2\2\u0310\u0311\7j\2\2\u0311L\3\2\2\2\u0312") + buf.write(u"\u0313\7p\2\2\u0313\u0314\7c\2\2\u0314\u0315\7o\2\2\u0315") + buf.write(u"\u0316\7g\2\2\u0316N\3\2\2\2\u0317\u0318\7r\2\2\u0318") + buf.write(u"\u0319\7c\2\2\u0319\u031a\7v\2\2\u031a\u031b\7j\2\2\u031b") + buf.write(u"P\3\2\2\2\u031c\u031d\7u\2\2\u031d\u031e\7q\2\2\u031e") + buf.write(u"\u031f\7w\2\2\u031f\u0320\7t\2\2\u0320\u0321\7e\2\2\u0321") + buf.write(u"\u0322\7g\2\2\u0322\u0323\7V\2\2\u0323\u0324\7t\2\2\u0324") + buf.write(u"\u0325\7g\2\2\u0325\u0326\7g\2\2\u0326R\3\2\2\2\u0327") + buf.write(u"\u0328\7d\2\2\u0328\u0329\7w\2\2\u0329\u032a\7k\2\2\u032a") + buf.write(u"\u032b\7n\2\2\u032b\u032c\7f\2\2\u032c\u032d\7C\2\2\u032d") + buf.write(u"\u032e\7e\2\2\u032e\u032f\7v\2\2\u032f\u0330\7k\2\2\u0330") + buf.write(u"\u0331\7q\2\2\u0331\u0332\7p\2\2\u0332\u0333\7O\2\2\u0333") + buf.write(u"\u0334\7c\2\2\u0334\u0335\7u\2\2\u0335\u0336\7m\2\2\u0336") + buf.write(u"T\3\2\2\2\u0337\u0338\7h\2\2\u0338\u0339\7k\2\2\u0339") + buf.write(u"\u033a\7n\2\2\u033a\u033b\7g\2\2\u033b\u033c\7u\2\2\u033c") + buf.write(u"V\3\2\2\2\u033d\u033e\7t\2\2\u033e\u033f\7w\2\2\u033f") + buf.write(u"\u0340\7p\2\2\u0340\u0341\7Q\2\2\u0341\u0342\7p\2\2\u0342") + buf.write(u"\u0343\7n\2\2\u0343\u0344\7{\2\2\u0344\u0345\7H\2\2\u0345") + buf.write(u"\u0346\7q\2\2\u0346\u0347\7t\2\2\u0347\u0348\7F\2\2\u0348") + buf.write(u"\u0349\7g\2\2\u0349\u034a\7r\2\2\u034a\u034b\7n\2\2\u034b") + buf.write(u"\u034c\7q\2\2\u034c\u034d\7{\2\2\u034d\u034e\7o\2\2\u034e") + buf.write(u"\u034f\7g\2\2\u034f\u0350\7p\2\2\u0350\u0351\7v\2\2\u0351") + buf.write(u"\u0352\7R\2\2\u0352\u0353\7q\2\2\u0353\u0354\7u\2\2\u0354") + buf.write(u"\u0355\7v\2\2\u0355\u0356\7r\2\2\u0356\u0357\7t\2\2\u0357") + buf.write(u"\u0358\7q\2\2\u0358\u0359\7e\2\2\u0359\u035a\7g\2\2\u035a") + buf.write(u"\u035b\7u\2\2\u035b\u035c\7u\2\2\u035c\u035d\7k\2\2\u035d") + buf.write(u"\u035e\7p\2\2\u035e\u035f\7i\2\2\u035fX\3\2\2\2\u0360") + buf.write(u"\u0361\7*\2\2\u0361Z\3\2\2\2\u0362\u0363\7.\2\2\u0363") + buf.write(u"\\\3\2\2\2\u0364\u0365\7+\2\2\u0365^\3\2\2\2\u0366\u0367") + buf.write(u"\7d\2\2\u0367\u0368\7w\2\2\u0368\u0369\7k\2\2\u0369\u036a") + buf.write(u"\7n\2\2\u036a\u036b\7f\2\2\u036b\u036c\7E\2\2\u036c\u036d") + buf.write(u"\7q\2\2\u036d\u036e\7p\2\2\u036e\u036f\7h\2\2\u036f\u0370") + buf.write(u"\7k\2\2\u0370\u0371\7i\2\2\u0371\u0372\7w\2\2\u0372\u0373") + buf.write(u"\7t\2\2\u0373\u0374\7c\2\2\u0374\u0375\7v\2\2\u0375\u0376") + buf.write(u"\7k\2\2\u0376\u0377\7q\2\2\u0377\u0378\7p\2\2\u0378\u0379") + buf.write(u"\7N\2\2\u0379\u037a\7k\2\2\u037a\u037b\7u\2\2\u037b\u037c") + buf.write(u"\7v\2\2\u037c`\3\2\2\2\u037d\u037e\7d\2\2\u037e\u037f") + buf.write(u"\7w\2\2\u037f\u0380\7k\2\2\u0380\u0381\7n\2\2\u0381\u0382") + buf.write(u"\7f\2\2\u0382\u0383\7R\2\2\u0383\u0384\7j\2\2\u0384\u0385") + buf.write(u"\7c\2\2\u0385\u0386\7u\2\2\u0386\u0387\7g\2\2\u0387\u0388") + buf.write(u"\7u\2\2\u0388b\3\2\2\2\u0389\u038a\7d\2\2\u038a\u038b") + buf.write(u"\7w\2\2\u038b\u038c\7k\2\2\u038c\u038d\7n\2\2\u038d\u038e") + buf.write(u"\7f\2\2\u038e\u038f\7T\2\2\u038f\u0390\7w\2\2\u0390\u0391") + buf.write(u"\7n\2\2\u0391\u0392\7g\2\2\u0392\u0393\7u\2\2\u0393d") + buf.write(u"\3\2\2\2\u0394\u0395\7f\2\2\u0395\u0396\7g\2\2\u0396") + buf.write(u"\u0397\7r\2\2\u0397\u0398\7g\2\2\u0398\u0399\7p\2\2\u0399") + buf.write(u"\u039a\7f\2\2\u039a\u039b\7g\2\2\u039b\u039c\7p\2\2\u039c") + buf.write(u"\u039d\7e\2\2\u039d\u039e\7k\2\2\u039e\u039f\7g\2\2\u039f") + buf.write(u"\u03a0\7u\2\2\u03a0f\3\2\2\2\u03a1\u03a2\7r\2\2\u03a2") + buf.write(u"\u03a3\7t\2\2\u03a3\u03a4\7q\2\2\u03a4\u03a5\7f\2\2\u03a5") + buf.write(u"\u03a6\7w\2\2\u03a6\u03a7\7e\2\2\u03a7\u03a8\7v\2\2\u03a8") + buf.write(u"\u03a9\7P\2\2\u03a9\u03aa\7c\2\2\u03aa\u03ab\7o\2\2\u03ab") + buf.write(u"\u03ac\7g\2\2\u03ach\3\2\2\2\u03ad\u03ae\7r\2\2\u03ae") + buf.write(u"\u03af\7t\2\2\u03af\u03b0\7q\2\2\u03b0\u03b1\7f\2\2\u03b1") + buf.write(u"\u03b2\7w\2\2\u03b2\u03b3\7e\2\2\u03b3\u03b4\7v\2\2\u03b4") + buf.write(u"\u03b5\7T\2\2\u03b5\u03b6\7g\2\2\u03b6\u03b7\7h\2\2\u03b7") + buf.write(u"\u03b8\7g\2\2\u03b8\u03b9\7t\2\2\u03b9\u03ba\7g\2\2\u03ba") + buf.write(u"\u03bb\7p\2\2\u03bb\u03bc\7e\2\2\u03bc\u03bd\7g\2\2\u03bd") + buf.write(u"j\3\2\2\2\u03be\u03bf\7r\2\2\u03bf\u03c0\7t\2\2\u03c0") + buf.write(u"\u03c1\7q\2\2\u03c1\u03c2\7f\2\2\u03c2\u03c3\7w\2\2\u03c3") + buf.write(u"\u03c4\7e\2\2\u03c4\u03c5\7v\2\2\u03c5\u03c6\7V\2\2\u03c6") + buf.write(u"\u03c7\7{\2\2\u03c7\u03c8\7r\2\2\u03c8\u03c9\7g\2\2\u03c9") + buf.write(u"l\3\2\2\2\u03ca\u03cb\7n\2\2\u03cb\u03cc\7k\2\2\u03cc") + buf.write(u"\u03cd\7p\2\2\u03cd\u03ce\7g\2\2\u03ce\u03cf\7G\2\2\u03cf") + buf.write(u"\u03d0\7p\2\2\u03d0\u03d1\7f\2\2\u03d1\u03d2\7k\2\2\u03d2") + buf.write(u"\u03d3\7p\2\2\u03d3\u03d4\7i\2\2\u03d4n\3\2\2\2\u03d5") + buf.write(u"\u03d6\7z\2\2\u03d6\u03d7\7e\2\2\u03d7\u03d8\7N\2\2\u03d8") + buf.write(u"\u03d9\7c\2\2\u03d9\u03da\7p\2\2\u03da\u03db\7i\2\2\u03db") + buf.write(u"\u03dc\7w\2\2\u03dc\u03dd\7c\2\2\u03dd\u03de\7i\2\2\u03de") + buf.write(u"\u03df\7g\2\2\u03df\u03e0\7U\2\2\u03e0\u03e1\7r\2\2\u03e1") + buf.write(u"\u03e2\7g\2\2\u03e2\u03e3\7e\2\2\u03e3\u03e4\7k\2\2\u03e4") + buf.write(u"\u03e5\7h\2\2\u03e5\u03e6\7k\2\2\u03e6\u03e7\7e\2\2\u03e7") + buf.write(u"\u03e8\7c\2\2\u03e8\u03e9\7v\2\2\u03e9\u03ea\7k\2\2\u03ea") + buf.write(u"\u03eb\7q\2\2\u03eb\u03ec\7p\2\2\u03ec\u03ed\7K\2\2\u03ed") + buf.write(u"\u03ee\7f\2\2\u03ee\u03ef\7g\2\2\u03ef\u03f0\7p\2\2\u03f0") + buf.write(u"\u03f1\7v\2\2\u03f1\u03f2\7k\2\2\u03f2\u03f3\7h\2\2\u03f3") + buf.write(u"\u03f4\7k\2\2\u03f4\u03f5\7g\2\2\u03f5\u03f6\7t\2\2\u03f6") + buf.write(u"p\3\2\2\2\u03f7\u03f8\7c\2\2\u03f8\u03f9\7v\2\2\u03f9") + buf.write(u"\u03fa\7v\2\2\u03fa\u03fb\7t\2\2\u03fb\u03fc\7k\2\2\u03fc") + buf.write(u"\u03fd\7d\2\2\u03fd\u03fe\7w\2\2\u03fe\u03ff\7v\2\2\u03ff") + buf.write(u"\u0400\7g\2\2\u0400\u0401\7u\2\2\u0401r\3\2\2\2\u0402") + buf.write(u"\u0403\7N\2\2\u0403\u0404\7c\2\2\u0404\u0405\7u\2\2\u0405") + buf.write(u"\u0406\7v\2\2\u0406\u0407\7U\2\2\u0407\u0408\7y\2\2\u0408") + buf.write(u"\u0409\7k\2\2\u0409\u040a\7h\2\2\u040a\u040b\7v\2\2\u040b") + buf.write(u"\u040c\7O\2\2\u040c\u040d\7k\2\2\u040d\u040e\7i\2\2\u040e") + buf.write(u"\u040f\7t\2\2\u040f\u0410\7c\2\2\u0410\u0411\7v\2\2\u0411") + buf.write(u"\u0412\7k\2\2\u0412\u0413\7q\2\2\u0413\u0414\7p\2\2\u0414") + buf.write(u"t\3\2\2\2\u0415\u0416\7F\2\2\u0416\u0417\7g\2\2\u0417") + buf.write(u"\u0418\7h\2\2\u0418\u0419\7c\2\2\u0419\u041a\7w\2\2\u041a") + buf.write(u"\u041b\7n\2\2\u041b\u041c\7v\2\2\u041c\u041d\7D\2\2\u041d") + buf.write(u"\u041e\7w\2\2\u041e\u041f\7k\2\2\u041f\u0420\7n\2\2\u0420") + buf.write(u"\u0421\7f\2\2\u0421\u0422\7U\2\2\u0422\u0423\7{\2\2\u0423") + buf.write(u"\u0424\7u\2\2\u0424\u0425\7v\2\2\u0425\u0426\7g\2\2\u0426") + buf.write(u"\u0427\7o\2\2\u0427\u0428\7V\2\2\u0428\u0429\7{\2\2\u0429") + buf.write(u"\u042a\7r\2\2\u042a\u042b\7g\2\2\u042b\u042c\7H\2\2\u042c") + buf.write(u"\u042d\7q\2\2\u042d\u042e\7t\2\2\u042e\u042f\7Y\2\2\u042f") + buf.write(u"\u0430\7q\2\2\u0430\u0431\7t\2\2\u0431\u0432\7m\2\2\u0432") + buf.write(u"\u0433\7u\2\2\u0433\u0434\7r\2\2\u0434\u0435\7c\2\2\u0435") + buf.write(u"\u0436\7e\2\2\u0436\u0437\7g\2\2\u0437v\3\2\2\2\u0438") + buf.write(u"\u0439\7N\2\2\u0439\u043a\7c\2\2\u043a\u043b\7u\2\2\u043b") + buf.write(u"\u043c\7v\2\2\u043c\u043d\7U\2\2\u043d\u043e\7y\2\2\u043e") + buf.write(u"\u043f\7k\2\2\u043f\u0440\7h\2\2\u0440\u0441\7v\2\2\u0441") + buf.write(u"\u0442\7W\2\2\u0442\u0443\7r\2\2\u0443\u0444\7f\2\2\u0444") + buf.write(u"\u0445\7c\2\2\u0445\u0446\7v\2\2\u0446\u0447\7g\2\2\u0447") buf.write(u"\u0448\7E\2\2\u0448\u0449\7j\2\2\u0449\u044a\7g\2\2\u044a") - buf.write(u"\u044b\7e\2\2\u044b\u044c\7m\2\2\u044cz\3\2\2\2\u044d") - buf.write(u"\u044e\7Q\2\2\u044e\u044f\7T\2\2\u044f\u0450\7I\2\2\u0450") - buf.write(u"\u0451\7C\2\2\u0451\u0452\7P\2\2\u0452\u0453\7K\2\2\u0453") - buf.write(u"\u0454\7\\\2\2\u0454\u0455\7C\2\2\u0455\u0456\7V\2\2") - buf.write(u"\u0456\u0457\7K\2\2\u0457\u0458\7Q\2\2\u0458\u0459\7") - buf.write(u"P\2\2\u0459\u045a\7P\2\2\u045a\u045b\7C\2\2\u045b\u045c") - buf.write(u"\7O\2\2\u045c\u045d\7G\2\2\u045d|\3\2\2\2\u045e\u045f") - buf.write(u"\7V\2\2\u045f\u0460\7c\2\2\u0460\u0461\7t\2\2\u0461\u0462") - buf.write(u"\7i\2\2\u0462\u0463\7g\2\2\u0463\u0464\7v\2\2\u0464\u0465") - buf.write(u"\7C\2\2\u0465\u0466\7v\2\2\u0466\u0467\7v\2\2\u0467\u0468") - buf.write(u"\7t\2\2\u0468\u0469\7k\2\2\u0469\u046a\7d\2\2\u046a\u046b") - buf.write(u"\7w\2\2\u046b\u046c\7v\2\2\u046c\u046d\7g\2\2\u046d\u046e") - buf.write(u"\7u\2\2\u046e~\3\2\2\2\u046f\u0470\7E\2\2\u0470\u0471") - buf.write(u"\7t\2\2\u0471\u0472\7g\2\2\u0472\u0473\7c\2\2\u0473\u0474") - buf.write(u"\7v\2\2\u0474\u0475\7g\2\2\u0475\u0476\7f\2\2\u0476\u0477") - buf.write(u"\7Q\2\2\u0477\u0478\7p\2\2\u0478\u0479\7V\2\2\u0479\u047a") - buf.write(u"\7q\2\2\u047a\u047b\7q\2\2\u047b\u047c\7n\2\2\u047c\u047d") - buf.write(u"\7u\2\2\u047d\u047e\7X\2\2\u047e\u047f\7g\2\2\u047f\u0480") - buf.write(u"\7t\2\2\u0480\u0481\7u\2\2\u0481\u0482\7k\2\2\u0482\u0483") - buf.write(u"\7q\2\2\u0483\u0484\7p\2\2\u0484\u0080\3\2\2\2\u0485") - buf.write(u"\u0486\7V\2\2\u0486\u0487\7g\2\2\u0487\u0488\7u\2\2\u0488") - buf.write(u"\u0489\7v\2\2\u0489\u048a\7V\2\2\u048a\u048b\7c\2\2\u048b") - buf.write(u"\u048c\7t\2\2\u048c\u048d\7i\2\2\u048d\u048e\7g\2\2\u048e") - buf.write(u"\u048f\7v\2\2\u048f\u0490\7K\2\2\u0490\u0491\7F\2\2\u0491") - buf.write(u"\u0082\3\2\2\2\u0492\u0493\7F\2\2\u0493\u0494\7g\2\2") - buf.write(u"\u0494\u0495\7x\2\2\u0495\u0496\7g\2\2\u0496\u0497\7") - buf.write(u"n\2\2\u0497\u0498\7q\2\2\u0498\u0499\7r\2\2\u0499\u049a") - buf.write(u"\7o\2\2\u049a\u049b\7g\2\2\u049b\u049c\7p\2\2\u049c\u049d") - buf.write(u"\7v\2\2\u049d\u049e\7V\2\2\u049e\u049f\7g\2\2\u049f\u04a0") - buf.write(u"\7c\2\2\u04a0\u04a1\7o\2\2\u04a1\u0084\3\2\2\2\u04a2") - buf.write(u"\u04a3\7R\2\2\u04a3\u04a4\7t\2\2\u04a4\u04a5\7q\2\2\u04a5") - buf.write(u"\u04a6\7x\2\2\u04a6\u04a7\7k\2\2\u04a7\u04a8\7u\2\2\u04a8") - buf.write(u"\u04a9\7k\2\2\u04a9\u04aa\7q\2\2\u04aa\u04ab\7p\2\2\u04ab") - buf.write(u"\u04ac\7k\2\2\u04ac\u04ad\7p\2\2\u04ad\u04ae\7i\2\2\u04ae") - buf.write(u"\u04af\7U\2\2\u04af\u04b0\7v\2\2\u04b0\u04b1\7{\2\2\u04b1") - buf.write(u"\u04b2\7n\2\2\u04b2\u04b3\7g\2\2\u04b3\u0086\3\2\2\2") - buf.write(u"\u04b4\u04b5\7e\2\2\u04b5\u04b6\7q\2\2\u04b6\u04b7\7") - buf.write(u"o\2\2\u04b7\u04b8\7r\2\2\u04b8\u04b9\7c\2\2\u04b9\u04ba") - buf.write(u"\7v\2\2\u04ba\u04bb\7k\2\2\u04bb\u04bc\7d\2\2\u04bc\u04bd") - buf.write(u"\7k\2\2\u04bd\u04be\7n\2\2\u04be\u04bf\7k\2\2\u04bf\u04c0") - buf.write(u"\7v\2\2\u04c0\u04c1\7{\2\2\u04c1\u04c2\7X\2\2\u04c2\u04c3") - buf.write(u"\7g\2\2\u04c3\u04c4\7t\2\2\u04c4\u04c5\7u\2\2\u04c5\u04c6") - buf.write(u"\7k\2\2\u04c6\u04c7\7q\2\2\u04c7\u04c8\7p\2\2\u04c8\u0088") - buf.write(u"\3\2\2\2\u04c9\u04ca\7f\2\2\u04ca\u04cb\7g\2\2\u04cb") - buf.write(u"\u04cc\7x\2\2\u04cc\u04cd\7g\2\2\u04cd\u04ce\7n\2\2\u04ce") - buf.write(u"\u04cf\7q\2\2\u04cf\u04d0\7r\2\2\u04d0\u04d1\7o\2\2\u04d1") - buf.write(u"\u04d2\7g\2\2\u04d2\u04d3\7p\2\2\u04d3\u04d4\7v\2\2\u04d4") - buf.write(u"\u04d5\7T\2\2\u04d5\u04d6\7g\2\2\u04d6\u04d7\7i\2\2\u04d7") - buf.write(u"\u04d8\7k\2\2\u04d8\u04d9\7q\2\2\u04d9\u04da\7p\2\2\u04da") - buf.write(u"\u008a\3\2\2\2\u04db\u04dc\7j\2\2\u04dc\u04dd\7c\2\2") - buf.write(u"\u04dd\u04de\7u\2\2\u04de\u04df\7U\2\2\u04df\u04e0\7") - buf.write(u"e\2\2\u04e0\u04e1\7c\2\2\u04e1\u04e2\7p\2\2\u04e2\u04e3") - buf.write(u"\7p\2\2\u04e3\u04e4\7g\2\2\u04e4\u04e5\7f\2\2\u04e5\u04e6") - buf.write(u"\7H\2\2\u04e6\u04e7\7q\2\2\u04e7\u04e8\7t\2\2\u04e8\u04e9") - buf.write(u"\7G\2\2\u04e9\u04ea\7p\2\2\u04ea\u04eb\7e\2\2\u04eb\u04ec") - buf.write(u"\7q\2\2\u04ec\u04ed\7f\2\2\u04ed\u04ee\7k\2\2\u04ee\u04ef") - buf.write(u"\7p\2\2\u04ef\u04f0\7i\2\2\u04f0\u04f1\7u\2\2\u04f1\u008c") - buf.write(u"\3\2\2\2\u04f2\u04f3\7m\2\2\u04f3\u04f4\7p\2\2\u04f4") - buf.write(u"\u04f5\7q\2\2\u04f5\u04f6\7y\2\2\u04f6\u04f7\7p\2\2\u04f7") - buf.write(u"\u04f8\7T\2\2\u04f8\u04f9\7g\2\2\u04f9\u04fa\7i\2\2\u04fa") - buf.write(u"\u04fb\7k\2\2\u04fb\u04fc\7q\2\2\u04fc\u04fd\7p\2\2\u04fd") - buf.write(u"\u04fe\7u\2\2\u04fe\u008e\3\2\2\2\u04ff\u0500\7o\2\2") - buf.write(u"\u0500\u0501\7c\2\2\u0501\u0502\7k\2\2\u0502\u0503\7") - buf.write(u"p\2\2\u0503\u0504\7I\2\2\u0504\u0505\7t\2\2\u0505\u0506") - buf.write(u"\7q\2\2\u0506\u0507\7w\2\2\u0507\u0508\7r\2\2\u0508\u0090") - buf.write(u"\3\2\2\2\u0509\u050a\7r\2\2\u050a\u050b\7t\2\2\u050b") - buf.write(u"\u050c\7q\2\2\u050c\u050d\7f\2\2\u050d\u050e\7w\2\2\u050e") - buf.write(u"\u050f\7e\2\2\u050f\u0510\7v\2\2\u0510\u0511\7T\2\2\u0511") - buf.write(u"\u0512\7g\2\2\u0512\u0513\7h\2\2\u0513\u0514\7I\2\2\u0514") - buf.write(u"\u0515\7t\2\2\u0515\u0516\7q\2\2\u0516\u0517\7w\2\2\u0517") - buf.write(u"\u0518\7r\2\2\u0518\u0092\3\2\2\2\u0519\u051a\7r\2\2") - buf.write(u"\u051a\u051b\7t\2\2\u051b\u051c\7q\2\2\u051c\u051d\7") - buf.write(u"l\2\2\u051d\u051e\7g\2\2\u051e\u051f\7e\2\2\u051f\u0520") - buf.write(u"\7v\2\2\u0520\u0521\7F\2\2\u0521\u0522\7k\2\2\u0522\u0523") - buf.write(u"\7t\2\2\u0523\u0524\7R\2\2\u0524\u0525\7c\2\2\u0525\u0526") - buf.write(u"\7v\2\2\u0526\u0527\7j\2\2\u0527\u0094\3\2\2\2\u0528") - buf.write(u"\u0529\7r\2\2\u0529\u052a\7t\2\2\u052a\u052b\7q\2\2\u052b") - buf.write(u"\u052c\7l\2\2\u052c\u052d\7g\2\2\u052d\u052e\7e\2\2\u052e") - buf.write(u"\u052f\7v\2\2\u052f\u0530\7T\2\2\u0530\u0531\7g\2\2\u0531") - buf.write(u"\u0532\7h\2\2\u0532\u0533\7g\2\2\u0533\u0534\7t\2\2\u0534") - buf.write(u"\u0535\7g\2\2\u0535\u0536\7p\2\2\u0536\u0537\7e\2\2\u0537") - buf.write(u"\u0538\7g\2\2\u0538\u0539\7u\2\2\u0539\u0096\3\2\2\2") - buf.write(u"\u053a\u053b\7r\2\2\u053b\u053c\7t\2\2\u053c\u053d\7") - buf.write(u"q\2\2\u053d\u053e\7l\2\2\u053e\u053f\7g\2\2\u053f\u0540") - buf.write(u"\7e\2\2\u0540\u0541\7v\2\2\u0541\u0542\7T\2\2\u0542\u0543") - buf.write(u"\7q\2\2\u0543\u0544\7q\2\2\u0544\u0545\7v\2\2\u0545\u0098") - buf.write(u"\3\2\2\2\u0546\u0547\7v\2\2\u0547\u0548\7c\2\2\u0548") - buf.write(u"\u0549\7t\2\2\u0549\u054a\7i\2\2\u054a\u054b\7g\2\2\u054b") - buf.write(u"\u054c\7v\2\2\u054c\u054d\7u\2\2\u054d\u009a\3\2\2\2") - buf.write(u"\u054e\u054f\7k\2\2\u054f\u0550\7p\2\2\u0550\u0551\7") - buf.write(u"r\2\2\u0551\u0552\7w\2\2\u0552\u0553\7v\2\2\u0553\u0554") - buf.write(u"\7R\2\2\u0554\u0555\7c\2\2\u0555\u0556\7v\2\2\u0556\u0557") - buf.write(u"\7j\2\2\u0557\u0558\7u\2\2\u0558\u009c\3\2\2\2\u0559") - buf.write(u"\u055a\7q\2\2\u055a\u055b\7w\2\2\u055b\u055c\7v\2\2\u055c") - buf.write(u"\u055d\7r\2\2\u055d\u055e\7w\2\2\u055e\u055f\7v\2\2\u055f") - buf.write(u"\u0560\7R\2\2\u0560\u0561\7c\2\2\u0561\u0562\7v\2\2\u0562") - buf.write(u"\u0563\7j\2\2\u0563\u0564\7u\2\2\u0564\u009e\3\2\2\2") - buf.write(u"\u0565\u0566\7u\2\2\u0566\u0567\7j\2\2\u0567\u0568\7") - buf.write(u"g\2\2\u0568\u0569\7n\2\2\u0569\u056a\7n\2\2\u056a\u056b") - buf.write(u"\7R\2\2\u056b\u056c\7c\2\2\u056c\u056d\7v\2\2\u056d\u056e") - buf.write(u"\7j\2\2\u056e\u00a0\3\2\2\2\u056f\u0570\7u\2\2\u0570") - buf.write(u"\u0571\7j\2\2\u0571\u0572\7g\2\2\u0572\u0573\7n\2\2\u0573") - buf.write(u"\u0574\7n\2\2\u0574\u0575\7U\2\2\u0575\u0576\7e\2\2\u0576") - buf.write(u"\u0577\7t\2\2\u0577\u0578\7k\2\2\u0578\u0579\7r\2\2\u0579") - buf.write(u"\u057a\7v\2\2\u057a\u00a2\3\2\2\2\u057b\u057c\7u\2\2") - buf.write(u"\u057c\u057d\7j\2\2\u057d\u057e\7q\2\2\u057e\u057f\7") - buf.write(u"y\2\2\u057f\u0580\7G\2\2\u0580\u0581\7p\2\2\u0581\u0582") - buf.write(u"\7x\2\2\u0582\u0583\7X\2\2\u0583\u0584\7c\2\2\u0584\u0585") - buf.write(u"\7t\2\2\u0585\u0586\7u\2\2\u0586\u0587\7K\2\2\u0587\u0588") - buf.write(u"\7p\2\2\u0588\u0589\7N\2\2\u0589\u058a\7q\2\2\u058a\u058b") - buf.write(u"\7i\2\2\u058b\u00a4\3\2\2\2\u058c\u058d\7v\2\2\u058d") - buf.write(u"\u058e\7c\2\2\u058e\u058f\7t\2\2\u058f\u0590\7i\2\2\u0590") - buf.write(u"\u0591\7g\2\2\u0591\u0592\7v\2\2\u0592\u00a6\3\2\2\2") - buf.write(u"\u0593\u0594\7v\2\2\u0594\u0595\7c\2\2\u0595\u0596\7") - buf.write(u"t\2\2\u0596\u0597\7i\2\2\u0597\u0598\7g\2\2\u0598\u0599") - buf.write(u"\7v\2\2\u0599\u059a\7R\2\2\u059a\u059b\7t\2\2\u059b\u059c") - buf.write(u"\7q\2\2\u059c\u059d\7z\2\2\u059d\u059e\7{\2\2\u059e\u00a8") - buf.write(u"\3\2\2\2\u059f\u05a0\7h\2\2\u05a0\u05a1\7k\2\2\u05a1") - buf.write(u"\u05a2\7n\2\2\u05a2\u05a3\7g\2\2\u05a3\u05a4\7V\2\2\u05a4") - buf.write(u"\u05a5\7{\2\2\u05a5\u05a6\7r\2\2\u05a6\u05a7\7g\2\2\u05a7") - buf.write(u"\u00aa\3\2\2\2\u05a8\u05a9\7t\2\2\u05a9\u05aa\7g\2\2") - buf.write(u"\u05aa\u05ab\7o\2\2\u05ab\u05ac\7q\2\2\u05ac\u05ad\7") - buf.write(u"v\2\2\u05ad\u05ae\7g\2\2\u05ae\u05af\7T\2\2\u05af\u05b0") - buf.write(u"\7g\2\2\u05b0\u05b1\7h\2\2\u05b1\u00ac\3\2\2\2\u05b2") - buf.write(u"\u05b3\7d\2\2\u05b3\u05b4\7c\2\2\u05b4\u05b5\7u\2\2\u05b5") - buf.write(u"\u05b6\7g\2\2\u05b6\u05b7\7E\2\2\u05b7\u05b8\7q\2\2\u05b8") - buf.write(u"\u05b9\7p\2\2\u05b9\u05ba\7h\2\2\u05ba\u05bb\7k\2\2\u05bb") - buf.write(u"\u05bc\7i\2\2\u05bc\u05bd\7w\2\2\u05bd\u05be\7t\2\2\u05be") - buf.write(u"\u05bf\7c\2\2\u05bf\u05c0\7v\2\2\u05c0\u05c1\7k\2\2\u05c1") - buf.write(u"\u05c2\7q\2\2\u05c2\u05c3\7p\2\2\u05c3\u05c4\7T\2\2\u05c4") - buf.write(u"\u05c5\7g\2\2\u05c5\u05c6\7h\2\2\u05c6\u05c7\7g\2\2\u05c7") - buf.write(u"\u05c8\7t\2\2\u05c8\u05c9\7g\2\2\u05c9\u05ca\7p\2\2\u05ca") - buf.write(u"\u05cb\7e\2\2\u05cb\u05cc\7g\2\2\u05cc\u00ae\3\2\2\2") - buf.write(u"\u05cd\u05ce\7d\2\2\u05ce\u05cf\7w\2\2\u05cf\u05d0\7") - buf.write(u"k\2\2\u05d0\u05d1\7n\2\2\u05d1\u05d2\7f\2\2\u05d2\u05d3") - buf.write(u"\7U\2\2\u05d3\u05d4\7g\2\2\u05d4\u05d5\7v\2\2\u05d5\u05d6") - buf.write(u"\7v\2\2\u05d6\u05d7\7k\2\2\u05d7\u05d8\7p\2\2\u05d8\u05d9") - buf.write(u"\7i\2\2\u05d9\u05da\7u\2\2\u05da\u00b0\3\2\2\2\u05db") - buf.write(u"\u05dc\7f\2\2\u05dc\u05dd\7u\2\2\u05dd\u05de\7v\2\2\u05de") - buf.write(u"\u05df\7R\2\2\u05df\u05e0\7c\2\2\u05e0\u05e1\7v\2\2\u05e1") - buf.write(u"\u05e2\7j\2\2\u05e2\u00b2\3\2\2\2\u05e3\u05e4\7f\2\2") - buf.write(u"\u05e4\u05e5\7u\2\2\u05e5\u05e6\7v\2\2\u05e6\u05e7\7") - buf.write(u"U\2\2\u05e7\u05e8\7w\2\2\u05e8\u05e9\7d\2\2\u05e9\u05ea") - buf.write(u"\7h\2\2\u05ea\u05eb\7q\2\2\u05eb\u05ec\7n\2\2\u05ec\u05ed") - buf.write(u"\7f\2\2\u05ed\u05ee\7g\2\2\u05ee\u05ef\7t\2\2\u05ef\u05f0") - buf.write(u"\7U\2\2\u05f0\u05f1\7r\2\2\u05f1\u05f2\7g\2\2\u05f2\u05f3") - buf.write(u"\7e\2\2\u05f3\u00b4\3\2\2\2\u05f4\u05f5\7R\2\2\u05f5") - buf.write(u"\u05f6\7t\2\2\u05f6\u05f7\7q\2\2\u05f7\u05f8\7f\2\2\u05f8") - buf.write(u"\u05f9\7w\2\2\u05f9\u05fa\7e\2\2\u05fa\u05fb\7v\2\2\u05fb") - buf.write(u"\u05fc\7I\2\2\u05fc\u05fd\7t\2\2\u05fd\u05fe\7q\2\2\u05fe") - buf.write(u"\u05ff\7w\2\2\u05ff\u0600\7r\2\2\u0600\u00b6\3\2\2\2") - buf.write(u"\u0601\u0602\7R\2\2\u0602\u0603\7t\2\2\u0603\u0604\7") - buf.write(u"q\2\2\u0604\u0605\7l\2\2\u0605\u0606\7g\2\2\u0606\u0607") - buf.write(u"\7e\2\2\u0607\u0608\7v\2\2\u0608\u0609\7T\2\2\u0609\u060a") - buf.write(u"\7g\2\2\u060a\u060b\7h\2\2\u060b\u00b8\3\2\2\2\u060c") - buf.write(u"\u060d\7d\2\2\u060d\u060e\7w\2\2\u060e\u060f\7k\2\2\u060f") - buf.write(u"\u0610\7n\2\2\u0610\u0611\7f\2\2\u0611\u0612\7E\2\2\u0612") - buf.write(u"\u0613\7q\2\2\u0613\u0614\7p\2\2\u0614\u0615\7h\2\2\u0615") - buf.write(u"\u0616\7k\2\2\u0616\u0617\7i\2\2\u0617\u0618\7w\2\2\u0618") - buf.write(u"\u0619\7t\2\2\u0619\u061a\7c\2\2\u061a\u061b\7v\2\2\u061b") - buf.write(u"\u061c\7k\2\2\u061c\u061d\7q\2\2\u061d\u061e\7p\2\2\u061e") - buf.write(u"\u061f\7u\2\2\u061f\u00ba\3\2\2\2\u0620\u0621\7f\2\2") - buf.write(u"\u0621\u0622\7g\2\2\u0622\u0623\7h\2\2\u0623\u0624\7") - buf.write(u"c\2\2\u0624\u0625\7w\2\2\u0625\u0626\7n\2\2\u0626\u0627") - buf.write(u"\7v\2\2\u0627\u0628\7E\2\2\u0628\u0629\7q\2\2\u0629\u062a") - buf.write(u"\7p\2\2\u062a\u062b\7h\2\2\u062b\u062c\7k\2\2\u062c\u062d") - buf.write(u"\7i\2\2\u062d\u062e\7w\2\2\u062e\u062f\7t\2\2\u062f\u0630") - buf.write(u"\7c\2\2\u0630\u0631\7v\2\2\u0631\u0632\7k\2\2\u0632\u0633") - buf.write(u"\7q\2\2\u0633\u0634\7p\2\2\u0634\u0635\7K\2\2\u0635\u0636") - buf.write(u"\7u\2\2\u0636\u0637\7X\2\2\u0637\u0638\7k\2\2\u0638\u0639") - buf.write(u"\7u\2\2\u0639\u063a\7k\2\2\u063a\u063b\7d\2\2\u063b\u063c") - buf.write(u"\7n\2\2\u063c\u063d\7g\2\2\u063d\u00bc\3\2\2\2\u063e") - buf.write(u"\u063f\7f\2\2\u063f\u0640\7g\2\2\u0640\u0641\7h\2\2\u0641") - buf.write(u"\u0642\7c\2\2\u0642\u0643\7w\2\2\u0643\u0644\7n\2\2\u0644") - buf.write(u"\u0645\7v\2\2\u0645\u0646\7E\2\2\u0646\u0647\7q\2\2\u0647") - buf.write(u"\u0648\7p\2\2\u0648\u0649\7h\2\2\u0649\u064a\7k\2\2\u064a") - buf.write(u"\u064b\7i\2\2\u064b\u064c\7w\2\2\u064c\u064d\7t\2\2\u064d") - buf.write(u"\u064e\7c\2\2\u064e\u064f\7v\2\2\u064f\u0650\7k\2\2\u0650") - buf.write(u"\u0651\7q\2\2\u0651\u0652\7p\2\2\u0652\u0653\7P\2\2\u0653") - buf.write(u"\u0654\7c\2\2\u0654\u0655\7o\2\2\u0655\u0656\7g\2\2\u0656") - buf.write(u"\u00be\3\2\2\2\u0657\u0658\7u\2\2\u0658\u0659\7g\2\2") - buf.write(u"\u0659\u065a\7v\2\2\u065a\u065b\7v\2\2\u065b\u065c\7") - buf.write(u"k\2\2\u065c\u065d\7p\2\2\u065d\u065e\7i\2\2\u065e\u065f") - buf.write(u"\7u\2\2\u065f\u00c0\3\2\2\2\u0660\u0661\7U\2\2\u0661") - buf.write(u"\u0662\7{\2\2\u0662\u0663\7u\2\2\u0663\u0664\7v\2\2\u0664") - buf.write(u"\u0665\7g\2\2\u0665\u0666\7o\2\2\u0666\u0667\7E\2\2\u0667") - buf.write(u"\u0668\7c\2\2\u0668\u0669\7r\2\2\u0669\u066a\7c\2\2\u066a") - buf.write(u"\u066b\7d\2\2\u066b\u066c\7k\2\2\u066c\u066d\7n\2\2\u066d") - buf.write(u"\u066e\7k\2\2\u066e\u066f\7v\2\2\u066f\u0670\7k\2\2\u0670") - buf.write(u"\u0671\7g\2\2\u0671\u0672\7u\2\2\u0672\u00c2\3\2\2\2") - buf.write(u"\u0673\u0674\7e\2\2\u0674\u0675\7w\2\2\u0675\u0676\7") - buf.write(u"t\2\2\u0676\u0677\7t\2\2\u0677\u0678\7g\2\2\u0678\u0679") - buf.write(u"\7p\2\2\u0679\u067a\7v\2\2\u067a\u067b\7X\2\2\u067b\u067c") - buf.write(u"\7g\2\2\u067c\u067d\7t\2\2\u067d\u067e\7u\2\2\u067e\u067f") - buf.write(u"\7k\2\2\u067f\u0680\7q\2\2\u0680\u0681\7p\2\2\u0681\u00c4") - buf.write(u"\3\2\2\2\u0682\u0683\7x\2\2\u0683\u0684\7g\2\2\u0684") - buf.write(u"\u0685\7t\2\2\u0685\u0686\7u\2\2\u0686\u0687\7k\2\2\u0687") - buf.write(u"\u0688\7q\2\2\u0688\u0689\7p\2\2\u0689\u068a\7I\2\2\u068a") - buf.write(u"\u068b\7t\2\2\u068b\u068c\7q\2\2\u068c\u068d\7w\2\2\u068d") - buf.write(u"\u068e\7r\2\2\u068e\u068f\7V\2\2\u068f\u0690\7{\2\2\u0690") - buf.write(u"\u0691\7r\2\2\u0691\u0692\7g\2\2\u0692\u00c6\3\2\2\2") - buf.write(u"\u0693\u0694\7E\2\2\u0694\u0695\7N\2\2\u0695\u0696\7") - buf.write(u"C\2\2\u0696\u0697\7U\2\2\u0697\u0698\7U\2\2\u0698\u0699") - buf.write(u"\7R\2\2\u0699\u069a\7T\2\2\u069a\u069b\7G\2\2\u069b\u069c") - buf.write(u"\7H\2\2\u069c\u069d\7K\2\2\u069d\u069e\7Z\2\2\u069e\u00c8") - buf.write(u"\3\2\2\2\u069f\u06a0\7c\2\2\u06a0\u06a1\7t\2\2\u06a1") - buf.write(u"\u06a2\7e\2\2\u06a2\u06a3\7j\2\2\u06a3\u06a4\7k\2\2\u06a4") - buf.write(u"\u06a5\7x\2\2\u06a5\u06a6\7g\2\2\u06a6\u06a7\7X\2\2\u06a7") - buf.write(u"\u06a8\7g\2\2\u06a8\u06a9\7t\2\2\u06a9\u06aa\7u\2\2\u06aa") - buf.write(u"\u06ab\7k\2\2\u06ab\u06ac\7q\2\2\u06ac\u06ad\7p\2\2\u06ad") - buf.write(u"\u00ca\3\2\2\2\u06ae\u06af\7e\2\2\u06af\u06b0\7n\2\2") - buf.write(u"\u06b0\u06b1\7c\2\2\u06b1\u06b2\7u\2\2\u06b2\u06b3\7") - buf.write(u"u\2\2\u06b3\u06b4\7g\2\2\u06b4\u06b5\7u\2\2\u06b5\u00cc") - buf.write(u"\3\2\2\2\u06b6\u06b7\7k\2\2\u06b7\u06b8\7u\2\2\u06b8") - buf.write(u"\u06b9\7c\2\2\u06b9\u00ce\3\2\2\2\u06ba\u06bb\7q\2\2") - buf.write(u"\u06bb\u06bc\7d\2\2\u06bc\u06bd\7l\2\2\u06bd\u06be\7") - buf.write(u"g\2\2\u06be\u06bf\7e\2\2\u06bf\u06c0\7v\2\2\u06c0\u06c1") - buf.write(u"\7X\2\2\u06c1\u06c2\7g\2\2\u06c2\u06c3\7t\2\2\u06c3\u06c4") - buf.write(u"\7u\2\2\u06c4\u06c5\7k\2\2\u06c5\u06c6\7q\2\2\u06c6\u06c7") - buf.write(u"\7p\2\2\u06c7\u00d0\3\2\2\2\u06c8\u06c9\7q\2\2\u06c9") - buf.write(u"\u06ca\7d\2\2\u06ca\u06cb\7l\2\2\u06cb\u06cc\7g\2\2\u06cc") - buf.write(u"\u06cd\7e\2\2\u06cd\u06ce\7v\2\2\u06ce\u06cf\7u\2\2\u06cf") - buf.write(u"\u00d2\3\2\2\2\u06d0\u06d1\7t\2\2\u06d1\u06d2\7q\2\2") - buf.write(u"\u06d2\u06d3\7q\2\2\u06d3\u06d4\7v\2\2\u06d4\u06d5\7") - buf.write(u"Q\2\2\u06d5\u06d6\7d\2\2\u06d6\u06d7\7l\2\2\u06d7\u06d8") - buf.write(u"\7g\2\2\u06d8\u06d9\7e\2\2\u06d9\u06da\7v\2\2\u06da\u00d4") - buf.write(u"\3\2\2\2\u06db\u06dc\5\u00ddo\2\u06dc\u06dd\5\u00ddo") - buf.write(u"\2\u06dd\u06de\5\u00ddo\2\u06de\u06df\5\u00ddo\2\u06df") - buf.write(u"\u06e0\5\u00ddo\2\u06e0\u06e1\5\u00ddo\2\u06e1\u06e2") - buf.write(u"\5\u00ddo\2\u06e2\u06e3\5\u00ddo\2\u06e3\u06e4\5\u00dd") - buf.write(u"o\2\u06e4\u06e5\5\u00ddo\2\u06e5\u06e6\5\u00ddo\2\u06e6") - buf.write(u"\u06e7\5\u00ddo\2\u06e7\u06e8\5\u00ddo\2\u06e8\u06e9") - buf.write(u"\5\u00ddo\2\u06e9\u06ea\5\u00ddo\2\u06ea\u06eb\5\u00dd") - buf.write(u"o\2\u06eb\u06ec\5\u00ddo\2\u06ec\u06ed\5\u00ddo\2\u06ed") - buf.write(u"\u06ee\5\u00ddo\2\u06ee\u06ef\5\u00ddo\2\u06ef\u06f0") - buf.write(u"\5\u00ddo\2\u06f0\u06f1\5\u00ddo\2\u06f1\u06f2\5\u00dd") - buf.write(u"o\2\u06f2\u06f3\5\u00ddo\2\u06f3\u00d6\3\2\2\2\u06f4") - buf.write(u"\u06f6\7$\2\2\u06f5\u06f7\5\u00dfp\2\u06f6\u06f5\3\2") - buf.write(u"\2\2\u06f7\u06f8\3\2\2\2\u06f8\u06f6\3\2\2\2\u06f8\u06f9") - buf.write(u"\3\2\2\2\u06f9\u06fa\3\2\2\2\u06fa\u06fb\7$\2\2\u06fb") - buf.write(u"\u06ff\3\2\2\2\u06fc\u06fd\7$\2\2\u06fd\u06ff\7$\2\2") - buf.write(u"\u06fe\u06f4\3\2\2\2\u06fe\u06fc\3\2\2\2\u06ff\u00d8") - buf.write(u"\3\2\2\2\u0700\u0702\t\2\2\2\u0701\u0700\3\2\2\2\u0702") - buf.write(u"\u0703\3\2\2\2\u0703\u0701\3\2\2\2\u0703\u0704\3\2\2") - buf.write(u"\2\u0704\u00da\3\2\2\2\u0705\u0706\7&\2\2\u0706\u0707") - buf.write(u"\5\u00d9m\2\u0707\u00dc\3\2\2\2\u0708\u0709\t\3\2\2\u0709") - buf.write(u"\u00de\3\2\2\2\u070a\u070e\n\4\2\2\u070b\u070c\7^\2\2") - buf.write(u"\u070c\u070e\7$\2\2\u070d\u070a\3\2\2\2\u070d\u070b\3") - buf.write(u"\2\2\2\u070e\u00e0\3\2\2\2\u070f\u0711\t\5\2\2\u0710") - buf.write(u"\u070f\3\2\2\2\u0711\u0712\3\2\2\2\u0712\u0710\3\2\2") - buf.write(u"\2\u0712\u0713\3\2\2\2\u0713\u0714\3\2\2\2\u0714\u0715") - buf.write(u"\bq\2\2\u0715\u00e2\3\2\2\2\u0716\u0717\7\61\2\2\u0717") - buf.write(u"\u0718\7,\2\2\u0718\u071c\3\2\2\2\u0719\u071b\13\2\2") - buf.write(u"\2\u071a\u0719\3\2\2\2\u071b\u071e\3\2\2\2\u071c\u071d") - buf.write(u"\3\2\2\2\u071c\u071a\3\2\2\2\u071d\u071f\3\2\2\2\u071e") - buf.write(u"\u071c\3\2\2\2\u071f\u0720\7,\2\2\u0720\u0721\7\61\2") - buf.write(u"\2\u0721\u0722\3\2\2\2\u0722\u0723\br\2\2\u0723\u00e4") - buf.write(u"\3\2\2\2\u0724\u0725\7\61\2\2\u0725\u0726\7\61\2\2\u0726") - buf.write(u"\u072a\3\2\2\2\u0727\u0729\n\6\2\2\u0728\u0727\3\2\2") - buf.write(u"\2\u0729\u072c\3\2\2\2\u072a\u0728\3\2\2\2\u072a\u072b") - buf.write(u"\3\2\2\2\u072b\u072d\3\2\2\2\u072c\u072a\3\2\2\2\u072d") - buf.write(u"\u072e\bs\2\2\u072e\u00e6\3\2\2\2\n\2\u06f8\u06fe\u0703") - buf.write(u"\u070d\u0712\u071c\u072a\3\b\2\2") + buf.write(u"\u044b\7e\2\2\u044b\u044c\7m\2\2\u044cx\3\2\2\2\u044d") + buf.write(u"\u044e\7N\2\2\u044e\u044f\7c\2\2\u044f\u0450\7u\2\2\u0450") + buf.write(u"\u0451\7v\2\2\u0451\u0452\7W\2\2\u0452\u0453\7r\2\2\u0453") + buf.write(u"\u0454\7i\2\2\u0454\u0455\7t\2\2\u0455\u0456\7c\2\2\u0456") + buf.write(u"\u0457\7f\2\2\u0457\u0458\7g\2\2\u0458\u0459\7E\2\2\u0459") + buf.write(u"\u045a\7j\2\2\u045a\u045b\7g\2\2\u045b\u045c\7e\2\2\u045c") + buf.write(u"\u045d\7m\2\2\u045dz\3\2\2\2\u045e\u045f\7N\2\2\u045f") + buf.write(u"\u0460\7c\2\2\u0460\u0461\7u\2\2\u0461\u0462\7v\2\2\u0462") + buf.write(u"\u0463\7V\2\2\u0463\u0464\7g\2\2\u0464\u0465\7u\2\2\u0465") + buf.write(u"\u0466\7v\2\2\u0466\u0467\7k\2\2\u0467\u0468\7p\2\2\u0468") + buf.write(u"\u0469\7i\2\2\u0469\u046a\7W\2\2\u046a\u046b\7r\2\2\u046b") + buf.write(u"\u046c\7i\2\2\u046c\u046d\7t\2\2\u046d\u046e\7c\2\2\u046e") + buf.write(u"\u046f\7f\2\2\u046f\u0470\7g\2\2\u0470\u0471\7E\2\2\u0471") + buf.write(u"\u0472\7j\2\2\u0472\u0473\7g\2\2\u0473\u0474\7e\2\2\u0474") + buf.write(u"\u0475\7m\2\2\u0475|\3\2\2\2\u0476\u0477\7Q\2\2\u0477") + buf.write(u"\u0478\7T\2\2\u0478\u0479\7I\2\2\u0479\u047a\7C\2\2\u047a") + buf.write(u"\u047b\7P\2\2\u047b\u047c\7K\2\2\u047c\u047d\7\\\2\2") + buf.write(u"\u047d\u047e\7C\2\2\u047e\u047f\7V\2\2\u047f\u0480\7") + buf.write(u"K\2\2\u0480\u0481\7Q\2\2\u0481\u0482\7P\2\2\u0482\u0483") + buf.write(u"\7P\2\2\u0483\u0484\7C\2\2\u0484\u0485\7O\2\2\u0485\u0486") + buf.write(u"\7G\2\2\u0486~\3\2\2\2\u0487\u0488\7V\2\2\u0488\u0489") + buf.write(u"\7c\2\2\u0489\u048a\7t\2\2\u048a\u048b\7i\2\2\u048b\u048c") + buf.write(u"\7g\2\2\u048c\u048d\7v\2\2\u048d\u048e\7C\2\2\u048e\u048f") + buf.write(u"\7v\2\2\u048f\u0490\7v\2\2\u0490\u0491\7t\2\2\u0491\u0492") + buf.write(u"\7k\2\2\u0492\u0493\7d\2\2\u0493\u0494\7w\2\2\u0494\u0495") + buf.write(u"\7v\2\2\u0495\u0496\7g\2\2\u0496\u0497\7u\2\2\u0497\u0080") + buf.write(u"\3\2\2\2\u0498\u0499\7E\2\2\u0499\u049a\7t\2\2\u049a") + buf.write(u"\u049b\7g\2\2\u049b\u049c\7c\2\2\u049c\u049d\7v\2\2\u049d") + buf.write(u"\u049e\7g\2\2\u049e\u049f\7f\2\2\u049f\u04a0\7Q\2\2\u04a0") + buf.write(u"\u04a1\7p\2\2\u04a1\u04a2\7V\2\2\u04a2\u04a3\7q\2\2\u04a3") + buf.write(u"\u04a4\7q\2\2\u04a4\u04a5\7n\2\2\u04a5\u04a6\7u\2\2\u04a6") + buf.write(u"\u04a7\7X\2\2\u04a7\u04a8\7g\2\2\u04a8\u04a9\7t\2\2\u04a9") + buf.write(u"\u04aa\7u\2\2\u04aa\u04ab\7k\2\2\u04ab\u04ac\7q\2\2\u04ac") + buf.write(u"\u04ad\7p\2\2\u04ad\u0082\3\2\2\2\u04ae\u04af\7V\2\2") + buf.write(u"\u04af\u04b0\7g\2\2\u04b0\u04b1\7u\2\2\u04b1\u04b2\7") + buf.write(u"v\2\2\u04b2\u04b3\7V\2\2\u04b3\u04b4\7c\2\2\u04b4\u04b5") + buf.write(u"\7t\2\2\u04b5\u04b6\7i\2\2\u04b6\u04b7\7g\2\2\u04b7\u04b8") + buf.write(u"\7v\2\2\u04b8\u04b9\7K\2\2\u04b9\u04ba\7F\2\2\u04ba\u0084") + buf.write(u"\3\2\2\2\u04bb\u04bc\7F\2\2\u04bc\u04bd\7g\2\2\u04bd") + buf.write(u"\u04be\7x\2\2\u04be\u04bf\7g\2\2\u04bf\u04c0\7n\2\2\u04c0") + buf.write(u"\u04c1\7q\2\2\u04c1\u04c2\7r\2\2\u04c2\u04c3\7o\2\2\u04c3") + buf.write(u"\u04c4\7g\2\2\u04c4\u04c5\7p\2\2\u04c5\u04c6\7v\2\2\u04c6") + buf.write(u"\u04c7\7V\2\2\u04c7\u04c8\7g\2\2\u04c8\u04c9\7c\2\2\u04c9") + buf.write(u"\u04ca\7o\2\2\u04ca\u0086\3\2\2\2\u04cb\u04cc\7R\2\2") + buf.write(u"\u04cc\u04cd\7t\2\2\u04cd\u04ce\7q\2\2\u04ce\u04cf\7") + buf.write(u"x\2\2\u04cf\u04d0\7k\2\2\u04d0\u04d1\7u\2\2\u04d1\u04d2") + buf.write(u"\7k\2\2\u04d2\u04d3\7q\2\2\u04d3\u04d4\7p\2\2\u04d4\u04d5") + buf.write(u"\7k\2\2\u04d5\u04d6\7p\2\2\u04d6\u04d7\7i\2\2\u04d7\u04d8") + buf.write(u"\7U\2\2\u04d8\u04d9\7v\2\2\u04d9\u04da\7{\2\2\u04da\u04db") + buf.write(u"\7n\2\2\u04db\u04dc\7g\2\2\u04dc\u0088\3\2\2\2\u04dd") + buf.write(u"\u04de\7e\2\2\u04de\u04df\7q\2\2\u04df\u04e0\7o\2\2\u04e0") + buf.write(u"\u04e1\7r\2\2\u04e1\u04e2\7c\2\2\u04e2\u04e3\7v\2\2\u04e3") + buf.write(u"\u04e4\7k\2\2\u04e4\u04e5\7d\2\2\u04e5\u04e6\7k\2\2\u04e6") + buf.write(u"\u04e7\7n\2\2\u04e7\u04e8\7k\2\2\u04e8\u04e9\7v\2\2\u04e9") + buf.write(u"\u04ea\7{\2\2\u04ea\u04eb\7X\2\2\u04eb\u04ec\7g\2\2\u04ec") + buf.write(u"\u04ed\7t\2\2\u04ed\u04ee\7u\2\2\u04ee\u04ef\7k\2\2\u04ef") + buf.write(u"\u04f0\7q\2\2\u04f0\u04f1\7p\2\2\u04f1\u008a\3\2\2\2") + buf.write(u"\u04f2\u04f3\7f\2\2\u04f3\u04f4\7g\2\2\u04f4\u04f5\7") + buf.write(u"x\2\2\u04f5\u04f6\7g\2\2\u04f6\u04f7\7n\2\2\u04f7\u04f8") + buf.write(u"\7q\2\2\u04f8\u04f9\7r\2\2\u04f9\u04fa\7o\2\2\u04fa\u04fb") + buf.write(u"\7g\2\2\u04fb\u04fc\7p\2\2\u04fc\u04fd\7v\2\2\u04fd\u04fe") + buf.write(u"\7T\2\2\u04fe\u04ff\7g\2\2\u04ff\u0500\7i\2\2\u0500\u0501") + buf.write(u"\7k\2\2\u0501\u0502\7q\2\2\u0502\u0503\7p\2\2\u0503\u008c") + buf.write(u"\3\2\2\2\u0504\u0505\7j\2\2\u0505\u0506\7c\2\2\u0506") + buf.write(u"\u0507\7u\2\2\u0507\u0508\7U\2\2\u0508\u0509\7e\2\2\u0509") + buf.write(u"\u050a\7c\2\2\u050a\u050b\7p\2\2\u050b\u050c\7p\2\2\u050c") + buf.write(u"\u050d\7g\2\2\u050d\u050e\7f\2\2\u050e\u050f\7H\2\2\u050f") + buf.write(u"\u0510\7q\2\2\u0510\u0511\7t\2\2\u0511\u0512\7G\2\2\u0512") + buf.write(u"\u0513\7p\2\2\u0513\u0514\7e\2\2\u0514\u0515\7q\2\2\u0515") + buf.write(u"\u0516\7f\2\2\u0516\u0517\7k\2\2\u0517\u0518\7p\2\2\u0518") + buf.write(u"\u0519\7i\2\2\u0519\u051a\7u\2\2\u051a\u008e\3\2\2\2") + buf.write(u"\u051b\u051c\7m\2\2\u051c\u051d\7p\2\2\u051d\u051e\7") + buf.write(u"q\2\2\u051e\u051f\7y\2\2\u051f\u0520\7p\2\2\u0520\u0521") + buf.write(u"\7T\2\2\u0521\u0522\7g\2\2\u0522\u0523\7i\2\2\u0523\u0524") + buf.write(u"\7k\2\2\u0524\u0525\7q\2\2\u0525\u0526\7p\2\2\u0526\u0527") + buf.write(u"\7u\2\2\u0527\u0090\3\2\2\2\u0528\u0529\7o\2\2\u0529") + buf.write(u"\u052a\7c\2\2\u052a\u052b\7k\2\2\u052b\u052c\7p\2\2\u052c") + buf.write(u"\u052d\7I\2\2\u052d\u052e\7t\2\2\u052e\u052f\7q\2\2\u052f") + buf.write(u"\u0530\7w\2\2\u0530\u0531\7r\2\2\u0531\u0092\3\2\2\2") + buf.write(u"\u0532\u0533\7r\2\2\u0533\u0534\7t\2\2\u0534\u0535\7") + buf.write(u"q\2\2\u0535\u0536\7f\2\2\u0536\u0537\7w\2\2\u0537\u0538") + buf.write(u"\7e\2\2\u0538\u0539\7v\2\2\u0539\u053a\7T\2\2\u053a\u053b") + buf.write(u"\7g\2\2\u053b\u053c\7h\2\2\u053c\u053d\7I\2\2\u053d\u053e") + buf.write(u"\7t\2\2\u053e\u053f\7q\2\2\u053f\u0540\7w\2\2\u0540\u0541") + buf.write(u"\7r\2\2\u0541\u0094\3\2\2\2\u0542\u0543\7r\2\2\u0543") + buf.write(u"\u0544\7t\2\2\u0544\u0545\7q\2\2\u0545\u0546\7l\2\2\u0546") + buf.write(u"\u0547\7g\2\2\u0547\u0548\7e\2\2\u0548\u0549\7v\2\2\u0549") + buf.write(u"\u054a\7F\2\2\u054a\u054b\7k\2\2\u054b\u054c\7t\2\2\u054c") + buf.write(u"\u054d\7R\2\2\u054d\u054e\7c\2\2\u054e\u054f\7v\2\2\u054f") + buf.write(u"\u0550\7j\2\2\u0550\u0096\3\2\2\2\u0551\u0552\7r\2\2") + buf.write(u"\u0552\u0553\7t\2\2\u0553\u0554\7q\2\2\u0554\u0555\7") + buf.write(u"l\2\2\u0555\u0556\7g\2\2\u0556\u0557\7e\2\2\u0557\u0558") + buf.write(u"\7v\2\2\u0558\u0559\7T\2\2\u0559\u055a\7g\2\2\u055a\u055b") + buf.write(u"\7h\2\2\u055b\u055c\7g\2\2\u055c\u055d\7t\2\2\u055d\u055e") + buf.write(u"\7g\2\2\u055e\u055f\7p\2\2\u055f\u0560\7e\2\2\u0560\u0561") + buf.write(u"\7g\2\2\u0561\u0562\7u\2\2\u0562\u0098\3\2\2\2\u0563") + buf.write(u"\u0564\7r\2\2\u0564\u0565\7t\2\2\u0565\u0566\7q\2\2\u0566") + buf.write(u"\u0567\7l\2\2\u0567\u0568\7g\2\2\u0568\u0569\7e\2\2\u0569") + buf.write(u"\u056a\7v\2\2\u056a\u056b\7T\2\2\u056b\u056c\7q\2\2\u056c") + buf.write(u"\u056d\7q\2\2\u056d\u056e\7v\2\2\u056e\u009a\3\2\2\2") + buf.write(u"\u056f\u0570\7v\2\2\u0570\u0571\7c\2\2\u0571\u0572\7") + buf.write(u"t\2\2\u0572\u0573\7i\2\2\u0573\u0574\7g\2\2\u0574\u0575") + buf.write(u"\7v\2\2\u0575\u0576\7u\2\2\u0576\u009c\3\2\2\2\u0577") + buf.write(u"\u0578\7k\2\2\u0578\u0579\7p\2\2\u0579\u057a\7r\2\2\u057a") + buf.write(u"\u057b\7w\2\2\u057b\u057c\7v\2\2\u057c\u057d\7H\2\2\u057d") + buf.write(u"\u057e\7k\2\2\u057e\u057f\7n\2\2\u057f\u0580\7g\2\2\u0580") + buf.write(u"\u0581\7N\2\2\u0581\u0582\7k\2\2\u0582\u0583\7u\2\2\u0583") + buf.write(u"\u0584\7v\2\2\u0584\u0585\7R\2\2\u0585\u0586\7c\2\2\u0586") + buf.write(u"\u0587\7v\2\2\u0587\u0588\7j\2\2\u0588\u0589\7u\2\2\u0589") + buf.write(u"\u009e\3\2\2\2\u058a\u058b\7k\2\2\u058b\u058c\7p\2\2") + buf.write(u"\u058c\u058d\7r\2\2\u058d\u058e\7w\2\2\u058e\u058f\7") + buf.write(u"v\2\2\u058f\u0590\7R\2\2\u0590\u0591\7c\2\2\u0591\u0592") + buf.write(u"\7v\2\2\u0592\u0593\7j\2\2\u0593\u0594\7u\2\2\u0594\u00a0") + buf.write(u"\3\2\2\2\u0595\u0596\7q\2\2\u0596\u0597\7w\2\2\u0597") + buf.write(u"\u0598\7v\2\2\u0598\u0599\7r\2\2\u0599\u059a\7w\2\2\u059a") + buf.write(u"\u059b\7v\2\2\u059b\u059c\7H\2\2\u059c\u059d\7k\2\2\u059d") + buf.write(u"\u059e\7n\2\2\u059e\u059f\7g\2\2\u059f\u05a0\7N\2\2\u05a0") + buf.write(u"\u05a1\7k\2\2\u05a1\u05a2\7u\2\2\u05a2\u05a3\7v\2\2\u05a3") + buf.write(u"\u05a4\7R\2\2\u05a4\u05a5\7c\2\2\u05a5\u05a6\7v\2\2\u05a6") + buf.write(u"\u05a7\7j\2\2\u05a7\u05a8\7u\2\2\u05a8\u00a2\3\2\2\2") + buf.write(u"\u05a9\u05aa\7q\2\2\u05aa\u05ab\7w\2\2\u05ab\u05ac\7") + buf.write(u"v\2\2\u05ac\u05ad\7r\2\2\u05ad\u05ae\7w\2\2\u05ae\u05af") + buf.write(u"\7v\2\2\u05af\u05b0\7R\2\2\u05b0\u05b1\7c\2\2\u05b1\u05b2") + buf.write(u"\7v\2\2\u05b2\u05b3\7j\2\2\u05b3\u05b4\7u\2\2\u05b4\u00a4") + buf.write(u"\3\2\2\2\u05b5\u05b6\7u\2\2\u05b6\u05b7\7j\2\2\u05b7") + buf.write(u"\u05b8\7g\2\2\u05b8\u05b9\7n\2\2\u05b9\u05ba\7n\2\2\u05ba") + buf.write(u"\u05bb\7R\2\2\u05bb\u05bc\7c\2\2\u05bc\u05bd\7v\2\2\u05bd") + buf.write(u"\u05be\7j\2\2\u05be\u00a6\3\2\2\2\u05bf\u05c0\7u\2\2") + buf.write(u"\u05c0\u05c1\7j\2\2\u05c1\u05c2\7g\2\2\u05c2\u05c3\7") + buf.write(u"n\2\2\u05c3\u05c4\7n\2\2\u05c4\u05c5\7U\2\2\u05c5\u05c6") + buf.write(u"\7e\2\2\u05c6\u05c7\7t\2\2\u05c7\u05c8\7k\2\2\u05c8\u05c9") + buf.write(u"\7r\2\2\u05c9\u05ca\7v\2\2\u05ca\u00a8\3\2\2\2\u05cb") + buf.write(u"\u05cc\7u\2\2\u05cc\u05cd\7j\2\2\u05cd\u05ce\7q\2\2\u05ce") + buf.write(u"\u05cf\7y\2\2\u05cf\u05d0\7G\2\2\u05d0\u05d1\7p\2\2\u05d1") + buf.write(u"\u05d2\7x\2\2\u05d2\u05d3\7X\2\2\u05d3\u05d4\7c\2\2\u05d4") + buf.write(u"\u05d5\7t\2\2\u05d5\u05d6\7u\2\2\u05d6\u05d7\7K\2\2\u05d7") + buf.write(u"\u05d8\7p\2\2\u05d8\u05d9\7N\2\2\u05d9\u05da\7q\2\2\u05da") + buf.write(u"\u05db\7i\2\2\u05db\u00aa\3\2\2\2\u05dc\u05dd\7v\2\2") + buf.write(u"\u05dd\u05de\7c\2\2\u05de\u05df\7t\2\2\u05df\u05e0\7") + buf.write(u"i\2\2\u05e0\u05e1\7g\2\2\u05e1\u05e2\7v\2\2\u05e2\u00ac") + buf.write(u"\3\2\2\2\u05e3\u05e4\7v\2\2\u05e4\u05e5\7c\2\2\u05e5") + buf.write(u"\u05e6\7t\2\2\u05e6\u05e7\7i\2\2\u05e7\u05e8\7g\2\2\u05e8") + buf.write(u"\u05e9\7v\2\2\u05e9\u05ea\7R\2\2\u05ea\u05eb\7t\2\2\u05eb") + buf.write(u"\u05ec\7q\2\2\u05ec\u05ed\7z\2\2\u05ed\u05ee\7{\2\2\u05ee") + buf.write(u"\u00ae\3\2\2\2\u05ef\u05f0\7h\2\2\u05f0\u05f1\7k\2\2") + buf.write(u"\u05f1\u05f2\7n\2\2\u05f2\u05f3\7g\2\2\u05f3\u05f4\7") + buf.write(u"V\2\2\u05f4\u05f5\7{\2\2\u05f5\u05f6\7r\2\2\u05f6\u05f7") + buf.write(u"\7g\2\2\u05f7\u00b0\3\2\2\2\u05f8\u05f9\7t\2\2\u05f9") + buf.write(u"\u05fa\7g\2\2\u05fa\u05fb\7o\2\2\u05fb\u05fc\7q\2\2\u05fc") + buf.write(u"\u05fd\7v\2\2\u05fd\u05fe\7g\2\2\u05fe\u05ff\7T\2\2\u05ff") + buf.write(u"\u0600\7g\2\2\u0600\u0601\7h\2\2\u0601\u00b2\3\2\2\2") + buf.write(u"\u0602\u0603\7d\2\2\u0603\u0604\7c\2\2\u0604\u0605\7") + buf.write(u"u\2\2\u0605\u0606\7g\2\2\u0606\u0607\7E\2\2\u0607\u0608") + buf.write(u"\7q\2\2\u0608\u0609\7p\2\2\u0609\u060a\7h\2\2\u060a\u060b") + buf.write(u"\7k\2\2\u060b\u060c\7i\2\2\u060c\u060d\7w\2\2\u060d\u060e") + buf.write(u"\7t\2\2\u060e\u060f\7c\2\2\u060f\u0610\7v\2\2\u0610\u0611") + buf.write(u"\7k\2\2\u0611\u0612\7q\2\2\u0612\u0613\7p\2\2\u0613\u0614") + buf.write(u"\7T\2\2\u0614\u0615\7g\2\2\u0615\u0616\7h\2\2\u0616\u0617") + buf.write(u"\7g\2\2\u0617\u0618\7t\2\2\u0618\u0619\7g\2\2\u0619\u061a") + buf.write(u"\7p\2\2\u061a\u061b\7e\2\2\u061b\u061c\7g\2\2\u061c\u00b4") + buf.write(u"\3\2\2\2\u061d\u061e\7d\2\2\u061e\u061f\7w\2\2\u061f") + buf.write(u"\u0620\7k\2\2\u0620\u0621\7n\2\2\u0621\u0622\7f\2\2\u0622") + buf.write(u"\u0623\7U\2\2\u0623\u0624\7g\2\2\u0624\u0625\7v\2\2\u0625") + buf.write(u"\u0626\7v\2\2\u0626\u0627\7k\2\2\u0627\u0628\7p\2\2\u0628") + buf.write(u"\u0629\7i\2\2\u0629\u062a\7u\2\2\u062a\u00b6\3\2\2\2") + buf.write(u"\u062b\u062c\7f\2\2\u062c\u062d\7u\2\2\u062d\u062e\7") + buf.write(u"v\2\2\u062e\u062f\7R\2\2\u062f\u0630\7c\2\2\u0630\u0631") + buf.write(u"\7v\2\2\u0631\u0632\7j\2\2\u0632\u00b8\3\2\2\2\u0633") + buf.write(u"\u0634\7f\2\2\u0634\u0635\7u\2\2\u0635\u0636\7v\2\2\u0636") + buf.write(u"\u0637\7U\2\2\u0637\u0638\7w\2\2\u0638\u0639\7d\2\2\u0639") + buf.write(u"\u063a\7h\2\2\u063a\u063b\7q\2\2\u063b\u063c\7n\2\2\u063c") + buf.write(u"\u063d\7f\2\2\u063d\u063e\7g\2\2\u063e\u063f\7t\2\2\u063f") + buf.write(u"\u0640\7U\2\2\u0640\u0641\7r\2\2\u0641\u0642\7g\2\2\u0642") + buf.write(u"\u0643\7e\2\2\u0643\u00ba\3\2\2\2\u0644\u0645\7R\2\2") + buf.write(u"\u0645\u0646\7t\2\2\u0646\u0647\7q\2\2\u0647\u0648\7") + buf.write(u"f\2\2\u0648\u0649\7w\2\2\u0649\u064a\7e\2\2\u064a\u064b") + buf.write(u"\7v\2\2\u064b\u064c\7I\2\2\u064c\u064d\7t\2\2\u064d\u064e") + buf.write(u"\7q\2\2\u064e\u064f\7w\2\2\u064f\u0650\7r\2\2\u0650\u00bc") + buf.write(u"\3\2\2\2\u0651\u0652\7R\2\2\u0652\u0653\7t\2\2\u0653") + buf.write(u"\u0654\7q\2\2\u0654\u0655\7l\2\2\u0655\u0656\7g\2\2\u0656") + buf.write(u"\u0657\7e\2\2\u0657\u0658\7v\2\2\u0658\u0659\7T\2\2\u0659") + buf.write(u"\u065a\7g\2\2\u065a\u065b\7h\2\2\u065b\u00be\3\2\2\2") + buf.write(u"\u065c\u065d\7d\2\2\u065d\u065e\7w\2\2\u065e\u065f\7") + buf.write(u"k\2\2\u065f\u0660\7n\2\2\u0660\u0661\7f\2\2\u0661\u0662") + buf.write(u"\7E\2\2\u0662\u0663\7q\2\2\u0663\u0664\7p\2\2\u0664\u0665") + buf.write(u"\7h\2\2\u0665\u0666\7k\2\2\u0666\u0667\7i\2\2\u0667\u0668") + buf.write(u"\7w\2\2\u0668\u0669\7t\2\2\u0669\u066a\7c\2\2\u066a\u066b") + buf.write(u"\7v\2\2\u066b\u066c\7k\2\2\u066c\u066d\7q\2\2\u066d\u066e") + buf.write(u"\7p\2\2\u066e\u066f\7u\2\2\u066f\u00c0\3\2\2\2\u0670") + buf.write(u"\u0671\7f\2\2\u0671\u0672\7g\2\2\u0672\u0673\7h\2\2\u0673") + buf.write(u"\u0674\7c\2\2\u0674\u0675\7w\2\2\u0675\u0676\7n\2\2\u0676") + buf.write(u"\u0677\7v\2\2\u0677\u0678\7E\2\2\u0678\u0679\7q\2\2\u0679") + buf.write(u"\u067a\7p\2\2\u067a\u067b\7h\2\2\u067b\u067c\7k\2\2\u067c") + buf.write(u"\u067d\7i\2\2\u067d\u067e\7w\2\2\u067e\u067f\7t\2\2\u067f") + buf.write(u"\u0680\7c\2\2\u0680\u0681\7v\2\2\u0681\u0682\7k\2\2\u0682") + buf.write(u"\u0683\7q\2\2\u0683\u0684\7p\2\2\u0684\u0685\7K\2\2\u0685") + buf.write(u"\u0686\7u\2\2\u0686\u0687\7X\2\2\u0687\u0688\7k\2\2\u0688") + buf.write(u"\u0689\7u\2\2\u0689\u068a\7k\2\2\u068a\u068b\7d\2\2\u068b") + buf.write(u"\u068c\7n\2\2\u068c\u068d\7g\2\2\u068d\u00c2\3\2\2\2") + buf.write(u"\u068e\u068f\7f\2\2\u068f\u0690\7g\2\2\u0690\u0691\7") + buf.write(u"h\2\2\u0691\u0692\7c\2\2\u0692\u0693\7w\2\2\u0693\u0694") + buf.write(u"\7n\2\2\u0694\u0695\7v\2\2\u0695\u0696\7E\2\2\u0696\u0697") + buf.write(u"\7q\2\2\u0697\u0698\7p\2\2\u0698\u0699\7h\2\2\u0699\u069a") + buf.write(u"\7k\2\2\u069a\u069b\7i\2\2\u069b\u069c\7w\2\2\u069c\u069d") + buf.write(u"\7t\2\2\u069d\u069e\7c\2\2\u069e\u069f\7v\2\2\u069f\u06a0") + buf.write(u"\7k\2\2\u06a0\u06a1\7q\2\2\u06a1\u06a2\7p\2\2\u06a2\u06a3") + buf.write(u"\7P\2\2\u06a3\u06a4\7c\2\2\u06a4\u06a5\7o\2\2\u06a5\u06a6") + buf.write(u"\7g\2\2\u06a6\u00c4\3\2\2\2\u06a7\u06a8\7u\2\2\u06a8") + buf.write(u"\u06a9\7g\2\2\u06a9\u06aa\7v\2\2\u06aa\u06ab\7v\2\2\u06ab") + buf.write(u"\u06ac\7k\2\2\u06ac\u06ad\7p\2\2\u06ad\u06ae\7i\2\2\u06ae") + buf.write(u"\u06af\7u\2\2\u06af\u00c6\3\2\2\2\u06b0\u06b1\7U\2\2") + buf.write(u"\u06b1\u06b2\7{\2\2\u06b2\u06b3\7u\2\2\u06b3\u06b4\7") + buf.write(u"v\2\2\u06b4\u06b5\7g\2\2\u06b5\u06b6\7o\2\2\u06b6\u06b7") + buf.write(u"\7E\2\2\u06b7\u06b8\7c\2\2\u06b8\u06b9\7r\2\2\u06b9\u06ba") + buf.write(u"\7c\2\2\u06ba\u06bb\7d\2\2\u06bb\u06bc\7k\2\2\u06bc\u06bd") + buf.write(u"\7n\2\2\u06bd\u06be\7k\2\2\u06be\u06bf\7v\2\2\u06bf\u06c0") + buf.write(u"\7k\2\2\u06c0\u06c1\7g\2\2\u06c1\u06c2\7u\2\2\u06c2\u00c8") + buf.write(u"\3\2\2\2\u06c3\u06c4\7e\2\2\u06c4\u06c5\7w\2\2\u06c5") + buf.write(u"\u06c6\7t\2\2\u06c6\u06c7\7t\2\2\u06c7\u06c8\7g\2\2\u06c8") + buf.write(u"\u06c9\7p\2\2\u06c9\u06ca\7v\2\2\u06ca\u06cb\7X\2\2\u06cb") + buf.write(u"\u06cc\7g\2\2\u06cc\u06cd\7t\2\2\u06cd\u06ce\7u\2\2\u06ce") + buf.write(u"\u06cf\7k\2\2\u06cf\u06d0\7q\2\2\u06d0\u06d1\7p\2\2\u06d1") + buf.write(u"\u00ca\3\2\2\2\u06d2\u06d3\7x\2\2\u06d3\u06d4\7g\2\2") + buf.write(u"\u06d4\u06d5\7t\2\2\u06d5\u06d6\7u\2\2\u06d6\u06d7\7") + buf.write(u"k\2\2\u06d7\u06d8\7q\2\2\u06d8\u06d9\7p\2\2\u06d9\u06da") + buf.write(u"\7I\2\2\u06da\u06db\7t\2\2\u06db\u06dc\7q\2\2\u06dc\u06dd") + buf.write(u"\7w\2\2\u06dd\u06de\7r\2\2\u06de\u06df\7V\2\2\u06df\u06e0") + buf.write(u"\7{\2\2\u06e0\u06e1\7r\2\2\u06e1\u06e2\7g\2\2\u06e2\u00cc") + buf.write(u"\3\2\2\2\u06e3\u06e4\7E\2\2\u06e4\u06e5\7N\2\2\u06e5") + buf.write(u"\u06e6\7C\2\2\u06e6\u06e7\7U\2\2\u06e7\u06e8\7U\2\2\u06e8") + buf.write(u"\u06e9\7R\2\2\u06e9\u06ea\7T\2\2\u06ea\u06eb\7G\2\2\u06eb") + buf.write(u"\u06ec\7H\2\2\u06ec\u06ed\7K\2\2\u06ed\u06ee\7Z\2\2\u06ee") + buf.write(u"\u00ce\3\2\2\2\u06ef\u06f0\7c\2\2\u06f0\u06f1\7t\2\2") + buf.write(u"\u06f1\u06f2\7e\2\2\u06f2\u06f3\7j\2\2\u06f3\u06f4\7") + buf.write(u"k\2\2\u06f4\u06f5\7x\2\2\u06f5\u06f6\7g\2\2\u06f6\u06f7") + buf.write(u"\7X\2\2\u06f7\u06f8\7g\2\2\u06f8\u06f9\7t\2\2\u06f9\u06fa") + buf.write(u"\7u\2\2\u06fa\u06fb\7k\2\2\u06fb\u06fc\7q\2\2\u06fc\u06fd") + buf.write(u"\7p\2\2\u06fd\u00d0\3\2\2\2\u06fe\u06ff\7e\2\2\u06ff") + buf.write(u"\u0700\7n\2\2\u0700\u0701\7c\2\2\u0701\u0702\7u\2\2\u0702") + buf.write(u"\u0703\7u\2\2\u0703\u0704\7g\2\2\u0704\u0705\7u\2\2\u0705") + buf.write(u"\u00d2\3\2\2\2\u0706\u0707\7k\2\2\u0707\u0708\7u\2\2") + buf.write(u"\u0708\u0709\7c\2\2\u0709\u00d4\3\2\2\2\u070a\u070b\7") + buf.write(u"q\2\2\u070b\u070c\7d\2\2\u070c\u070d\7l\2\2\u070d\u070e") + buf.write(u"\7g\2\2\u070e\u070f\7e\2\2\u070f\u0710\7v\2\2\u0710\u0711") + buf.write(u"\7X\2\2\u0711\u0712\7g\2\2\u0712\u0713\7t\2\2\u0713\u0714") + buf.write(u"\7u\2\2\u0714\u0715\7k\2\2\u0715\u0716\7q\2\2\u0716\u0717") + buf.write(u"\7p\2\2\u0717\u00d6\3\2\2\2\u0718\u0719\7q\2\2\u0719") + buf.write(u"\u071a\7d\2\2\u071a\u071b\7l\2\2\u071b\u071c\7g\2\2\u071c") + buf.write(u"\u071d\7e\2\2\u071d\u071e\7v\2\2\u071e\u071f\7u\2\2\u071f") + buf.write(u"\u00d8\3\2\2\2\u0720\u0721\7t\2\2\u0721\u0722\7q\2\2") + buf.write(u"\u0722\u0723\7q\2\2\u0723\u0724\7v\2\2\u0724\u0725\7") + buf.write(u"Q\2\2\u0725\u0726\7d\2\2\u0726\u0727\7l\2\2\u0727\u0728") + buf.write(u"\7g\2\2\u0728\u0729\7e\2\2\u0729\u072a\7v\2\2\u072a\u00da") + buf.write(u"\3\2\2\2\u072b\u072c\5\u00e3r\2\u072c\u072d\5\u00e3r") + buf.write(u"\2\u072d\u072e\5\u00e3r\2\u072e\u072f\5\u00e3r\2\u072f") + buf.write(u"\u0730\5\u00e3r\2\u0730\u0731\5\u00e3r\2\u0731\u0732") + buf.write(u"\5\u00e3r\2\u0732\u0733\5\u00e3r\2\u0733\u0734\5\u00e3") + buf.write(u"r\2\u0734\u0735\5\u00e3r\2\u0735\u0736\5\u00e3r\2\u0736") + buf.write(u"\u0737\5\u00e3r\2\u0737\u0738\5\u00e3r\2\u0738\u0739") + buf.write(u"\5\u00e3r\2\u0739\u073a\5\u00e3r\2\u073a\u073b\5\u00e3") + buf.write(u"r\2\u073b\u073c\5\u00e3r\2\u073c\u073d\5\u00e3r\2\u073d") + buf.write(u"\u073e\5\u00e3r\2\u073e\u073f\5\u00e3r\2\u073f\u0740") + buf.write(u"\5\u00e3r\2\u0740\u0741\5\u00e3r\2\u0741\u0742\5\u00e3") + buf.write(u"r\2\u0742\u0743\5\u00e3r\2\u0743\u0751\3\2\2\2\u0744") + buf.write(u"\u0745\7H\2\2\u0745\u0746\7T\2\2\u0746\u074a\7a\2\2\u0747") + buf.write(u"\u0748\7I\2\2\u0748\u074a\7a\2\2\u0749\u0744\3\2\2\2") + buf.write(u"\u0749\u0747\3\2\2\2\u074a\u074c\3\2\2\2\u074b\u074d") + buf.write(u"\5\u00e3r\2\u074c\u074b\3\2\2\2\u074d\u074e\3\2\2\2\u074e") + buf.write(u"\u074c\3\2\2\2\u074e\u074f\3\2\2\2\u074f\u0751\3\2\2") + buf.write(u"\2\u0750\u072b\3\2\2\2\u0750\u0749\3\2\2\2\u0751\u00dc") + buf.write(u"\3\2\2\2\u0752\u0754\7$\2\2\u0753\u0755\5\u00e5s\2\u0754") + buf.write(u"\u0753\3\2\2\2\u0755\u0756\3\2\2\2\u0756\u0754\3\2\2") + buf.write(u"\2\u0756\u0757\3\2\2\2\u0757\u0758\3\2\2\2\u0758\u0759") + buf.write(u"\7$\2\2\u0759\u075d\3\2\2\2\u075a\u075b\7$\2\2\u075b") + buf.write(u"\u075d\7$\2\2\u075c\u0752\3\2\2\2\u075c\u075a\3\2\2\2") + buf.write(u"\u075d\u00de\3\2\2\2\u075e\u0760\t\2\2\2\u075f\u075e") + buf.write(u"\3\2\2\2\u0760\u0761\3\2\2\2\u0761\u075f\3\2\2\2\u0761") + buf.write(u"\u0762\3\2\2\2\u0762\u00e0\3\2\2\2\u0763\u0764\7&\2\2") + buf.write(u"\u0764\u0765\5\u00dfp\2\u0765\u00e2\3\2\2\2\u0766\u0767") + buf.write(u"\t\3\2\2\u0767\u00e4\3\2\2\2\u0768\u076c\n\4\2\2\u0769") + buf.write(u"\u076a\7^\2\2\u076a\u076c\7$\2\2\u076b\u0768\3\2\2\2") + buf.write(u"\u076b\u0769\3\2\2\2\u076c\u00e6\3\2\2\2\u076d\u076f") + buf.write(u"\t\5\2\2\u076e\u076d\3\2\2\2\u076f\u0770\3\2\2\2\u0770") + buf.write(u"\u076e\3\2\2\2\u0770\u0771\3\2\2\2\u0771\u0772\3\2\2") + buf.write(u"\2\u0772\u0773\bt\2\2\u0773\u00e8\3\2\2\2\u0774\u0775") + buf.write(u"\7\61\2\2\u0775\u0776\7,\2\2\u0776\u077a\3\2\2\2\u0777") + buf.write(u"\u0779\13\2\2\2\u0778\u0777\3\2\2\2\u0779\u077c\3\2\2") + buf.write(u"\2\u077a\u077b\3\2\2\2\u077a\u0778\3\2\2\2\u077b\u077d") + buf.write(u"\3\2\2\2\u077c\u077a\3\2\2\2\u077d\u077e\7,\2\2\u077e") + buf.write(u"\u077f\7\61\2\2\u077f\u0780\3\2\2\2\u0780\u0781\bu\2") + buf.write(u"\2\u0781\u00ea\3\2\2\2\u0782\u0783\7\61\2\2\u0783\u0784") + buf.write(u"\7\61\2\2\u0784\u0788\3\2\2\2\u0785\u0787\n\6\2\2\u0786") + buf.write(u"\u0785\3\2\2\2\u0787\u078a\3\2\2\2\u0788\u0786\3\2\2") + buf.write(u"\2\u0788\u0789\3\2\2\2\u0789\u078b\3\2\2\2\u078a\u0788") + buf.write(u"\3\2\2\2\u078b\u078c\bv\2\2\u078c\u00ec\3\2\2\2\r\2\u0749") + buf.write(u"\u074e\u0750\u0756\u075c\u0761\u076b\u0770\u077a\u0788") + buf.write(u"\3\b\2\2") return buf.getvalue() @@ -877,19 +917,22 @@ class PBXProjLexer(Lexer): T__96 = 97 T__97 = 98 T__98 = 99 - ARCHIVE_VERSION = 100 - CLASSES = 101 - ISA = 102 - OBJECT_VERSION = 103 - OBJECTS = 104 - ROOT_OBJECT = 105 - REFERENCE = 106 - QUOTED_STRING = 107 - NON_QUOTED_STRING = 108 - VARIABLE = 109 - WS = 110 - COMMENT = 111 - LINE_COMMENT = 112 + T__99 = 100 + T__100 = 101 + T__101 = 102 + ARCHIVE_VERSION = 103 + CLASSES = 104 + ISA = 105 + OBJECT_VERSION = 106 + OBJECTS = 107 + ROOT_OBJECT = 108 + REFERENCE = 109 + QUOTED_STRING = 110 + NON_QUOTED_STRING = 111 + VARIABLE = 112 + WS = 113 + COMMENT = 114 + LINE_COMMENT = 115 modeNames = [ u"DEFAULT_MODE" ] @@ -909,13 +952,14 @@ class PBXProjLexer(Lexer): u"'('", u"','", u"')'", u"'buildConfigurationList'", u"'buildPhases'", u"'buildRules'", u"'dependencies'", u"'productName'", u"'productReference'", u"'productType'", u"'lineEnding'", u"'xcLanguageSpecificationIdentifier'", - u"'attributes'", u"'LastSwiftMigration'", u"'LastSwiftUpdateCheck'", - u"'LastUpgradeCheck'", u"'LastTestingUpgradeCheck'", u"'ORGANIZATIONNAME'", - u"'TargetAttributes'", u"'CreatedOnToolsVersion'", u"'TestTargetID'", - u"'DevelopmentTeam'", u"'ProvisioningStyle'", u"'compatibilityVersion'", - u"'developmentRegion'", u"'hasScannedForEncodings'", u"'knownRegions'", - u"'mainGroup'", u"'productRefGroup'", u"'projectDirPath'", u"'projectReferences'", - u"'projectRoot'", u"'targets'", u"'inputPaths'", u"'outputPaths'", + u"'attributes'", u"'LastSwiftMigration'", u"'DefaultBuildSystemTypeForWorkspace'", + u"'LastSwiftUpdateCheck'", u"'LastUpgradeCheck'", u"'LastTestingUpgradeCheck'", + u"'ORGANIZATIONNAME'", u"'TargetAttributes'", u"'CreatedOnToolsVersion'", + u"'TestTargetID'", u"'DevelopmentTeam'", u"'ProvisioningStyle'", + u"'compatibilityVersion'", u"'developmentRegion'", u"'hasScannedForEncodings'", + u"'knownRegions'", u"'mainGroup'", u"'productRefGroup'", u"'projectDirPath'", + u"'projectReferences'", u"'projectRoot'", u"'targets'", u"'inputFileListPaths'", + u"'inputPaths'", u"'outputFileListPaths'", u"'outputPaths'", u"'shellPath'", u"'shellScript'", u"'showEnvVarsInLog'", u"'target'", u"'targetProxy'", u"'fileType'", u"'remoteRef'", u"'baseConfigurationReference'", u"'buildSettings'", u"'dstPath'", u"'dstSubfolderSpec'", u"'ProductGroup'", @@ -946,11 +990,11 @@ class PBXProjLexer(Lexer): u"T__78", u"T__79", u"T__80", u"T__81", u"T__82", u"T__83", u"T__84", u"T__85", u"T__86", u"T__87", u"T__88", u"T__89", u"T__90", u"T__91", u"T__92", u"T__93", u"T__94", u"T__95", - u"T__96", u"T__97", u"T__98", u"ARCHIVE_VERSION", u"CLASSES", - u"ISA", u"OBJECT_VERSION", u"OBJECTS", u"ROOT_OBJECT", - u"REFERENCE", u"QUOTED_STRING", u"NON_QUOTED_STRING", - u"VARIABLE", u"HEX", u"QUOTED_STRING_CHARACTER", u"WS", - u"COMMENT", u"LINE_COMMENT" ] + u"T__96", u"T__97", u"T__98", u"T__99", u"T__100", u"T__101", + u"ARCHIVE_VERSION", u"CLASSES", u"ISA", u"OBJECT_VERSION", + u"OBJECTS", u"ROOT_OBJECT", u"REFERENCE", u"QUOTED_STRING", + u"NON_QUOTED_STRING", u"VARIABLE", u"HEX", u"QUOTED_STRING_CHARACTER", + u"WS", u"COMMENT", u"LINE_COMMENT" ] grammarFileName = u"PBXProj.g4" diff --git a/kin/grammar/PBXProjLexer.tokens b/kin/grammar/PBXProjLexer.tokens index 75468eb..a23024d 100644 --- a/kin/grammar/PBXProjLexer.tokens +++ b/kin/grammar/PBXProjLexer.tokens @@ -97,19 +97,22 @@ T__95=96 T__96=97 T__97=98 T__98=99 -ARCHIVE_VERSION=100 -CLASSES=101 -ISA=102 -OBJECT_VERSION=103 -OBJECTS=104 -ROOT_OBJECT=105 -REFERENCE=106 -QUOTED_STRING=107 -NON_QUOTED_STRING=108 -VARIABLE=109 -WS=110 -COMMENT=111 -LINE_COMMENT=112 +T__99=100 +T__100=101 +T__101=102 +ARCHIVE_VERSION=103 +CLASSES=104 +ISA=105 +OBJECT_VERSION=106 +OBJECTS=107 +ROOT_OBJECT=108 +REFERENCE=109 +QUOTED_STRING=110 +NON_QUOTED_STRING=111 +VARIABLE=112 +WS=113 +COMMENT=114 +LINE_COMMENT=115 '{'=1 '}'=2 '='=3 @@ -167,51 +170,54 @@ LINE_COMMENT=112 'xcLanguageSpecificationIdentifier'=55 'attributes'=56 'LastSwiftMigration'=57 -'LastSwiftUpdateCheck'=58 -'LastUpgradeCheck'=59 -'LastTestingUpgradeCheck'=60 -'ORGANIZATIONNAME'=61 -'TargetAttributes'=62 -'CreatedOnToolsVersion'=63 -'TestTargetID'=64 -'DevelopmentTeam'=65 -'ProvisioningStyle'=66 -'compatibilityVersion'=67 -'developmentRegion'=68 -'hasScannedForEncodings'=69 -'knownRegions'=70 -'mainGroup'=71 -'productRefGroup'=72 -'projectDirPath'=73 -'projectReferences'=74 -'projectRoot'=75 -'targets'=76 -'inputPaths'=77 -'outputPaths'=78 -'shellPath'=79 -'shellScript'=80 -'showEnvVarsInLog'=81 -'target'=82 -'targetProxy'=83 -'fileType'=84 -'remoteRef'=85 -'baseConfigurationReference'=86 -'buildSettings'=87 -'dstPath'=88 -'dstSubfolderSpec'=89 -'ProductGroup'=90 -'ProjectRef'=91 -'buildConfigurations'=92 -'defaultConfigurationIsVisible'=93 -'defaultConfigurationName'=94 -'settings'=95 -'SystemCapabilities'=96 -'currentVersion'=97 -'versionGroupType'=98 -'CLASSPREFIX'=99 -'archiveVersion'=100 -'classes'=101 -'isa'=102 -'objectVersion'=103 -'objects'=104 -'rootObject'=105 +'DefaultBuildSystemTypeForWorkspace'=58 +'LastSwiftUpdateCheck'=59 +'LastUpgradeCheck'=60 +'LastTestingUpgradeCheck'=61 +'ORGANIZATIONNAME'=62 +'TargetAttributes'=63 +'CreatedOnToolsVersion'=64 +'TestTargetID'=65 +'DevelopmentTeam'=66 +'ProvisioningStyle'=67 +'compatibilityVersion'=68 +'developmentRegion'=69 +'hasScannedForEncodings'=70 +'knownRegions'=71 +'mainGroup'=72 +'productRefGroup'=73 +'projectDirPath'=74 +'projectReferences'=75 +'projectRoot'=76 +'targets'=77 +'inputFileListPaths'=78 +'inputPaths'=79 +'outputFileListPaths'=80 +'outputPaths'=81 +'shellPath'=82 +'shellScript'=83 +'showEnvVarsInLog'=84 +'target'=85 +'targetProxy'=86 +'fileType'=87 +'remoteRef'=88 +'baseConfigurationReference'=89 +'buildSettings'=90 +'dstPath'=91 +'dstSubfolderSpec'=92 +'ProductGroup'=93 +'ProjectRef'=94 +'buildConfigurations'=95 +'defaultConfigurationIsVisible'=96 +'defaultConfigurationName'=97 +'settings'=98 +'SystemCapabilities'=99 +'currentVersion'=100 +'versionGroupType'=101 +'CLASSPREFIX'=102 +'archiveVersion'=103 +'classes'=104 +'isa'=105 +'objectVersion'=106 +'objects'=107 +'rootObject'=108 diff --git a/kin/grammar/PBXProjListener.py b/kin/grammar/PBXProjListener.py new file mode 100644 index 0000000..f488254 --- /dev/null +++ b/kin/grammar/PBXProjListener.py @@ -0,0 +1,1320 @@ +# Generated from PBXProj.g4 by ANTLR 4.6 +from antlr4 import * + +# This class defines a complete listener for a parse tree produced by PBXProjParser. +class PBXProjListener(ParseTreeListener): + + # Enter a parse tree produced by PBXProjParser#start. + def enterStart(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#start. + def exitStart(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#root_element. + def enterRoot_element(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#root_element. + def exitRoot_element(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#archive_version. + def enterArchive_version(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#archive_version. + def exitArchive_version(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#classes. + def enterClasses(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#classes. + def exitClasses(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#object_version. + def enterObject_version(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#object_version. + def exitObject_version(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#objects. + def enterObjects(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#objects. + def exitObjects(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#root_object. + def enterRoot_object(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#root_object. + def exitRoot_object(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_aggregate_target_section. + def enterPbx_aggregate_target_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_aggregate_target_section. + def exitPbx_aggregate_target_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_build_file_section. + def enterPbx_build_file_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_build_file_section. + def exitPbx_build_file_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_container_item_proxy_section. + def enterPbx_container_item_proxy_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_container_item_proxy_section. + def exitPbx_container_item_proxy_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_copy_files_build_phase_section. + def enterPbx_copy_files_build_phase_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_copy_files_build_phase_section. + def exitPbx_copy_files_build_phase_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_file_reference_section. + def enterPbx_file_reference_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_file_reference_section. + def exitPbx_file_reference_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_frameworks_build_phase_section. + def enterPbx_frameworks_build_phase_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_frameworks_build_phase_section. + def exitPbx_frameworks_build_phase_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_group_section. + def enterPbx_group_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_group_section. + def exitPbx_group_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_headers_build_phase_section. + def enterPbx_headers_build_phase_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_headers_build_phase_section. + def exitPbx_headers_build_phase_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_native_target_section. + def enterPbx_native_target_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_native_target_section. + def exitPbx_native_target_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_project_section. + def enterPbx_project_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_project_section. + def exitPbx_project_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_reference_proxy_section. + def enterPbx_reference_proxy_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_reference_proxy_section. + def exitPbx_reference_proxy_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_resources_build_phase_section. + def enterPbx_resources_build_phase_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_resources_build_phase_section. + def exitPbx_resources_build_phase_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_shell_script_build_phase_section. + def enterPbx_shell_script_build_phase_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_shell_script_build_phase_section. + def exitPbx_shell_script_build_phase_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_sources_build_phase_section. + def enterPbx_sources_build_phase_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_sources_build_phase_section. + def exitPbx_sources_build_phase_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_target_dependency_section. + def enterPbx_target_dependency_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_target_dependency_section. + def exitPbx_target_dependency_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_variant_group_section. + def enterPbx_variant_group_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_variant_group_section. + def exitPbx_variant_group_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_build_configuration_section. + def enterXc_build_configuration_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_build_configuration_section. + def exitXc_build_configuration_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_configuration_list_section. + def enterXc_configuration_list_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_configuration_list_section. + def exitXc_configuration_list_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_version_group_section. + def enterXc_version_group_section(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_version_group_section. + def exitXc_version_group_section(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_aggregate_target. + def enterPbx_aggregate_target(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_aggregate_target. + def exitPbx_aggregate_target(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_build_file. + def enterPbx_build_file(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_build_file. + def exitPbx_build_file(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_container_item_proxy. + def enterPbx_container_item_proxy(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_container_item_proxy. + def exitPbx_container_item_proxy(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_copy_files_build_phase. + def enterPbx_copy_files_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_copy_files_build_phase. + def exitPbx_copy_files_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_file_reference. + def enterPbx_file_reference(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_file_reference. + def exitPbx_file_reference(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_frameworks_build_phase. + def enterPbx_frameworks_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_frameworks_build_phase. + def exitPbx_frameworks_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_group. + def enterPbx_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_group. + def exitPbx_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_headers_build_phase. + def enterPbx_headers_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_headers_build_phase. + def exitPbx_headers_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_native_target. + def enterPbx_native_target(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_native_target. + def exitPbx_native_target(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_project. + def enterPbx_project(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_project. + def exitPbx_project(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_reference_proxy. + def enterPbx_reference_proxy(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_reference_proxy. + def exitPbx_reference_proxy(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_resources_build_phase. + def enterPbx_resources_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_resources_build_phase. + def exitPbx_resources_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_shell_script_build_phase. + def enterPbx_shell_script_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_shell_script_build_phase. + def exitPbx_shell_script_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_sources_build_phase. + def enterPbx_sources_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_sources_build_phase. + def exitPbx_sources_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_target_dependency. + def enterPbx_target_dependency(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_target_dependency. + def exitPbx_target_dependency(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#pbx_variant_group. + def enterPbx_variant_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#pbx_variant_group. + def exitPbx_variant_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_build_configuration. + def enterXc_build_configuration(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_build_configuration. + def exitXc_build_configuration(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_configuration_list. + def enterXc_configuration_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_configuration_list. + def exitXc_configuration_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_version_group. + def enterXc_version_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_version_group. + def exitXc_version_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_aggregate_target. + def enterIsa_pbx_aggregate_target(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_aggregate_target. + def exitIsa_pbx_aggregate_target(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_build_file. + def enterIsa_pbx_build_file(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_build_file. + def exitIsa_pbx_build_file(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_container_item_proxy. + def enterIsa_pbx_container_item_proxy(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_container_item_proxy. + def exitIsa_pbx_container_item_proxy(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_copy_files_build_phase. + def enterIsa_pbx_copy_files_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_copy_files_build_phase. + def exitIsa_pbx_copy_files_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_file_reference. + def enterIsa_pbx_file_reference(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_file_reference. + def exitIsa_pbx_file_reference(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_frameworks_build_phase. + def enterIsa_pbx_frameworks_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_frameworks_build_phase. + def exitIsa_pbx_frameworks_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_group. + def enterIsa_pbx_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_group. + def exitIsa_pbx_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_header_build_phase. + def enterIsa_pbx_header_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_header_build_phase. + def exitIsa_pbx_header_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_native_target. + def enterIsa_pbx_native_target(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_native_target. + def exitIsa_pbx_native_target(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_project. + def enterIsa_pbx_project(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_project. + def exitIsa_pbx_project(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_reference_proxy. + def enterIsa_pbx_reference_proxy(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_reference_proxy. + def exitIsa_pbx_reference_proxy(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_resources_build_phase. + def enterIsa_pbx_resources_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_resources_build_phase. + def exitIsa_pbx_resources_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_shell_script_build_phase. + def enterIsa_pbx_shell_script_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_shell_script_build_phase. + def exitIsa_pbx_shell_script_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_sources_build_phase. + def enterIsa_pbx_sources_build_phase(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_sources_build_phase. + def exitIsa_pbx_sources_build_phase(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_target_dependency. + def enterIsa_pbx_target_dependency(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_target_dependency. + def exitIsa_pbx_target_dependency(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_pbx_variant_group. + def enterIsa_pbx_variant_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_pbx_variant_group. + def exitIsa_pbx_variant_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_xc_build_configuration. + def enterIsa_xc_build_configuration(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_xc_build_configuration. + def exitIsa_xc_build_configuration(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_xc_configuration_list. + def enterIsa_xc_configuration_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_xc_configuration_list. + def exitIsa_xc_configuration_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#isa_xc_version_group. + def enterIsa_xc_version_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#isa_xc_version_group. + def exitIsa_xc_version_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#file_ref. + def enterFile_ref(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#file_ref. + def exitFile_ref(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#container_portal. + def enterContainer_portal(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#container_portal. + def exitContainer_portal(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#proxy_type. + def enterProxy_type(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#proxy_type. + def exitProxy_type(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#remote_global_id_string. + def enterRemote_global_id_string(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#remote_global_id_string. + def exitRemote_global_id_string(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#remote_info. + def enterRemote_info(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#remote_info. + def exitRemote_info(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#file_encoding. + def enterFile_encoding(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#file_encoding. + def exitFile_encoding(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#explicit_file_type. + def enterExplicit_file_type(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#explicit_file_type. + def exitExplicit_file_type(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#last_known_file_type. + def enterLast_known_file_type(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#last_known_file_type. + def exitLast_known_file_type(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#include_in_index. + def enterInclude_in_index(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#include_in_index. + def exitInclude_in_index(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#indent_width. + def enterIndent_width(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#indent_width. + def exitIndent_width(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#tab_width. + def enterTab_width(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#tab_width. + def exitTab_width(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#uses_tabs. + def enterUses_tabs(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#uses_tabs. + def exitUses_tabs(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#children. + def enterChildren(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#children. + def exitChildren(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#product_install_path. + def enterProduct_install_path(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#product_install_path. + def exitProduct_install_path(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#name. + def enterName(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#name. + def exitName(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#path. + def enterPath(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#path. + def exitPath(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#source_tree. + def enterSource_tree(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#source_tree. + def exitSource_tree(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#build_action_mask. + def enterBuild_action_mask(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#build_action_mask. + def exitBuild_action_mask(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#files. + def enterFiles(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#files. + def exitFiles(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#run_only_for_deployment_postprocessing. + def enterRun_only_for_deployment_postprocessing(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#run_only_for_deployment_postprocessing. + def exitRun_only_for_deployment_postprocessing(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#reference_list. + def enterReference_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#reference_list. + def exitReference_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#any_string_list. + def enterAny_string_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#any_string_list. + def exitAny_string_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#non_quoted_strings_list. + def enterNon_quoted_strings_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#non_quoted_strings_list. + def exitNon_quoted_strings_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#build_configuration_list. + def enterBuild_configuration_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#build_configuration_list. + def exitBuild_configuration_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#build_phases. + def enterBuild_phases(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#build_phases. + def exitBuild_phases(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#build_rules. + def enterBuild_rules(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#build_rules. + def exitBuild_rules(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#dependencies. + def enterDependencies(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#dependencies. + def exitDependencies(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#product_name. + def enterProduct_name(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#product_name. + def exitProduct_name(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#product_reference. + def enterProduct_reference(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#product_reference. + def exitProduct_reference(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#product_type. + def enterProduct_type(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#product_type. + def exitProduct_type(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#line_ending. + def enterLine_ending(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#line_ending. + def exitLine_ending(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#xc_language_specification_identifier. + def enterXc_language_specification_identifier(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#xc_language_specification_identifier. + def exitXc_language_specification_identifier(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#attributes. + def enterAttributes(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#attributes. + def exitAttributes(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#last_swift_migration. + def enterLast_swift_migration(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#last_swift_migration. + def exitLast_swift_migration(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#default_build_system_type_for_workspace. + def enterDefault_build_system_type_for_workspace(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#default_build_system_type_for_workspace. + def exitDefault_build_system_type_for_workspace(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#last_swift_update_check. + def enterLast_swift_update_check(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#last_swift_update_check. + def exitLast_swift_update_check(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#last_upgrade_check. + def enterLast_upgrade_check(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#last_upgrade_check. + def exitLast_upgrade_check(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#last_testing_upgrade_check. + def enterLast_testing_upgrade_check(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#last_testing_upgrade_check. + def exitLast_testing_upgrade_check(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#organization_name. + def enterOrganization_name(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#organization_name. + def exitOrganization_name(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#target_attributes. + def enterTarget_attributes(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#target_attributes. + def exitTarget_attributes(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#target_attribute. + def enterTarget_attribute(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#target_attribute. + def exitTarget_attribute(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#created_on_tools_version. + def enterCreated_on_tools_version(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#created_on_tools_version. + def exitCreated_on_tools_version(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#test_target_id. + def enterTest_target_id(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#test_target_id. + def exitTest_target_id(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#development_team. + def enterDevelopment_team(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#development_team. + def exitDevelopment_team(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#provisioning_style. + def enterProvisioning_style(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#provisioning_style. + def exitProvisioning_style(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#compatibility_version. + def enterCompatibility_version(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#compatibility_version. + def exitCompatibility_version(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#development_region. + def enterDevelopment_region(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#development_region. + def exitDevelopment_region(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#has_scanned_for_encodings. + def enterHas_scanned_for_encodings(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#has_scanned_for_encodings. + def exitHas_scanned_for_encodings(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#known_regions. + def enterKnown_regions(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#known_regions. + def exitKnown_regions(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#main_group. + def enterMain_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#main_group. + def exitMain_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#product_ref_group. + def enterProduct_ref_group(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#product_ref_group. + def exitProduct_ref_group(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#project_dir_path. + def enterProject_dir_path(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#project_dir_path. + def exitProject_dir_path(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#project_references. + def enterProject_references(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#project_references. + def exitProject_references(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#project_root. + def enterProject_root(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#project_root. + def exitProject_root(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#targets. + def enterTargets(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#targets. + def exitTargets(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#input_file_list_paths. + def enterInput_file_list_paths(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#input_file_list_paths. + def exitInput_file_list_paths(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#input_paths. + def enterInput_paths(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#input_paths. + def exitInput_paths(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#output_file_list_paths. + def enterOutput_file_list_paths(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#output_file_list_paths. + def exitOutput_file_list_paths(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#output_paths. + def enterOutput_paths(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#output_paths. + def exitOutput_paths(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#shell_path. + def enterShell_path(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#shell_path. + def exitShell_path(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#shell_script. + def enterShell_script(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#shell_script. + def exitShell_script(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#show_env_vars_in_log. + def enterShow_env_vars_in_log(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#show_env_vars_in_log. + def exitShow_env_vars_in_log(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#target. + def enterTarget(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#target. + def exitTarget(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#target_proxy. + def enterTarget_proxy(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#target_proxy. + def exitTarget_proxy(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#file_type. + def enterFile_type(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#file_type. + def exitFile_type(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#remote_ref. + def enterRemote_ref(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#remote_ref. + def exitRemote_ref(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#base_configuration_reference. + def enterBase_configuration_reference(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#base_configuration_reference. + def exitBase_configuration_reference(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#build_settings. + def enterBuild_settings(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#build_settings. + def exitBuild_settings(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#dst_path. + def enterDst_path(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#dst_path. + def exitDst_path(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#dst_subfolder_spec. + def enterDst_subfolder_spec(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#dst_subfolder_spec. + def exitDst_subfolder_spec(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#project_references_list. + def enterProject_references_list(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#project_references_list. + def exitProject_references_list(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#project_references_list_element. + def enterProject_references_list_element(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#project_references_list_element. + def exitProject_references_list_element(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#key_value. + def enterKey_value(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#key_value. + def exitKey_value(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#build_configurations. + def enterBuild_configurations(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#build_configurations. + def exitBuild_configurations(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#default_configuration_is_visible. + def enterDefault_configuration_is_visible(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#default_configuration_is_visible. + def exitDefault_configuration_is_visible(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#default_configuration_name. + def enterDefault_configuration_name(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#default_configuration_name. + def exitDefault_configuration_name(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#settings. + def enterSettings(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#settings. + def exitSettings(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#system_capabilities. + def enterSystem_capabilities(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#system_capabilities. + def exitSystem_capabilities(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#current_version. + def enterCurrent_version(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#current_version. + def exitCurrent_version(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#version_group_type. + def enterVersion_group_type(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#version_group_type. + def exitVersion_group_type(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#class_prefix. + def enterClass_prefix(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#class_prefix. + def exitClass_prefix(self, ctx): + pass + + + # Enter a parse tree produced by PBXProjParser#any_string. + def enterAny_string(self, ctx): + pass + + # Exit a parse tree produced by PBXProjParser#any_string. + def exitAny_string(self, ctx): + pass + + diff --git a/kin/grammar/PBXProjParser.py b/kin/grammar/PBXProjParser.py index 3404b6b..359daf6 100644 --- a/kin/grammar/PBXProjParser.py +++ b/kin/grammar/PBXProjParser.py @@ -7,7 +7,7 @@ def serializedATN(): with StringIO() as buf: buf.write(u"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3") - buf.write(u"r\u054d\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t") + buf.write(u"u\u056b\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t") buf.write(u"\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") buf.write(u"\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4") buf.write(u"\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30") @@ -29,600 +29,616 @@ def serializedATN(): buf.write(u"\4\u0086\t\u0086\4\u0087\t\u0087\4\u0088\t\u0088\4\u0089") buf.write(u"\t\u0089\4\u008a\t\u008a\4\u008b\t\u008b\4\u008c\t\u008c") buf.write(u"\4\u008d\t\u008d\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090") - buf.write(u"\t\u0090\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4") - buf.write(u"\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6") - buf.write(u"\3\6\3\6\3\7\3\7\3\7\3\7\5\7\u013f\n\7\3\7\3\7\5\7\u0143") - buf.write(u"\n\7\3\7\5\7\u0146\n\7\3\7\3\7\3\7\3\7\5\7\u014c\n\7") - buf.write(u"\3\7\5\7\u014f\n\7\3\7\3\7\5\7\u0153\n\7\3\7\5\7\u0156") - buf.write(u"\n\7\3\7\5\7\u0159\n\7\3\7\3\7\5\7\u015d\n\7\3\7\5\7") - buf.write(u"\u0160\n\7\3\7\3\7\3\7\5\7\u0165\n\7\3\7\3\7\3\7\3\b") - buf.write(u"\3\b\3\b\3\b\3\b\3\t\6\t\u0170\n\t\r\t\16\t\u0171\3\n") - buf.write(u"\6\n\u0175\n\n\r\n\16\n\u0176\3\13\6\13\u017a\n\13\r") - buf.write(u"\13\16\13\u017b\3\f\6\f\u017f\n\f\r\f\16\f\u0180\3\r") - buf.write(u"\6\r\u0184\n\r\r\r\16\r\u0185\3\16\6\16\u0189\n\16\r") - buf.write(u"\16\16\16\u018a\3\17\6\17\u018e\n\17\r\17\16\17\u018f") - buf.write(u"\3\20\6\20\u0193\n\20\r\20\16\20\u0194\3\21\6\21\u0198") - buf.write(u"\n\21\r\21\16\21\u0199\3\22\6\22\u019d\n\22\r\22\16\22") - buf.write(u"\u019e\3\23\6\23\u01a2\n\23\r\23\16\23\u01a3\3\24\6\24") - buf.write(u"\u01a7\n\24\r\24\16\24\u01a8\3\25\6\25\u01ac\n\25\r\25") - buf.write(u"\16\25\u01ad\3\26\6\26\u01b1\n\26\r\26\16\26\u01b2\3") - buf.write(u"\27\6\27\u01b6\n\27\r\27\16\27\u01b7\3\30\6\30\u01bb") - buf.write(u"\n\30\r\30\16\30\u01bc\3\31\6\31\u01c0\n\31\r\31\16\31") - buf.write(u"\u01c1\3\32\6\32\u01c5\n\32\r\32\16\32\u01c6\3\33\6\33") - buf.write(u"\u01ca\n\33\r\33\16\33\u01cb\3\34\3\34\3\34\3\34\3\34") - buf.write(u"\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3") - buf.write(u"\35\3\35\3\35\5\35\u01e0\n\35\3\35\3\35\3\35\3\36\3\36") - buf.write(u"\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3") - buf.write(u"\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\5\37\u01f9\n\37") - buf.write(u"\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \5 \u0204\n \3 \5") - buf.write(u" \u0207\n \3 \5 \u020a\n \3 \5 \u020d\n \3 \5 \u0210") - buf.write(u"\n \3 \5 \u0213\n \3 \5 \u0216\n \3 \5 \u0219\n \3 \5") - buf.write(u" \u021c\n \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3\"") - buf.write(u"\3\"\3\"\3\"\3\"\3\"\5\"\u0231\n\"\3\"\5\"\u0234\n\"") - buf.write(u"\3\"\5\"\u0237\n\"\3\"\3\"\5\"\u023b\n\"\3\"\5\"\u023e") - buf.write(u"\n\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$") - buf.write(u"\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0257\n$\3$\3$\3$\3$\3$\3") - buf.write(u"$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u026b\n%\3%") - buf.write(u"\3%\5%\u026f\n%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3") - buf.write(u"&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3") - buf.write(u"(\3(\3(\3(\3(\3(\3(\3(\5(\u0293\n(\3(\3(\3(\3(\3(\5(") - buf.write(u"\u029a\n(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3*\3") - buf.write(u"*\3*\3*\3*\5*\u02ae\n*\3*\5*\u02b1\n*\3*\3*\3*\3*\3+") - buf.write(u"\3+\3+\3+\3+\3+\3+\5+\u02be\n+\3+\3+\3+\3+\3,\3,\3,\3") - buf.write(u",\3,\5,\u02c9\n,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3-\3-") - buf.write(u"\5-\u02d7\n-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3") - buf.write(u".\3.\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\60\3\61\3\61") - buf.write(u"\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3") - buf.write(u"\63\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65") - buf.write(u"\3\65\3\65\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3") - buf.write(u"\67\3\67\38\38\38\38\38\39\39\39\39\39\3:\3:\3:\3:\3") - buf.write(u":\3;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3=\3=\3=\3=\3=\3>\3>") - buf.write(u"\3>\3>\3>\3?\3?\3?\3?\3?\3@\3@\3@\3@\3@\3A\3A\3A\3A\3") - buf.write(u"A\3B\3B\3B\3B\3B\3C\3C\3C\3C\3C\3D\3D\3D\3D\3D\3E\3E") - buf.write(u"\3E\3E\3E\3F\3F\3F\3F\3F\3G\3G\3G\3G\3G\3H\3H\3H\3H\3") - buf.write(u"H\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3K\3K\3K\3K\3K\3L\3L") - buf.write(u"\3L\3L\3L\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3O\3O\3O\3O\3") - buf.write(u"O\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3S\3S") - buf.write(u"\3S\3S\3S\3T\3T\3T\3T\3T\3U\3U\3U\3U\3U\3V\3V\3V\7V\u03ae") - buf.write(u"\nV\fV\16V\u03b1\13V\3V\3V\3W\3W\3W\3W\7W\u03b9\nW\f") - buf.write(u"W\16W\u03bc\13W\3W\3W\3X\3X\3X\7X\u03c3\nX\fX\16X\u03c6") - buf.write(u"\13X\3X\3X\3Y\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3[\3[\3[\3[") - buf.write(u"\3[\3\\\3\\\3\\\3\\\3\\\3]\3]\3]\3]\3]\3^\3^\3^\3^\3") - buf.write(u"^\3_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3a\3a\3a\3a\3a\3b\3b") - buf.write(u"\3b\3b\5b\u03fb\nb\3b\5b\u03fe\nb\3b\5b\u0401\nb\3b\3") - buf.write(u"b\5b\u0405\nb\3b\5b\u0408\nb\3b\5b\u040b\nb\3b\3b\3b") - buf.write(u"\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3f\3f\3") - buf.write(u"f\3f\3f\3g\3g\3g\3g\3g\3h\3h\3h\3h\7h\u042d\nh\fh\16") - buf.write(u"h\u0430\13h\3h\3h\3h\3i\3i\3i\3i\5i\u0439\ni\3i\5i\u043c") - buf.write(u"\ni\3i\5i\u043f\ni\3i\5i\u0442\ni\3i\5i\u0445\ni\3i\5") - buf.write(u"i\u0448\ni\3i\5i\u044b\ni\3i\3i\3i\3j\3j\3j\3j\3j\3k") - buf.write(u"\3k\3k\3k\3k\3l\3l\3l\3l\3l\3m\3m\3m\3m\3m\3n\3n\3n\3") - buf.write(u"n\3n\3o\3o\3o\3o\3o\3p\3p\3p\3p\3p\3q\3q\3q\3q\3q\3r") - buf.write(u"\3r\3r\3r\3r\3s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3u\3u\3u\3") - buf.write(u"u\3u\3u\3u\3u\3u\3u\3u\3u\5u\u0493\nu\3v\3v\3v\3v\3v") - buf.write(u"\3w\3w\3w\3w\3w\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3z\3z\3") - buf.write(u"z\3z\3z\3{\3{\3{\3{\3{\3|\3|\3|\3|\3|\3}\3}\3}\3}\3}") - buf.write(u"\3~\3~\3~\3~\3~\3\177\3\177\3\177\3\177\3\177\3\u0080") - buf.write(u"\3\u0080\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081") - buf.write(u"\3\u0081\3\u0081\3\u0082\3\u0082\3\u0082\3\u0082\7\u0082") - buf.write(u"\u04d5\n\u0082\f\u0082\16\u0082\u04d8\13\u0082\3\u0082") - buf.write(u"\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083") - buf.write(u"\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085\7\u0085") - buf.write(u"\u04e8\n\u0085\f\u0085\16\u0085\u04eb\13\u0085\3\u0086") - buf.write(u"\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086") - buf.write(u"\3\u0086\3\u0086\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087") - buf.write(u"\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087") - buf.write(u"\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087") - buf.write(u"\3\u0087\7\u0087\u050b\n\u0087\f\u0087\16\u0087\u050e") - buf.write(u"\13\u0087\3\u0087\3\u0087\3\u0087\5\u0087\u0513\n\u0087") - buf.write(u"\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089") + buf.write(u"\t\u0090\4\u0091\t\u0091\4\u0092\t\u0092\4\u0093\t\u0093") + buf.write(u"\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4") + buf.write(u"\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\6") + buf.write(u"\3\7\3\7\3\7\3\7\5\7\u0145\n\7\3\7\3\7\5\7\u0149\n\7") + buf.write(u"\3\7\5\7\u014c\n\7\3\7\3\7\3\7\3\7\5\7\u0152\n\7\3\7") + buf.write(u"\5\7\u0155\n\7\3\7\3\7\5\7\u0159\n\7\3\7\5\7\u015c\n") + buf.write(u"\7\3\7\5\7\u015f\n\7\3\7\3\7\5\7\u0163\n\7\3\7\5\7\u0166") + buf.write(u"\n\7\3\7\3\7\3\7\5\7\u016b\n\7\3\7\3\7\3\7\3\b\3\b\3") + buf.write(u"\b\3\b\3\b\3\t\6\t\u0176\n\t\r\t\16\t\u0177\3\n\6\n\u017b") + buf.write(u"\n\n\r\n\16\n\u017c\3\13\6\13\u0180\n\13\r\13\16\13\u0181") + buf.write(u"\3\f\6\f\u0185\n\f\r\f\16\f\u0186\3\r\6\r\u018a\n\r\r") + buf.write(u"\r\16\r\u018b\3\16\6\16\u018f\n\16\r\16\16\16\u0190\3") + buf.write(u"\17\6\17\u0194\n\17\r\17\16\17\u0195\3\20\6\20\u0199") + buf.write(u"\n\20\r\20\16\20\u019a\3\21\6\21\u019e\n\21\r\21\16\21") + buf.write(u"\u019f\3\22\6\22\u01a3\n\22\r\22\16\22\u01a4\3\23\6\23") + buf.write(u"\u01a8\n\23\r\23\16\23\u01a9\3\24\6\24\u01ad\n\24\r\24") + buf.write(u"\16\24\u01ae\3\25\6\25\u01b2\n\25\r\25\16\25\u01b3\3") + buf.write(u"\26\6\26\u01b7\n\26\r\26\16\26\u01b8\3\27\6\27\u01bc") + buf.write(u"\n\27\r\27\16\27\u01bd\3\30\6\30\u01c1\n\30\r\30\16\30") + buf.write(u"\u01c2\3\31\6\31\u01c6\n\31\r\31\16\31\u01c7\3\32\6\32") + buf.write(u"\u01cb\n\32\r\32\16\32\u01cc\3\33\6\33\u01d0\n\33\r\33") + buf.write(u"\16\33\u01d1\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34") + buf.write(u"\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\5") + buf.write(u"\35\u01e6\n\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36") + buf.write(u"\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3") + buf.write(u"\37\3\37\3\37\3\37\3\37\5\37\u01ff\n\37\3\37\3\37\3\37") + buf.write(u"\3\37\3 \3 \3 \3 \3 \5 \u020a\n \3 \5 \u020d\n \3 \5") + buf.write(u" \u0210\n \3 \5 \u0213\n \3 \5 \u0216\n \3 \5 \u0219") + buf.write(u"\n \3 \5 \u021c\n \3 \5 \u021f\n \3 \5 \u0222\n \3 \3") + buf.write(u" \3 \3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3") + buf.write(u"\"\3\"\5\"\u0237\n\"\3\"\5\"\u023a\n\"\3\"\5\"\u023d") + buf.write(u"\n\"\3\"\3\"\5\"\u0241\n\"\3\"\5\"\u0244\n\"\3\"\3\"") + buf.write(u"\3\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$") + buf.write(u"\3$\3$\3$\3$\5$\u025d\n$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3") + buf.write(u"%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0271\n%\3%\3%\5%\u0275") + buf.write(u"\n%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3") + buf.write(u"\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3") + buf.write(u"(\3(\3(\5(\u0298\n(\3(\3(\5(\u029c\n(\3(\5(\u029f\n(") + buf.write(u"\3(\3(\3(\3(\3(\5(\u02a6\n(\3(\3(\3(\3)\3)\3)\3)\3)\3") + buf.write(u")\3)\3)\3)\3)\3*\3*\3*\3*\3*\5*\u02ba\n*\3*\5*\u02bd") + buf.write(u"\n*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\5+\u02ca\n+\3+\3") + buf.write(u"+\3+\3+\3,\3,\3,\3,\3,\5,\u02d5\n,\3,\3,\3,\3,\3,\3-") + buf.write(u"\3-\3-\3-\3-\3-\3-\5-\u02e3\n-\3-\3-\3-\3.\3.\3.\3.\3") + buf.write(u".\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3\60\3\60\3\60") + buf.write(u"\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3") + buf.write(u"\62\3\62\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64") + buf.write(u"\3\64\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3") + buf.write(u"\66\3\67\3\67\3\67\3\67\3\67\38\38\38\38\38\39\39\39") + buf.write(u"\39\39\3:\3:\3:\3:\3:\3;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3") + buf.write(u"=\3=\3=\3=\3=\3>\3>\3>\3>\3>\3?\3?\3?\3?\3?\3@\3@\3@") + buf.write(u"\3@\3@\3A\3A\3A\3A\3A\3B\3B\3B\3B\3B\3C\3C\3C\3C\3C\3") + buf.write(u"D\3D\3D\3D\3D\3E\3E\3E\3E\3E\3F\3F\3F\3F\3F\3G\3G\3G") + buf.write(u"\3G\3G\3H\3H\3H\3H\3H\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3") + buf.write(u"K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3N\3N\3N") + buf.write(u"\3N\3N\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3") + buf.write(u"R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3U\3U\3U") + buf.write(u"\3U\3U\3V\3V\3V\7V\u03ba\nV\fV\16V\u03bd\13V\3V\3V\3") + buf.write(u"W\3W\3W\3W\7W\u03c5\nW\fW\16W\u03c8\13W\3W\3W\3X\3X\3") + buf.write(u"X\7X\u03cf\nX\fX\16X\u03d2\13X\3X\3X\3Y\3Y\3Y\3Y\3Y\3") + buf.write(u"Z\3Z\3Z\3Z\3Z\3[\3[\3[\3[\3[\3\\\3\\\3\\\3\\\3\\\3]\3") + buf.write(u"]\3]\3]\3]\3^\3^\3^\3^\3^\3_\3_\3_\3_\3_\3`\3`\3`\3`") + buf.write(u"\3`\3a\3a\3a\3a\3a\3b\3b\3b\3b\5b\u0407\nb\3b\5b\u040a") + buf.write(u"\nb\3b\5b\u040d\nb\3b\5b\u0410\nb\3b\3b\5b\u0414\nb\3") + buf.write(u"b\5b\u0417\nb\3b\5b\u041a\nb\3b\3b\3b\3c\3c\3c\3c\3c") + buf.write(u"\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3f\3f\3f\3f\3f\3g\3g\3") + buf.write(u"g\3g\3g\3h\3h\3h\3h\3h\3i\3i\3i\3i\7i\u0441\ni\fi\16") + buf.write(u"i\u0444\13i\3i\3i\3i\3j\3j\3j\3j\5j\u044d\nj\3j\5j\u0450") + buf.write(u"\nj\3j\5j\u0453\nj\3j\5j\u0456\nj\3j\5j\u0459\nj\3j\5") + buf.write(u"j\u045c\nj\3j\5j\u045f\nj\3j\3j\3j\3k\3k\3k\3k\3k\3l") + buf.write(u"\3l\3l\3l\3l\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3o\3o\3o\3") + buf.write(u"o\3o\3p\3p\3p\3p\3p\3q\3q\3q\3q\3q\3r\3r\3r\3r\3r\3s") + buf.write(u"\3s\3s\3s\3s\3t\3t\3t\3t\3t\3u\3u\3u\3u\3u\3v\3v\3v\3") + buf.write(u"v\3v\3v\3v\3v\3v\3v\3v\3v\5v\u04a7\nv\3w\3w\3w\3w\3w") + buf.write(u"\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3z\3z\3z\3z\3z\3{\3{\3") + buf.write(u"{\3{\3{\3|\3|\3|\3|\3|\3}\3}\3}\3}\3}\3~\3~\3~\3~\3~") + buf.write(u"\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3\u0080") + buf.write(u"\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081") + buf.write(u"\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0083\3\u0083") + buf.write(u"\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084\3\u0084") + buf.write(u"\3\u0084\3\u0085\3\u0085\3\u0085\3\u0085\7\u0085\u04f3") + buf.write(u"\n\u0085\f\u0085\16\u0085\u04f6\13\u0085\3\u0085\3\u0085") + buf.write(u"\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0087") + buf.write(u"\3\u0087\3\u0087\3\u0087\3\u0087\3\u0088\7\u0088\u0506") + buf.write(u"\n\u0088\f\u0088\16\u0088\u0509\13\u0088\3\u0089\3\u0089") + buf.write(u"\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089") buf.write(u"\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008a") - buf.write(u"\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b\7\u008b\u0528") - buf.write(u"\n\u008b\f\u008b\16\u008b\u052b\13\u008b\3\u008b\3\u008b") - buf.write(u"\3\u008b\3\u008c\3\u008c\3\u008c\3\u008c\7\u008c\u0534") - buf.write(u"\n\u008c\f\u008c\16\u008c\u0537\13\u008c\3\u008c\3\u008c") - buf.write(u"\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008e") - buf.write(u"\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f") - buf.write(u"\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\2\2\u0091\2") - buf.write(u"\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62") - buf.write(u"\64\668:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082") - buf.write(u"\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094") - buf.write(u"\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6") - buf.write(u"\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8") - buf.write(u"\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca") - buf.write(u"\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc") - buf.write(u"\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee") - buf.write(u"\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100") - buf.write(u"\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112") - buf.write(u"\u0114\u0116\u0118\u011a\u011c\u011e\2\4\3\2mn\3\2mo") - buf.write(u"\u050e\2\u0120\3\2\2\2\4\u0122\3\2\2\2\6\u012a\3\2\2") - buf.write(u"\2\b\u012f\3\2\2\2\n\u0135\3\2\2\2\f\u013a\3\2\2\2\16") - buf.write(u"\u0169\3\2\2\2\20\u016f\3\2\2\2\22\u0174\3\2\2\2\24\u0179") - buf.write(u"\3\2\2\2\26\u017e\3\2\2\2\30\u0183\3\2\2\2\32\u0188\3") - buf.write(u"\2\2\2\34\u018d\3\2\2\2\36\u0192\3\2\2\2 \u0197\3\2\2") - buf.write(u"\2\"\u019c\3\2\2\2$\u01a1\3\2\2\2&\u01a6\3\2\2\2(\u01ab") - buf.write(u"\3\2\2\2*\u01b0\3\2\2\2,\u01b5\3\2\2\2.\u01ba\3\2\2\2") - buf.write(u"\60\u01bf\3\2\2\2\62\u01c4\3\2\2\2\64\u01c9\3\2\2\2\66") - buf.write(u"\u01cd\3\2\2\28\u01d9\3\2\2\2:\u01e4\3\2\2\2<\u01ef\3") - buf.write(u"\2\2\2>\u01fe\3\2\2\2@\u0220\3\2\2\2B\u022a\3\2\2\2D") - buf.write(u"\u0242\3\2\2\2F\u024c\3\2\2\2H\u025e\3\2\2\2J\u0275\3") - buf.write(u"\2\2\2L\u0280\3\2\2\2N\u028a\3\2\2\2P\u029e\3\2\2\2R") - buf.write(u"\u02a8\3\2\2\2T\u02b6\3\2\2\2V\u02c3\3\2\2\2X\u02cf\3") - buf.write(u"\2\2\2Z\u02db\3\2\2\2\\\u02e7\3\2\2\2^\u02ec\3\2\2\2") - buf.write(u"`\u02f1\3\2\2\2b\u02f6\3\2\2\2d\u02fb\3\2\2\2f\u0300") - buf.write(u"\3\2\2\2h\u0305\3\2\2\2j\u030a\3\2\2\2l\u030f\3\2\2\2") - buf.write(u"n\u0314\3\2\2\2p\u0319\3\2\2\2r\u031e\3\2\2\2t\u0323") - buf.write(u"\3\2\2\2v\u0328\3\2\2\2x\u032d\3\2\2\2z\u0332\3\2\2\2") - buf.write(u"|\u0337\3\2\2\2~\u033c\3\2\2\2\u0080\u0341\3\2\2\2\u0082") - buf.write(u"\u0346\3\2\2\2\u0084\u034b\3\2\2\2\u0086\u0350\3\2\2") - buf.write(u"\2\u0088\u0355\3\2\2\2\u008a\u035a\3\2\2\2\u008c\u035f") - buf.write(u"\3\2\2\2\u008e\u0364\3\2\2\2\u0090\u0369\3\2\2\2\u0092") - buf.write(u"\u036e\3\2\2\2\u0094\u0373\3\2\2\2\u0096\u0378\3\2\2") - buf.write(u"\2\u0098\u037d\3\2\2\2\u009a\u0382\3\2\2\2\u009c\u0387") - buf.write(u"\3\2\2\2\u009e\u038c\3\2\2\2\u00a0\u0391\3\2\2\2\u00a2") - buf.write(u"\u0396\3\2\2\2\u00a4\u039b\3\2\2\2\u00a6\u03a0\3\2\2") - buf.write(u"\2\u00a8\u03a5\3\2\2\2\u00aa\u03aa\3\2\2\2\u00ac\u03b4") - buf.write(u"\3\2\2\2\u00ae\u03bf\3\2\2\2\u00b0\u03c9\3\2\2\2\u00b2") - buf.write(u"\u03ce\3\2\2\2\u00b4\u03d3\3\2\2\2\u00b6\u03d8\3\2\2") - buf.write(u"\2\u00b8\u03dd\3\2\2\2\u00ba\u03e2\3\2\2\2\u00bc\u03e7") - buf.write(u"\3\2\2\2\u00be\u03ec\3\2\2\2\u00c0\u03f1\3\2\2\2\u00c2") - buf.write(u"\u03f6\3\2\2\2\u00c4\u040f\3\2\2\2\u00c6\u0414\3\2\2") - buf.write(u"\2\u00c8\u0419\3\2\2\2\u00ca\u041e\3\2\2\2\u00cc\u0423") - buf.write(u"\3\2\2\2\u00ce\u0428\3\2\2\2\u00d0\u0434\3\2\2\2\u00d2") - buf.write(u"\u044f\3\2\2\2\u00d4\u0454\3\2\2\2\u00d6\u0459\3\2\2") - buf.write(u"\2\u00d8\u045e\3\2\2\2\u00da\u0463\3\2\2\2\u00dc\u0468") - buf.write(u"\3\2\2\2\u00de\u046d\3\2\2\2\u00e0\u0472\3\2\2\2\u00e2") - buf.write(u"\u0477\3\2\2\2\u00e4\u047c\3\2\2\2\u00e6\u0481\3\2\2") - buf.write(u"\2\u00e8\u0492\3\2\2\2\u00ea\u0494\3\2\2\2\u00ec\u0499") - buf.write(u"\3\2\2\2\u00ee\u049e\3\2\2\2\u00f0\u04a3\3\2\2\2\u00f2") - buf.write(u"\u04a8\3\2\2\2\u00f4\u04ad\3\2\2\2\u00f6\u04b2\3\2\2") - buf.write(u"\2\u00f8\u04b7\3\2\2\2\u00fa\u04bc\3\2\2\2\u00fc\u04c1") - buf.write(u"\3\2\2\2\u00fe\u04c6\3\2\2\2\u0100\u04cb\3\2\2\2\u0102") - buf.write(u"\u04d0\3\2\2\2\u0104\u04dc\3\2\2\2\u0106\u04e1\3\2\2") - buf.write(u"\2\u0108\u04e9\3\2\2\2\u010a\u04ec\3\2\2\2\u010c\u0512") - buf.write(u"\3\2\2\2\u010e\u0514\3\2\2\2\u0110\u0519\3\2\2\2\u0112") - buf.write(u"\u051e\3\2\2\2\u0114\u0523\3\2\2\2\u0116\u052f\3\2\2") - buf.write(u"\2\u0118\u053b\3\2\2\2\u011a\u0540\3\2\2\2\u011c\u0545") - buf.write(u"\3\2\2\2\u011e\u054a\3\2\2\2\u0120\u0121\5\4\3\2\u0121") - buf.write(u"\3\3\2\2\2\u0122\u0123\7\3\2\2\u0123\u0124\5\6\4\2\u0124") - buf.write(u"\u0125\5\b\5\2\u0125\u0126\5\n\6\2\u0126\u0127\5\f\7") - buf.write(u"\2\u0127\u0128\5\16\b\2\u0128\u0129\7\4\2\2\u0129\5\3") - buf.write(u"\2\2\2\u012a\u012b\7f\2\2\u012b\u012c\7\5\2\2\u012c\u012d") - buf.write(u"\7n\2\2\u012d\u012e\7\6\2\2\u012e\7\3\2\2\2\u012f\u0130") - buf.write(u"\7g\2\2\u0130\u0131\7\5\2\2\u0131\u0132\7\3\2\2\u0132") - buf.write(u"\u0133\7\4\2\2\u0133\u0134\7\6\2\2\u0134\t\3\2\2\2\u0135") - buf.write(u"\u0136\7i\2\2\u0136\u0137\7\5\2\2\u0137\u0138\7n\2\2") - buf.write(u"\u0138\u0139\7\6\2\2\u0139\13\3\2\2\2\u013a\u013b\7j") - buf.write(u"\2\2\u013b\u013c\7\5\2\2\u013c\u013e\7\3\2\2\u013d\u013f") - buf.write(u"\5\20\t\2\u013e\u013d\3\2\2\2\u013e\u013f\3\2\2\2\u013f") - buf.write(u"\u0140\3\2\2\2\u0140\u0142\5\22\n\2\u0141\u0143\5\24") - buf.write(u"\13\2\u0142\u0141\3\2\2\2\u0142\u0143\3\2\2\2\u0143\u0145") - buf.write(u"\3\2\2\2\u0144\u0146\5\26\f\2\u0145\u0144\3\2\2\2\u0145") - buf.write(u"\u0146\3\2\2\2\u0146\u0147\3\2\2\2\u0147\u0148\5\30\r") - buf.write(u"\2\u0148\u0149\5\32\16\2\u0149\u014b\5\34\17\2\u014a") - buf.write(u"\u014c\5\36\20\2\u014b\u014a\3\2\2\2\u014b\u014c\3\2") - buf.write(u"\2\2\u014c\u014e\3\2\2\2\u014d\u014f\5 \21\2\u014e\u014d") - buf.write(u"\3\2\2\2\u014e\u014f\3\2\2\2\u014f\u0150\3\2\2\2\u0150") - buf.write(u"\u0152\5\"\22\2\u0151\u0153\5$\23\2\u0152\u0151\3\2\2") - buf.write(u"\2\u0152\u0153\3\2\2\2\u0153\u0155\3\2\2\2\u0154\u0156") - buf.write(u"\5&\24\2\u0155\u0154\3\2\2\2\u0155\u0156\3\2\2\2\u0156") - buf.write(u"\u0158\3\2\2\2\u0157\u0159\5(\25\2\u0158\u0157\3\2\2") - buf.write(u"\2\u0158\u0159\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u015c") - buf.write(u"\5*\26\2\u015b\u015d\5,\27\2\u015c\u015b\3\2\2\2\u015c") - buf.write(u"\u015d\3\2\2\2\u015d\u015f\3\2\2\2\u015e\u0160\5.\30") - buf.write(u"\2\u015f\u015e\3\2\2\2\u015f\u0160\3\2\2\2\u0160\u0161") - buf.write(u"\3\2\2\2\u0161\u0162\5\60\31\2\u0162\u0164\5\62\32\2") - buf.write(u"\u0163\u0165\5\64\33\2\u0164\u0163\3\2\2\2\u0164\u0165") - buf.write(u"\3\2\2\2\u0165\u0166\3\2\2\2\u0166\u0167\7\4\2\2\u0167") - buf.write(u"\u0168\7\6\2\2\u0168\r\3\2\2\2\u0169\u016a\7k\2\2\u016a") - buf.write(u"\u016b\7\5\2\2\u016b\u016c\7l\2\2\u016c\u016d\7\6\2\2") - buf.write(u"\u016d\17\3\2\2\2\u016e\u0170\5\66\34\2\u016f\u016e\3") - buf.write(u"\2\2\2\u0170\u0171\3\2\2\2\u0171\u016f\3\2\2\2\u0171") - buf.write(u"\u0172\3\2\2\2\u0172\21\3\2\2\2\u0173\u0175\58\35\2\u0174") - buf.write(u"\u0173\3\2\2\2\u0175\u0176\3\2\2\2\u0176\u0174\3\2\2") - buf.write(u"\2\u0176\u0177\3\2\2\2\u0177\23\3\2\2\2\u0178\u017a\5") - buf.write(u":\36\2\u0179\u0178\3\2\2\2\u017a\u017b\3\2\2\2\u017b") - buf.write(u"\u0179\3\2\2\2\u017b\u017c\3\2\2\2\u017c\25\3\2\2\2\u017d") - buf.write(u"\u017f\5<\37\2\u017e\u017d\3\2\2\2\u017f\u0180\3\2\2") - buf.write(u"\2\u0180\u017e\3\2\2\2\u0180\u0181\3\2\2\2\u0181\27\3") - buf.write(u"\2\2\2\u0182\u0184\5> \2\u0183\u0182\3\2\2\2\u0184\u0185") - buf.write(u"\3\2\2\2\u0185\u0183\3\2\2\2\u0185\u0186\3\2\2\2\u0186") - buf.write(u"\31\3\2\2\2\u0187\u0189\5@!\2\u0188\u0187\3\2\2\2\u0189") - buf.write(u"\u018a\3\2\2\2\u018a\u0188\3\2\2\2\u018a\u018b\3\2\2") - buf.write(u"\2\u018b\33\3\2\2\2\u018c\u018e\5B\"\2\u018d\u018c\3") - buf.write(u"\2\2\2\u018e\u018f\3\2\2\2\u018f\u018d\3\2\2\2\u018f") - buf.write(u"\u0190\3\2\2\2\u0190\35\3\2\2\2\u0191\u0193\5D#\2\u0192") - buf.write(u"\u0191\3\2\2\2\u0193\u0194\3\2\2\2\u0194\u0192\3\2\2") - buf.write(u"\2\u0194\u0195\3\2\2\2\u0195\37\3\2\2\2\u0196\u0198\5") - buf.write(u"F$\2\u0197\u0196\3\2\2\2\u0198\u0199\3\2\2\2\u0199\u0197") - buf.write(u"\3\2\2\2\u0199\u019a\3\2\2\2\u019a!\3\2\2\2\u019b\u019d") - buf.write(u"\5H%\2\u019c\u019b\3\2\2\2\u019d\u019e\3\2\2\2\u019e") - buf.write(u"\u019c\3\2\2\2\u019e\u019f\3\2\2\2\u019f#\3\2\2\2\u01a0") - buf.write(u"\u01a2\5J&\2\u01a1\u01a0\3\2\2\2\u01a2\u01a3\3\2\2\2") - buf.write(u"\u01a3\u01a1\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4%\3\2\2") - buf.write(u"\2\u01a5\u01a7\5L\'\2\u01a6\u01a5\3\2\2\2\u01a7\u01a8") - buf.write(u"\3\2\2\2\u01a8\u01a6\3\2\2\2\u01a8\u01a9\3\2\2\2\u01a9") - buf.write(u"\'\3\2\2\2\u01aa\u01ac\5N(\2\u01ab\u01aa\3\2\2\2\u01ac") - buf.write(u"\u01ad\3\2\2\2\u01ad\u01ab\3\2\2\2\u01ad\u01ae\3\2\2") - buf.write(u"\2\u01ae)\3\2\2\2\u01af\u01b1\5P)\2\u01b0\u01af\3\2\2") - buf.write(u"\2\u01b1\u01b2\3\2\2\2\u01b2\u01b0\3\2\2\2\u01b2\u01b3") - buf.write(u"\3\2\2\2\u01b3+\3\2\2\2\u01b4\u01b6\5R*\2\u01b5\u01b4") - buf.write(u"\3\2\2\2\u01b6\u01b7\3\2\2\2\u01b7\u01b5\3\2\2\2\u01b7") - buf.write(u"\u01b8\3\2\2\2\u01b8-\3\2\2\2\u01b9\u01bb\5T+\2\u01ba") - buf.write(u"\u01b9\3\2\2\2\u01bb\u01bc\3\2\2\2\u01bc\u01ba\3\2\2") - buf.write(u"\2\u01bc\u01bd\3\2\2\2\u01bd/\3\2\2\2\u01be\u01c0\5V") - buf.write(u",\2\u01bf\u01be\3\2\2\2\u01c0\u01c1\3\2\2\2\u01c1\u01bf") - buf.write(u"\3\2\2\2\u01c1\u01c2\3\2\2\2\u01c2\61\3\2\2\2\u01c3\u01c5") - buf.write(u"\5X-\2\u01c4\u01c3\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6") - buf.write(u"\u01c4\3\2\2\2\u01c6\u01c7\3\2\2\2\u01c7\63\3\2\2\2\u01c8") - buf.write(u"\u01ca\5Z.\2\u01c9\u01c8\3\2\2\2\u01ca\u01cb\3\2\2\2") - buf.write(u"\u01cb\u01c9\3\2\2\2\u01cb\u01cc\3\2\2\2\u01cc\65\3\2") - buf.write(u"\2\2\u01cd\u01ce\7l\2\2\u01ce\u01cf\7\5\2\2\u01cf\u01d0") - buf.write(u"\7\3\2\2\u01d0\u01d1\5\\/\2\u01d1\u01d2\5\u00b0Y\2\u01d2") - buf.write(u"\u01d3\5\u00b2Z\2\u01d3\u01d4\5\u00b6\\\2\u01d4\u01d5") - buf.write(u"\5\u009eP\2\u01d5\u01d6\5\u00b8]\2\u01d6\u01d7\7\4\2") - buf.write(u"\2\u01d7\u01d8\7\6\2\2\u01d8\67\3\2\2\2\u01d9\u01da\7") - buf.write(u"l\2\2\u01da\u01db\7\5\2\2\u01db\u01dc\7\3\2\2\u01dc\u01dd") - buf.write(u"\5^\60\2\u01dd\u01df\5\u0082B\2\u01de\u01e0\5\u0114\u008b") - buf.write(u"\2\u01df\u01de\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e1") - buf.write(u"\3\2\2\2\u01e1\u01e2\7\4\2\2\u01e2\u01e3\7\6\2\2\u01e3") - buf.write(u"9\3\2\2\2\u01e4\u01e5\7l\2\2\u01e5\u01e6\7\5\2\2\u01e6") - buf.write(u"\u01e7\7\3\2\2\u01e7\u01e8\5`\61\2\u01e8\u01e9\5\u0084") - buf.write(u"C\2\u01e9\u01ea\5\u0086D\2\u01ea\u01eb\5\u0088E\2\u01eb") - buf.write(u"\u01ec\5\u008aF\2\u01ec\u01ed\7\4\2\2\u01ed\u01ee\7\6") - buf.write(u"\2\2\u01ee;\3\2\2\2\u01ef\u01f0\7l\2\2\u01f0\u01f1\7") - buf.write(u"\5\2\2\u01f1\u01f2\7\3\2\2\u01f2\u01f3\5b\62\2\u01f3") - buf.write(u"\u01f4\5\u00a4S\2\u01f4\u01f5\5\u0104\u0083\2\u01f5\u01f6") - buf.write(u"\5\u0106\u0084\2\u01f6\u01f8\5\u00a6T\2\u01f7\u01f9\5") - buf.write(u"\u009eP\2\u01f8\u01f7\3\2\2\2\u01f8\u01f9\3\2\2\2\u01f9") - buf.write(u"\u01fa\3\2\2\2\u01fa\u01fb\5\u00a8U\2\u01fb\u01fc\7\4") - buf.write(u"\2\2\u01fc\u01fd\7\6\2\2\u01fd=\3\2\2\2\u01fe\u01ff\7") - buf.write(u"l\2\2\u01ff\u0200\7\5\2\2\u0200\u0201\7\3\2\2\u0201\u0203") - buf.write(u"\5d\63\2\u0202\u0204\5\u008eH\2\u0203\u0202\3\2\2\2\u0203") - buf.write(u"\u0204\3\2\2\2\u0204\u0206\3\2\2\2\u0205\u0207\5\u008c") - buf.write(u"G\2\u0206\u0205\3\2\2\2\u0206\u0207\3\2\2\2\u0207\u0209") - buf.write(u"\3\2\2\2\u0208\u020a\5\u0092J\2\u0209\u0208\3\2\2\2\u0209") - buf.write(u"\u020a\3\2\2\2\u020a\u020c\3\2\2\2\u020b\u020d\5\u0090") - buf.write(u"I\2\u020c\u020b\3\2\2\2\u020c\u020d\3\2\2\2\u020d\u020f") - buf.write(u"\3\2\2\2\u020e\u0210\5\u00be`\2\u020f\u020e\3\2\2\2\u020f") - buf.write(u"\u0210\3\2\2\2\u0210\u0212\3\2\2\2\u0211\u0213\5\u009e") - buf.write(u"P\2\u0212\u0211\3\2\2\2\u0212\u0213\3\2\2\2\u0213\u0215") - buf.write(u"\3\2\2\2\u0214\u0216\5\u00a0Q\2\u0215\u0214\3\2\2\2\u0215") - buf.write(u"\u0216\3\2\2\2\u0216\u0218\3\2\2\2\u0217\u0219\5\u00a2") - buf.write(u"R\2\u0218\u0217\3\2\2\2\u0218\u0219\3\2\2\2\u0219\u021b") - buf.write(u"\3\2\2\2\u021a\u021c\5\u00c0a\2\u021b\u021a\3\2\2\2\u021b") - buf.write(u"\u021c\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u021e\7\4\2") - buf.write(u"\2\u021e\u021f\7\6\2\2\u021f?\3\2\2\2\u0220\u0221\7l") - buf.write(u"\2\2\u0221\u0222\7\5\2\2\u0222\u0223\7\3\2\2\u0223\u0224") - buf.write(u"\5f\64\2\u0224\u0225\5\u00a4S\2\u0225\u0226\5\u00a6T") - buf.write(u"\2\u0226\u0227\5\u00a8U\2\u0227\u0228\7\4\2\2\u0228\u0229") - buf.write(u"\7\6\2\2\u0229A\3\2\2\2\u022a\u022b\7l\2\2\u022b\u022c") - buf.write(u"\7\5\2\2\u022c\u022d\7\3\2\2\u022d\u022e\5h\65\2\u022e") - buf.write(u"\u0230\5\u009aN\2\u022f\u0231\5\u0094K\2\u0230\u022f") - buf.write(u"\3\2\2\2\u0230\u0231\3\2\2\2\u0231\u0233\3\2\2\2\u0232") - buf.write(u"\u0234\5\u009eP\2\u0233\u0232\3\2\2\2\u0233\u0234\3\2") - buf.write(u"\2\2\u0234\u0236\3\2\2\2\u0235\u0237\5\u00a0Q\2\u0236") - buf.write(u"\u0235\3\2\2\2\u0236\u0237\3\2\2\2\u0237\u0238\3\2\2") - buf.write(u"\2\u0238\u023a\5\u00a2R\2\u0239\u023b\5\u0096L\2\u023a") - buf.write(u"\u0239\3\2\2\2\u023a\u023b\3\2\2\2\u023b\u023d\3\2\2") - buf.write(u"\2\u023c\u023e\5\u0098M\2\u023d\u023c\3\2\2\2\u023d\u023e") - buf.write(u"\3\2\2\2\u023e\u023f\3\2\2\2\u023f\u0240\7\4\2\2\u0240") - buf.write(u"\u0241\7\6\2\2\u0241C\3\2\2\2\u0242\u0243\7l\2\2\u0243") - buf.write(u"\u0244\7\5\2\2\u0244\u0245\7\3\2\2\u0245\u0246\5j\66") - buf.write(u"\2\u0246\u0247\5\u00a4S\2\u0247\u0248\5\u00a6T\2\u0248") - buf.write(u"\u0249\5\u00a8U\2\u0249\u024a\7\4\2\2\u024a\u024b\7\6") - buf.write(u"\2\2\u024bE\3\2\2\2\u024c\u024d\7l\2\2\u024d\u024e\7") - buf.write(u"\5\2\2\u024e\u024f\7\3\2\2\u024f\u0250\5l\67\2\u0250") - buf.write(u"\u0251\5\u00b0Y\2\u0251\u0252\5\u00b2Z\2\u0252\u0253") - buf.write(u"\5\u00b4[\2\u0253\u0254\5\u00b6\\\2\u0254\u0256\5\u009e") - buf.write(u"P\2\u0255\u0257\5\u009cO\2\u0256\u0255\3\2\2\2\u0256") - buf.write(u"\u0257\3\2\2\2\u0257\u0258\3\2\2\2\u0258\u0259\5\u00b8") - buf.write(u"]\2\u0259\u025a\5\u00ba^\2\u025a\u025b\5\u00bc_\2\u025b") - buf.write(u"\u025c\7\4\2\2\u025c\u025d\7\6\2\2\u025dG\3\2\2\2\u025e") - buf.write(u"\u025f\7l\2\2\u025f\u0260\7\5\2\2\u0260\u0261\7\3\2\2") - buf.write(u"\u0261\u0262\5n8\2\u0262\u0263\5\u00c2b\2\u0263\u0264") - buf.write(u"\5\u00b0Y\2\u0264\u0265\5\u00dan\2\u0265\u0266\5\u00dc") - buf.write(u"o\2\u0266\u0267\5\u00dep\2\u0267\u0268\5\u00e0q\2\u0268") - buf.write(u"\u026a\5\u00e2r\2\u0269\u026b\5\u00e4s\2\u026a\u0269") - buf.write(u"\3\2\2\2\u026a\u026b\3\2\2\2\u026b\u026c\3\2\2\2\u026c") - buf.write(u"\u026e\5\u00e6t\2\u026d\u026f\5\u00e8u\2\u026e\u026d") - buf.write(u"\3\2\2\2\u026e\u026f\3\2\2\2\u026f\u0270\3\2\2\2\u0270") - buf.write(u"\u0271\5\u00eav\2\u0271\u0272\5\u00ecw\2\u0272\u0273") - buf.write(u"\7\4\2\2\u0273\u0274\7\6\2\2\u0274I\3\2\2\2\u0275\u0276") - buf.write(u"\7l\2\2\u0276\u0277\7\5\2\2\u0277\u0278\7\3\2\2\u0278") - buf.write(u"\u0279\5p9\2\u0279\u027a\5\u00fc\177\2\u027a\u027b\5") - buf.write(u"\u00a0Q\2\u027b\u027c\5\u00fe\u0080\2\u027c\u027d\5\u00a2") - buf.write(u"R\2\u027d\u027e\7\4\2\2\u027e\u027f\7\6\2\2\u027fK\3") - buf.write(u"\2\2\2\u0280\u0281\7l\2\2\u0281\u0282\7\5\2\2\u0282\u0283") - buf.write(u"\7\3\2\2\u0283\u0284\5r:\2\u0284\u0285\5\u00a4S\2\u0285") - buf.write(u"\u0286\5\u00a6T\2\u0286\u0287\5\u00a8U\2\u0287\u0288") - buf.write(u"\7\4\2\2\u0288\u0289\7\6\2\2\u0289M\3\2\2\2\u028a\u028b") - buf.write(u"\7l\2\2\u028b\u028c\7\5\2\2\u028c\u028d\7\3\2\2\u028d") - buf.write(u"\u028e\5t;\2\u028e\u028f\5\u00a4S\2\u028f\u0290\5\u00a6") - buf.write(u"T\2\u0290\u0292\5\u00eex\2\u0291\u0293\5\u009eP\2\u0292") - buf.write(u"\u0291\3\2\2\2\u0292\u0293\3\2\2\2\u0293\u0294\3\2\2") - buf.write(u"\2\u0294\u0295\5\u00f0y\2\u0295\u0296\5\u00a8U\2\u0296") - buf.write(u"\u0297\5\u00f2z\2\u0297\u0299\5\u00f4{\2\u0298\u029a") - buf.write(u"\5\u00f6|\2\u0299\u0298\3\2\2\2\u0299\u029a\3\2\2\2\u029a") - buf.write(u"\u029b\3\2\2\2\u029b\u029c\7\4\2\2\u029c\u029d\7\6\2") - buf.write(u"\2\u029dO\3\2\2\2\u029e\u029f\7l\2\2\u029f\u02a0\7\5") - buf.write(u"\2\2\u02a0\u02a1\7\3\2\2\u02a1\u02a2\5v<\2\u02a2\u02a3") - buf.write(u"\5\u00a4S\2\u02a3\u02a4\5\u00a6T\2\u02a4\u02a5\5\u00a8") - buf.write(u"U\2\u02a5\u02a6\7\4\2\2\u02a6\u02a7\7\6\2\2\u02a7Q\3") - buf.write(u"\2\2\2\u02a8\u02a9\7l\2\2\u02a9\u02aa\7\5\2\2\u02aa\u02ab") - buf.write(u"\7\3\2\2\u02ab\u02ad\5x=\2\u02ac\u02ae\5\u009eP\2\u02ad") - buf.write(u"\u02ac\3\2\2\2\u02ad\u02ae\3\2\2\2\u02ae\u02b0\3\2\2") - buf.write(u"\2\u02af\u02b1\5\u00f8}\2\u02b0\u02af\3\2\2\2\u02b0\u02b1") - buf.write(u"\3\2\2\2\u02b1\u02b2\3\2\2\2\u02b2\u02b3\5\u00fa~\2\u02b3") - buf.write(u"\u02b4\7\4\2\2\u02b4\u02b5\7\6\2\2\u02b5S\3\2\2\2\u02b6") - buf.write(u"\u02b7\7l\2\2\u02b7\u02b8\7\5\2\2\u02b8\u02b9\7\3\2\2") - buf.write(u"\u02b9\u02ba\5z>\2\u02ba\u02bb\5\u009aN\2\u02bb\u02bd") - buf.write(u"\5\u009eP\2\u02bc\u02be\5\u00a0Q\2\u02bd\u02bc\3\2\2") - buf.write(u"\2\u02bd\u02be\3\2\2\2\u02be\u02bf\3\2\2\2\u02bf\u02c0") - buf.write(u"\5\u00a2R\2\u02c0\u02c1\7\4\2\2\u02c1\u02c2\7\6\2\2\u02c2") - buf.write(u"U\3\2\2\2\u02c3\u02c4\7l\2\2\u02c4\u02c5\7\5\2\2\u02c5") - buf.write(u"\u02c6\7\3\2\2\u02c6\u02c8\5|?\2\u02c7\u02c9\5\u0100") - buf.write(u"\u0081\2\u02c8\u02c7\3\2\2\2\u02c8\u02c9\3\2\2\2\u02c9") - buf.write(u"\u02ca\3\2\2\2\u02ca\u02cb\5\u0102\u0082\2\u02cb\u02cc") - buf.write(u"\5\u009eP\2\u02cc\u02cd\7\4\2\2\u02cd\u02ce\7\6\2\2\u02ce") - buf.write(u"W\3\2\2\2\u02cf\u02d0\7l\2\2\u02d0\u02d1\7\5\2\2\u02d1") - buf.write(u"\u02d2\7\3\2\2\u02d2\u02d3\5~@\2\u02d3\u02d4\5\u010e") - buf.write(u"\u0088\2\u02d4\u02d6\5\u0110\u0089\2\u02d5\u02d7\5\u0112") - buf.write(u"\u008a\2\u02d6\u02d5\3\2\2\2\u02d6\u02d7\3\2\2\2\u02d7") - buf.write(u"\u02d8\3\2\2\2\u02d8\u02d9\7\4\2\2\u02d9\u02da\7\6\2") - buf.write(u"\2\u02daY\3\2\2\2\u02db\u02dc\7l\2\2\u02dc\u02dd\7\5") - buf.write(u"\2\2\u02dd\u02de\7\3\2\2\u02de\u02df\5\u0080A\2\u02df") - buf.write(u"\u02e0\5\u009aN\2\u02e0\u02e1\5\u0118\u008d\2\u02e1\u02e2") - buf.write(u"\5\u00a0Q\2\u02e2\u02e3\5\u00a2R\2\u02e3\u02e4\5\u011a") - buf.write(u"\u008e\2\u02e4\u02e5\7\4\2\2\u02e5\u02e6\7\6\2\2\u02e6") - buf.write(u"[\3\2\2\2\u02e7\u02e8\7h\2\2\u02e8\u02e9\7\5\2\2\u02e9") - buf.write(u"\u02ea\7\7\2\2\u02ea\u02eb\7\6\2\2\u02eb]\3\2\2\2\u02ec") - buf.write(u"\u02ed\7h\2\2\u02ed\u02ee\7\5\2\2\u02ee\u02ef\7\b\2\2") - buf.write(u"\u02ef\u02f0\7\6\2\2\u02f0_\3\2\2\2\u02f1\u02f2\7h\2") - buf.write(u"\2\u02f2\u02f3\7\5\2\2\u02f3\u02f4\7\t\2\2\u02f4\u02f5") - buf.write(u"\7\6\2\2\u02f5a\3\2\2\2\u02f6\u02f7\7h\2\2\u02f7\u02f8") - buf.write(u"\7\5\2\2\u02f8\u02f9\7\n\2\2\u02f9\u02fa\7\6\2\2\u02fa") - buf.write(u"c\3\2\2\2\u02fb\u02fc\7h\2\2\u02fc\u02fd\7\5\2\2\u02fd") - buf.write(u"\u02fe\7\13\2\2\u02fe\u02ff\7\6\2\2\u02ffe\3\2\2\2\u0300") - buf.write(u"\u0301\7h\2\2\u0301\u0302\7\5\2\2\u0302\u0303\7\f\2\2") - buf.write(u"\u0303\u0304\7\6\2\2\u0304g\3\2\2\2\u0305\u0306\7h\2") - buf.write(u"\2\u0306\u0307\7\5\2\2\u0307\u0308\7\r\2\2\u0308\u0309") - buf.write(u"\7\6\2\2\u0309i\3\2\2\2\u030a\u030b\7h\2\2\u030b\u030c") - buf.write(u"\7\5\2\2\u030c\u030d\7\16\2\2\u030d\u030e\7\6\2\2\u030e") - buf.write(u"k\3\2\2\2\u030f\u0310\7h\2\2\u0310\u0311\7\5\2\2\u0311") - buf.write(u"\u0312\7\17\2\2\u0312\u0313\7\6\2\2\u0313m\3\2\2\2\u0314") - buf.write(u"\u0315\7h\2\2\u0315\u0316\7\5\2\2\u0316\u0317\7\20\2") - buf.write(u"\2\u0317\u0318\7\6\2\2\u0318o\3\2\2\2\u0319\u031a\7h") - buf.write(u"\2\2\u031a\u031b\7\5\2\2\u031b\u031c\7\21\2\2\u031c\u031d") - buf.write(u"\7\6\2\2\u031dq\3\2\2\2\u031e\u031f\7h\2\2\u031f\u0320") - buf.write(u"\7\5\2\2\u0320\u0321\7\22\2\2\u0321\u0322\7\6\2\2\u0322") - buf.write(u"s\3\2\2\2\u0323\u0324\7h\2\2\u0324\u0325\7\5\2\2\u0325") - buf.write(u"\u0326\7\23\2\2\u0326\u0327\7\6\2\2\u0327u\3\2\2\2\u0328") - buf.write(u"\u0329\7h\2\2\u0329\u032a\7\5\2\2\u032a\u032b\7\24\2") - buf.write(u"\2\u032b\u032c\7\6\2\2\u032cw\3\2\2\2\u032d\u032e\7h") - buf.write(u"\2\2\u032e\u032f\7\5\2\2\u032f\u0330\7\25\2\2\u0330\u0331") - buf.write(u"\7\6\2\2\u0331y\3\2\2\2\u0332\u0333\7h\2\2\u0333\u0334") - buf.write(u"\7\5\2\2\u0334\u0335\7\26\2\2\u0335\u0336\7\6\2\2\u0336") - buf.write(u"{\3\2\2\2\u0337\u0338\7h\2\2\u0338\u0339\7\5\2\2\u0339") - buf.write(u"\u033a\7\27\2\2\u033a\u033b\7\6\2\2\u033b}\3\2\2\2\u033c") - buf.write(u"\u033d\7h\2\2\u033d\u033e\7\5\2\2\u033e\u033f\7\30\2") - buf.write(u"\2\u033f\u0340\7\6\2\2\u0340\177\3\2\2\2\u0341\u0342") - buf.write(u"\7h\2\2\u0342\u0343\7\5\2\2\u0343\u0344\7\31\2\2\u0344") - buf.write(u"\u0345\7\6\2\2\u0345\u0081\3\2\2\2\u0346\u0347\7\32\2") - buf.write(u"\2\u0347\u0348\7\5\2\2\u0348\u0349\7l\2\2\u0349\u034a") - buf.write(u"\7\6\2\2\u034a\u0083\3\2\2\2\u034b\u034c\7\33\2\2\u034c") - buf.write(u"\u034d\7\5\2\2\u034d\u034e\7l\2\2\u034e\u034f\7\6\2\2") - buf.write(u"\u034f\u0085\3\2\2\2\u0350\u0351\7\34\2\2\u0351\u0352") - buf.write(u"\7\5\2\2\u0352\u0353\7n\2\2\u0353\u0354\7\6\2\2\u0354") - buf.write(u"\u0087\3\2\2\2\u0355\u0356\7\35\2\2\u0356\u0357\7\5\2") - buf.write(u"\2\u0357\u0358\7l\2\2\u0358\u0359\7\6\2\2\u0359\u0089") - buf.write(u"\3\2\2\2\u035a\u035b\7\36\2\2\u035b\u035c\7\5\2\2\u035c") - buf.write(u"\u035d\5\u011e\u0090\2\u035d\u035e\7\6\2\2\u035e\u008b") - buf.write(u"\3\2\2\2\u035f\u0360\7\37\2\2\u0360\u0361\7\5\2\2\u0361") - buf.write(u"\u0362\7n\2\2\u0362\u0363\7\6\2\2\u0363\u008d\3\2\2\2") - buf.write(u"\u0364\u0365\7 \2\2\u0365\u0366\7\5\2\2\u0366\u0367\5") - buf.write(u"\u011e\u0090\2\u0367\u0368\7\6\2\2\u0368\u008f\3\2\2") - buf.write(u"\2\u0369\u036a\7!\2\2\u036a\u036b\7\5\2\2\u036b\u036c") - buf.write(u"\5\u011e\u0090\2\u036c\u036d\7\6\2\2\u036d\u0091\3\2") - buf.write(u"\2\2\u036e\u036f\7\"\2\2\u036f\u0370\7\5\2\2\u0370\u0371") - buf.write(u"\7n\2\2\u0371\u0372\7\6\2\2\u0372\u0093\3\2\2\2\u0373") - buf.write(u"\u0374\7#\2\2\u0374\u0375\7\5\2\2\u0375\u0376\7n\2\2") - buf.write(u"\u0376\u0377\7\6\2\2\u0377\u0095\3\2\2\2\u0378\u0379") - buf.write(u"\7$\2\2\u0379\u037a\7\5\2\2\u037a\u037b\7n\2\2\u037b") - buf.write(u"\u037c\7\6\2\2\u037c\u0097\3\2\2\2\u037d\u037e\7%\2\2") - buf.write(u"\u037e\u037f\7\5\2\2\u037f\u0380\7n\2\2\u0380\u0381\7") - buf.write(u"\6\2\2\u0381\u0099\3\2\2\2\u0382\u0383\7&\2\2\u0383\u0384") - buf.write(u"\7\5\2\2\u0384\u0385\5\u00aaV\2\u0385\u0386\7\6\2\2\u0386") - buf.write(u"\u009b\3\2\2\2\u0387\u0388\7\'\2\2\u0388\u0389\7\5\2") - buf.write(u"\2\u0389\u038a\7m\2\2\u038a\u038b\7\6\2\2\u038b\u009d") - buf.write(u"\3\2\2\2\u038c\u038d\7(\2\2\u038d\u038e\7\5\2\2\u038e") - buf.write(u"\u038f\t\2\2\2\u038f\u0390\7\6\2\2\u0390\u009f\3\2\2") - buf.write(u"\2\u0391\u0392\7)\2\2\u0392\u0393\7\5\2\2\u0393\u0394") - buf.write(u"\t\2\2\2\u0394\u0395\7\6\2\2\u0395\u00a1\3\2\2\2\u0396") - buf.write(u"\u0397\7*\2\2\u0397\u0398\7\5\2\2\u0398\u0399\t\2\2\2") - buf.write(u"\u0399\u039a\7\6\2\2\u039a\u00a3\3\2\2\2\u039b\u039c") - buf.write(u"\7+\2\2\u039c\u039d\7\5\2\2\u039d\u039e\7n\2\2\u039e") - buf.write(u"\u039f\7\6\2\2\u039f\u00a5\3\2\2\2\u03a0\u03a1\7,\2\2") - buf.write(u"\u03a1\u03a2\7\5\2\2\u03a2\u03a3\5\u00aaV\2\u03a3\u03a4") - buf.write(u"\7\6\2\2\u03a4\u00a7\3\2\2\2\u03a5\u03a6\7-\2\2\u03a6") - buf.write(u"\u03a7\7\5\2\2\u03a7\u03a8\7n\2\2\u03a8\u03a9\7\6\2\2") - buf.write(u"\u03a9\u00a9\3\2\2\2\u03aa\u03af\7.\2\2\u03ab\u03ac\7") - buf.write(u"l\2\2\u03ac\u03ae\7/\2\2\u03ad\u03ab\3\2\2\2\u03ae\u03b1") - buf.write(u"\3\2\2\2\u03af\u03ad\3\2\2\2\u03af\u03b0\3\2\2\2\u03b0") - buf.write(u"\u03b2\3\2\2\2\u03b1\u03af\3\2\2\2\u03b2\u03b3\7\60\2") - buf.write(u"\2\u03b3\u00ab\3\2\2\2\u03b4\u03ba\7.\2\2\u03b5\u03b6") - buf.write(u"\5\u011e\u0090\2\u03b6\u03b7\7/\2\2\u03b7\u03b9\3\2\2") - buf.write(u"\2\u03b8\u03b5\3\2\2\2\u03b9\u03bc\3\2\2\2\u03ba\u03b8") - buf.write(u"\3\2\2\2\u03ba\u03bb\3\2\2\2\u03bb\u03bd\3\2\2\2\u03bc") - buf.write(u"\u03ba\3\2\2\2\u03bd\u03be\7\60\2\2\u03be\u00ad\3\2\2") - buf.write(u"\2\u03bf\u03c4\7.\2\2\u03c0\u03c1\7n\2\2\u03c1\u03c3") - buf.write(u"\7/\2\2\u03c2\u03c0\3\2\2\2\u03c3\u03c6\3\2\2\2\u03c4") - buf.write(u"\u03c2\3\2\2\2\u03c4\u03c5\3\2\2\2\u03c5\u03c7\3\2\2") - buf.write(u"\2\u03c6\u03c4\3\2\2\2\u03c7\u03c8\7\60\2\2\u03c8\u00af") - buf.write(u"\3\2\2\2\u03c9\u03ca\7\61\2\2\u03ca\u03cb\7\5\2\2\u03cb") - buf.write(u"\u03cc\7l\2\2\u03cc\u03cd\7\6\2\2\u03cd\u00b1\3\2\2\2") - buf.write(u"\u03ce\u03cf\7\62\2\2\u03cf\u03d0\7\5\2\2\u03d0\u03d1") - buf.write(u"\5\u00aaV\2\u03d1\u03d2\7\6\2\2\u03d2\u00b3\3\2\2\2\u03d3") - buf.write(u"\u03d4\7\63\2\2\u03d4\u03d5\7\5\2\2\u03d5\u03d6\5\u00aa") - buf.write(u"V\2\u03d6\u03d7\7\6\2\2\u03d7\u00b5\3\2\2\2\u03d8\u03d9") - buf.write(u"\7\64\2\2\u03d9\u03da\7\5\2\2\u03da\u03db\5\u00aaV\2") - buf.write(u"\u03db\u03dc\7\6\2\2\u03dc\u00b7\3\2\2\2\u03dd\u03de") - buf.write(u"\7\65\2\2\u03de\u03df\7\5\2\2\u03df\u03e0\5\u011e\u0090") - buf.write(u"\2\u03e0\u03e1\7\6\2\2\u03e1\u00b9\3\2\2\2\u03e2\u03e3") - buf.write(u"\7\66\2\2\u03e3\u03e4\7\5\2\2\u03e4\u03e5\7l\2\2\u03e5") - buf.write(u"\u03e6\7\6\2\2\u03e6\u00bb\3\2\2\2\u03e7\u03e8\7\67\2") - buf.write(u"\2\u03e8\u03e9\7\5\2\2\u03e9\u03ea\7m\2\2\u03ea\u03eb") - buf.write(u"\7\6\2\2\u03eb\u00bd\3\2\2\2\u03ec\u03ed\78\2\2\u03ed") - buf.write(u"\u03ee\7\5\2\2\u03ee\u03ef\7n\2\2\u03ef\u03f0\7\6\2\2") - buf.write(u"\u03f0\u00bf\3\2\2\2\u03f1\u03f2\79\2\2\u03f2\u03f3\7") - buf.write(u"\5\2\2\u03f3\u03f4\5\u011e\u0090\2\u03f4\u03f5\7\6\2") - buf.write(u"\2\u03f5\u00c1\3\2\2\2\u03f6\u03f7\7:\2\2\u03f7\u03f8") - buf.write(u"\7\5\2\2\u03f8\u03fa\7\3\2\2\u03f9\u03fb\5\u011c\u008f") - buf.write(u"\2\u03fa\u03f9\3\2\2\2\u03fa\u03fb\3\2\2\2\u03fb\u03fd") - buf.write(u"\3\2\2\2\u03fc\u03fe\5\u00c4c\2\u03fd\u03fc\3\2\2\2\u03fd") - buf.write(u"\u03fe\3\2\2\2\u03fe\u0400\3\2\2\2\u03ff\u0401\5\u00c6") - buf.write(u"d\2\u0400\u03ff\3\2\2\2\u0400\u0401\3\2\2\2\u0401\u0402") - buf.write(u"\3\2\2\2\u0402\u0404\5\u00c8e\2\u0403\u0405\5\u00caf") - buf.write(u"\2\u0404\u0403\3\2\2\2\u0404\u0405\3\2\2\2\u0405\u0407") - buf.write(u"\3\2\2\2\u0406\u0408\5\u00ccg\2\u0407\u0406\3\2\2\2\u0407") - buf.write(u"\u0408\3\2\2\2\u0408\u040a\3\2\2\2\u0409\u040b\5\u00ce") - buf.write(u"h\2\u040a\u0409\3\2\2\2\u040a\u040b\3\2\2\2\u040b\u040c") - buf.write(u"\3\2\2\2\u040c\u040d\7\4\2\2\u040d\u040e\7\6\2\2\u040e") - buf.write(u"\u00c3\3\2\2\2\u040f\u0410\7;\2\2\u0410\u0411\7\5\2\2") - buf.write(u"\u0411\u0412\7n\2\2\u0412\u0413\7\6\2\2\u0413\u00c5\3") - buf.write(u"\2\2\2\u0414\u0415\7<\2\2\u0415\u0416\7\5\2\2\u0416\u0417") - buf.write(u"\7n\2\2\u0417\u0418\7\6\2\2\u0418\u00c7\3\2\2\2\u0419") - buf.write(u"\u041a\7=\2\2\u041a\u041b\7\5\2\2\u041b\u041c\7n\2\2") - buf.write(u"\u041c\u041d\7\6\2\2\u041d\u00c9\3\2\2\2\u041e\u041f") - buf.write(u"\7>\2\2\u041f\u0420\7\5\2\2\u0420\u0421\7n\2\2\u0421") - buf.write(u"\u0422\7\6\2\2\u0422\u00cb\3\2\2\2\u0423\u0424\7?\2\2") - buf.write(u"\u0424\u0425\7\5\2\2\u0425\u0426\5\u011e\u0090\2\u0426") - buf.write(u"\u0427\7\6\2\2\u0427\u00cd\3\2\2\2\u0428\u0429\7@\2\2") - buf.write(u"\u0429\u042a\7\5\2\2\u042a\u042e\7\3\2\2\u042b\u042d") - buf.write(u"\5\u00d0i\2\u042c\u042b\3\2\2\2\u042d\u0430\3\2\2\2\u042e") - buf.write(u"\u042c\3\2\2\2\u042e\u042f\3\2\2\2\u042f\u0431\3\2\2") - buf.write(u"\2\u0430\u042e\3\2\2\2\u0431\u0432\7\4\2\2\u0432\u0433") - buf.write(u"\7\6\2\2\u0433\u00cf\3\2\2\2\u0434\u0435\7l\2\2\u0435") - buf.write(u"\u0436\7\5\2\2\u0436\u0438\7\3\2\2\u0437\u0439\5\u00d2") - buf.write(u"j\2\u0438\u0437\3\2\2\2\u0438\u0439\3\2\2\2\u0439\u043b") - buf.write(u"\3\2\2\2\u043a\u043c\5\u00d4k\2\u043b\u043a\3\2\2\2\u043b") - buf.write(u"\u043c\3\2\2\2\u043c\u043e\3\2\2\2\u043d\u043f\5\u00d6") - buf.write(u"l\2\u043e\u043d\3\2\2\2\u043e\u043f\3\2\2\2\u043f\u0441") - buf.write(u"\3\2\2\2\u0440\u0442\5\u00c4c\2\u0441\u0440\3\2\2\2\u0441") - buf.write(u"\u0442\3\2\2\2\u0442\u0444\3\2\2\2\u0443\u0445\5\u00d8") - buf.write(u"m\2\u0444\u0443\3\2\2\2\u0444\u0445\3\2\2\2\u0445\u0447") - buf.write(u"\3\2\2\2\u0446\u0448\5\u0116\u008c\2\u0447\u0446\3\2") - buf.write(u"\2\2\u0447\u0448\3\2\2\2\u0448\u044a\3\2\2\2\u0449\u044b") - buf.write(u"\5\u00d4k\2\u044a\u0449\3\2\2\2\u044a\u044b\3\2\2\2\u044b") - buf.write(u"\u044c\3\2\2\2\u044c\u044d\7\4\2\2\u044d\u044e\7\6\2") - buf.write(u"\2\u044e\u00d1\3\2\2\2\u044f\u0450\7A\2\2\u0450\u0451") - buf.write(u"\7\5\2\2\u0451\u0452\7n\2\2\u0452\u0453\7\6\2\2\u0453") - buf.write(u"\u00d3\3\2\2\2\u0454\u0455\7B\2\2\u0455\u0456\7\5\2\2") - buf.write(u"\u0456\u0457\7l\2\2\u0457\u0458\7\6\2\2\u0458\u00d5\3") - buf.write(u"\2\2\2\u0459\u045a\7C\2\2\u045a\u045b\7\5\2\2\u045b\u045c") - buf.write(u"\7n\2\2\u045c\u045d\7\6\2\2\u045d\u00d7\3\2\2\2\u045e") - buf.write(u"\u045f\7D\2\2\u045f\u0460\7\5\2\2\u0460\u0461\7n\2\2") - buf.write(u"\u0461\u0462\7\6\2\2\u0462\u00d9\3\2\2\2\u0463\u0464") - buf.write(u"\7E\2\2\u0464\u0465\7\5\2\2\u0465\u0466\7m\2\2\u0466") - buf.write(u"\u0467\7\6\2\2\u0467\u00db\3\2\2\2\u0468\u0469\7F\2\2") - buf.write(u"\u0469\u046a\7\5\2\2\u046a\u046b\7n\2\2\u046b\u046c\7") - buf.write(u"\6\2\2\u046c\u00dd\3\2\2\2\u046d\u046e\7G\2\2\u046e\u046f") - buf.write(u"\7\5\2\2\u046f\u0470\7n\2\2\u0470\u0471\7\6\2\2\u0471") - buf.write(u"\u00df\3\2\2\2\u0472\u0473\7H\2\2\u0473\u0474\7\5\2\2") - buf.write(u"\u0474\u0475\5\u00acW\2\u0475\u0476\7\6\2\2\u0476\u00e1") - buf.write(u"\3\2\2\2\u0477\u0478\7I\2\2\u0478\u0479\7\5\2\2\u0479") - buf.write(u"\u047a\7l\2\2\u047a\u047b\7\6\2\2\u047b\u00e3\3\2\2\2") - buf.write(u"\u047c\u047d\7J\2\2\u047d\u047e\7\5\2\2\u047e\u047f\7") - buf.write(u"l\2\2\u047f\u0480\7\6\2\2\u0480\u00e5\3\2\2\2\u0481\u0482") - buf.write(u"\7K\2\2\u0482\u0483\7\5\2\2\u0483\u0484\7m\2\2\u0484") - buf.write(u"\u0485\7\6\2\2\u0485\u00e7\3\2\2\2\u0486\u0487\7L\2\2") - buf.write(u"\u0487\u0488\7\5\2\2\u0488\u0489\5\u011e\u0090\2\u0489") - buf.write(u"\u048a\7\6\2\2\u048a\u0493\3\2\2\2\u048b\u048c\7L\2\2") - buf.write(u"\u048c\u048d\7\5\2\2\u048d\u048e\7.\2\2\u048e\u048f\5") - buf.write(u"\u0108\u0085\2\u048f\u0490\7\60\2\2\u0490\u0491\7\6\2") - buf.write(u"\2\u0491\u0493\3\2\2\2\u0492\u0486\3\2\2\2\u0492\u048b") - buf.write(u"\3\2\2\2\u0493\u00e9\3\2\2\2\u0494\u0495\7M\2\2\u0495") - buf.write(u"\u0496\7\5\2\2\u0496\u0497\7m\2\2\u0497\u0498\7\6\2\2") - buf.write(u"\u0498\u00eb\3\2\2\2\u0499\u049a\7N\2\2\u049a\u049b\7") - buf.write(u"\5\2\2\u049b\u049c\5\u00aaV\2\u049c\u049d\7\6\2\2\u049d") - buf.write(u"\u00ed\3\2\2\2\u049e\u049f\7O\2\2\u049f\u04a0\7\5\2\2") - buf.write(u"\u04a0\u04a1\5\u00acW\2\u04a1\u04a2\7\6\2\2\u04a2\u00ef") - buf.write(u"\3\2\2\2\u04a3\u04a4\7P\2\2\u04a4\u04a5\7\5\2\2\u04a5") - buf.write(u"\u04a6\5\u00aeX\2\u04a6\u04a7\7\6\2\2\u04a7\u00f1\3\2") - buf.write(u"\2\2\u04a8\u04a9\7Q\2\2\u04a9\u04aa\7\5\2\2\u04aa\u04ab") - buf.write(u"\7n\2\2\u04ab\u04ac\7\6\2\2\u04ac\u00f3\3\2\2\2\u04ad") - buf.write(u"\u04ae\7R\2\2\u04ae\u04af\7\5\2\2\u04af\u04b0\7m\2\2") - buf.write(u"\u04b0\u04b1\7\6\2\2\u04b1\u00f5\3\2\2\2\u04b2\u04b3") - buf.write(u"\7S\2\2\u04b3\u04b4\7\5\2\2\u04b4\u04b5\7n\2\2\u04b5") - buf.write(u"\u04b6\7\6\2\2\u04b6\u00f7\3\2\2\2\u04b7\u04b8\7T\2\2") - buf.write(u"\u04b8\u04b9\7\5\2\2\u04b9\u04ba\7l\2\2\u04ba\u04bb\7") - buf.write(u"\6\2\2\u04bb\u00f9\3\2\2\2\u04bc\u04bd\7U\2\2\u04bd\u04be") - buf.write(u"\7\5\2\2\u04be\u04bf\7l\2\2\u04bf\u04c0\7\6\2\2\u04c0") - buf.write(u"\u00fb\3\2\2\2\u04c1\u04c2\7V\2\2\u04c2\u04c3\7\5\2\2") - buf.write(u"\u04c3\u04c4\5\u011e\u0090\2\u04c4\u04c5\7\6\2\2\u04c5") - buf.write(u"\u00fd\3\2\2\2\u04c6\u04c7\7W\2\2\u04c7\u04c8\7\5\2\2") - buf.write(u"\u04c8\u04c9\7l\2\2\u04c9\u04ca\7\6\2\2\u04ca\u00ff\3") - buf.write(u"\2\2\2\u04cb\u04cc\7X\2\2\u04cc\u04cd\7\5\2\2\u04cd\u04ce") - buf.write(u"\7l\2\2\u04ce\u04cf\7\6\2\2\u04cf\u0101\3\2\2\2\u04d0") - buf.write(u"\u04d1\7Y\2\2\u04d1\u04d2\7\5\2\2\u04d2\u04d6\7\3\2\2") - buf.write(u"\u04d3\u04d5\5\u010c\u0087\2\u04d4\u04d3\3\2\2\2\u04d5") - buf.write(u"\u04d8\3\2\2\2\u04d6\u04d4\3\2\2\2\u04d6\u04d7\3\2\2") - buf.write(u"\2\u04d7\u04d9\3\2\2\2\u04d8\u04d6\3\2\2\2\u04d9\u04da") - buf.write(u"\7\4\2\2\u04da\u04db\7\6\2\2\u04db\u0103\3\2\2\2\u04dc") - buf.write(u"\u04dd\7Z\2\2\u04dd\u04de\7\5\2\2\u04de\u04df\7m\2\2") - buf.write(u"\u04df\u04e0\7\6\2\2\u04e0\u0105\3\2\2\2\u04e1\u04e2") - buf.write(u"\7[\2\2\u04e2\u04e3\7\5\2\2\u04e3\u04e4\7n\2\2\u04e4") - buf.write(u"\u04e5\7\6\2\2\u04e5\u0107\3\2\2\2\u04e6\u04e8\5\u010a") - buf.write(u"\u0086\2\u04e7\u04e6\3\2\2\2\u04e8\u04eb\3\2\2\2\u04e9") - buf.write(u"\u04e7\3\2\2\2\u04e9\u04ea\3\2\2\2\u04ea\u0109\3\2\2") - buf.write(u"\2\u04eb\u04e9\3\2\2\2\u04ec\u04ed\7\3\2\2\u04ed\u04ee") - buf.write(u"\7\\\2\2\u04ee\u04ef\7\5\2\2\u04ef\u04f0\7l\2\2\u04f0") - buf.write(u"\u04f1\7\6\2\2\u04f1\u04f2\7]\2\2\u04f2\u04f3\7\5\2\2") - buf.write(u"\u04f3\u04f4\7l\2\2\u04f4\u04f5\7\6\2\2\u04f5\u04f6\7") - buf.write(u"\4\2\2\u04f6\u04f7\7/\2\2\u04f7\u010b\3\2\2\2\u04f8\u04f9") - buf.write(u"\5\u011e\u0090\2\u04f9\u04fa\7\5\2\2\u04fa\u04fb\5\u011e") - buf.write(u"\u0090\2\u04fb\u04fc\7\6\2\2\u04fc\u0513\3\2\2\2\u04fd") - buf.write(u"\u04fe\5\u011e\u0090\2\u04fe\u04ff\7\5\2\2\u04ff\u0500") - buf.write(u"\7\3\2\2\u0500\u0501\5\u010c\u0087\2\u0501\u0502\7\4") - buf.write(u"\2\2\u0502\u0503\7\6\2\2\u0503\u0513\3\2\2\2\u0504\u0505") - buf.write(u"\5\u011e\u0090\2\u0505\u0506\7\5\2\2\u0506\u050c\7.\2") - buf.write(u"\2\u0507\u0508\5\u011e\u0090\2\u0508\u0509\7/\2\2\u0509") - buf.write(u"\u050b\3\2\2\2\u050a\u0507\3\2\2\2\u050b\u050e\3\2\2") - buf.write(u"\2\u050c\u050a\3\2\2\2\u050c\u050d\3\2\2\2\u050d\u050f") - buf.write(u"\3\2\2\2\u050e\u050c\3\2\2\2\u050f\u0510\7\60\2\2\u0510") - buf.write(u"\u0511\7\6\2\2\u0511\u0513\3\2\2\2\u0512\u04f8\3\2\2") - buf.write(u"\2\u0512\u04fd\3\2\2\2\u0512\u0504\3\2\2\2\u0513\u010d") - buf.write(u"\3\2\2\2\u0514\u0515\7^\2\2\u0515\u0516\7\5\2\2\u0516") - buf.write(u"\u0517\5\u00aaV\2\u0517\u0518\7\6\2\2\u0518\u010f\3\2") - buf.write(u"\2\2\u0519\u051a\7_\2\2\u051a\u051b\7\5\2\2\u051b\u051c") - buf.write(u"\7n\2\2\u051c\u051d\7\6\2\2\u051d\u0111\3\2\2\2\u051e") - buf.write(u"\u051f\7`\2\2\u051f\u0520\7\5\2\2\u0520\u0521\7n\2\2") - buf.write(u"\u0521\u0522\7\6\2\2\u0522\u0113\3\2\2\2\u0523\u0524") - buf.write(u"\7a\2\2\u0524\u0525\7\5\2\2\u0525\u0529\7\3\2\2\u0526") - buf.write(u"\u0528\5\u010c\u0087\2\u0527\u0526\3\2\2\2\u0528\u052b") - buf.write(u"\3\2\2\2\u0529\u0527\3\2\2\2\u0529\u052a\3\2\2\2\u052a") - buf.write(u"\u052c\3\2\2\2\u052b\u0529\3\2\2\2\u052c\u052d\7\4\2") - buf.write(u"\2\u052d\u052e\7\6\2\2\u052e\u0115\3\2\2\2\u052f\u0530") - buf.write(u"\7b\2\2\u0530\u0531\7\5\2\2\u0531\u0535\7\3\2\2\u0532") - buf.write(u"\u0534\5\u010c\u0087\2\u0533\u0532\3\2\2\2\u0534\u0537") - buf.write(u"\3\2\2\2\u0535\u0533\3\2\2\2\u0535\u0536\3\2\2\2\u0536") - buf.write(u"\u0538\3\2\2\2\u0537\u0535\3\2\2\2\u0538\u0539\7\4\2") - buf.write(u"\2\u0539\u053a\7\6\2\2\u053a\u0117\3\2\2\2\u053b\u053c") - buf.write(u"\7c\2\2\u053c\u053d\7\5\2\2\u053d\u053e\7l\2\2\u053e") - buf.write(u"\u053f\7\6\2\2\u053f\u0119\3\2\2\2\u0540\u0541\7d\2\2") - buf.write(u"\u0541\u0542\7\5\2\2\u0542\u0543\7n\2\2\u0543\u0544\7") - buf.write(u"\6\2\2\u0544\u011b\3\2\2\2\u0545\u0546\7e\2\2\u0546\u0547") - buf.write(u"\7\5\2\2\u0547\u0548\5\u011e\u0090\2\u0548\u0549\7\6") - buf.write(u"\2\2\u0549\u011d\3\2\2\2\u054a\u054b\t\3\2\2\u054b\u011f") - buf.write(u"\3\2\2\2R\u013e\u0142\u0145\u014b\u014e\u0152\u0155\u0158") - buf.write(u"\u015c\u015f\u0164\u0171\u0176\u017b\u0180\u0185\u018a") - buf.write(u"\u018f\u0194\u0199\u019e\u01a3\u01a8\u01ad\u01b2\u01b7") - buf.write(u"\u01bc\u01c1\u01c6\u01cb\u01df\u01f8\u0203\u0206\u0209") - buf.write(u"\u020c\u020f\u0212\u0215\u0218\u021b\u0230\u0233\u0236") - buf.write(u"\u023a\u023d\u0256\u026a\u026e\u0292\u0299\u02ad\u02b0") - buf.write(u"\u02bd\u02c8\u02d6\u03af\u03ba\u03c4\u03fa\u03fd\u0400") - buf.write(u"\u0404\u0407\u040a\u042e\u0438\u043b\u043e\u0441\u0444") - buf.write(u"\u0447\u044a\u0492\u04d6\u04e9\u050c\u0512\u0529\u0535") + buf.write(u"\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a") + buf.write(u"\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a") + buf.write(u"\7\u008a\u0529\n\u008a\f\u008a\16\u008a\u052c\13\u008a") + buf.write(u"\3\u008a\3\u008a\3\u008a\5\u008a\u0531\n\u008a\3\u008b") + buf.write(u"\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c") + buf.write(u"\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d") + buf.write(u"\3\u008e\3\u008e\3\u008e\3\u008e\7\u008e\u0546\n\u008e") + buf.write(u"\f\u008e\16\u008e\u0549\13\u008e\3\u008e\3\u008e\3\u008e") + buf.write(u"\3\u008f\3\u008f\3\u008f\3\u008f\7\u008f\u0552\n\u008f") + buf.write(u"\f\u008f\16\u008f\u0555\13\u008f\3\u008f\3\u008f\3\u008f") + buf.write(u"\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091") + buf.write(u"\3\u0091\3\u0091\3\u0091\3\u0092\3\u0092\3\u0092\3\u0092") + buf.write(u"\3\u0092\3\u0093\3\u0093\3\u0093\2\2\u0094\2\4\6\b\n") + buf.write(u"\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:") + buf.write(u"<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084") + buf.write(u"\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096") + buf.write(u"\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8") + buf.write(u"\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba") + buf.write(u"\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc") + buf.write(u"\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de") + buf.write(u"\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0") + buf.write(u"\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102") + buf.write(u"\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114") + buf.write(u"\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\2\4") + buf.write(u"\3\2pq\3\2pr\u052c\2\u0126\3\2\2\2\4\u0128\3\2\2\2\6") + buf.write(u"\u0130\3\2\2\2\b\u0135\3\2\2\2\n\u013b\3\2\2\2\f\u0140") + buf.write(u"\3\2\2\2\16\u016f\3\2\2\2\20\u0175\3\2\2\2\22\u017a\3") + buf.write(u"\2\2\2\24\u017f\3\2\2\2\26\u0184\3\2\2\2\30\u0189\3\2") + buf.write(u"\2\2\32\u018e\3\2\2\2\34\u0193\3\2\2\2\36\u0198\3\2\2") + buf.write(u"\2 \u019d\3\2\2\2\"\u01a2\3\2\2\2$\u01a7\3\2\2\2&\u01ac") + buf.write(u"\3\2\2\2(\u01b1\3\2\2\2*\u01b6\3\2\2\2,\u01bb\3\2\2\2") + buf.write(u".\u01c0\3\2\2\2\60\u01c5\3\2\2\2\62\u01ca\3\2\2\2\64") + buf.write(u"\u01cf\3\2\2\2\66\u01d3\3\2\2\28\u01df\3\2\2\2:\u01ea") + buf.write(u"\3\2\2\2<\u01f5\3\2\2\2>\u0204\3\2\2\2@\u0226\3\2\2\2") + buf.write(u"B\u0230\3\2\2\2D\u0248\3\2\2\2F\u0252\3\2\2\2H\u0264") + buf.write(u"\3\2\2\2J\u027b\3\2\2\2L\u0286\3\2\2\2N\u0290\3\2\2\2") + buf.write(u"P\u02aa\3\2\2\2R\u02b4\3\2\2\2T\u02c2\3\2\2\2V\u02cf") + buf.write(u"\3\2\2\2X\u02db\3\2\2\2Z\u02e7\3\2\2\2\\\u02f3\3\2\2") + buf.write(u"\2^\u02f8\3\2\2\2`\u02fd\3\2\2\2b\u0302\3\2\2\2d\u0307") + buf.write(u"\3\2\2\2f\u030c\3\2\2\2h\u0311\3\2\2\2j\u0316\3\2\2\2") + buf.write(u"l\u031b\3\2\2\2n\u0320\3\2\2\2p\u0325\3\2\2\2r\u032a") + buf.write(u"\3\2\2\2t\u032f\3\2\2\2v\u0334\3\2\2\2x\u0339\3\2\2\2") + buf.write(u"z\u033e\3\2\2\2|\u0343\3\2\2\2~\u0348\3\2\2\2\u0080\u034d") + buf.write(u"\3\2\2\2\u0082\u0352\3\2\2\2\u0084\u0357\3\2\2\2\u0086") + buf.write(u"\u035c\3\2\2\2\u0088\u0361\3\2\2\2\u008a\u0366\3\2\2") + buf.write(u"\2\u008c\u036b\3\2\2\2\u008e\u0370\3\2\2\2\u0090\u0375") + buf.write(u"\3\2\2\2\u0092\u037a\3\2\2\2\u0094\u037f\3\2\2\2\u0096") + buf.write(u"\u0384\3\2\2\2\u0098\u0389\3\2\2\2\u009a\u038e\3\2\2") + buf.write(u"\2\u009c\u0393\3\2\2\2\u009e\u0398\3\2\2\2\u00a0\u039d") + buf.write(u"\3\2\2\2\u00a2\u03a2\3\2\2\2\u00a4\u03a7\3\2\2\2\u00a6") + buf.write(u"\u03ac\3\2\2\2\u00a8\u03b1\3\2\2\2\u00aa\u03b6\3\2\2") + buf.write(u"\2\u00ac\u03c0\3\2\2\2\u00ae\u03cb\3\2\2\2\u00b0\u03d5") + buf.write(u"\3\2\2\2\u00b2\u03da\3\2\2\2\u00b4\u03df\3\2\2\2\u00b6") + buf.write(u"\u03e4\3\2\2\2\u00b8\u03e9\3\2\2\2\u00ba\u03ee\3\2\2") + buf.write(u"\2\u00bc\u03f3\3\2\2\2\u00be\u03f8\3\2\2\2\u00c0\u03fd") + buf.write(u"\3\2\2\2\u00c2\u0402\3\2\2\2\u00c4\u041e\3\2\2\2\u00c6") + buf.write(u"\u0423\3\2\2\2\u00c8\u0428\3\2\2\2\u00ca\u042d\3\2\2") + buf.write(u"\2\u00cc\u0432\3\2\2\2\u00ce\u0437\3\2\2\2\u00d0\u043c") + buf.write(u"\3\2\2\2\u00d2\u0448\3\2\2\2\u00d4\u0463\3\2\2\2\u00d6") + buf.write(u"\u0468\3\2\2\2\u00d8\u046d\3\2\2\2\u00da\u0472\3\2\2") + buf.write(u"\2\u00dc\u0477\3\2\2\2\u00de\u047c\3\2\2\2\u00e0\u0481") + buf.write(u"\3\2\2\2\u00e2\u0486\3\2\2\2\u00e4\u048b\3\2\2\2\u00e6") + buf.write(u"\u0490\3\2\2\2\u00e8\u0495\3\2\2\2\u00ea\u04a6\3\2\2") + buf.write(u"\2\u00ec\u04a8\3\2\2\2\u00ee\u04ad\3\2\2\2\u00f0\u04b2") + buf.write(u"\3\2\2\2\u00f2\u04b7\3\2\2\2\u00f4\u04bc\3\2\2\2\u00f6") + buf.write(u"\u04c1\3\2\2\2\u00f8\u04c6\3\2\2\2\u00fa\u04cb\3\2\2") + buf.write(u"\2\u00fc\u04d0\3\2\2\2\u00fe\u04d5\3\2\2\2\u0100\u04da") + buf.write(u"\3\2\2\2\u0102\u04df\3\2\2\2\u0104\u04e4\3\2\2\2\u0106") + buf.write(u"\u04e9\3\2\2\2\u0108\u04ee\3\2\2\2\u010a\u04fa\3\2\2") + buf.write(u"\2\u010c\u04ff\3\2\2\2\u010e\u0507\3\2\2\2\u0110\u050a") + buf.write(u"\3\2\2\2\u0112\u0530\3\2\2\2\u0114\u0532\3\2\2\2\u0116") + buf.write(u"\u0537\3\2\2\2\u0118\u053c\3\2\2\2\u011a\u0541\3\2\2") + buf.write(u"\2\u011c\u054d\3\2\2\2\u011e\u0559\3\2\2\2\u0120\u055e") + buf.write(u"\3\2\2\2\u0122\u0563\3\2\2\2\u0124\u0568\3\2\2\2\u0126") + buf.write(u"\u0127\5\4\3\2\u0127\3\3\2\2\2\u0128\u0129\7\3\2\2\u0129") + buf.write(u"\u012a\5\6\4\2\u012a\u012b\5\b\5\2\u012b\u012c\5\n\6") + buf.write(u"\2\u012c\u012d\5\f\7\2\u012d\u012e\5\16\b\2\u012e\u012f") + buf.write(u"\7\4\2\2\u012f\5\3\2\2\2\u0130\u0131\7i\2\2\u0131\u0132") + buf.write(u"\7\5\2\2\u0132\u0133\7q\2\2\u0133\u0134\7\6\2\2\u0134") + buf.write(u"\7\3\2\2\2\u0135\u0136\7j\2\2\u0136\u0137\7\5\2\2\u0137") + buf.write(u"\u0138\7\3\2\2\u0138\u0139\7\4\2\2\u0139\u013a\7\6\2") + buf.write(u"\2\u013a\t\3\2\2\2\u013b\u013c\7l\2\2\u013c\u013d\7\5") + buf.write(u"\2\2\u013d\u013e\7q\2\2\u013e\u013f\7\6\2\2\u013f\13") + buf.write(u"\3\2\2\2\u0140\u0141\7m\2\2\u0141\u0142\7\5\2\2\u0142") + buf.write(u"\u0144\7\3\2\2\u0143\u0145\5\20\t\2\u0144\u0143\3\2\2") + buf.write(u"\2\u0144\u0145\3\2\2\2\u0145\u0146\3\2\2\2\u0146\u0148") + buf.write(u"\5\22\n\2\u0147\u0149\5\24\13\2\u0148\u0147\3\2\2\2\u0148") + buf.write(u"\u0149\3\2\2\2\u0149\u014b\3\2\2\2\u014a\u014c\5\26\f") + buf.write(u"\2\u014b\u014a\3\2\2\2\u014b\u014c\3\2\2\2\u014c\u014d") + buf.write(u"\3\2\2\2\u014d\u014e\5\30\r\2\u014e\u014f\5\32\16\2\u014f") + buf.write(u"\u0151\5\34\17\2\u0150\u0152\5\36\20\2\u0151\u0150\3") + buf.write(u"\2\2\2\u0151\u0152\3\2\2\2\u0152\u0154\3\2\2\2\u0153") + buf.write(u"\u0155\5 \21\2\u0154\u0153\3\2\2\2\u0154\u0155\3\2\2") + buf.write(u"\2\u0155\u0156\3\2\2\2\u0156\u0158\5\"\22\2\u0157\u0159") + buf.write(u"\5$\23\2\u0158\u0157\3\2\2\2\u0158\u0159\3\2\2\2\u0159") + buf.write(u"\u015b\3\2\2\2\u015a\u015c\5&\24\2\u015b\u015a\3\2\2") + buf.write(u"\2\u015b\u015c\3\2\2\2\u015c\u015e\3\2\2\2\u015d\u015f") + buf.write(u"\5(\25\2\u015e\u015d\3\2\2\2\u015e\u015f\3\2\2\2\u015f") + buf.write(u"\u0160\3\2\2\2\u0160\u0162\5*\26\2\u0161\u0163\5,\27") + buf.write(u"\2\u0162\u0161\3\2\2\2\u0162\u0163\3\2\2\2\u0163\u0165") + buf.write(u"\3\2\2\2\u0164\u0166\5.\30\2\u0165\u0164\3\2\2\2\u0165") + buf.write(u"\u0166\3\2\2\2\u0166\u0167\3\2\2\2\u0167\u0168\5\60\31") + buf.write(u"\2\u0168\u016a\5\62\32\2\u0169\u016b\5\64\33\2\u016a") + buf.write(u"\u0169\3\2\2\2\u016a\u016b\3\2\2\2\u016b\u016c\3\2\2") + buf.write(u"\2\u016c\u016d\7\4\2\2\u016d\u016e\7\6\2\2\u016e\r\3") + buf.write(u"\2\2\2\u016f\u0170\7n\2\2\u0170\u0171\7\5\2\2\u0171\u0172") + buf.write(u"\7o\2\2\u0172\u0173\7\6\2\2\u0173\17\3\2\2\2\u0174\u0176") + buf.write(u"\5\66\34\2\u0175\u0174\3\2\2\2\u0176\u0177\3\2\2\2\u0177") + buf.write(u"\u0175\3\2\2\2\u0177\u0178\3\2\2\2\u0178\21\3\2\2\2\u0179") + buf.write(u"\u017b\58\35\2\u017a\u0179\3\2\2\2\u017b\u017c\3\2\2") + buf.write(u"\2\u017c\u017a\3\2\2\2\u017c\u017d\3\2\2\2\u017d\23\3") + buf.write(u"\2\2\2\u017e\u0180\5:\36\2\u017f\u017e\3\2\2\2\u0180") + buf.write(u"\u0181\3\2\2\2\u0181\u017f\3\2\2\2\u0181\u0182\3\2\2") + buf.write(u"\2\u0182\25\3\2\2\2\u0183\u0185\5<\37\2\u0184\u0183\3") + buf.write(u"\2\2\2\u0185\u0186\3\2\2\2\u0186\u0184\3\2\2\2\u0186") + buf.write(u"\u0187\3\2\2\2\u0187\27\3\2\2\2\u0188\u018a\5> \2\u0189") + buf.write(u"\u0188\3\2\2\2\u018a\u018b\3\2\2\2\u018b\u0189\3\2\2") + buf.write(u"\2\u018b\u018c\3\2\2\2\u018c\31\3\2\2\2\u018d\u018f\5") + buf.write(u"@!\2\u018e\u018d\3\2\2\2\u018f\u0190\3\2\2\2\u0190\u018e") + buf.write(u"\3\2\2\2\u0190\u0191\3\2\2\2\u0191\33\3\2\2\2\u0192\u0194") + buf.write(u"\5B\"\2\u0193\u0192\3\2\2\2\u0194\u0195\3\2\2\2\u0195") + buf.write(u"\u0193\3\2\2\2\u0195\u0196\3\2\2\2\u0196\35\3\2\2\2\u0197") + buf.write(u"\u0199\5D#\2\u0198\u0197\3\2\2\2\u0199\u019a\3\2\2\2") + buf.write(u"\u019a\u0198\3\2\2\2\u019a\u019b\3\2\2\2\u019b\37\3\2") + buf.write(u"\2\2\u019c\u019e\5F$\2\u019d\u019c\3\2\2\2\u019e\u019f") + buf.write(u"\3\2\2\2\u019f\u019d\3\2\2\2\u019f\u01a0\3\2\2\2\u01a0") + buf.write(u"!\3\2\2\2\u01a1\u01a3\5H%\2\u01a2\u01a1\3\2\2\2\u01a3") + buf.write(u"\u01a4\3\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2\2") + buf.write(u"\2\u01a5#\3\2\2\2\u01a6\u01a8\5J&\2\u01a7\u01a6\3\2\2") + buf.write(u"\2\u01a8\u01a9\3\2\2\2\u01a9\u01a7\3\2\2\2\u01a9\u01aa") + buf.write(u"\3\2\2\2\u01aa%\3\2\2\2\u01ab\u01ad\5L\'\2\u01ac\u01ab") + buf.write(u"\3\2\2\2\u01ad\u01ae\3\2\2\2\u01ae\u01ac\3\2\2\2\u01ae") + buf.write(u"\u01af\3\2\2\2\u01af\'\3\2\2\2\u01b0\u01b2\5N(\2\u01b1") + buf.write(u"\u01b0\3\2\2\2\u01b2\u01b3\3\2\2\2\u01b3\u01b1\3\2\2") + buf.write(u"\2\u01b3\u01b4\3\2\2\2\u01b4)\3\2\2\2\u01b5\u01b7\5P") + buf.write(u")\2\u01b6\u01b5\3\2\2\2\u01b7\u01b8\3\2\2\2\u01b8\u01b6") + buf.write(u"\3\2\2\2\u01b8\u01b9\3\2\2\2\u01b9+\3\2\2\2\u01ba\u01bc") + buf.write(u"\5R*\2\u01bb\u01ba\3\2\2\2\u01bc\u01bd\3\2\2\2\u01bd") + buf.write(u"\u01bb\3\2\2\2\u01bd\u01be\3\2\2\2\u01be-\3\2\2\2\u01bf") + buf.write(u"\u01c1\5T+\2\u01c0\u01bf\3\2\2\2\u01c1\u01c2\3\2\2\2") + buf.write(u"\u01c2\u01c0\3\2\2\2\u01c2\u01c3\3\2\2\2\u01c3/\3\2\2") + buf.write(u"\2\u01c4\u01c6\5V,\2\u01c5\u01c4\3\2\2\2\u01c6\u01c7") + buf.write(u"\3\2\2\2\u01c7\u01c5\3\2\2\2\u01c7\u01c8\3\2\2\2\u01c8") + buf.write(u"\61\3\2\2\2\u01c9\u01cb\5X-\2\u01ca\u01c9\3\2\2\2\u01cb") + buf.write(u"\u01cc\3\2\2\2\u01cc\u01ca\3\2\2\2\u01cc\u01cd\3\2\2") + buf.write(u"\2\u01cd\63\3\2\2\2\u01ce\u01d0\5Z.\2\u01cf\u01ce\3\2") + buf.write(u"\2\2\u01d0\u01d1\3\2\2\2\u01d1\u01cf\3\2\2\2\u01d1\u01d2") + buf.write(u"\3\2\2\2\u01d2\65\3\2\2\2\u01d3\u01d4\7o\2\2\u01d4\u01d5") + buf.write(u"\7\5\2\2\u01d5\u01d6\7\3\2\2\u01d6\u01d7\5\\/\2\u01d7") + buf.write(u"\u01d8\5\u00b0Y\2\u01d8\u01d9\5\u00b2Z\2\u01d9\u01da") + buf.write(u"\5\u00b6\\\2\u01da\u01db\5\u009eP\2\u01db\u01dc\5\u00b8") + buf.write(u"]\2\u01dc\u01dd\7\4\2\2\u01dd\u01de\7\6\2\2\u01de\67") + buf.write(u"\3\2\2\2\u01df\u01e0\7o\2\2\u01e0\u01e1\7\5\2\2\u01e1") + buf.write(u"\u01e2\7\3\2\2\u01e2\u01e3\5^\60\2\u01e3\u01e5\5\u0082") + buf.write(u"B\2\u01e4\u01e6\5\u011a\u008e\2\u01e5\u01e4\3\2\2\2\u01e5") + buf.write(u"\u01e6\3\2\2\2\u01e6\u01e7\3\2\2\2\u01e7\u01e8\7\4\2") + buf.write(u"\2\u01e8\u01e9\7\6\2\2\u01e99\3\2\2\2\u01ea\u01eb\7o") + buf.write(u"\2\2\u01eb\u01ec\7\5\2\2\u01ec\u01ed\7\3\2\2\u01ed\u01ee") + buf.write(u"\5`\61\2\u01ee\u01ef\5\u0084C\2\u01ef\u01f0\5\u0086D") + buf.write(u"\2\u01f0\u01f1\5\u0088E\2\u01f1\u01f2\5\u008aF\2\u01f2") + buf.write(u"\u01f3\7\4\2\2\u01f3\u01f4\7\6\2\2\u01f4;\3\2\2\2\u01f5") + buf.write(u"\u01f6\7o\2\2\u01f6\u01f7\7\5\2\2\u01f7\u01f8\7\3\2\2") + buf.write(u"\u01f8\u01f9\5b\62\2\u01f9\u01fa\5\u00a4S\2\u01fa\u01fb") + buf.write(u"\5\u010a\u0086\2\u01fb\u01fc\5\u010c\u0087\2\u01fc\u01fe") + buf.write(u"\5\u00a6T\2\u01fd\u01ff\5\u009eP\2\u01fe\u01fd\3\2\2") + buf.write(u"\2\u01fe\u01ff\3\2\2\2\u01ff\u0200\3\2\2\2\u0200\u0201") + buf.write(u"\5\u00a8U\2\u0201\u0202\7\4\2\2\u0202\u0203\7\6\2\2\u0203") + buf.write(u"=\3\2\2\2\u0204\u0205\7o\2\2\u0205\u0206\7\5\2\2\u0206") + buf.write(u"\u0207\7\3\2\2\u0207\u0209\5d\63\2\u0208\u020a\5\u008e") + buf.write(u"H\2\u0209\u0208\3\2\2\2\u0209\u020a\3\2\2\2\u020a\u020c") + buf.write(u"\3\2\2\2\u020b\u020d\5\u008cG\2\u020c\u020b\3\2\2\2\u020c") + buf.write(u"\u020d\3\2\2\2\u020d\u020f\3\2\2\2\u020e\u0210\5\u0092") + buf.write(u"J\2\u020f\u020e\3\2\2\2\u020f\u0210\3\2\2\2\u0210\u0212") + buf.write(u"\3\2\2\2\u0211\u0213\5\u0090I\2\u0212\u0211\3\2\2\2\u0212") + buf.write(u"\u0213\3\2\2\2\u0213\u0215\3\2\2\2\u0214\u0216\5\u00be") + buf.write(u"`\2\u0215\u0214\3\2\2\2\u0215\u0216\3\2\2\2\u0216\u0218") + buf.write(u"\3\2\2\2\u0217\u0219\5\u009eP\2\u0218\u0217\3\2\2\2\u0218") + buf.write(u"\u0219\3\2\2\2\u0219\u021b\3\2\2\2\u021a\u021c\5\u00a0") + buf.write(u"Q\2\u021b\u021a\3\2\2\2\u021b\u021c\3\2\2\2\u021c\u021e") + buf.write(u"\3\2\2\2\u021d\u021f\5\u00a2R\2\u021e\u021d\3\2\2\2\u021e") + buf.write(u"\u021f\3\2\2\2\u021f\u0221\3\2\2\2\u0220\u0222\5\u00c0") + buf.write(u"a\2\u0221\u0220\3\2\2\2\u0221\u0222\3\2\2\2\u0222\u0223") + buf.write(u"\3\2\2\2\u0223\u0224\7\4\2\2\u0224\u0225\7\6\2\2\u0225") + buf.write(u"?\3\2\2\2\u0226\u0227\7o\2\2\u0227\u0228\7\5\2\2\u0228") + buf.write(u"\u0229\7\3\2\2\u0229\u022a\5f\64\2\u022a\u022b\5\u00a4") + buf.write(u"S\2\u022b\u022c\5\u00a6T\2\u022c\u022d\5\u00a8U\2\u022d") + buf.write(u"\u022e\7\4\2\2\u022e\u022f\7\6\2\2\u022fA\3\2\2\2\u0230") + buf.write(u"\u0231\7o\2\2\u0231\u0232\7\5\2\2\u0232\u0233\7\3\2\2") + buf.write(u"\u0233\u0234\5h\65\2\u0234\u0236\5\u009aN\2\u0235\u0237") + buf.write(u"\5\u0094K\2\u0236\u0235\3\2\2\2\u0236\u0237\3\2\2\2\u0237") + buf.write(u"\u0239\3\2\2\2\u0238\u023a\5\u009eP\2\u0239\u0238\3\2") + buf.write(u"\2\2\u0239\u023a\3\2\2\2\u023a\u023c\3\2\2\2\u023b\u023d") + buf.write(u"\5\u00a0Q\2\u023c\u023b\3\2\2\2\u023c\u023d\3\2\2\2\u023d") + buf.write(u"\u023e\3\2\2\2\u023e\u0240\5\u00a2R\2\u023f\u0241\5\u0096") + buf.write(u"L\2\u0240\u023f\3\2\2\2\u0240\u0241\3\2\2\2\u0241\u0243") + buf.write(u"\3\2\2\2\u0242\u0244\5\u0098M\2\u0243\u0242\3\2\2\2\u0243") + buf.write(u"\u0244\3\2\2\2\u0244\u0245\3\2\2\2\u0245\u0246\7\4\2") + buf.write(u"\2\u0246\u0247\7\6\2\2\u0247C\3\2\2\2\u0248\u0249\7o") + buf.write(u"\2\2\u0249\u024a\7\5\2\2\u024a\u024b\7\3\2\2\u024b\u024c") + buf.write(u"\5j\66\2\u024c\u024d\5\u00a4S\2\u024d\u024e\5\u00a6T") + buf.write(u"\2\u024e\u024f\5\u00a8U\2\u024f\u0250\7\4\2\2\u0250\u0251") + buf.write(u"\7\6\2\2\u0251E\3\2\2\2\u0252\u0253\7o\2\2\u0253\u0254") + buf.write(u"\7\5\2\2\u0254\u0255\7\3\2\2\u0255\u0256\5l\67\2\u0256") + buf.write(u"\u0257\5\u00b0Y\2\u0257\u0258\5\u00b2Z\2\u0258\u0259") + buf.write(u"\5\u00b4[\2\u0259\u025a\5\u00b6\\\2\u025a\u025c\5\u009e") + buf.write(u"P\2\u025b\u025d\5\u009cO\2\u025c\u025b\3\2\2\2\u025c") + buf.write(u"\u025d\3\2\2\2\u025d\u025e\3\2\2\2\u025e\u025f\5\u00b8") + buf.write(u"]\2\u025f\u0260\5\u00ba^\2\u0260\u0261\5\u00bc_\2\u0261") + buf.write(u"\u0262\7\4\2\2\u0262\u0263\7\6\2\2\u0263G\3\2\2\2\u0264") + buf.write(u"\u0265\7o\2\2\u0265\u0266\7\5\2\2\u0266\u0267\7\3\2\2") + buf.write(u"\u0267\u0268\5n8\2\u0268\u0269\5\u00c2b\2\u0269\u026a") + buf.write(u"\5\u00b0Y\2\u026a\u026b\5\u00dco\2\u026b\u026c\5\u00de") + buf.write(u"p\2\u026c\u026d\5\u00e0q\2\u026d\u026e\5\u00e2r\2\u026e") + buf.write(u"\u0270\5\u00e4s\2\u026f\u0271\5\u00e6t\2\u0270\u026f") + buf.write(u"\3\2\2\2\u0270\u0271\3\2\2\2\u0271\u0272\3\2\2\2\u0272") + buf.write(u"\u0274\5\u00e8u\2\u0273\u0275\5\u00eav\2\u0274\u0273") + buf.write(u"\3\2\2\2\u0274\u0275\3\2\2\2\u0275\u0276\3\2\2\2\u0276") + buf.write(u"\u0277\5\u00ecw\2\u0277\u0278\5\u00eex\2\u0278\u0279") + buf.write(u"\7\4\2\2\u0279\u027a\7\6\2\2\u027aI\3\2\2\2\u027b\u027c") + buf.write(u"\7o\2\2\u027c\u027d\7\5\2\2\u027d\u027e\7\3\2\2\u027e") + buf.write(u"\u027f\5p9\2\u027f\u0280\5\u0102\u0082\2\u0280\u0281") + buf.write(u"\5\u00a0Q\2\u0281\u0282\5\u0104\u0083\2\u0282\u0283\5") + buf.write(u"\u00a2R\2\u0283\u0284\7\4\2\2\u0284\u0285\7\6\2\2\u0285") + buf.write(u"K\3\2\2\2\u0286\u0287\7o\2\2\u0287\u0288\7\5\2\2\u0288") + buf.write(u"\u0289\7\3\2\2\u0289\u028a\5r:\2\u028a\u028b\5\u00a4") + buf.write(u"S\2\u028b\u028c\5\u00a6T\2\u028c\u028d\5\u00a8U\2\u028d") + buf.write(u"\u028e\7\4\2\2\u028e\u028f\7\6\2\2\u028fM\3\2\2\2\u0290") + buf.write(u"\u0291\7o\2\2\u0291\u0292\7\5\2\2\u0292\u0293\7\3\2\2") + buf.write(u"\u0293\u0294\5t;\2\u0294\u0295\5\u00a4S\2\u0295\u0297") + buf.write(u"\5\u00a6T\2\u0296\u0298\5\u00f0y\2\u0297\u0296\3\2\2") + buf.write(u"\2\u0297\u0298\3\2\2\2\u0298\u0299\3\2\2\2\u0299\u029b") + buf.write(u"\5\u00f2z\2\u029a\u029c\5\u009eP\2\u029b\u029a\3\2\2") + buf.write(u"\2\u029b\u029c\3\2\2\2\u029c\u029e\3\2\2\2\u029d\u029f") + buf.write(u"\5\u00f4{\2\u029e\u029d\3\2\2\2\u029e\u029f\3\2\2\2\u029f") + buf.write(u"\u02a0\3\2\2\2\u02a0\u02a1\5\u00f6|\2\u02a1\u02a2\5\u00a8") + buf.write(u"U\2\u02a2\u02a3\5\u00f8}\2\u02a3\u02a5\5\u00fa~\2\u02a4") + buf.write(u"\u02a6\5\u00fc\177\2\u02a5\u02a4\3\2\2\2\u02a5\u02a6") + buf.write(u"\3\2\2\2\u02a6\u02a7\3\2\2\2\u02a7\u02a8\7\4\2\2\u02a8") + buf.write(u"\u02a9\7\6\2\2\u02a9O\3\2\2\2\u02aa\u02ab\7o\2\2\u02ab") + buf.write(u"\u02ac\7\5\2\2\u02ac\u02ad\7\3\2\2\u02ad\u02ae\5v<\2") + buf.write(u"\u02ae\u02af\5\u00a4S\2\u02af\u02b0\5\u00a6T\2\u02b0") + buf.write(u"\u02b1\5\u00a8U\2\u02b1\u02b2\7\4\2\2\u02b2\u02b3\7\6") + buf.write(u"\2\2\u02b3Q\3\2\2\2\u02b4\u02b5\7o\2\2\u02b5\u02b6\7") + buf.write(u"\5\2\2\u02b6\u02b7\7\3\2\2\u02b7\u02b9\5x=\2\u02b8\u02ba") + buf.write(u"\5\u009eP\2\u02b9\u02b8\3\2\2\2\u02b9\u02ba\3\2\2\2\u02ba") + buf.write(u"\u02bc\3\2\2\2\u02bb\u02bd\5\u00fe\u0080\2\u02bc\u02bb") + buf.write(u"\3\2\2\2\u02bc\u02bd\3\2\2\2\u02bd\u02be\3\2\2\2\u02be") + buf.write(u"\u02bf\5\u0100\u0081\2\u02bf\u02c0\7\4\2\2\u02c0\u02c1") + buf.write(u"\7\6\2\2\u02c1S\3\2\2\2\u02c2\u02c3\7o\2\2\u02c3\u02c4") + buf.write(u"\7\5\2\2\u02c4\u02c5\7\3\2\2\u02c5\u02c6\5z>\2\u02c6") + buf.write(u"\u02c7\5\u009aN\2\u02c7\u02c9\5\u009eP\2\u02c8\u02ca") + buf.write(u"\5\u00a0Q\2\u02c9\u02c8\3\2\2\2\u02c9\u02ca\3\2\2\2\u02ca") + buf.write(u"\u02cb\3\2\2\2\u02cb\u02cc\5\u00a2R\2\u02cc\u02cd\7\4") + buf.write(u"\2\2\u02cd\u02ce\7\6\2\2\u02ceU\3\2\2\2\u02cf\u02d0\7") + buf.write(u"o\2\2\u02d0\u02d1\7\5\2\2\u02d1\u02d2\7\3\2\2\u02d2\u02d4") + buf.write(u"\5|?\2\u02d3\u02d5\5\u0106\u0084\2\u02d4\u02d3\3\2\2") + buf.write(u"\2\u02d4\u02d5\3\2\2\2\u02d5\u02d6\3\2\2\2\u02d6\u02d7") + buf.write(u"\5\u0108\u0085\2\u02d7\u02d8\5\u009eP\2\u02d8\u02d9\7") + buf.write(u"\4\2\2\u02d9\u02da\7\6\2\2\u02daW\3\2\2\2\u02db\u02dc") + buf.write(u"\7o\2\2\u02dc\u02dd\7\5\2\2\u02dd\u02de\7\3\2\2\u02de") + buf.write(u"\u02df\5~@\2\u02df\u02e0\5\u0114\u008b\2\u02e0\u02e2") + buf.write(u"\5\u0116\u008c\2\u02e1\u02e3\5\u0118\u008d\2\u02e2\u02e1") + buf.write(u"\3\2\2\2\u02e2\u02e3\3\2\2\2\u02e3\u02e4\3\2\2\2\u02e4") + buf.write(u"\u02e5\7\4\2\2\u02e5\u02e6\7\6\2\2\u02e6Y\3\2\2\2\u02e7") + buf.write(u"\u02e8\7o\2\2\u02e8\u02e9\7\5\2\2\u02e9\u02ea\7\3\2\2") + buf.write(u"\u02ea\u02eb\5\u0080A\2\u02eb\u02ec\5\u009aN\2\u02ec") + buf.write(u"\u02ed\5\u011e\u0090\2\u02ed\u02ee\5\u00a0Q\2\u02ee\u02ef") + buf.write(u"\5\u00a2R\2\u02ef\u02f0\5\u0120\u0091\2\u02f0\u02f1\7") + buf.write(u"\4\2\2\u02f1\u02f2\7\6\2\2\u02f2[\3\2\2\2\u02f3\u02f4") + buf.write(u"\7k\2\2\u02f4\u02f5\7\5\2\2\u02f5\u02f6\7\7\2\2\u02f6") + buf.write(u"\u02f7\7\6\2\2\u02f7]\3\2\2\2\u02f8\u02f9\7k\2\2\u02f9") + buf.write(u"\u02fa\7\5\2\2\u02fa\u02fb\7\b\2\2\u02fb\u02fc\7\6\2") + buf.write(u"\2\u02fc_\3\2\2\2\u02fd\u02fe\7k\2\2\u02fe\u02ff\7\5") + buf.write(u"\2\2\u02ff\u0300\7\t\2\2\u0300\u0301\7\6\2\2\u0301a\3") + buf.write(u"\2\2\2\u0302\u0303\7k\2\2\u0303\u0304\7\5\2\2\u0304\u0305") + buf.write(u"\7\n\2\2\u0305\u0306\7\6\2\2\u0306c\3\2\2\2\u0307\u0308") + buf.write(u"\7k\2\2\u0308\u0309\7\5\2\2\u0309\u030a\7\13\2\2\u030a") + buf.write(u"\u030b\7\6\2\2\u030be\3\2\2\2\u030c\u030d\7k\2\2\u030d") + buf.write(u"\u030e\7\5\2\2\u030e\u030f\7\f\2\2\u030f\u0310\7\6\2") + buf.write(u"\2\u0310g\3\2\2\2\u0311\u0312\7k\2\2\u0312\u0313\7\5") + buf.write(u"\2\2\u0313\u0314\7\r\2\2\u0314\u0315\7\6\2\2\u0315i\3") + buf.write(u"\2\2\2\u0316\u0317\7k\2\2\u0317\u0318\7\5\2\2\u0318\u0319") + buf.write(u"\7\16\2\2\u0319\u031a\7\6\2\2\u031ak\3\2\2\2\u031b\u031c") + buf.write(u"\7k\2\2\u031c\u031d\7\5\2\2\u031d\u031e\7\17\2\2\u031e") + buf.write(u"\u031f\7\6\2\2\u031fm\3\2\2\2\u0320\u0321\7k\2\2\u0321") + buf.write(u"\u0322\7\5\2\2\u0322\u0323\7\20\2\2\u0323\u0324\7\6\2") + buf.write(u"\2\u0324o\3\2\2\2\u0325\u0326\7k\2\2\u0326\u0327\7\5") + buf.write(u"\2\2\u0327\u0328\7\21\2\2\u0328\u0329\7\6\2\2\u0329q") + buf.write(u"\3\2\2\2\u032a\u032b\7k\2\2\u032b\u032c\7\5\2\2\u032c") + buf.write(u"\u032d\7\22\2\2\u032d\u032e\7\6\2\2\u032es\3\2\2\2\u032f") + buf.write(u"\u0330\7k\2\2\u0330\u0331\7\5\2\2\u0331\u0332\7\23\2") + buf.write(u"\2\u0332\u0333\7\6\2\2\u0333u\3\2\2\2\u0334\u0335\7k") + buf.write(u"\2\2\u0335\u0336\7\5\2\2\u0336\u0337\7\24\2\2\u0337\u0338") + buf.write(u"\7\6\2\2\u0338w\3\2\2\2\u0339\u033a\7k\2\2\u033a\u033b") + buf.write(u"\7\5\2\2\u033b\u033c\7\25\2\2\u033c\u033d\7\6\2\2\u033d") + buf.write(u"y\3\2\2\2\u033e\u033f\7k\2\2\u033f\u0340\7\5\2\2\u0340") + buf.write(u"\u0341\7\26\2\2\u0341\u0342\7\6\2\2\u0342{\3\2\2\2\u0343") + buf.write(u"\u0344\7k\2\2\u0344\u0345\7\5\2\2\u0345\u0346\7\27\2") + buf.write(u"\2\u0346\u0347\7\6\2\2\u0347}\3\2\2\2\u0348\u0349\7k") + buf.write(u"\2\2\u0349\u034a\7\5\2\2\u034a\u034b\7\30\2\2\u034b\u034c") + buf.write(u"\7\6\2\2\u034c\177\3\2\2\2\u034d\u034e\7k\2\2\u034e\u034f") + buf.write(u"\7\5\2\2\u034f\u0350\7\31\2\2\u0350\u0351\7\6\2\2\u0351") + buf.write(u"\u0081\3\2\2\2\u0352\u0353\7\32\2\2\u0353\u0354\7\5\2") + buf.write(u"\2\u0354\u0355\7o\2\2\u0355\u0356\7\6\2\2\u0356\u0083") + buf.write(u"\3\2\2\2\u0357\u0358\7\33\2\2\u0358\u0359\7\5\2\2\u0359") + buf.write(u"\u035a\7o\2\2\u035a\u035b\7\6\2\2\u035b\u0085\3\2\2\2") + buf.write(u"\u035c\u035d\7\34\2\2\u035d\u035e\7\5\2\2\u035e\u035f") + buf.write(u"\7q\2\2\u035f\u0360\7\6\2\2\u0360\u0087\3\2\2\2\u0361") + buf.write(u"\u0362\7\35\2\2\u0362\u0363\7\5\2\2\u0363\u0364\7o\2") + buf.write(u"\2\u0364\u0365\7\6\2\2\u0365\u0089\3\2\2\2\u0366\u0367") + buf.write(u"\7\36\2\2\u0367\u0368\7\5\2\2\u0368\u0369\5\u0124\u0093") + buf.write(u"\2\u0369\u036a\7\6\2\2\u036a\u008b\3\2\2\2\u036b\u036c") + buf.write(u"\7\37\2\2\u036c\u036d\7\5\2\2\u036d\u036e\7q\2\2\u036e") + buf.write(u"\u036f\7\6\2\2\u036f\u008d\3\2\2\2\u0370\u0371\7 \2\2") + buf.write(u"\u0371\u0372\7\5\2\2\u0372\u0373\5\u0124\u0093\2\u0373") + buf.write(u"\u0374\7\6\2\2\u0374\u008f\3\2\2\2\u0375\u0376\7!\2\2") + buf.write(u"\u0376\u0377\7\5\2\2\u0377\u0378\5\u0124\u0093\2\u0378") + buf.write(u"\u0379\7\6\2\2\u0379\u0091\3\2\2\2\u037a\u037b\7\"\2") + buf.write(u"\2\u037b\u037c\7\5\2\2\u037c\u037d\7q\2\2\u037d\u037e") + buf.write(u"\7\6\2\2\u037e\u0093\3\2\2\2\u037f\u0380\7#\2\2\u0380") + buf.write(u"\u0381\7\5\2\2\u0381\u0382\7q\2\2\u0382\u0383\7\6\2\2") + buf.write(u"\u0383\u0095\3\2\2\2\u0384\u0385\7$\2\2\u0385\u0386\7") + buf.write(u"\5\2\2\u0386\u0387\7q\2\2\u0387\u0388\7\6\2\2\u0388\u0097") + buf.write(u"\3\2\2\2\u0389\u038a\7%\2\2\u038a\u038b\7\5\2\2\u038b") + buf.write(u"\u038c\7q\2\2\u038c\u038d\7\6\2\2\u038d\u0099\3\2\2\2") + buf.write(u"\u038e\u038f\7&\2\2\u038f\u0390\7\5\2\2\u0390\u0391\5") + buf.write(u"\u00aaV\2\u0391\u0392\7\6\2\2\u0392\u009b\3\2\2\2\u0393") + buf.write(u"\u0394\7\'\2\2\u0394\u0395\7\5\2\2\u0395\u0396\7p\2\2") + buf.write(u"\u0396\u0397\7\6\2\2\u0397\u009d\3\2\2\2\u0398\u0399") + buf.write(u"\7(\2\2\u0399\u039a\7\5\2\2\u039a\u039b\t\2\2\2\u039b") + buf.write(u"\u039c\7\6\2\2\u039c\u009f\3\2\2\2\u039d\u039e\7)\2\2") + buf.write(u"\u039e\u039f\7\5\2\2\u039f\u03a0\t\2\2\2\u03a0\u03a1") + buf.write(u"\7\6\2\2\u03a1\u00a1\3\2\2\2\u03a2\u03a3\7*\2\2\u03a3") + buf.write(u"\u03a4\7\5\2\2\u03a4\u03a5\t\2\2\2\u03a5\u03a6\7\6\2") + buf.write(u"\2\u03a6\u00a3\3\2\2\2\u03a7\u03a8\7+\2\2\u03a8\u03a9") + buf.write(u"\7\5\2\2\u03a9\u03aa\7q\2\2\u03aa\u03ab\7\6\2\2\u03ab") + buf.write(u"\u00a5\3\2\2\2\u03ac\u03ad\7,\2\2\u03ad\u03ae\7\5\2\2") + buf.write(u"\u03ae\u03af\5\u00aaV\2\u03af\u03b0\7\6\2\2\u03b0\u00a7") + buf.write(u"\3\2\2\2\u03b1\u03b2\7-\2\2\u03b2\u03b3\7\5\2\2\u03b3") + buf.write(u"\u03b4\7q\2\2\u03b4\u03b5\7\6\2\2\u03b5\u00a9\3\2\2\2") + buf.write(u"\u03b6\u03bb\7.\2\2\u03b7\u03b8\7o\2\2\u03b8\u03ba\7") + buf.write(u"/\2\2\u03b9\u03b7\3\2\2\2\u03ba\u03bd\3\2\2\2\u03bb\u03b9") + buf.write(u"\3\2\2\2\u03bb\u03bc\3\2\2\2\u03bc\u03be\3\2\2\2\u03bd") + buf.write(u"\u03bb\3\2\2\2\u03be\u03bf\7\60\2\2\u03bf\u00ab\3\2\2") + buf.write(u"\2\u03c0\u03c6\7.\2\2\u03c1\u03c2\5\u0124\u0093\2\u03c2") + buf.write(u"\u03c3\7/\2\2\u03c3\u03c5\3\2\2\2\u03c4\u03c1\3\2\2\2") + buf.write(u"\u03c5\u03c8\3\2\2\2\u03c6\u03c4\3\2\2\2\u03c6\u03c7") + buf.write(u"\3\2\2\2\u03c7\u03c9\3\2\2\2\u03c8\u03c6\3\2\2\2\u03c9") + buf.write(u"\u03ca\7\60\2\2\u03ca\u00ad\3\2\2\2\u03cb\u03d0\7.\2") + buf.write(u"\2\u03cc\u03cd\7q\2\2\u03cd\u03cf\7/\2\2\u03ce\u03cc") + buf.write(u"\3\2\2\2\u03cf\u03d2\3\2\2\2\u03d0\u03ce\3\2\2\2\u03d0") + buf.write(u"\u03d1\3\2\2\2\u03d1\u03d3\3\2\2\2\u03d2\u03d0\3\2\2") + buf.write(u"\2\u03d3\u03d4\7\60\2\2\u03d4\u00af\3\2\2\2\u03d5\u03d6") + buf.write(u"\7\61\2\2\u03d6\u03d7\7\5\2\2\u03d7\u03d8\7o\2\2\u03d8") + buf.write(u"\u03d9\7\6\2\2\u03d9\u00b1\3\2\2\2\u03da\u03db\7\62\2") + buf.write(u"\2\u03db\u03dc\7\5\2\2\u03dc\u03dd\5\u00aaV\2\u03dd\u03de") + buf.write(u"\7\6\2\2\u03de\u00b3\3\2\2\2\u03df\u03e0\7\63\2\2\u03e0") + buf.write(u"\u03e1\7\5\2\2\u03e1\u03e2\5\u00aaV\2\u03e2\u03e3\7\6") + buf.write(u"\2\2\u03e3\u00b5\3\2\2\2\u03e4\u03e5\7\64\2\2\u03e5\u03e6") + buf.write(u"\7\5\2\2\u03e6\u03e7\5\u00aaV\2\u03e7\u03e8\7\6\2\2\u03e8") + buf.write(u"\u00b7\3\2\2\2\u03e9\u03ea\7\65\2\2\u03ea\u03eb\7\5\2") + buf.write(u"\2\u03eb\u03ec\5\u0124\u0093\2\u03ec\u03ed\7\6\2\2\u03ed") + buf.write(u"\u00b9\3\2\2\2\u03ee\u03ef\7\66\2\2\u03ef\u03f0\7\5\2") + buf.write(u"\2\u03f0\u03f1\7o\2\2\u03f1\u03f2\7\6\2\2\u03f2\u00bb") + buf.write(u"\3\2\2\2\u03f3\u03f4\7\67\2\2\u03f4\u03f5\7\5\2\2\u03f5") + buf.write(u"\u03f6\7p\2\2\u03f6\u03f7\7\6\2\2\u03f7\u00bd\3\2\2\2") + buf.write(u"\u03f8\u03f9\78\2\2\u03f9\u03fa\7\5\2\2\u03fa\u03fb\7") + buf.write(u"q\2\2\u03fb\u03fc\7\6\2\2\u03fc\u00bf\3\2\2\2\u03fd\u03fe") + buf.write(u"\79\2\2\u03fe\u03ff\7\5\2\2\u03ff\u0400\5\u0124\u0093") + buf.write(u"\2\u0400\u0401\7\6\2\2\u0401\u00c1\3\2\2\2\u0402\u0403") + buf.write(u"\7:\2\2\u0403\u0404\7\5\2\2\u0404\u0406\7\3\2\2\u0405") + buf.write(u"\u0407\5\u0122\u0092\2\u0406\u0405\3\2\2\2\u0406\u0407") + buf.write(u"\3\2\2\2\u0407\u0409\3\2\2\2\u0408\u040a\5\u00c6d\2\u0409") + buf.write(u"\u0408\3\2\2\2\u0409\u040a\3\2\2\2\u040a\u040c\3\2\2") + buf.write(u"\2\u040b\u040d\5\u00c4c\2\u040c\u040b\3\2\2\2\u040c\u040d") + buf.write(u"\3\2\2\2\u040d\u040f\3\2\2\2\u040e\u0410\5\u00c8e\2\u040f") + buf.write(u"\u040e\3\2\2\2\u040f\u0410\3\2\2\2\u0410\u0411\3\2\2") + buf.write(u"\2\u0411\u0413\5\u00caf\2\u0412\u0414\5\u00ccg\2\u0413") + buf.write(u"\u0412\3\2\2\2\u0413\u0414\3\2\2\2\u0414\u0416\3\2\2") + buf.write(u"\2\u0415\u0417\5\u00ceh\2\u0416\u0415\3\2\2\2\u0416\u0417") + buf.write(u"\3\2\2\2\u0417\u0419\3\2\2\2\u0418\u041a\5\u00d0i\2\u0419") + buf.write(u"\u0418\3\2\2\2\u0419\u041a\3\2\2\2\u041a\u041b\3\2\2") + buf.write(u"\2\u041b\u041c\7\4\2\2\u041c\u041d\7\6\2\2\u041d\u00c3") + buf.write(u"\3\2\2\2\u041e\u041f\7;\2\2\u041f\u0420\7\5\2\2\u0420") + buf.write(u"\u0421\7q\2\2\u0421\u0422\7\6\2\2\u0422\u00c5\3\2\2\2") + buf.write(u"\u0423\u0424\7<\2\2\u0424\u0425\7\5\2\2\u0425\u0426\7") + buf.write(u"q\2\2\u0426\u0427\7\6\2\2\u0427\u00c7\3\2\2\2\u0428\u0429") + buf.write(u"\7=\2\2\u0429\u042a\7\5\2\2\u042a\u042b\7q\2\2\u042b") + buf.write(u"\u042c\7\6\2\2\u042c\u00c9\3\2\2\2\u042d\u042e\7>\2\2") + buf.write(u"\u042e\u042f\7\5\2\2\u042f\u0430\7q\2\2\u0430\u0431\7") + buf.write(u"\6\2\2\u0431\u00cb\3\2\2\2\u0432\u0433\7?\2\2\u0433\u0434") + buf.write(u"\7\5\2\2\u0434\u0435\7q\2\2\u0435\u0436\7\6\2\2\u0436") + buf.write(u"\u00cd\3\2\2\2\u0437\u0438\7@\2\2\u0438\u0439\7\5\2\2") + buf.write(u"\u0439\u043a\5\u0124\u0093\2\u043a\u043b\7\6\2\2\u043b") + buf.write(u"\u00cf\3\2\2\2\u043c\u043d\7A\2\2\u043d\u043e\7\5\2\2") + buf.write(u"\u043e\u0442\7\3\2\2\u043f\u0441\5\u00d2j\2\u0440\u043f") + buf.write(u"\3\2\2\2\u0441\u0444\3\2\2\2\u0442\u0440\3\2\2\2\u0442") + buf.write(u"\u0443\3\2\2\2\u0443\u0445\3\2\2\2\u0444\u0442\3\2\2") + buf.write(u"\2\u0445\u0446\7\4\2\2\u0446\u0447\7\6\2\2\u0447\u00d1") + buf.write(u"\3\2\2\2\u0448\u0449\7o\2\2\u0449\u044a\7\5\2\2\u044a") + buf.write(u"\u044c\7\3\2\2\u044b\u044d\5\u00d4k\2\u044c\u044b\3\2") + buf.write(u"\2\2\u044c\u044d\3\2\2\2\u044d\u044f\3\2\2\2\u044e\u0450") + buf.write(u"\5\u00d6l\2\u044f\u044e\3\2\2\2\u044f\u0450\3\2\2\2\u0450") + buf.write(u"\u0452\3\2\2\2\u0451\u0453\5\u00d8m\2\u0452\u0451\3\2") + buf.write(u"\2\2\u0452\u0453\3\2\2\2\u0453\u0455\3\2\2\2\u0454\u0456") + buf.write(u"\5\u00c4c\2\u0455\u0454\3\2\2\2\u0455\u0456\3\2\2\2\u0456") + buf.write(u"\u0458\3\2\2\2\u0457\u0459\5\u00dan\2\u0458\u0457\3\2") + buf.write(u"\2\2\u0458\u0459\3\2\2\2\u0459\u045b\3\2\2\2\u045a\u045c") + buf.write(u"\5\u011c\u008f\2\u045b\u045a\3\2\2\2\u045b\u045c\3\2") + buf.write(u"\2\2\u045c\u045e\3\2\2\2\u045d\u045f\5\u00d6l\2\u045e") + buf.write(u"\u045d\3\2\2\2\u045e\u045f\3\2\2\2\u045f\u0460\3\2\2") + buf.write(u"\2\u0460\u0461\7\4\2\2\u0461\u0462\7\6\2\2\u0462\u00d3") + buf.write(u"\3\2\2\2\u0463\u0464\7B\2\2\u0464\u0465\7\5\2\2\u0465") + buf.write(u"\u0466\7q\2\2\u0466\u0467\7\6\2\2\u0467\u00d5\3\2\2\2") + buf.write(u"\u0468\u0469\7C\2\2\u0469\u046a\7\5\2\2\u046a\u046b\7") + buf.write(u"o\2\2\u046b\u046c\7\6\2\2\u046c\u00d7\3\2\2\2\u046d\u046e") + buf.write(u"\7D\2\2\u046e\u046f\7\5\2\2\u046f\u0470\7q\2\2\u0470") + buf.write(u"\u0471\7\6\2\2\u0471\u00d9\3\2\2\2\u0472\u0473\7E\2\2") + buf.write(u"\u0473\u0474\7\5\2\2\u0474\u0475\7q\2\2\u0475\u0476\7") + buf.write(u"\6\2\2\u0476\u00db\3\2\2\2\u0477\u0478\7F\2\2\u0478\u0479") + buf.write(u"\7\5\2\2\u0479\u047a\7p\2\2\u047a\u047b\7\6\2\2\u047b") + buf.write(u"\u00dd\3\2\2\2\u047c\u047d\7G\2\2\u047d\u047e\7\5\2\2") + buf.write(u"\u047e\u047f\7q\2\2\u047f\u0480\7\6\2\2\u0480\u00df\3") + buf.write(u"\2\2\2\u0481\u0482\7H\2\2\u0482\u0483\7\5\2\2\u0483\u0484") + buf.write(u"\7q\2\2\u0484\u0485\7\6\2\2\u0485\u00e1\3\2\2\2\u0486") + buf.write(u"\u0487\7I\2\2\u0487\u0488\7\5\2\2\u0488\u0489\5\u00ac") + buf.write(u"W\2\u0489\u048a\7\6\2\2\u048a\u00e3\3\2\2\2\u048b\u048c") + buf.write(u"\7J\2\2\u048c\u048d\7\5\2\2\u048d\u048e\7o\2\2\u048e") + buf.write(u"\u048f\7\6\2\2\u048f\u00e5\3\2\2\2\u0490\u0491\7K\2\2") + buf.write(u"\u0491\u0492\7\5\2\2\u0492\u0493\7o\2\2\u0493\u0494\7") + buf.write(u"\6\2\2\u0494\u00e7\3\2\2\2\u0495\u0496\7L\2\2\u0496\u0497") + buf.write(u"\7\5\2\2\u0497\u0498\7p\2\2\u0498\u0499\7\6\2\2\u0499") + buf.write(u"\u00e9\3\2\2\2\u049a\u049b\7M\2\2\u049b\u049c\7\5\2\2") + buf.write(u"\u049c\u049d\5\u0124\u0093\2\u049d\u049e\7\6\2\2\u049e") + buf.write(u"\u04a7\3\2\2\2\u049f\u04a0\7M\2\2\u04a0\u04a1\7\5\2\2") + buf.write(u"\u04a1\u04a2\7.\2\2\u04a2\u04a3\5\u010e\u0088\2\u04a3") + buf.write(u"\u04a4\7\60\2\2\u04a4\u04a5\7\6\2\2\u04a5\u04a7\3\2\2") + buf.write(u"\2\u04a6\u049a\3\2\2\2\u04a6\u049f\3\2\2\2\u04a7\u00eb") + buf.write(u"\3\2\2\2\u04a8\u04a9\7N\2\2\u04a9\u04aa\7\5\2\2\u04aa") + buf.write(u"\u04ab\7p\2\2\u04ab\u04ac\7\6\2\2\u04ac\u00ed\3\2\2\2") + buf.write(u"\u04ad\u04ae\7O\2\2\u04ae\u04af\7\5\2\2\u04af\u04b0\5") + buf.write(u"\u00aaV\2\u04b0\u04b1\7\6\2\2\u04b1\u00ef\3\2\2\2\u04b2") + buf.write(u"\u04b3\7P\2\2\u04b3\u04b4\7\5\2\2\u04b4\u04b5\5\u00ac") + buf.write(u"W\2\u04b5\u04b6\7\6\2\2\u04b6\u00f1\3\2\2\2\u04b7\u04b8") + buf.write(u"\7Q\2\2\u04b8\u04b9\7\5\2\2\u04b9\u04ba\5\u00acW\2\u04ba") + buf.write(u"\u04bb\7\6\2\2\u04bb\u00f3\3\2\2\2\u04bc\u04bd\7R\2\2") + buf.write(u"\u04bd\u04be\7\5\2\2\u04be\u04bf\5\u00acW\2\u04bf\u04c0") + buf.write(u"\7\6\2\2\u04c0\u00f5\3\2\2\2\u04c1\u04c2\7S\2\2\u04c2") + buf.write(u"\u04c3\7\5\2\2\u04c3\u04c4\5\u00acW\2\u04c4\u04c5\7\6") + buf.write(u"\2\2\u04c5\u00f7\3\2\2\2\u04c6\u04c7\7T\2\2\u04c7\u04c8") + buf.write(u"\7\5\2\2\u04c8\u04c9\7q\2\2\u04c9\u04ca\7\6\2\2\u04ca") + buf.write(u"\u00f9\3\2\2\2\u04cb\u04cc\7U\2\2\u04cc\u04cd\7\5\2\2") + buf.write(u"\u04cd\u04ce\7p\2\2\u04ce\u04cf\7\6\2\2\u04cf\u00fb\3") + buf.write(u"\2\2\2\u04d0\u04d1\7V\2\2\u04d1\u04d2\7\5\2\2\u04d2\u04d3") + buf.write(u"\7q\2\2\u04d3\u04d4\7\6\2\2\u04d4\u00fd\3\2\2\2\u04d5") + buf.write(u"\u04d6\7W\2\2\u04d6\u04d7\7\5\2\2\u04d7\u04d8\7o\2\2") + buf.write(u"\u04d8\u04d9\7\6\2\2\u04d9\u00ff\3\2\2\2\u04da\u04db") + buf.write(u"\7X\2\2\u04db\u04dc\7\5\2\2\u04dc\u04dd\7o\2\2\u04dd") + buf.write(u"\u04de\7\6\2\2\u04de\u0101\3\2\2\2\u04df\u04e0\7Y\2\2") + buf.write(u"\u04e0\u04e1\7\5\2\2\u04e1\u04e2\5\u0124\u0093\2\u04e2") + buf.write(u"\u04e3\7\6\2\2\u04e3\u0103\3\2\2\2\u04e4\u04e5\7Z\2\2") + buf.write(u"\u04e5\u04e6\7\5\2\2\u04e6\u04e7\7o\2\2\u04e7\u04e8\7") + buf.write(u"\6\2\2\u04e8\u0105\3\2\2\2\u04e9\u04ea\7[\2\2\u04ea\u04eb") + buf.write(u"\7\5\2\2\u04eb\u04ec\7o\2\2\u04ec\u04ed\7\6\2\2\u04ed") + buf.write(u"\u0107\3\2\2\2\u04ee\u04ef\7\\\2\2\u04ef\u04f0\7\5\2") + buf.write(u"\2\u04f0\u04f4\7\3\2\2\u04f1\u04f3\5\u0112\u008a\2\u04f2") + buf.write(u"\u04f1\3\2\2\2\u04f3\u04f6\3\2\2\2\u04f4\u04f2\3\2\2") + buf.write(u"\2\u04f4\u04f5\3\2\2\2\u04f5\u04f7\3\2\2\2\u04f6\u04f4") + buf.write(u"\3\2\2\2\u04f7\u04f8\7\4\2\2\u04f8\u04f9\7\6\2\2\u04f9") + buf.write(u"\u0109\3\2\2\2\u04fa\u04fb\7]\2\2\u04fb\u04fc\7\5\2\2") + buf.write(u"\u04fc\u04fd\7p\2\2\u04fd\u04fe\7\6\2\2\u04fe\u010b\3") + buf.write(u"\2\2\2\u04ff\u0500\7^\2\2\u0500\u0501\7\5\2\2\u0501\u0502") + buf.write(u"\7q\2\2\u0502\u0503\7\6\2\2\u0503\u010d\3\2\2\2\u0504") + buf.write(u"\u0506\5\u0110\u0089\2\u0505\u0504\3\2\2\2\u0506\u0509") + buf.write(u"\3\2\2\2\u0507\u0505\3\2\2\2\u0507\u0508\3\2\2\2\u0508") + buf.write(u"\u010f\3\2\2\2\u0509\u0507\3\2\2\2\u050a\u050b\7\3\2") + buf.write(u"\2\u050b\u050c\7_\2\2\u050c\u050d\7\5\2\2\u050d\u050e") + buf.write(u"\7o\2\2\u050e\u050f\7\6\2\2\u050f\u0510\7`\2\2\u0510") + buf.write(u"\u0511\7\5\2\2\u0511\u0512\7o\2\2\u0512\u0513\7\6\2\2") + buf.write(u"\u0513\u0514\7\4\2\2\u0514\u0515\7/\2\2\u0515\u0111\3") + buf.write(u"\2\2\2\u0516\u0517\5\u0124\u0093\2\u0517\u0518\7\5\2") + buf.write(u"\2\u0518\u0519\5\u0124\u0093\2\u0519\u051a\7\6\2\2\u051a") + buf.write(u"\u0531\3\2\2\2\u051b\u051c\5\u0124\u0093\2\u051c\u051d") + buf.write(u"\7\5\2\2\u051d\u051e\7\3\2\2\u051e\u051f\5\u0112\u008a") + buf.write(u"\2\u051f\u0520\7\4\2\2\u0520\u0521\7\6\2\2\u0521\u0531") + buf.write(u"\3\2\2\2\u0522\u0523\5\u0124\u0093\2\u0523\u0524\7\5") + buf.write(u"\2\2\u0524\u052a\7.\2\2\u0525\u0526\5\u0124\u0093\2\u0526") + buf.write(u"\u0527\7/\2\2\u0527\u0529\3\2\2\2\u0528\u0525\3\2\2\2") + buf.write(u"\u0529\u052c\3\2\2\2\u052a\u0528\3\2\2\2\u052a\u052b") + buf.write(u"\3\2\2\2\u052b\u052d\3\2\2\2\u052c\u052a\3\2\2\2\u052d") + buf.write(u"\u052e\7\60\2\2\u052e\u052f\7\6\2\2\u052f\u0531\3\2\2") + buf.write(u"\2\u0530\u0516\3\2\2\2\u0530\u051b\3\2\2\2\u0530\u0522") + buf.write(u"\3\2\2\2\u0531\u0113\3\2\2\2\u0532\u0533\7a\2\2\u0533") + buf.write(u"\u0534\7\5\2\2\u0534\u0535\5\u00aaV\2\u0535\u0536\7\6") + buf.write(u"\2\2\u0536\u0115\3\2\2\2\u0537\u0538\7b\2\2\u0538\u0539") + buf.write(u"\7\5\2\2\u0539\u053a\7q\2\2\u053a\u053b\7\6\2\2\u053b") + buf.write(u"\u0117\3\2\2\2\u053c\u053d\7c\2\2\u053d\u053e\7\5\2\2") + buf.write(u"\u053e\u053f\7q\2\2\u053f\u0540\7\6\2\2\u0540\u0119\3") + buf.write(u"\2\2\2\u0541\u0542\7d\2\2\u0542\u0543\7\5\2\2\u0543\u0547") + buf.write(u"\7\3\2\2\u0544\u0546\5\u0112\u008a\2\u0545\u0544\3\2") + buf.write(u"\2\2\u0546\u0549\3\2\2\2\u0547\u0545\3\2\2\2\u0547\u0548") + buf.write(u"\3\2\2\2\u0548\u054a\3\2\2\2\u0549\u0547\3\2\2\2\u054a") + buf.write(u"\u054b\7\4\2\2\u054b\u054c\7\6\2\2\u054c\u011b\3\2\2") + buf.write(u"\2\u054d\u054e\7e\2\2\u054e\u054f\7\5\2\2\u054f\u0553") + buf.write(u"\7\3\2\2\u0550\u0552\5\u0112\u008a\2\u0551\u0550\3\2") + buf.write(u"\2\2\u0552\u0555\3\2\2\2\u0553\u0551\3\2\2\2\u0553\u0554") + buf.write(u"\3\2\2\2\u0554\u0556\3\2\2\2\u0555\u0553\3\2\2\2\u0556") + buf.write(u"\u0557\7\4\2\2\u0557\u0558\7\6\2\2\u0558\u011d\3\2\2") + buf.write(u"\2\u0559\u055a\7f\2\2\u055a\u055b\7\5\2\2\u055b\u055c") + buf.write(u"\7o\2\2\u055c\u055d\7\6\2\2\u055d\u011f\3\2\2\2\u055e") + buf.write(u"\u055f\7g\2\2\u055f\u0560\7\5\2\2\u0560\u0561\7q\2\2") + buf.write(u"\u0561\u0562\7\6\2\2\u0562\u0121\3\2\2\2\u0563\u0564") + buf.write(u"\7h\2\2\u0564\u0565\7\5\2\2\u0565\u0566\5\u0124\u0093") + buf.write(u"\2\u0566\u0567\7\6\2\2\u0567\u0123\3\2\2\2\u0568\u0569") + buf.write(u"\t\3\2\2\u0569\u0125\3\2\2\2U\u0144\u0148\u014b\u0151") + buf.write(u"\u0154\u0158\u015b\u015e\u0162\u0165\u016a\u0177\u017c") + buf.write(u"\u0181\u0186\u018b\u0190\u0195\u019a\u019f\u01a4\u01a9") + buf.write(u"\u01ae\u01b3\u01b8\u01bd\u01c2\u01c7\u01cc\u01d1\u01e5") + buf.write(u"\u01fe\u0209\u020c\u020f\u0212\u0215\u0218\u021b\u021e") + buf.write(u"\u0221\u0236\u0239\u023c\u0240\u0243\u025c\u0270\u0274") + buf.write(u"\u0297\u029b\u029e\u02a5\u02b9\u02bc\u02c9\u02d4\u02e2") + buf.write(u"\u03bb\u03c6\u03d0\u0406\u0409\u040c\u040f\u0413\u0416") + buf.write(u"\u0419\u0442\u044c\u044f\u0452\u0455\u0458\u045b\u045e") + buf.write(u"\u04a6\u04f4\u0507\u052a\u0530\u0547\u0553") return buf.getvalue() @@ -654,14 +670,15 @@ class PBXProjParser ( Parser ): u"'buildPhases'", u"'buildRules'", u"'dependencies'", u"'productName'", u"'productReference'", u"'productType'", u"'lineEnding'", u"'xcLanguageSpecificationIdentifier'", - u"'attributes'", u"'LastSwiftMigration'", u"'LastSwiftUpdateCheck'", - u"'LastUpgradeCheck'", u"'LastTestingUpgradeCheck'", + u"'attributes'", u"'LastSwiftMigration'", u"'DefaultBuildSystemTypeForWorkspace'", + u"'LastSwiftUpdateCheck'", u"'LastUpgradeCheck'", u"'LastTestingUpgradeCheck'", u"'ORGANIZATIONNAME'", u"'TargetAttributes'", u"'CreatedOnToolsVersion'", u"'TestTargetID'", u"'DevelopmentTeam'", u"'ProvisioningStyle'", u"'compatibilityVersion'", u"'developmentRegion'", u"'hasScannedForEncodings'", u"'knownRegions'", u"'mainGroup'", u"'productRefGroup'", u"'projectDirPath'", u"'projectReferences'", - u"'projectRoot'", u"'targets'", u"'inputPaths'", u"'outputPaths'", + u"'projectRoot'", u"'targets'", u"'inputFileListPaths'", + u"'inputPaths'", u"'outputFileListPaths'", u"'outputPaths'", u"'shellPath'", u"'shellScript'", u"'showEnvVarsInLog'", u"'target'", u"'targetProxy'", u"'fileType'", u"'remoteRef'", u"'baseConfigurationReference'", u"'buildSettings'", @@ -697,10 +714,10 @@ class PBXProjParser ( Parser ): u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", u"", - u"ARCHIVE_VERSION", u"CLASSES", u"ISA", u"OBJECT_VERSION", - u"OBJECTS", u"ROOT_OBJECT", u"REFERENCE", u"QUOTED_STRING", - u"NON_QUOTED_STRING", u"VARIABLE", u"WS", u"COMMENT", - u"LINE_COMMENT" ] + u"", u"", u"", u"ARCHIVE_VERSION", + u"CLASSES", u"ISA", u"OBJECT_VERSION", u"OBJECTS", + u"ROOT_OBJECT", u"REFERENCE", u"QUOTED_STRING", u"NON_QUOTED_STRING", + u"VARIABLE", u"WS", u"COMMENT", u"LINE_COMMENT" ] RULE_start = 0 RULE_root_element = 1 @@ -800,51 +817,54 @@ class PBXProjParser ( Parser ): RULE_xc_language_specification_identifier = 95 RULE_attributes = 96 RULE_last_swift_migration = 97 - RULE_last_swift_update_check = 98 - RULE_last_upgrade_check = 99 - RULE_last_testing_upgrade_check = 100 - RULE_organization_name = 101 - RULE_target_attributes = 102 - RULE_target_attribute = 103 - RULE_created_on_tools_version = 104 - RULE_test_target_id = 105 - RULE_development_team = 106 - RULE_provisioning_style = 107 - RULE_compatibility_version = 108 - RULE_development_region = 109 - RULE_has_scanned_for_encodings = 110 - RULE_known_regions = 111 - RULE_main_group = 112 - RULE_product_ref_group = 113 - RULE_project_dir_path = 114 - RULE_project_references = 115 - RULE_project_root = 116 - RULE_targets = 117 - RULE_input_paths = 118 - RULE_output_paths = 119 - RULE_shell_path = 120 - RULE_shell_script = 121 - RULE_show_env_vars_in_log = 122 - RULE_target = 123 - RULE_target_proxy = 124 - RULE_file_type = 125 - RULE_remote_ref = 126 - RULE_base_configuration_reference = 127 - RULE_build_settings = 128 - RULE_dst_path = 129 - RULE_dst_subfolder_spec = 130 - RULE_project_references_list = 131 - RULE_project_references_list_element = 132 - RULE_key_value = 133 - RULE_build_configurations = 134 - RULE_default_configuration_is_visible = 135 - RULE_default_configuration_name = 136 - RULE_settings = 137 - RULE_system_capabilities = 138 - RULE_current_version = 139 - RULE_version_group_type = 140 - RULE_class_prefix = 141 - RULE_any_string = 142 + RULE_default_build_system_type_for_workspace = 98 + RULE_last_swift_update_check = 99 + RULE_last_upgrade_check = 100 + RULE_last_testing_upgrade_check = 101 + RULE_organization_name = 102 + RULE_target_attributes = 103 + RULE_target_attribute = 104 + RULE_created_on_tools_version = 105 + RULE_test_target_id = 106 + RULE_development_team = 107 + RULE_provisioning_style = 108 + RULE_compatibility_version = 109 + RULE_development_region = 110 + RULE_has_scanned_for_encodings = 111 + RULE_known_regions = 112 + RULE_main_group = 113 + RULE_product_ref_group = 114 + RULE_project_dir_path = 115 + RULE_project_references = 116 + RULE_project_root = 117 + RULE_targets = 118 + RULE_input_file_list_paths = 119 + RULE_input_paths = 120 + RULE_output_file_list_paths = 121 + RULE_output_paths = 122 + RULE_shell_path = 123 + RULE_shell_script = 124 + RULE_show_env_vars_in_log = 125 + RULE_target = 126 + RULE_target_proxy = 127 + RULE_file_type = 128 + RULE_remote_ref = 129 + RULE_base_configuration_reference = 130 + RULE_build_settings = 131 + RULE_dst_path = 132 + RULE_dst_subfolder_spec = 133 + RULE_project_references_list = 134 + RULE_project_references_list_element = 135 + RULE_key_value = 136 + RULE_build_configurations = 137 + RULE_default_configuration_is_visible = 138 + RULE_default_configuration_name = 139 + RULE_settings = 140 + RULE_system_capabilities = 141 + RULE_current_version = 142 + RULE_version_group_type = 143 + RULE_class_prefix = 144 + RULE_any_string = 145 ruleNames = [ u"start", u"root_element", u"archive_version", u"classes", u"object_version", u"objects", u"root_object", u"pbx_aggregate_target_section", @@ -882,14 +902,15 @@ class PBXProjParser ( Parser ): u"build_configuration_list", u"build_phases", u"build_rules", u"dependencies", u"product_name", u"product_reference", u"product_type", u"line_ending", u"xc_language_specification_identifier", - u"attributes", u"last_swift_migration", u"last_swift_update_check", - u"last_upgrade_check", u"last_testing_upgrade_check", + u"attributes", u"last_swift_migration", u"default_build_system_type_for_workspace", + u"last_swift_update_check", u"last_upgrade_check", u"last_testing_upgrade_check", u"organization_name", u"target_attributes", u"target_attribute", u"created_on_tools_version", u"test_target_id", u"development_team", u"provisioning_style", u"compatibility_version", u"development_region", u"has_scanned_for_encodings", u"known_regions", u"main_group", u"product_ref_group", u"project_dir_path", u"project_references", - u"project_root", u"targets", u"input_paths", u"output_paths", + u"project_root", u"targets", u"input_file_list_paths", + u"input_paths", u"output_file_list_paths", u"output_paths", u"shell_path", u"shell_script", u"show_env_vars_in_log", u"target", u"target_proxy", u"file_type", u"remote_ref", u"base_configuration_reference", u"build_settings", u"dst_path", @@ -999,19 +1020,22 @@ class PBXProjParser ( Parser ): T__96=97 T__97=98 T__98=99 - ARCHIVE_VERSION=100 - CLASSES=101 - ISA=102 - OBJECT_VERSION=103 - OBJECTS=104 - ROOT_OBJECT=105 - REFERENCE=106 - QUOTED_STRING=107 - NON_QUOTED_STRING=108 - VARIABLE=109 - WS=110 - COMMENT=111 - LINE_COMMENT=112 + T__99=100 + T__100=101 + T__101=102 + ARCHIVE_VERSION=103 + CLASSES=104 + ISA=105 + OBJECT_VERSION=106 + OBJECTS=107 + ROOT_OBJECT=108 + REFERENCE=109 + QUOTED_STRING=110 + NON_QUOTED_STRING=111 + VARIABLE=112 + WS=113 + COMMENT=114 + LINE_COMMENT=115 def __init__(self, input): super(PBXProjParser, self).__init__(input) @@ -1051,7 +1075,7 @@ def start(self): self.enterRule(localctx, 0, self.RULE_start) try: self.enterOuterAlt(localctx, 1) - self.state = 286 + self.state = 292 self.root_element() except RecognitionException as re: localctx.exception = re @@ -1107,19 +1131,19 @@ def root_element(self): self.enterRule(localctx, 2, self.RULE_root_element) try: self.enterOuterAlt(localctx, 1) - self.state = 288 + self.state = 294 self.match(PBXProjParser.T__0) - self.state = 289 + self.state = 295 self.archive_version() - self.state = 290 + self.state = 296 self.classes() - self.state = 291 + self.state = 297 self.object_version() - self.state = 292 + self.state = 298 self.objects() - self.state = 293 + self.state = 299 self.root_object() - self.state = 294 + self.state = 300 self.match(PBXProjParser.T__1) except RecognitionException as re: localctx.exception = re @@ -1161,13 +1185,13 @@ def archive_version(self): self.enterRule(localctx, 4, self.RULE_archive_version) try: self.enterOuterAlt(localctx, 1) - self.state = 296 + self.state = 302 self.match(PBXProjParser.ARCHIVE_VERSION) - self.state = 297 + self.state = 303 self.match(PBXProjParser.T__2) - self.state = 298 + self.state = 304 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 299 + self.state = 305 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -1206,15 +1230,15 @@ def classes(self): self.enterRule(localctx, 6, self.RULE_classes) try: self.enterOuterAlt(localctx, 1) - self.state = 301 + self.state = 307 self.match(PBXProjParser.CLASSES) - self.state = 302 + self.state = 308 self.match(PBXProjParser.T__2) - self.state = 303 + self.state = 309 self.match(PBXProjParser.T__0) - self.state = 304 + self.state = 310 self.match(PBXProjParser.T__1) - self.state = 305 + self.state = 311 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -1256,13 +1280,13 @@ def object_version(self): self.enterRule(localctx, 8, self.RULE_object_version) try: self.enterOuterAlt(localctx, 1) - self.state = 307 + self.state = 313 self.match(PBXProjParser.OBJECT_VERSION) - self.state = 308 + self.state = 314 self.match(PBXProjParser.T__2) - self.state = 309 + self.state = 315 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 310 + self.state = 316 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -1378,119 +1402,119 @@ def objects(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 312 + self.state = 318 self.match(PBXProjParser.OBJECTS) - self.state = 313 + self.state = 319 self.match(PBXProjParser.T__2) - self.state = 314 + self.state = 320 self.match(PBXProjParser.T__0) - self.state = 316 + self.state = 322 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,0,self._ctx) if la_ == 1: - self.state = 315 + self.state = 321 self.pbx_aggregate_target_section() - self.state = 318 + self.state = 324 self.pbx_build_file_section() - self.state = 320 + self.state = 326 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,1,self._ctx) if la_ == 1: - self.state = 319 + self.state = 325 self.pbx_container_item_proxy_section() - self.state = 323 + self.state = 329 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,2,self._ctx) if la_ == 1: - self.state = 322 + self.state = 328 self.pbx_copy_files_build_phase_section() - self.state = 325 + self.state = 331 self.pbx_file_reference_section() - self.state = 326 + self.state = 332 self.pbx_frameworks_build_phase_section() - self.state = 327 + self.state = 333 self.pbx_group_section() - self.state = 329 + self.state = 335 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,3,self._ctx) if la_ == 1: - self.state = 328 + self.state = 334 self.pbx_headers_build_phase_section() - self.state = 332 + self.state = 338 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,4,self._ctx) if la_ == 1: - self.state = 331 + self.state = 337 self.pbx_native_target_section() - self.state = 334 + self.state = 340 self.pbx_project_section() - self.state = 336 + self.state = 342 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,5,self._ctx) if la_ == 1: - self.state = 335 + self.state = 341 self.pbx_reference_proxy_section() - self.state = 339 + self.state = 345 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,6,self._ctx) if la_ == 1: - self.state = 338 + self.state = 344 self.pbx_resources_build_phase_section() - self.state = 342 + self.state = 348 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,7,self._ctx) if la_ == 1: - self.state = 341 + self.state = 347 self.pbx_shell_script_build_phase_section() - self.state = 344 + self.state = 350 self.pbx_sources_build_phase_section() - self.state = 346 + self.state = 352 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,8,self._ctx) if la_ == 1: - self.state = 345 + self.state = 351 self.pbx_target_dependency_section() - self.state = 349 + self.state = 355 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,9,self._ctx) if la_ == 1: - self.state = 348 + self.state = 354 self.pbx_variant_group_section() - self.state = 351 + self.state = 357 self.xc_build_configuration_section() - self.state = 352 + self.state = 358 self.xc_configuration_list_section() - self.state = 354 + self.state = 360 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.REFERENCE: - self.state = 353 + self.state = 359 self.xc_version_group_section() - self.state = 356 + self.state = 362 self.match(PBXProjParser.T__1) - self.state = 357 + self.state = 363 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -1532,13 +1556,13 @@ def root_object(self): self.enterRule(localctx, 12, self.RULE_root_object) try: self.enterOuterAlt(localctx, 1) - self.state = 359 + self.state = 365 self.match(PBXProjParser.ROOT_OBJECT) - self.state = 360 + self.state = 366 self.match(PBXProjParser.T__2) - self.state = 361 + self.state = 367 self.match(PBXProjParser.REFERENCE) - self.state = 362 + self.state = 368 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -1581,17 +1605,17 @@ def pbx_aggregate_target_section(self): self.enterRule(localctx, 14, self.RULE_pbx_aggregate_target_section) try: self.enterOuterAlt(localctx, 1) - self.state = 365 + self.state = 371 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 364 + self.state = 370 self.pbx_aggregate_target() else: raise NoViableAltException(self) - self.state = 367 + self.state = 373 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,11,self._ctx) @@ -1636,17 +1660,17 @@ def pbx_build_file_section(self): self.enterRule(localctx, 16, self.RULE_pbx_build_file_section) try: self.enterOuterAlt(localctx, 1) - self.state = 370 + self.state = 376 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 369 + self.state = 375 self.pbx_build_file() else: raise NoViableAltException(self) - self.state = 372 + self.state = 378 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,12,self._ctx) @@ -1691,17 +1715,17 @@ def pbx_container_item_proxy_section(self): self.enterRule(localctx, 18, self.RULE_pbx_container_item_proxy_section) try: self.enterOuterAlt(localctx, 1) - self.state = 375 + self.state = 381 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 374 + self.state = 380 self.pbx_container_item_proxy() else: raise NoViableAltException(self) - self.state = 377 + self.state = 383 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,13,self._ctx) @@ -1746,17 +1770,17 @@ def pbx_copy_files_build_phase_section(self): self.enterRule(localctx, 20, self.RULE_pbx_copy_files_build_phase_section) try: self.enterOuterAlt(localctx, 1) - self.state = 380 + self.state = 386 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 379 + self.state = 385 self.pbx_copy_files_build_phase() else: raise NoViableAltException(self) - self.state = 382 + self.state = 388 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,14,self._ctx) @@ -1801,17 +1825,17 @@ def pbx_file_reference_section(self): self.enterRule(localctx, 22, self.RULE_pbx_file_reference_section) try: self.enterOuterAlt(localctx, 1) - self.state = 385 + self.state = 391 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 384 + self.state = 390 self.pbx_file_reference() else: raise NoViableAltException(self) - self.state = 387 + self.state = 393 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,15,self._ctx) @@ -1856,17 +1880,17 @@ def pbx_frameworks_build_phase_section(self): self.enterRule(localctx, 24, self.RULE_pbx_frameworks_build_phase_section) try: self.enterOuterAlt(localctx, 1) - self.state = 390 + self.state = 396 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 389 + self.state = 395 self.pbx_frameworks_build_phase() else: raise NoViableAltException(self) - self.state = 392 + self.state = 398 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,16,self._ctx) @@ -1911,17 +1935,17 @@ def pbx_group_section(self): self.enterRule(localctx, 26, self.RULE_pbx_group_section) try: self.enterOuterAlt(localctx, 1) - self.state = 395 + self.state = 401 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 394 + self.state = 400 self.pbx_group() else: raise NoViableAltException(self) - self.state = 397 + self.state = 403 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,17,self._ctx) @@ -1966,17 +1990,17 @@ def pbx_headers_build_phase_section(self): self.enterRule(localctx, 28, self.RULE_pbx_headers_build_phase_section) try: self.enterOuterAlt(localctx, 1) - self.state = 400 + self.state = 406 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 399 + self.state = 405 self.pbx_headers_build_phase() else: raise NoViableAltException(self) - self.state = 402 + self.state = 408 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,18,self._ctx) @@ -2021,17 +2045,17 @@ def pbx_native_target_section(self): self.enterRule(localctx, 30, self.RULE_pbx_native_target_section) try: self.enterOuterAlt(localctx, 1) - self.state = 405 + self.state = 411 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 404 + self.state = 410 self.pbx_native_target() else: raise NoViableAltException(self) - self.state = 407 + self.state = 413 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,19,self._ctx) @@ -2076,17 +2100,17 @@ def pbx_project_section(self): self.enterRule(localctx, 32, self.RULE_pbx_project_section) try: self.enterOuterAlt(localctx, 1) - self.state = 410 + self.state = 416 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 409 + self.state = 415 self.pbx_project() else: raise NoViableAltException(self) - self.state = 412 + self.state = 418 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,20,self._ctx) @@ -2131,17 +2155,17 @@ def pbx_reference_proxy_section(self): self.enterRule(localctx, 34, self.RULE_pbx_reference_proxy_section) try: self.enterOuterAlt(localctx, 1) - self.state = 415 + self.state = 421 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 414 + self.state = 420 self.pbx_reference_proxy() else: raise NoViableAltException(self) - self.state = 417 + self.state = 423 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,21,self._ctx) @@ -2186,17 +2210,17 @@ def pbx_resources_build_phase_section(self): self.enterRule(localctx, 36, self.RULE_pbx_resources_build_phase_section) try: self.enterOuterAlt(localctx, 1) - self.state = 420 + self.state = 426 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 419 + self.state = 425 self.pbx_resources_build_phase() else: raise NoViableAltException(self) - self.state = 422 + self.state = 428 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,22,self._ctx) @@ -2241,17 +2265,17 @@ def pbx_shell_script_build_phase_section(self): self.enterRule(localctx, 38, self.RULE_pbx_shell_script_build_phase_section) try: self.enterOuterAlt(localctx, 1) - self.state = 425 + self.state = 431 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 424 + self.state = 430 self.pbx_shell_script_build_phase() else: raise NoViableAltException(self) - self.state = 427 + self.state = 433 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,23,self._ctx) @@ -2296,17 +2320,17 @@ def pbx_sources_build_phase_section(self): self.enterRule(localctx, 40, self.RULE_pbx_sources_build_phase_section) try: self.enterOuterAlt(localctx, 1) - self.state = 430 + self.state = 436 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 429 + self.state = 435 self.pbx_sources_build_phase() else: raise NoViableAltException(self) - self.state = 432 + self.state = 438 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,24,self._ctx) @@ -2351,17 +2375,17 @@ def pbx_target_dependency_section(self): self.enterRule(localctx, 42, self.RULE_pbx_target_dependency_section) try: self.enterOuterAlt(localctx, 1) - self.state = 435 + self.state = 441 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 434 + self.state = 440 self.pbx_target_dependency() else: raise NoViableAltException(self) - self.state = 437 + self.state = 443 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,25,self._ctx) @@ -2406,17 +2430,17 @@ def pbx_variant_group_section(self): self.enterRule(localctx, 44, self.RULE_pbx_variant_group_section) try: self.enterOuterAlt(localctx, 1) - self.state = 440 + self.state = 446 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 439 + self.state = 445 self.pbx_variant_group() else: raise NoViableAltException(self) - self.state = 442 + self.state = 448 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,26,self._ctx) @@ -2461,17 +2485,17 @@ def xc_build_configuration_section(self): self.enterRule(localctx, 46, self.RULE_xc_build_configuration_section) try: self.enterOuterAlt(localctx, 1) - self.state = 445 + self.state = 451 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 444 + self.state = 450 self.xc_build_configuration() else: raise NoViableAltException(self) - self.state = 447 + self.state = 453 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,27,self._ctx) @@ -2516,17 +2540,17 @@ def xc_configuration_list_section(self): self.enterRule(localctx, 48, self.RULE_xc_configuration_list_section) try: self.enterOuterAlt(localctx, 1) - self.state = 450 + self.state = 456 self._errHandler.sync(self) _alt = 1 while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt == 1: - self.state = 449 + self.state = 455 self.xc_configuration_list() else: raise NoViableAltException(self) - self.state = 452 + self.state = 458 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,28,self._ctx) @@ -2572,13 +2596,13 @@ def xc_version_group_section(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 455 + self.state = 461 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 454 + self.state = 460 self.xc_version_group() - self.state = 457 + self.state = 463 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==PBXProjParser.REFERENCE): @@ -2645,27 +2669,27 @@ def pbx_aggregate_target(self): self.enterRule(localctx, 52, self.RULE_pbx_aggregate_target) try: self.enterOuterAlt(localctx, 1) - self.state = 459 + self.state = 465 self.match(PBXProjParser.REFERENCE) - self.state = 460 + self.state = 466 self.match(PBXProjParser.T__2) - self.state = 461 + self.state = 467 self.match(PBXProjParser.T__0) - self.state = 462 + self.state = 468 self.isa_pbx_aggregate_target() - self.state = 463 + self.state = 469 self.build_configuration_list() - self.state = 464 + self.state = 470 self.build_phases() - self.state = 465 + self.state = 471 self.dependencies() - self.state = 466 + self.state = 472 self.name() - self.state = 467 + self.state = 473 self.product_name() - self.state = 468 + self.state = 474 self.match(PBXProjParser.T__1) - self.state = 469 + self.state = 475 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -2717,27 +2741,27 @@ def pbx_build_file(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 471 + self.state = 477 self.match(PBXProjParser.REFERENCE) - self.state = 472 + self.state = 478 self.match(PBXProjParser.T__2) - self.state = 473 + self.state = 479 self.match(PBXProjParser.T__0) - self.state = 474 + self.state = 480 self.isa_pbx_build_file() - self.state = 475 + self.state = 481 self.file_ref() - self.state = 477 + self.state = 483 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__94: - self.state = 476 + if _la==PBXProjParser.T__97: + self.state = 482 self.settings() - self.state = 479 + self.state = 485 self.match(PBXProjParser.T__1) - self.state = 480 + self.state = 486 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -2796,25 +2820,25 @@ def pbx_container_item_proxy(self): self.enterRule(localctx, 56, self.RULE_pbx_container_item_proxy) try: self.enterOuterAlt(localctx, 1) - self.state = 482 + self.state = 488 self.match(PBXProjParser.REFERENCE) - self.state = 483 + self.state = 489 self.match(PBXProjParser.T__2) - self.state = 484 + self.state = 490 self.match(PBXProjParser.T__0) - self.state = 485 + self.state = 491 self.isa_pbx_container_item_proxy() - self.state = 486 + self.state = 492 self.container_portal() - self.state = 487 + self.state = 493 self.proxy_type() - self.state = 488 + self.state = 494 self.remote_global_id_string() - self.state = 489 + self.state = 495 self.remote_info() - self.state = 490 + self.state = 496 self.match(PBXProjParser.T__1) - self.state = 491 + self.state = 497 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -2882,35 +2906,35 @@ def pbx_copy_files_build_phase(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 493 + self.state = 499 self.match(PBXProjParser.REFERENCE) - self.state = 494 + self.state = 500 self.match(PBXProjParser.T__2) - self.state = 495 + self.state = 501 self.match(PBXProjParser.T__0) - self.state = 496 + self.state = 502 self.isa_pbx_copy_files_build_phase() - self.state = 497 + self.state = 503 self.build_action_mask() - self.state = 498 + self.state = 504 self.dst_path() - self.state = 499 + self.state = 505 self.dst_subfolder_spec() - self.state = 500 + self.state = 506 self.files() - self.state = 502 + self.state = 508 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__37: - self.state = 501 + self.state = 507 self.name() - self.state = 504 + self.state = 510 self.run_only_for_deployment_postprocessing() - self.state = 505 + self.state = 511 self.match(PBXProjParser.T__1) - self.state = 506 + self.state = 512 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -2990,89 +3014,89 @@ def pbx_file_reference(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 508 + self.state = 514 self.match(PBXProjParser.REFERENCE) - self.state = 509 + self.state = 515 self.match(PBXProjParser.T__2) - self.state = 510 + self.state = 516 self.match(PBXProjParser.T__0) - self.state = 511 + self.state = 517 self.isa_pbx_file_reference() - self.state = 513 + self.state = 519 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__29: - self.state = 512 + self.state = 518 self.explicit_file_type() - self.state = 516 + self.state = 522 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__28: - self.state = 515 + self.state = 521 self.file_encoding() - self.state = 519 + self.state = 525 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__31: - self.state = 518 + self.state = 524 self.include_in_index() - self.state = 522 + self.state = 528 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__30: - self.state = 521 + self.state = 527 self.last_known_file_type() - self.state = 525 + self.state = 531 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__53: - self.state = 524 + self.state = 530 self.line_ending() - self.state = 528 + self.state = 534 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__37: - self.state = 527 + self.state = 533 self.name() - self.state = 531 + self.state = 537 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__38: - self.state = 530 + self.state = 536 self.path() - self.state = 534 + self.state = 540 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__39: - self.state = 533 + self.state = 539 self.source_tree() - self.state = 537 + self.state = 543 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__54: - self.state = 536 + self.state = 542 self.xc_language_specification_identifier() - self.state = 539 + self.state = 545 self.match(PBXProjParser.T__1) - self.state = 540 + self.state = 546 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3127,23 +3151,23 @@ def pbx_frameworks_build_phase(self): self.enterRule(localctx, 62, self.RULE_pbx_frameworks_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 542 + self.state = 548 self.match(PBXProjParser.REFERENCE) - self.state = 543 + self.state = 549 self.match(PBXProjParser.T__2) - self.state = 544 + self.state = 550 self.match(PBXProjParser.T__0) - self.state = 545 + self.state = 551 self.isa_pbx_frameworks_build_phase() - self.state = 546 + self.state = 552 self.build_action_mask() - self.state = 547 + self.state = 553 self.files() - self.state = 548 + self.state = 554 self.run_only_for_deployment_postprocessing() - self.state = 549 + self.state = 555 self.match(PBXProjParser.T__1) - self.state = 550 + self.state = 556 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3215,61 +3239,61 @@ def pbx_group(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 552 + self.state = 558 self.match(PBXProjParser.REFERENCE) - self.state = 553 + self.state = 559 self.match(PBXProjParser.T__2) - self.state = 554 + self.state = 560 self.match(PBXProjParser.T__0) - self.state = 555 + self.state = 561 self.isa_pbx_group() - self.state = 556 + self.state = 562 self.children() - self.state = 558 + self.state = 564 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__32: - self.state = 557 + self.state = 563 self.indent_width() - self.state = 561 + self.state = 567 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__37: - self.state = 560 + self.state = 566 self.name() - self.state = 564 + self.state = 570 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__38: - self.state = 563 + self.state = 569 self.path() - self.state = 566 + self.state = 572 self.source_tree() - self.state = 568 + self.state = 574 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__33: - self.state = 567 + self.state = 573 self.tab_width() - self.state = 571 + self.state = 577 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__34: - self.state = 570 + self.state = 576 self.uses_tabs() - self.state = 573 + self.state = 579 self.match(PBXProjParser.T__1) - self.state = 574 + self.state = 580 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3324,23 +3348,23 @@ def pbx_headers_build_phase(self): self.enterRule(localctx, 66, self.RULE_pbx_headers_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 576 + self.state = 582 self.match(PBXProjParser.REFERENCE) - self.state = 577 + self.state = 583 self.match(PBXProjParser.T__2) - self.state = 578 + self.state = 584 self.match(PBXProjParser.T__0) - self.state = 579 + self.state = 585 self.isa_pbx_header_build_phase() - self.state = 580 + self.state = 586 self.build_action_mask() - self.state = 581 + self.state = 587 self.files() - self.state = 582 + self.state = 588 self.run_only_for_deployment_postprocessing() - self.state = 583 + self.state = 589 self.match(PBXProjParser.T__1) - self.state = 584 + self.state = 590 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3420,41 +3444,41 @@ def pbx_native_target(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 586 + self.state = 592 self.match(PBXProjParser.REFERENCE) - self.state = 587 + self.state = 593 self.match(PBXProjParser.T__2) - self.state = 588 + self.state = 594 self.match(PBXProjParser.T__0) - self.state = 589 + self.state = 595 self.isa_pbx_native_target() - self.state = 590 + self.state = 596 self.build_configuration_list() - self.state = 591 + self.state = 597 self.build_phases() - self.state = 592 + self.state = 598 self.build_rules() - self.state = 593 + self.state = 599 self.dependencies() - self.state = 594 + self.state = 600 self.name() - self.state = 596 + self.state = 602 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__36: - self.state = 595 + self.state = 601 self.product_install_path() - self.state = 598 + self.state = 604 self.product_name() - self.state = 599 + self.state = 605 self.product_reference() - self.state = 600 + self.state = 606 self.product_type() - self.state = 601 + self.state = 607 self.match(PBXProjParser.T__1) - self.state = 602 + self.state = 608 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3546,53 +3570,53 @@ def pbx_project(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 604 + self.state = 610 self.match(PBXProjParser.REFERENCE) - self.state = 605 + self.state = 611 self.match(PBXProjParser.T__2) - self.state = 606 + self.state = 612 self.match(PBXProjParser.T__0) - self.state = 607 + self.state = 613 self.isa_pbx_project() - self.state = 608 + self.state = 614 self.attributes() - self.state = 609 + self.state = 615 self.build_configuration_list() - self.state = 610 + self.state = 616 self.compatibility_version() - self.state = 611 + self.state = 617 self.development_region() - self.state = 612 + self.state = 618 self.has_scanned_for_encodings() - self.state = 613 + self.state = 619 self.known_regions() - self.state = 614 + self.state = 620 self.main_group() - self.state = 616 + self.state = 622 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__71: - self.state = 615 + if _la==PBXProjParser.T__72: + self.state = 621 self.product_ref_group() - self.state = 618 + self.state = 624 self.project_dir_path() - self.state = 620 + self.state = 626 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__73: - self.state = 619 + if _la==PBXProjParser.T__74: + self.state = 625 self.project_references() - self.state = 622 + self.state = 628 self.project_root() - self.state = 623 + self.state = 629 self.targets() - self.state = 624 + self.state = 630 self.match(PBXProjParser.T__1) - self.state = 625 + self.state = 631 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3651,25 +3675,25 @@ def pbx_reference_proxy(self): self.enterRule(localctx, 72, self.RULE_pbx_reference_proxy) try: self.enterOuterAlt(localctx, 1) - self.state = 627 + self.state = 633 self.match(PBXProjParser.REFERENCE) - self.state = 628 + self.state = 634 self.match(PBXProjParser.T__2) - self.state = 629 + self.state = 635 self.match(PBXProjParser.T__0) - self.state = 630 + self.state = 636 self.isa_pbx_reference_proxy() - self.state = 631 + self.state = 637 self.file_type() - self.state = 632 + self.state = 638 self.path() - self.state = 633 + self.state = 639 self.remote_ref() - self.state = 634 + self.state = 640 self.source_tree() - self.state = 635 + self.state = 641 self.match(PBXProjParser.T__1) - self.state = 636 + self.state = 642 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3724,23 +3748,23 @@ def pbx_resources_build_phase(self): self.enterRule(localctx, 74, self.RULE_pbx_resources_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 638 + self.state = 644 self.match(PBXProjParser.REFERENCE) - self.state = 639 + self.state = 645 self.match(PBXProjParser.T__2) - self.state = 640 + self.state = 646 self.match(PBXProjParser.T__0) - self.state = 641 + self.state = 647 self.isa_pbx_resources_build_phase() - self.state = 642 + self.state = 648 self.build_action_mask() - self.state = 643 + self.state = 649 self.files() - self.state = 644 + self.state = 650 self.run_only_for_deployment_postprocessing() - self.state = 645 + self.state = 651 self.match(PBXProjParser.T__1) - self.state = 646 + self.state = 652 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3791,10 +3815,18 @@ def shell_script(self): return self.getTypedRuleContext(PBXProjParser.Shell_scriptContext,0) + def input_file_list_paths(self): + return self.getTypedRuleContext(PBXProjParser.Input_file_list_pathsContext,0) + + def name(self): return self.getTypedRuleContext(PBXProjParser.NameContext,0) + def output_file_list_paths(self): + return self.getTypedRuleContext(PBXProjParser.Output_file_list_pathsContext,0) + + def show_env_vars_in_log(self): return self.getTypedRuleContext(PBXProjParser.Show_env_vars_in_logContext,0) @@ -3820,47 +3852,63 @@ def pbx_shell_script_build_phase(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 648 + self.state = 654 self.match(PBXProjParser.REFERENCE) - self.state = 649 + self.state = 655 self.match(PBXProjParser.T__2) - self.state = 650 + self.state = 656 self.match(PBXProjParser.T__0) - self.state = 651 + self.state = 657 self.isa_pbx_shell_script_build_phase() - self.state = 652 + self.state = 658 self.build_action_mask() - self.state = 653 + self.state = 659 self.files() - self.state = 654 + self.state = 661 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==PBXProjParser.T__77: + self.state = 660 + self.input_file_list_paths() + + + self.state = 663 self.input_paths() - self.state = 656 + self.state = 665 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__37: - self.state = 655 + self.state = 664 self.name() - self.state = 658 + self.state = 668 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==PBXProjParser.T__79: + self.state = 667 + self.output_file_list_paths() + + + self.state = 670 self.output_paths() - self.state = 659 + self.state = 671 self.run_only_for_deployment_postprocessing() - self.state = 660 + self.state = 672 self.shell_path() - self.state = 661 + self.state = 673 self.shell_script() - self.state = 663 + self.state = 675 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__80: - self.state = 662 + if _la==PBXProjParser.T__83: + self.state = 674 self.show_env_vars_in_log() - self.state = 665 + self.state = 677 self.match(PBXProjParser.T__1) - self.state = 666 + self.state = 678 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3915,23 +3963,23 @@ def pbx_sources_build_phase(self): self.enterRule(localctx, 78, self.RULE_pbx_sources_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 668 + self.state = 680 self.match(PBXProjParser.REFERENCE) - self.state = 669 + self.state = 681 self.match(PBXProjParser.T__2) - self.state = 670 + self.state = 682 self.match(PBXProjParser.T__0) - self.state = 671 + self.state = 683 self.isa_pbx_sources_build_phase() - self.state = 672 + self.state = 684 self.build_action_mask() - self.state = 673 + self.state = 685 self.files() - self.state = 674 + self.state = 686 self.run_only_for_deployment_postprocessing() - self.state = 675 + self.state = 687 self.match(PBXProjParser.T__1) - self.state = 676 + self.state = 688 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -3987,35 +4035,35 @@ def pbx_target_dependency(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 678 + self.state = 690 self.match(PBXProjParser.REFERENCE) - self.state = 679 + self.state = 691 self.match(PBXProjParser.T__2) - self.state = 680 + self.state = 692 self.match(PBXProjParser.T__0) - self.state = 681 + self.state = 693 self.isa_pbx_target_dependency() - self.state = 683 + self.state = 695 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__37: - self.state = 682 + self.state = 694 self.name() - self.state = 686 + self.state = 698 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__81: - self.state = 685 + if _la==PBXProjParser.T__84: + self.state = 697 self.target() - self.state = 688 + self.state = 700 self.target_proxy() - self.state = 689 + self.state = 701 self.match(PBXProjParser.T__1) - self.state = 690 + self.state = 702 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4075,31 +4123,31 @@ def pbx_variant_group(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 692 + self.state = 704 self.match(PBXProjParser.REFERENCE) - self.state = 693 + self.state = 705 self.match(PBXProjParser.T__2) - self.state = 694 + self.state = 706 self.match(PBXProjParser.T__0) - self.state = 695 + self.state = 707 self.isa_pbx_variant_group() - self.state = 696 + self.state = 708 self.children() - self.state = 697 + self.state = 709 self.name() - self.state = 699 + self.state = 711 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__38: - self.state = 698 + self.state = 710 self.path() - self.state = 701 + self.state = 713 self.source_tree() - self.state = 702 + self.state = 714 self.match(PBXProjParser.T__1) - self.state = 703 + self.state = 715 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4155,29 +4203,29 @@ def xc_build_configuration(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 705 + self.state = 717 self.match(PBXProjParser.REFERENCE) - self.state = 706 + self.state = 718 self.match(PBXProjParser.T__2) - self.state = 707 + self.state = 719 self.match(PBXProjParser.T__0) - self.state = 708 + self.state = 720 self.isa_xc_build_configuration() - self.state = 710 + self.state = 722 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__85: - self.state = 709 + if _la==PBXProjParser.T__88: + self.state = 721 self.base_configuration_reference() - self.state = 712 + self.state = 724 self.build_settings() - self.state = 713 + self.state = 725 self.name() - self.state = 714 + self.state = 726 self.match(PBXProjParser.T__1) - self.state = 715 + self.state = 727 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4233,29 +4281,29 @@ def xc_configuration_list(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 717 + self.state = 729 self.match(PBXProjParser.REFERENCE) - self.state = 718 + self.state = 730 self.match(PBXProjParser.T__2) - self.state = 719 + self.state = 731 self.match(PBXProjParser.T__0) - self.state = 720 + self.state = 732 self.isa_xc_configuration_list() - self.state = 721 + self.state = 733 self.build_configurations() - self.state = 722 + self.state = 734 self.default_configuration_is_visible() - self.state = 724 + self.state = 736 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__93: - self.state = 723 + if _la==PBXProjParser.T__96: + self.state = 735 self.default_configuration_name() - self.state = 726 + self.state = 738 self.match(PBXProjParser.T__1) - self.state = 727 + self.state = 739 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4318,27 +4366,27 @@ def xc_version_group(self): self.enterRule(localctx, 88, self.RULE_xc_version_group) try: self.enterOuterAlt(localctx, 1) - self.state = 729 + self.state = 741 self.match(PBXProjParser.REFERENCE) - self.state = 730 + self.state = 742 self.match(PBXProjParser.T__2) - self.state = 731 + self.state = 743 self.match(PBXProjParser.T__0) - self.state = 732 + self.state = 744 self.isa_xc_version_group() - self.state = 733 + self.state = 745 self.children() - self.state = 734 + self.state = 746 self.current_version() - self.state = 735 + self.state = 747 self.path() - self.state = 736 + self.state = 748 self.source_tree() - self.state = 737 + self.state = 749 self.version_group_type() - self.state = 738 + self.state = 750 self.match(PBXProjParser.T__1) - self.state = 739 + self.state = 751 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4377,13 +4425,13 @@ def isa_pbx_aggregate_target(self): self.enterRule(localctx, 90, self.RULE_isa_pbx_aggregate_target) try: self.enterOuterAlt(localctx, 1) - self.state = 741 + self.state = 753 self.match(PBXProjParser.ISA) - self.state = 742 + self.state = 754 self.match(PBXProjParser.T__2) - self.state = 743 + self.state = 755 self.match(PBXProjParser.T__4) - self.state = 744 + self.state = 756 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4422,13 +4470,13 @@ def isa_pbx_build_file(self): self.enterRule(localctx, 92, self.RULE_isa_pbx_build_file) try: self.enterOuterAlt(localctx, 1) - self.state = 746 + self.state = 758 self.match(PBXProjParser.ISA) - self.state = 747 + self.state = 759 self.match(PBXProjParser.T__2) - self.state = 748 + self.state = 760 self.match(PBXProjParser.T__5) - self.state = 749 + self.state = 761 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4467,13 +4515,13 @@ def isa_pbx_container_item_proxy(self): self.enterRule(localctx, 94, self.RULE_isa_pbx_container_item_proxy) try: self.enterOuterAlt(localctx, 1) - self.state = 751 + self.state = 763 self.match(PBXProjParser.ISA) - self.state = 752 + self.state = 764 self.match(PBXProjParser.T__2) - self.state = 753 + self.state = 765 self.match(PBXProjParser.T__6) - self.state = 754 + self.state = 766 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4512,13 +4560,13 @@ def isa_pbx_copy_files_build_phase(self): self.enterRule(localctx, 96, self.RULE_isa_pbx_copy_files_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 756 + self.state = 768 self.match(PBXProjParser.ISA) - self.state = 757 + self.state = 769 self.match(PBXProjParser.T__2) - self.state = 758 + self.state = 770 self.match(PBXProjParser.T__7) - self.state = 759 + self.state = 771 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4557,13 +4605,13 @@ def isa_pbx_file_reference(self): self.enterRule(localctx, 98, self.RULE_isa_pbx_file_reference) try: self.enterOuterAlt(localctx, 1) - self.state = 761 + self.state = 773 self.match(PBXProjParser.ISA) - self.state = 762 + self.state = 774 self.match(PBXProjParser.T__2) - self.state = 763 + self.state = 775 self.match(PBXProjParser.T__8) - self.state = 764 + self.state = 776 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4602,13 +4650,13 @@ def isa_pbx_frameworks_build_phase(self): self.enterRule(localctx, 100, self.RULE_isa_pbx_frameworks_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 766 + self.state = 778 self.match(PBXProjParser.ISA) - self.state = 767 + self.state = 779 self.match(PBXProjParser.T__2) - self.state = 768 + self.state = 780 self.match(PBXProjParser.T__9) - self.state = 769 + self.state = 781 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4647,13 +4695,13 @@ def isa_pbx_group(self): self.enterRule(localctx, 102, self.RULE_isa_pbx_group) try: self.enterOuterAlt(localctx, 1) - self.state = 771 + self.state = 783 self.match(PBXProjParser.ISA) - self.state = 772 + self.state = 784 self.match(PBXProjParser.T__2) - self.state = 773 + self.state = 785 self.match(PBXProjParser.T__10) - self.state = 774 + self.state = 786 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4692,13 +4740,13 @@ def isa_pbx_header_build_phase(self): self.enterRule(localctx, 104, self.RULE_isa_pbx_header_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 776 + self.state = 788 self.match(PBXProjParser.ISA) - self.state = 777 + self.state = 789 self.match(PBXProjParser.T__2) - self.state = 778 + self.state = 790 self.match(PBXProjParser.T__11) - self.state = 779 + self.state = 791 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4737,13 +4785,13 @@ def isa_pbx_native_target(self): self.enterRule(localctx, 106, self.RULE_isa_pbx_native_target) try: self.enterOuterAlt(localctx, 1) - self.state = 781 + self.state = 793 self.match(PBXProjParser.ISA) - self.state = 782 + self.state = 794 self.match(PBXProjParser.T__2) - self.state = 783 + self.state = 795 self.match(PBXProjParser.T__12) - self.state = 784 + self.state = 796 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4782,13 +4830,13 @@ def isa_pbx_project(self): self.enterRule(localctx, 108, self.RULE_isa_pbx_project) try: self.enterOuterAlt(localctx, 1) - self.state = 786 + self.state = 798 self.match(PBXProjParser.ISA) - self.state = 787 + self.state = 799 self.match(PBXProjParser.T__2) - self.state = 788 + self.state = 800 self.match(PBXProjParser.T__13) - self.state = 789 + self.state = 801 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4827,13 +4875,13 @@ def isa_pbx_reference_proxy(self): self.enterRule(localctx, 110, self.RULE_isa_pbx_reference_proxy) try: self.enterOuterAlt(localctx, 1) - self.state = 791 + self.state = 803 self.match(PBXProjParser.ISA) - self.state = 792 + self.state = 804 self.match(PBXProjParser.T__2) - self.state = 793 + self.state = 805 self.match(PBXProjParser.T__14) - self.state = 794 + self.state = 806 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4872,13 +4920,13 @@ def isa_pbx_resources_build_phase(self): self.enterRule(localctx, 112, self.RULE_isa_pbx_resources_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 796 + self.state = 808 self.match(PBXProjParser.ISA) - self.state = 797 + self.state = 809 self.match(PBXProjParser.T__2) - self.state = 798 + self.state = 810 self.match(PBXProjParser.T__15) - self.state = 799 + self.state = 811 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4917,13 +4965,13 @@ def isa_pbx_shell_script_build_phase(self): self.enterRule(localctx, 114, self.RULE_isa_pbx_shell_script_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 801 + self.state = 813 self.match(PBXProjParser.ISA) - self.state = 802 + self.state = 814 self.match(PBXProjParser.T__2) - self.state = 803 + self.state = 815 self.match(PBXProjParser.T__16) - self.state = 804 + self.state = 816 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -4962,13 +5010,13 @@ def isa_pbx_sources_build_phase(self): self.enterRule(localctx, 116, self.RULE_isa_pbx_sources_build_phase) try: self.enterOuterAlt(localctx, 1) - self.state = 806 + self.state = 818 self.match(PBXProjParser.ISA) - self.state = 807 + self.state = 819 self.match(PBXProjParser.T__2) - self.state = 808 + self.state = 820 self.match(PBXProjParser.T__17) - self.state = 809 + self.state = 821 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5007,13 +5055,13 @@ def isa_pbx_target_dependency(self): self.enterRule(localctx, 118, self.RULE_isa_pbx_target_dependency) try: self.enterOuterAlt(localctx, 1) - self.state = 811 + self.state = 823 self.match(PBXProjParser.ISA) - self.state = 812 + self.state = 824 self.match(PBXProjParser.T__2) - self.state = 813 + self.state = 825 self.match(PBXProjParser.T__18) - self.state = 814 + self.state = 826 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5052,13 +5100,13 @@ def isa_pbx_variant_group(self): self.enterRule(localctx, 120, self.RULE_isa_pbx_variant_group) try: self.enterOuterAlt(localctx, 1) - self.state = 816 + self.state = 828 self.match(PBXProjParser.ISA) - self.state = 817 + self.state = 829 self.match(PBXProjParser.T__2) - self.state = 818 + self.state = 830 self.match(PBXProjParser.T__19) - self.state = 819 + self.state = 831 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5097,13 +5145,13 @@ def isa_xc_build_configuration(self): self.enterRule(localctx, 122, self.RULE_isa_xc_build_configuration) try: self.enterOuterAlt(localctx, 1) - self.state = 821 + self.state = 833 self.match(PBXProjParser.ISA) - self.state = 822 + self.state = 834 self.match(PBXProjParser.T__2) - self.state = 823 + self.state = 835 self.match(PBXProjParser.T__20) - self.state = 824 + self.state = 836 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5142,13 +5190,13 @@ def isa_xc_configuration_list(self): self.enterRule(localctx, 124, self.RULE_isa_xc_configuration_list) try: self.enterOuterAlt(localctx, 1) - self.state = 826 + self.state = 838 self.match(PBXProjParser.ISA) - self.state = 827 + self.state = 839 self.match(PBXProjParser.T__2) - self.state = 828 + self.state = 840 self.match(PBXProjParser.T__21) - self.state = 829 + self.state = 841 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5187,13 +5235,13 @@ def isa_xc_version_group(self): self.enterRule(localctx, 126, self.RULE_isa_xc_version_group) try: self.enterOuterAlt(localctx, 1) - self.state = 831 + self.state = 843 self.match(PBXProjParser.ISA) - self.state = 832 + self.state = 844 self.match(PBXProjParser.T__2) - self.state = 833 + self.state = 845 self.match(PBXProjParser.T__22) - self.state = 834 + self.state = 846 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5232,13 +5280,13 @@ def file_ref(self): self.enterRule(localctx, 128, self.RULE_file_ref) try: self.enterOuterAlt(localctx, 1) - self.state = 836 + self.state = 848 self.match(PBXProjParser.T__23) - self.state = 837 + self.state = 849 self.match(PBXProjParser.T__2) - self.state = 838 + self.state = 850 self.match(PBXProjParser.REFERENCE) - self.state = 839 + self.state = 851 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5277,13 +5325,13 @@ def container_portal(self): self.enterRule(localctx, 130, self.RULE_container_portal) try: self.enterOuterAlt(localctx, 1) - self.state = 841 + self.state = 853 self.match(PBXProjParser.T__24) - self.state = 842 + self.state = 854 self.match(PBXProjParser.T__2) - self.state = 843 + self.state = 855 self.match(PBXProjParser.REFERENCE) - self.state = 844 + self.state = 856 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5322,13 +5370,13 @@ def proxy_type(self): self.enterRule(localctx, 132, self.RULE_proxy_type) try: self.enterOuterAlt(localctx, 1) - self.state = 846 + self.state = 858 self.match(PBXProjParser.T__25) - self.state = 847 + self.state = 859 self.match(PBXProjParser.T__2) - self.state = 848 + self.state = 860 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 849 + self.state = 861 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5367,13 +5415,13 @@ def remote_global_id_string(self): self.enterRule(localctx, 134, self.RULE_remote_global_id_string) try: self.enterOuterAlt(localctx, 1) - self.state = 851 + self.state = 863 self.match(PBXProjParser.T__26) - self.state = 852 + self.state = 864 self.match(PBXProjParser.T__2) - self.state = 853 + self.state = 865 self.match(PBXProjParser.REFERENCE) - self.state = 854 + self.state = 866 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5413,13 +5461,13 @@ def remote_info(self): self.enterRule(localctx, 136, self.RULE_remote_info) try: self.enterOuterAlt(localctx, 1) - self.state = 856 + self.state = 868 self.match(PBXProjParser.T__27) - self.state = 857 + self.state = 869 self.match(PBXProjParser.T__2) - self.state = 858 + self.state = 870 self.any_string() - self.state = 859 + self.state = 871 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5458,13 +5506,13 @@ def file_encoding(self): self.enterRule(localctx, 138, self.RULE_file_encoding) try: self.enterOuterAlt(localctx, 1) - self.state = 861 + self.state = 873 self.match(PBXProjParser.T__28) - self.state = 862 + self.state = 874 self.match(PBXProjParser.T__2) - self.state = 863 + self.state = 875 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 864 + self.state = 876 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5504,13 +5552,13 @@ def explicit_file_type(self): self.enterRule(localctx, 140, self.RULE_explicit_file_type) try: self.enterOuterAlt(localctx, 1) - self.state = 866 + self.state = 878 self.match(PBXProjParser.T__29) - self.state = 867 + self.state = 879 self.match(PBXProjParser.T__2) - self.state = 868 + self.state = 880 self.any_string() - self.state = 869 + self.state = 881 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5550,13 +5598,13 @@ def last_known_file_type(self): self.enterRule(localctx, 142, self.RULE_last_known_file_type) try: self.enterOuterAlt(localctx, 1) - self.state = 871 + self.state = 883 self.match(PBXProjParser.T__30) - self.state = 872 + self.state = 884 self.match(PBXProjParser.T__2) - self.state = 873 + self.state = 885 self.any_string() - self.state = 874 + self.state = 886 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5595,13 +5643,13 @@ def include_in_index(self): self.enterRule(localctx, 144, self.RULE_include_in_index) try: self.enterOuterAlt(localctx, 1) - self.state = 876 + self.state = 888 self.match(PBXProjParser.T__31) - self.state = 877 + self.state = 889 self.match(PBXProjParser.T__2) - self.state = 878 + self.state = 890 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 879 + self.state = 891 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5640,13 +5688,13 @@ def indent_width(self): self.enterRule(localctx, 146, self.RULE_indent_width) try: self.enterOuterAlt(localctx, 1) - self.state = 881 + self.state = 893 self.match(PBXProjParser.T__32) - self.state = 882 + self.state = 894 self.match(PBXProjParser.T__2) - self.state = 883 + self.state = 895 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 884 + self.state = 896 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5685,13 +5733,13 @@ def tab_width(self): self.enterRule(localctx, 148, self.RULE_tab_width) try: self.enterOuterAlt(localctx, 1) - self.state = 886 + self.state = 898 self.match(PBXProjParser.T__33) - self.state = 887 + self.state = 899 self.match(PBXProjParser.T__2) - self.state = 888 + self.state = 900 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 889 + self.state = 901 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5730,13 +5778,13 @@ def uses_tabs(self): self.enterRule(localctx, 150, self.RULE_uses_tabs) try: self.enterOuterAlt(localctx, 1) - self.state = 891 + self.state = 903 self.match(PBXProjParser.T__34) - self.state = 892 + self.state = 904 self.match(PBXProjParser.T__2) - self.state = 893 + self.state = 905 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 894 + self.state = 906 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5776,13 +5824,13 @@ def children(self): self.enterRule(localctx, 152, self.RULE_children) try: self.enterOuterAlt(localctx, 1) - self.state = 896 + self.state = 908 self.match(PBXProjParser.T__35) - self.state = 897 + self.state = 909 self.match(PBXProjParser.T__2) - self.state = 898 + self.state = 910 self.reference_list() - self.state = 899 + self.state = 911 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5821,13 +5869,13 @@ def product_install_path(self): self.enterRule(localctx, 154, self.RULE_product_install_path) try: self.enterOuterAlt(localctx, 1) - self.state = 901 + self.state = 913 self.match(PBXProjParser.T__36) - self.state = 902 + self.state = 914 self.match(PBXProjParser.T__2) - self.state = 903 + self.state = 915 self.match(PBXProjParser.QUOTED_STRING) - self.state = 904 + self.state = 916 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5870,18 +5918,18 @@ def name(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 906 + self.state = 918 self.match(PBXProjParser.T__37) - self.state = 907 + self.state = 919 self.match(PBXProjParser.T__2) - self.state = 908 + self.state = 920 _la = self._input.LA(1) if not(_la==PBXProjParser.QUOTED_STRING or _la==PBXProjParser.NON_QUOTED_STRING): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 909 + self.state = 921 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5924,18 +5972,18 @@ def path(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 911 + self.state = 923 self.match(PBXProjParser.T__38) - self.state = 912 + self.state = 924 self.match(PBXProjParser.T__2) - self.state = 913 + self.state = 925 _la = self._input.LA(1) if not(_la==PBXProjParser.QUOTED_STRING or _la==PBXProjParser.NON_QUOTED_STRING): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 914 + self.state = 926 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -5978,18 +6026,18 @@ def source_tree(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 916 + self.state = 928 self.match(PBXProjParser.T__39) - self.state = 917 + self.state = 929 self.match(PBXProjParser.T__2) - self.state = 918 + self.state = 930 _la = self._input.LA(1) if not(_la==PBXProjParser.QUOTED_STRING or _la==PBXProjParser.NON_QUOTED_STRING): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 919 + self.state = 931 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6028,13 +6076,13 @@ def build_action_mask(self): self.enterRule(localctx, 162, self.RULE_build_action_mask) try: self.enterOuterAlt(localctx, 1) - self.state = 921 + self.state = 933 self.match(PBXProjParser.T__40) - self.state = 922 + self.state = 934 self.match(PBXProjParser.T__2) - self.state = 923 + self.state = 935 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 924 + self.state = 936 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6074,13 +6122,13 @@ def files(self): self.enterRule(localctx, 164, self.RULE_files) try: self.enterOuterAlt(localctx, 1) - self.state = 926 + self.state = 938 self.match(PBXProjParser.T__41) - self.state = 927 + self.state = 939 self.match(PBXProjParser.T__2) - self.state = 928 + self.state = 940 self.reference_list() - self.state = 929 + self.state = 941 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6119,13 +6167,13 @@ def run_only_for_deployment_postprocessing(self): self.enterRule(localctx, 166, self.RULE_run_only_for_deployment_postprocessing) try: self.enterOuterAlt(localctx, 1) - self.state = 931 + self.state = 943 self.match(PBXProjParser.T__42) - self.state = 932 + self.state = 944 self.match(PBXProjParser.T__2) - self.state = 933 + self.state = 945 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 934 + self.state = 946 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6168,21 +6216,21 @@ def reference_list(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 936 + self.state = 948 self.match(PBXProjParser.T__43) - self.state = 941 + self.state = 953 self._errHandler.sync(self) _la = self._input.LA(1) while _la==PBXProjParser.REFERENCE: - self.state = 937 + self.state = 949 self.match(PBXProjParser.REFERENCE) - self.state = 938 + self.state = 950 self.match(PBXProjParser.T__44) - self.state = 943 + self.state = 955 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 944 + self.state = 956 self.match(PBXProjParser.T__45) except RecognitionException as re: localctx.exception = re @@ -6226,21 +6274,21 @@ def any_string_list(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 946 + self.state = 958 self.match(PBXProjParser.T__43) - self.state = 952 + self.state = 964 self._errHandler.sync(self) _la = self._input.LA(1) - while ((((_la - 107)) & ~0x3f) == 0 and ((1 << (_la - 107)) & ((1 << (PBXProjParser.QUOTED_STRING - 107)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 107)) | (1 << (PBXProjParser.VARIABLE - 107)))) != 0): - self.state = 947 + while ((((_la - 110)) & ~0x3f) == 0 and ((1 << (_la - 110)) & ((1 << (PBXProjParser.QUOTED_STRING - 110)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 110)) | (1 << (PBXProjParser.VARIABLE - 110)))) != 0): + self.state = 959 self.any_string() - self.state = 948 + self.state = 960 self.match(PBXProjParser.T__44) - self.state = 954 + self.state = 966 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 955 + self.state = 967 self.match(PBXProjParser.T__45) except RecognitionException as re: localctx.exception = re @@ -6283,21 +6331,21 @@ def non_quoted_strings_list(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 957 + self.state = 969 self.match(PBXProjParser.T__43) - self.state = 962 + self.state = 974 self._errHandler.sync(self) _la = self._input.LA(1) while _la==PBXProjParser.NON_QUOTED_STRING: - self.state = 958 + self.state = 970 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 959 + self.state = 971 self.match(PBXProjParser.T__44) - self.state = 964 + self.state = 976 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 965 + self.state = 977 self.match(PBXProjParser.T__45) except RecognitionException as re: localctx.exception = re @@ -6336,13 +6384,13 @@ def build_configuration_list(self): self.enterRule(localctx, 174, self.RULE_build_configuration_list) try: self.enterOuterAlt(localctx, 1) - self.state = 967 + self.state = 979 self.match(PBXProjParser.T__46) - self.state = 968 + self.state = 980 self.match(PBXProjParser.T__2) - self.state = 969 + self.state = 981 self.match(PBXProjParser.REFERENCE) - self.state = 970 + self.state = 982 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6382,13 +6430,13 @@ def build_phases(self): self.enterRule(localctx, 176, self.RULE_build_phases) try: self.enterOuterAlt(localctx, 1) - self.state = 972 + self.state = 984 self.match(PBXProjParser.T__47) - self.state = 973 + self.state = 985 self.match(PBXProjParser.T__2) - self.state = 974 + self.state = 986 self.reference_list() - self.state = 975 + self.state = 987 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6428,13 +6476,13 @@ def build_rules(self): self.enterRule(localctx, 178, self.RULE_build_rules) try: self.enterOuterAlt(localctx, 1) - self.state = 977 + self.state = 989 self.match(PBXProjParser.T__48) - self.state = 978 + self.state = 990 self.match(PBXProjParser.T__2) - self.state = 979 + self.state = 991 self.reference_list() - self.state = 980 + self.state = 992 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6474,13 +6522,13 @@ def dependencies(self): self.enterRule(localctx, 180, self.RULE_dependencies) try: self.enterOuterAlt(localctx, 1) - self.state = 982 + self.state = 994 self.match(PBXProjParser.T__49) - self.state = 983 + self.state = 995 self.match(PBXProjParser.T__2) - self.state = 984 + self.state = 996 self.reference_list() - self.state = 985 + self.state = 997 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6520,13 +6568,13 @@ def product_name(self): self.enterRule(localctx, 182, self.RULE_product_name) try: self.enterOuterAlt(localctx, 1) - self.state = 987 + self.state = 999 self.match(PBXProjParser.T__50) - self.state = 988 + self.state = 1000 self.match(PBXProjParser.T__2) - self.state = 989 + self.state = 1001 self.any_string() - self.state = 990 + self.state = 1002 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6565,13 +6613,13 @@ def product_reference(self): self.enterRule(localctx, 184, self.RULE_product_reference) try: self.enterOuterAlt(localctx, 1) - self.state = 992 + self.state = 1004 self.match(PBXProjParser.T__51) - self.state = 993 + self.state = 1005 self.match(PBXProjParser.T__2) - self.state = 994 + self.state = 1006 self.match(PBXProjParser.REFERENCE) - self.state = 995 + self.state = 1007 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6610,13 +6658,13 @@ def product_type(self): self.enterRule(localctx, 186, self.RULE_product_type) try: self.enterOuterAlt(localctx, 1) - self.state = 997 + self.state = 1009 self.match(PBXProjParser.T__52) - self.state = 998 + self.state = 1010 self.match(PBXProjParser.T__2) - self.state = 999 + self.state = 1011 self.match(PBXProjParser.QUOTED_STRING) - self.state = 1000 + self.state = 1012 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6655,13 +6703,13 @@ def line_ending(self): self.enterRule(localctx, 188, self.RULE_line_ending) try: self.enterOuterAlt(localctx, 1) - self.state = 1002 + self.state = 1014 self.match(PBXProjParser.T__53) - self.state = 1003 + self.state = 1015 self.match(PBXProjParser.T__2) - self.state = 1004 + self.state = 1016 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1005 + self.state = 1017 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6701,13 +6749,13 @@ def xc_language_specification_identifier(self): self.enterRule(localctx, 190, self.RULE_xc_language_specification_identifier) try: self.enterOuterAlt(localctx, 1) - self.state = 1007 + self.state = 1019 self.match(PBXProjParser.T__54) - self.state = 1008 + self.state = 1020 self.match(PBXProjParser.T__2) - self.state = 1009 + self.state = 1021 self.any_string() - self.state = 1010 + self.state = 1022 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6731,6 +6779,10 @@ def class_prefix(self): return self.getTypedRuleContext(PBXProjParser.Class_prefixContext,0) + def default_build_system_type_for_workspace(self): + return self.getTypedRuleContext(PBXProjParser.Default_build_system_type_for_workspaceContext,0) + + def last_swift_migration(self): return self.getTypedRuleContext(PBXProjParser.Last_swift_migrationContext,0) @@ -6772,65 +6824,73 @@ def attributes(self): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1012 + self.state = 1024 self.match(PBXProjParser.T__55) - self.state = 1013 + self.state = 1025 self.match(PBXProjParser.T__2) - self.state = 1014 + self.state = 1026 self.match(PBXProjParser.T__0) - self.state = 1016 + self.state = 1028 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__98: - self.state = 1015 + if _la==PBXProjParser.T__101: + self.state = 1027 self.class_prefix() - self.state = 1019 + self.state = 1031 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==PBXProjParser.T__57: + self.state = 1030 + self.default_build_system_type_for_workspace() + + + self.state = 1034 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__56: - self.state = 1018 + self.state = 1033 self.last_swift_migration() - self.state = 1022 + self.state = 1037 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__57: - self.state = 1021 + if _la==PBXProjParser.T__58: + self.state = 1036 self.last_swift_update_check() - self.state = 1024 + self.state = 1039 self.last_upgrade_check() - self.state = 1026 + self.state = 1041 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__59: - self.state = 1025 + if _la==PBXProjParser.T__60: + self.state = 1040 self.last_testing_upgrade_check() - self.state = 1029 + self.state = 1044 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__60: - self.state = 1028 + if _la==PBXProjParser.T__61: + self.state = 1043 self.organization_name() - self.state = 1032 + self.state = 1047 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__61: - self.state = 1031 + if _la==PBXProjParser.T__62: + self.state = 1046 self.target_attributes() - self.state = 1034 + self.state = 1049 self.match(PBXProjParser.T__1) - self.state = 1035 + self.state = 1050 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6869,13 +6929,13 @@ def last_swift_migration(self): self.enterRule(localctx, 194, self.RULE_last_swift_migration) try: self.enterOuterAlt(localctx, 1) - self.state = 1037 + self.state = 1052 self.match(PBXProjParser.T__56) - self.state = 1038 + self.state = 1053 self.match(PBXProjParser.T__2) - self.state = 1039 + self.state = 1054 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1040 + self.state = 1055 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6885,42 +6945,42 @@ def last_swift_migration(self): self.exitRule() return localctx - class Last_swift_update_checkContext(ParserRuleContext): + class Default_build_system_type_for_workspaceContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): - super(PBXProjParser.Last_swift_update_checkContext, self).__init__(parent, invokingState) + super(PBXProjParser.Default_build_system_type_for_workspaceContext, self).__init__(parent, invokingState) self.parser = parser def NON_QUOTED_STRING(self): return self.getToken(PBXProjParser.NON_QUOTED_STRING, 0) def getRuleIndex(self): - return PBXProjParser.RULE_last_swift_update_check + return PBXProjParser.RULE_default_build_system_type_for_workspace def enterRule(self, listener): - if hasattr(listener, "enterLast_swift_update_check"): - listener.enterLast_swift_update_check(self) + if hasattr(listener, "enterDefault_build_system_type_for_workspace"): + listener.enterDefault_build_system_type_for_workspace(self) def exitRule(self, listener): - if hasattr(listener, "exitLast_swift_update_check"): - listener.exitLast_swift_update_check(self) + if hasattr(listener, "exitDefault_build_system_type_for_workspace"): + listener.exitDefault_build_system_type_for_workspace(self) - def last_swift_update_check(self): + def default_build_system_type_for_workspace(self): - localctx = PBXProjParser.Last_swift_update_checkContext(self, self._ctx, self.state) - self.enterRule(localctx, 196, self.RULE_last_swift_update_check) + localctx = PBXProjParser.Default_build_system_type_for_workspaceContext(self, self._ctx, self.state) + self.enterRule(localctx, 196, self.RULE_default_build_system_type_for_workspace) try: self.enterOuterAlt(localctx, 1) - self.state = 1042 + self.state = 1057 self.match(PBXProjParser.T__57) - self.state = 1043 + self.state = 1058 self.match(PBXProjParser.T__2) - self.state = 1044 + self.state = 1059 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1045 + self.state = 1060 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -6930,17 +6990,62 @@ def last_swift_update_check(self): self.exitRule() return localctx - class Last_upgrade_checkContext(ParserRuleContext): + class Last_swift_update_checkContext(ParserRuleContext): def __init__(self, parser, parent=None, invokingState=-1): - super(PBXProjParser.Last_upgrade_checkContext, self).__init__(parent, invokingState) + super(PBXProjParser.Last_swift_update_checkContext, self).__init__(parent, invokingState) self.parser = parser def NON_QUOTED_STRING(self): return self.getToken(PBXProjParser.NON_QUOTED_STRING, 0) def getRuleIndex(self): - return PBXProjParser.RULE_last_upgrade_check + return PBXProjParser.RULE_last_swift_update_check + + def enterRule(self, listener): + if hasattr(listener, "enterLast_swift_update_check"): + listener.enterLast_swift_update_check(self) + + def exitRule(self, listener): + if hasattr(listener, "exitLast_swift_update_check"): + listener.exitLast_swift_update_check(self) + + + + + def last_swift_update_check(self): + + localctx = PBXProjParser.Last_swift_update_checkContext(self, self._ctx, self.state) + self.enterRule(localctx, 198, self.RULE_last_swift_update_check) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1062 + self.match(PBXProjParser.T__58) + self.state = 1063 + self.match(PBXProjParser.T__2) + self.state = 1064 + self.match(PBXProjParser.NON_QUOTED_STRING) + self.state = 1065 + self.match(PBXProjParser.T__3) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class Last_upgrade_checkContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(PBXProjParser.Last_upgrade_checkContext, self).__init__(parent, invokingState) + self.parser = parser + + def NON_QUOTED_STRING(self): + return self.getToken(PBXProjParser.NON_QUOTED_STRING, 0) + + def getRuleIndex(self): + return PBXProjParser.RULE_last_upgrade_check def enterRule(self, listener): if hasattr(listener, "enterLast_upgrade_check"): @@ -6956,16 +7061,16 @@ def exitRule(self, listener): def last_upgrade_check(self): localctx = PBXProjParser.Last_upgrade_checkContext(self, self._ctx, self.state) - self.enterRule(localctx, 198, self.RULE_last_upgrade_check) + self.enterRule(localctx, 200, self.RULE_last_upgrade_check) try: self.enterOuterAlt(localctx, 1) - self.state = 1047 - self.match(PBXProjParser.T__58) - self.state = 1048 + self.state = 1067 + self.match(PBXProjParser.T__59) + self.state = 1068 self.match(PBXProjParser.T__2) - self.state = 1049 + self.state = 1069 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1050 + self.state = 1070 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7001,16 +7106,16 @@ def exitRule(self, listener): def last_testing_upgrade_check(self): localctx = PBXProjParser.Last_testing_upgrade_checkContext(self, self._ctx, self.state) - self.enterRule(localctx, 200, self.RULE_last_testing_upgrade_check) + self.enterRule(localctx, 202, self.RULE_last_testing_upgrade_check) try: self.enterOuterAlt(localctx, 1) - self.state = 1052 - self.match(PBXProjParser.T__59) - self.state = 1053 + self.state = 1072 + self.match(PBXProjParser.T__60) + self.state = 1073 self.match(PBXProjParser.T__2) - self.state = 1054 + self.state = 1074 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1055 + self.state = 1075 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7047,16 +7152,16 @@ def exitRule(self, listener): def organization_name(self): localctx = PBXProjParser.Organization_nameContext(self, self._ctx, self.state) - self.enterRule(localctx, 202, self.RULE_organization_name) + self.enterRule(localctx, 204, self.RULE_organization_name) try: self.enterOuterAlt(localctx, 1) - self.state = 1057 - self.match(PBXProjParser.T__60) - self.state = 1058 + self.state = 1077 + self.match(PBXProjParser.T__61) + self.state = 1078 self.match(PBXProjParser.T__2) - self.state = 1059 + self.state = 1079 self.any_string() - self.state = 1060 + self.state = 1080 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7096,29 +7201,29 @@ def exitRule(self, listener): def target_attributes(self): localctx = PBXProjParser.Target_attributesContext(self, self._ctx, self.state) - self.enterRule(localctx, 204, self.RULE_target_attributes) + self.enterRule(localctx, 206, self.RULE_target_attributes) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1062 - self.match(PBXProjParser.T__61) - self.state = 1063 + self.state = 1082 + self.match(PBXProjParser.T__62) + self.state = 1083 self.match(PBXProjParser.T__2) - self.state = 1064 + self.state = 1084 self.match(PBXProjParser.T__0) - self.state = 1068 + self.state = 1088 self._errHandler.sync(self) _la = self._input.LA(1) while _la==PBXProjParser.REFERENCE: - self.state = 1065 + self.state = 1085 self.target_attribute() - self.state = 1070 + self.state = 1090 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1071 + self.state = 1091 self.match(PBXProjParser.T__1) - self.state = 1072 + self.state = 1092 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7181,75 +7286,75 @@ def exitRule(self, listener): def target_attribute(self): localctx = PBXProjParser.Target_attributeContext(self, self._ctx, self.state) - self.enterRule(localctx, 206, self.RULE_target_attribute) + self.enterRule(localctx, 208, self.RULE_target_attribute) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1074 + self.state = 1094 self.match(PBXProjParser.REFERENCE) - self.state = 1075 + self.state = 1095 self.match(PBXProjParser.T__2) - self.state = 1076 + self.state = 1096 self.match(PBXProjParser.T__0) - self.state = 1078 + self.state = 1098 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__62: - self.state = 1077 + if _la==PBXProjParser.T__63: + self.state = 1097 self.created_on_tools_version() - self.state = 1081 + self.state = 1101 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,67,self._ctx) + la_ = self._interp.adaptivePredict(self._input,70,self._ctx) if la_ == 1: - self.state = 1080 + self.state = 1100 self.test_target_id() - self.state = 1084 + self.state = 1104 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__64: - self.state = 1083 + if _la==PBXProjParser.T__65: + self.state = 1103 self.development_team() - self.state = 1087 + self.state = 1107 self._errHandler.sync(self) _la = self._input.LA(1) if _la==PBXProjParser.T__56: - self.state = 1086 + self.state = 1106 self.last_swift_migration() - self.state = 1090 + self.state = 1110 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__65: - self.state = 1089 + if _la==PBXProjParser.T__66: + self.state = 1109 self.provisioning_style() - self.state = 1093 + self.state = 1113 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__95: - self.state = 1092 + if _la==PBXProjParser.T__98: + self.state = 1112 self.system_capabilities() - self.state = 1096 + self.state = 1116 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==PBXProjParser.T__63: - self.state = 1095 + if _la==PBXProjParser.T__64: + self.state = 1115 self.test_target_id() - self.state = 1098 + self.state = 1118 self.match(PBXProjParser.T__1) - self.state = 1099 + self.state = 1119 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7285,16 +7390,16 @@ def exitRule(self, listener): def created_on_tools_version(self): localctx = PBXProjParser.Created_on_tools_versionContext(self, self._ctx, self.state) - self.enterRule(localctx, 208, self.RULE_created_on_tools_version) + self.enterRule(localctx, 210, self.RULE_created_on_tools_version) try: self.enterOuterAlt(localctx, 1) - self.state = 1101 - self.match(PBXProjParser.T__62) - self.state = 1102 + self.state = 1121 + self.match(PBXProjParser.T__63) + self.state = 1122 self.match(PBXProjParser.T__2) - self.state = 1103 + self.state = 1123 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1104 + self.state = 1124 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7330,16 +7435,16 @@ def exitRule(self, listener): def test_target_id(self): localctx = PBXProjParser.Test_target_idContext(self, self._ctx, self.state) - self.enterRule(localctx, 210, self.RULE_test_target_id) + self.enterRule(localctx, 212, self.RULE_test_target_id) try: self.enterOuterAlt(localctx, 1) - self.state = 1106 - self.match(PBXProjParser.T__63) - self.state = 1107 + self.state = 1126 + self.match(PBXProjParser.T__64) + self.state = 1127 self.match(PBXProjParser.T__2) - self.state = 1108 + self.state = 1128 self.match(PBXProjParser.REFERENCE) - self.state = 1109 + self.state = 1129 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7375,16 +7480,16 @@ def exitRule(self, listener): def development_team(self): localctx = PBXProjParser.Development_teamContext(self, self._ctx, self.state) - self.enterRule(localctx, 212, self.RULE_development_team) + self.enterRule(localctx, 214, self.RULE_development_team) try: self.enterOuterAlt(localctx, 1) - self.state = 1111 - self.match(PBXProjParser.T__64) - self.state = 1112 + self.state = 1131 + self.match(PBXProjParser.T__65) + self.state = 1132 self.match(PBXProjParser.T__2) - self.state = 1113 + self.state = 1133 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1114 + self.state = 1134 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7420,16 +7525,16 @@ def exitRule(self, listener): def provisioning_style(self): localctx = PBXProjParser.Provisioning_styleContext(self, self._ctx, self.state) - self.enterRule(localctx, 214, self.RULE_provisioning_style) + self.enterRule(localctx, 216, self.RULE_provisioning_style) try: self.enterOuterAlt(localctx, 1) - self.state = 1116 - self.match(PBXProjParser.T__65) - self.state = 1117 + self.state = 1136 + self.match(PBXProjParser.T__66) + self.state = 1137 self.match(PBXProjParser.T__2) - self.state = 1118 + self.state = 1138 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1119 + self.state = 1139 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7465,16 +7570,16 @@ def exitRule(self, listener): def compatibility_version(self): localctx = PBXProjParser.Compatibility_versionContext(self, self._ctx, self.state) - self.enterRule(localctx, 216, self.RULE_compatibility_version) + self.enterRule(localctx, 218, self.RULE_compatibility_version) try: self.enterOuterAlt(localctx, 1) - self.state = 1121 - self.match(PBXProjParser.T__66) - self.state = 1122 + self.state = 1141 + self.match(PBXProjParser.T__67) + self.state = 1142 self.match(PBXProjParser.T__2) - self.state = 1123 + self.state = 1143 self.match(PBXProjParser.QUOTED_STRING) - self.state = 1124 + self.state = 1144 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7510,16 +7615,16 @@ def exitRule(self, listener): def development_region(self): localctx = PBXProjParser.Development_regionContext(self, self._ctx, self.state) - self.enterRule(localctx, 218, self.RULE_development_region) + self.enterRule(localctx, 220, self.RULE_development_region) try: self.enterOuterAlt(localctx, 1) - self.state = 1126 - self.match(PBXProjParser.T__67) - self.state = 1127 + self.state = 1146 + self.match(PBXProjParser.T__68) + self.state = 1147 self.match(PBXProjParser.T__2) - self.state = 1128 + self.state = 1148 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1129 + self.state = 1149 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7555,16 +7660,16 @@ def exitRule(self, listener): def has_scanned_for_encodings(self): localctx = PBXProjParser.Has_scanned_for_encodingsContext(self, self._ctx, self.state) - self.enterRule(localctx, 220, self.RULE_has_scanned_for_encodings) + self.enterRule(localctx, 222, self.RULE_has_scanned_for_encodings) try: self.enterOuterAlt(localctx, 1) - self.state = 1131 - self.match(PBXProjParser.T__68) - self.state = 1132 + self.state = 1151 + self.match(PBXProjParser.T__69) + self.state = 1152 self.match(PBXProjParser.T__2) - self.state = 1133 + self.state = 1153 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1134 + self.state = 1154 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7601,16 +7706,16 @@ def exitRule(self, listener): def known_regions(self): localctx = PBXProjParser.Known_regionsContext(self, self._ctx, self.state) - self.enterRule(localctx, 222, self.RULE_known_regions) + self.enterRule(localctx, 224, self.RULE_known_regions) try: self.enterOuterAlt(localctx, 1) - self.state = 1136 - self.match(PBXProjParser.T__69) - self.state = 1137 + self.state = 1156 + self.match(PBXProjParser.T__70) + self.state = 1157 self.match(PBXProjParser.T__2) - self.state = 1138 + self.state = 1158 self.any_string_list() - self.state = 1139 + self.state = 1159 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7646,16 +7751,16 @@ def exitRule(self, listener): def main_group(self): localctx = PBXProjParser.Main_groupContext(self, self._ctx, self.state) - self.enterRule(localctx, 224, self.RULE_main_group) + self.enterRule(localctx, 226, self.RULE_main_group) try: self.enterOuterAlt(localctx, 1) - self.state = 1141 - self.match(PBXProjParser.T__70) - self.state = 1142 + self.state = 1161 + self.match(PBXProjParser.T__71) + self.state = 1162 self.match(PBXProjParser.T__2) - self.state = 1143 + self.state = 1163 self.match(PBXProjParser.REFERENCE) - self.state = 1144 + self.state = 1164 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7691,16 +7796,16 @@ def exitRule(self, listener): def product_ref_group(self): localctx = PBXProjParser.Product_ref_groupContext(self, self._ctx, self.state) - self.enterRule(localctx, 226, self.RULE_product_ref_group) + self.enterRule(localctx, 228, self.RULE_product_ref_group) try: self.enterOuterAlt(localctx, 1) - self.state = 1146 - self.match(PBXProjParser.T__71) - self.state = 1147 + self.state = 1166 + self.match(PBXProjParser.T__72) + self.state = 1167 self.match(PBXProjParser.T__2) - self.state = 1148 + self.state = 1168 self.match(PBXProjParser.REFERENCE) - self.state = 1149 + self.state = 1169 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7736,16 +7841,16 @@ def exitRule(self, listener): def project_dir_path(self): localctx = PBXProjParser.Project_dir_pathContext(self, self._ctx, self.state) - self.enterRule(localctx, 228, self.RULE_project_dir_path) + self.enterRule(localctx, 230, self.RULE_project_dir_path) try: self.enterOuterAlt(localctx, 1) - self.state = 1151 - self.match(PBXProjParser.T__72) - self.state = 1152 + self.state = 1171 + self.match(PBXProjParser.T__73) + self.state = 1172 self.match(PBXProjParser.T__2) - self.state = 1153 + self.state = 1173 self.match(PBXProjParser.QUOTED_STRING) - self.state = 1154 + self.state = 1174 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7786,36 +7891,36 @@ def exitRule(self, listener): def project_references(self): localctx = PBXProjParser.Project_referencesContext(self, self._ctx, self.state) - self.enterRule(localctx, 230, self.RULE_project_references) + self.enterRule(localctx, 232, self.RULE_project_references) try: - self.state = 1168 + self.state = 1188 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,73,self._ctx) + la_ = self._interp.adaptivePredict(self._input,76,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 1156 - self.match(PBXProjParser.T__73) - self.state = 1157 + self.state = 1176 + self.match(PBXProjParser.T__74) + self.state = 1177 self.match(PBXProjParser.T__2) - self.state = 1158 + self.state = 1178 self.any_string() - self.state = 1159 + self.state = 1179 self.match(PBXProjParser.T__3) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 1161 - self.match(PBXProjParser.T__73) - self.state = 1162 + self.state = 1181 + self.match(PBXProjParser.T__74) + self.state = 1182 self.match(PBXProjParser.T__2) - self.state = 1163 + self.state = 1183 self.match(PBXProjParser.T__43) - self.state = 1164 + self.state = 1184 self.project_references_list() - self.state = 1165 + self.state = 1185 self.match(PBXProjParser.T__45) - self.state = 1166 + self.state = 1186 self.match(PBXProjParser.T__3) pass @@ -7854,16 +7959,16 @@ def exitRule(self, listener): def project_root(self): localctx = PBXProjParser.Project_rootContext(self, self._ctx, self.state) - self.enterRule(localctx, 232, self.RULE_project_root) + self.enterRule(localctx, 234, self.RULE_project_root) try: self.enterOuterAlt(localctx, 1) - self.state = 1170 - self.match(PBXProjParser.T__74) - self.state = 1171 + self.state = 1190 + self.match(PBXProjParser.T__75) + self.state = 1191 self.match(PBXProjParser.T__2) - self.state = 1172 + self.state = 1192 self.match(PBXProjParser.QUOTED_STRING) - self.state = 1173 + self.state = 1193 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7900,16 +8005,62 @@ def exitRule(self, listener): def targets(self): localctx = PBXProjParser.TargetsContext(self, self._ctx, self.state) - self.enterRule(localctx, 234, self.RULE_targets) + self.enterRule(localctx, 236, self.RULE_targets) try: self.enterOuterAlt(localctx, 1) - self.state = 1175 - self.match(PBXProjParser.T__75) - self.state = 1176 + self.state = 1195 + self.match(PBXProjParser.T__76) + self.state = 1196 self.match(PBXProjParser.T__2) - self.state = 1177 + self.state = 1197 self.reference_list() - self.state = 1178 + self.state = 1198 + self.match(PBXProjParser.T__3) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class Input_file_list_pathsContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(PBXProjParser.Input_file_list_pathsContext, self).__init__(parent, invokingState) + self.parser = parser + + def any_string_list(self): + return self.getTypedRuleContext(PBXProjParser.Any_string_listContext,0) + + + def getRuleIndex(self): + return PBXProjParser.RULE_input_file_list_paths + + def enterRule(self, listener): + if hasattr(listener, "enterInput_file_list_paths"): + listener.enterInput_file_list_paths(self) + + def exitRule(self, listener): + if hasattr(listener, "exitInput_file_list_paths"): + listener.exitInput_file_list_paths(self) + + + + + def input_file_list_paths(self): + + localctx = PBXProjParser.Input_file_list_pathsContext(self, self._ctx, self.state) + self.enterRule(localctx, 238, self.RULE_input_file_list_paths) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1200 + self.match(PBXProjParser.T__77) + self.state = 1201 + self.match(PBXProjParser.T__2) + self.state = 1202 + self.any_string_list() + self.state = 1203 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7946,16 +8097,62 @@ def exitRule(self, listener): def input_paths(self): localctx = PBXProjParser.Input_pathsContext(self, self._ctx, self.state) - self.enterRule(localctx, 236, self.RULE_input_paths) + self.enterRule(localctx, 240, self.RULE_input_paths) try: self.enterOuterAlt(localctx, 1) - self.state = 1180 - self.match(PBXProjParser.T__76) - self.state = 1181 + self.state = 1205 + self.match(PBXProjParser.T__78) + self.state = 1206 + self.match(PBXProjParser.T__2) + self.state = 1207 + self.any_string_list() + self.state = 1208 + self.match(PBXProjParser.T__3) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class Output_file_list_pathsContext(ParserRuleContext): + + def __init__(self, parser, parent=None, invokingState=-1): + super(PBXProjParser.Output_file_list_pathsContext, self).__init__(parent, invokingState) + self.parser = parser + + def any_string_list(self): + return self.getTypedRuleContext(PBXProjParser.Any_string_listContext,0) + + + def getRuleIndex(self): + return PBXProjParser.RULE_output_file_list_paths + + def enterRule(self, listener): + if hasattr(listener, "enterOutput_file_list_paths"): + listener.enterOutput_file_list_paths(self) + + def exitRule(self, listener): + if hasattr(listener, "exitOutput_file_list_paths"): + listener.exitOutput_file_list_paths(self) + + + + + def output_file_list_paths(self): + + localctx = PBXProjParser.Output_file_list_pathsContext(self, self._ctx, self.state) + self.enterRule(localctx, 242, self.RULE_output_file_list_paths) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1210 + self.match(PBXProjParser.T__79) + self.state = 1211 self.match(PBXProjParser.T__2) - self.state = 1182 + self.state = 1212 self.any_string_list() - self.state = 1183 + self.state = 1213 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -7971,8 +8168,8 @@ def __init__(self, parser, parent=None, invokingState=-1): super(PBXProjParser.Output_pathsContext, self).__init__(parent, invokingState) self.parser = parser - def non_quoted_strings_list(self): - return self.getTypedRuleContext(PBXProjParser.Non_quoted_strings_listContext,0) + def any_string_list(self): + return self.getTypedRuleContext(PBXProjParser.Any_string_listContext,0) def getRuleIndex(self): @@ -7992,16 +8189,16 @@ def exitRule(self, listener): def output_paths(self): localctx = PBXProjParser.Output_pathsContext(self, self._ctx, self.state) - self.enterRule(localctx, 238, self.RULE_output_paths) + self.enterRule(localctx, 244, self.RULE_output_paths) try: self.enterOuterAlt(localctx, 1) - self.state = 1185 - self.match(PBXProjParser.T__77) - self.state = 1186 + self.state = 1215 + self.match(PBXProjParser.T__80) + self.state = 1216 self.match(PBXProjParser.T__2) - self.state = 1187 - self.non_quoted_strings_list() - self.state = 1188 + self.state = 1217 + self.any_string_list() + self.state = 1218 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8037,16 +8234,16 @@ def exitRule(self, listener): def shell_path(self): localctx = PBXProjParser.Shell_pathContext(self, self._ctx, self.state) - self.enterRule(localctx, 240, self.RULE_shell_path) + self.enterRule(localctx, 246, self.RULE_shell_path) try: self.enterOuterAlt(localctx, 1) - self.state = 1190 - self.match(PBXProjParser.T__78) - self.state = 1191 + self.state = 1220 + self.match(PBXProjParser.T__81) + self.state = 1221 self.match(PBXProjParser.T__2) - self.state = 1192 + self.state = 1222 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1193 + self.state = 1223 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8082,16 +8279,16 @@ def exitRule(self, listener): def shell_script(self): localctx = PBXProjParser.Shell_scriptContext(self, self._ctx, self.state) - self.enterRule(localctx, 242, self.RULE_shell_script) + self.enterRule(localctx, 248, self.RULE_shell_script) try: self.enterOuterAlt(localctx, 1) - self.state = 1195 - self.match(PBXProjParser.T__79) - self.state = 1196 + self.state = 1225 + self.match(PBXProjParser.T__82) + self.state = 1226 self.match(PBXProjParser.T__2) - self.state = 1197 + self.state = 1227 self.match(PBXProjParser.QUOTED_STRING) - self.state = 1198 + self.state = 1228 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8127,16 +8324,16 @@ def exitRule(self, listener): def show_env_vars_in_log(self): localctx = PBXProjParser.Show_env_vars_in_logContext(self, self._ctx, self.state) - self.enterRule(localctx, 244, self.RULE_show_env_vars_in_log) + self.enterRule(localctx, 250, self.RULE_show_env_vars_in_log) try: self.enterOuterAlt(localctx, 1) - self.state = 1200 - self.match(PBXProjParser.T__80) - self.state = 1201 + self.state = 1230 + self.match(PBXProjParser.T__83) + self.state = 1231 self.match(PBXProjParser.T__2) - self.state = 1202 + self.state = 1232 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1203 + self.state = 1233 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8172,16 +8369,16 @@ def exitRule(self, listener): def target(self): localctx = PBXProjParser.TargetContext(self, self._ctx, self.state) - self.enterRule(localctx, 246, self.RULE_target) + self.enterRule(localctx, 252, self.RULE_target) try: self.enterOuterAlt(localctx, 1) - self.state = 1205 - self.match(PBXProjParser.T__81) - self.state = 1206 + self.state = 1235 + self.match(PBXProjParser.T__84) + self.state = 1236 self.match(PBXProjParser.T__2) - self.state = 1207 + self.state = 1237 self.match(PBXProjParser.REFERENCE) - self.state = 1208 + self.state = 1238 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8217,16 +8414,16 @@ def exitRule(self, listener): def target_proxy(self): localctx = PBXProjParser.Target_proxyContext(self, self._ctx, self.state) - self.enterRule(localctx, 248, self.RULE_target_proxy) + self.enterRule(localctx, 254, self.RULE_target_proxy) try: self.enterOuterAlt(localctx, 1) - self.state = 1210 - self.match(PBXProjParser.T__82) - self.state = 1211 + self.state = 1240 + self.match(PBXProjParser.T__85) + self.state = 1241 self.match(PBXProjParser.T__2) - self.state = 1212 + self.state = 1242 self.match(PBXProjParser.REFERENCE) - self.state = 1213 + self.state = 1243 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8263,16 +8460,16 @@ def exitRule(self, listener): def file_type(self): localctx = PBXProjParser.File_typeContext(self, self._ctx, self.state) - self.enterRule(localctx, 250, self.RULE_file_type) + self.enterRule(localctx, 256, self.RULE_file_type) try: self.enterOuterAlt(localctx, 1) - self.state = 1215 - self.match(PBXProjParser.T__83) - self.state = 1216 + self.state = 1245 + self.match(PBXProjParser.T__86) + self.state = 1246 self.match(PBXProjParser.T__2) - self.state = 1217 + self.state = 1247 self.any_string() - self.state = 1218 + self.state = 1248 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8308,16 +8505,16 @@ def exitRule(self, listener): def remote_ref(self): localctx = PBXProjParser.Remote_refContext(self, self._ctx, self.state) - self.enterRule(localctx, 252, self.RULE_remote_ref) + self.enterRule(localctx, 258, self.RULE_remote_ref) try: self.enterOuterAlt(localctx, 1) - self.state = 1220 - self.match(PBXProjParser.T__84) - self.state = 1221 + self.state = 1250 + self.match(PBXProjParser.T__87) + self.state = 1251 self.match(PBXProjParser.T__2) - self.state = 1222 + self.state = 1252 self.match(PBXProjParser.REFERENCE) - self.state = 1223 + self.state = 1253 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8353,16 +8550,16 @@ def exitRule(self, listener): def base_configuration_reference(self): localctx = PBXProjParser.Base_configuration_referenceContext(self, self._ctx, self.state) - self.enterRule(localctx, 254, self.RULE_base_configuration_reference) + self.enterRule(localctx, 260, self.RULE_base_configuration_reference) try: self.enterOuterAlt(localctx, 1) - self.state = 1225 - self.match(PBXProjParser.T__85) - self.state = 1226 + self.state = 1255 + self.match(PBXProjParser.T__88) + self.state = 1256 self.match(PBXProjParser.T__2) - self.state = 1227 + self.state = 1257 self.match(PBXProjParser.REFERENCE) - self.state = 1228 + self.state = 1258 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8402,29 +8599,29 @@ def exitRule(self, listener): def build_settings(self): localctx = PBXProjParser.Build_settingsContext(self, self._ctx, self.state) - self.enterRule(localctx, 256, self.RULE_build_settings) + self.enterRule(localctx, 262, self.RULE_build_settings) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1230 - self.match(PBXProjParser.T__86) - self.state = 1231 + self.state = 1260 + self.match(PBXProjParser.T__89) + self.state = 1261 self.match(PBXProjParser.T__2) - self.state = 1232 + self.state = 1262 self.match(PBXProjParser.T__0) - self.state = 1236 + self.state = 1266 self._errHandler.sync(self) _la = self._input.LA(1) - while ((((_la - 107)) & ~0x3f) == 0 and ((1 << (_la - 107)) & ((1 << (PBXProjParser.QUOTED_STRING - 107)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 107)) | (1 << (PBXProjParser.VARIABLE - 107)))) != 0): - self.state = 1233 + while ((((_la - 110)) & ~0x3f) == 0 and ((1 << (_la - 110)) & ((1 << (PBXProjParser.QUOTED_STRING - 110)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 110)) | (1 << (PBXProjParser.VARIABLE - 110)))) != 0): + self.state = 1263 self.key_value() - self.state = 1238 + self.state = 1268 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1239 + self.state = 1269 self.match(PBXProjParser.T__1) - self.state = 1240 + self.state = 1270 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8460,16 +8657,16 @@ def exitRule(self, listener): def dst_path(self): localctx = PBXProjParser.Dst_pathContext(self, self._ctx, self.state) - self.enterRule(localctx, 258, self.RULE_dst_path) + self.enterRule(localctx, 264, self.RULE_dst_path) try: self.enterOuterAlt(localctx, 1) - self.state = 1242 - self.match(PBXProjParser.T__87) - self.state = 1243 + self.state = 1272 + self.match(PBXProjParser.T__90) + self.state = 1273 self.match(PBXProjParser.T__2) - self.state = 1244 + self.state = 1274 self.match(PBXProjParser.QUOTED_STRING) - self.state = 1245 + self.state = 1275 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8505,16 +8702,16 @@ def exitRule(self, listener): def dst_subfolder_spec(self): localctx = PBXProjParser.Dst_subfolder_specContext(self, self._ctx, self.state) - self.enterRule(localctx, 260, self.RULE_dst_subfolder_spec) + self.enterRule(localctx, 266, self.RULE_dst_subfolder_spec) try: self.enterOuterAlt(localctx, 1) - self.state = 1247 - self.match(PBXProjParser.T__88) - self.state = 1248 + self.state = 1277 + self.match(PBXProjParser.T__91) + self.state = 1278 self.match(PBXProjParser.T__2) - self.state = 1249 + self.state = 1279 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1250 + self.state = 1280 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8554,17 +8751,17 @@ def exitRule(self, listener): def project_references_list(self): localctx = PBXProjParser.Project_references_listContext(self, self._ctx, self.state) - self.enterRule(localctx, 262, self.RULE_project_references_list) + self.enterRule(localctx, 268, self.RULE_project_references_list) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1255 + self.state = 1285 self._errHandler.sync(self) _la = self._input.LA(1) while _la==PBXProjParser.T__0: - self.state = 1252 + self.state = 1282 self.project_references_list_element() - self.state = 1257 + self.state = 1287 self._errHandler.sync(self) _la = self._input.LA(1) @@ -8605,30 +8802,30 @@ def exitRule(self, listener): def project_references_list_element(self): localctx = PBXProjParser.Project_references_list_elementContext(self, self._ctx, self.state) - self.enterRule(localctx, 264, self.RULE_project_references_list_element) + self.enterRule(localctx, 270, self.RULE_project_references_list_element) try: self.enterOuterAlt(localctx, 1) - self.state = 1258 + self.state = 1288 self.match(PBXProjParser.T__0) - self.state = 1259 - self.match(PBXProjParser.T__89) - self.state = 1260 + self.state = 1289 + self.match(PBXProjParser.T__92) + self.state = 1290 self.match(PBXProjParser.T__2) - self.state = 1261 + self.state = 1291 self.match(PBXProjParser.REFERENCE) - self.state = 1262 + self.state = 1292 self.match(PBXProjParser.T__3) - self.state = 1263 - self.match(PBXProjParser.T__90) - self.state = 1264 + self.state = 1293 + self.match(PBXProjParser.T__93) + self.state = 1294 self.match(PBXProjParser.T__2) - self.state = 1265 + self.state = 1295 self.match(PBXProjParser.REFERENCE) - self.state = 1266 + self.state = 1296 self.match(PBXProjParser.T__3) - self.state = 1267 + self.state = 1297 self.match(PBXProjParser.T__1) - self.state = 1268 + self.state = 1298 self.match(PBXProjParser.T__44) except RecognitionException as re: localctx.exception = re @@ -8672,63 +8869,63 @@ def exitRule(self, listener): def key_value(self): localctx = PBXProjParser.Key_valueContext(self, self._ctx, self.state) - self.enterRule(localctx, 266, self.RULE_key_value) + self.enterRule(localctx, 272, self.RULE_key_value) self._la = 0 # Token type try: - self.state = 1296 + self.state = 1326 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,77,self._ctx) + la_ = self._interp.adaptivePredict(self._input,80,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) - self.state = 1270 + self.state = 1300 self.any_string() - self.state = 1271 + self.state = 1301 self.match(PBXProjParser.T__2) - self.state = 1272 + self.state = 1302 self.any_string() - self.state = 1273 + self.state = 1303 self.match(PBXProjParser.T__3) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) - self.state = 1275 + self.state = 1305 self.any_string() - self.state = 1276 + self.state = 1306 self.match(PBXProjParser.T__2) - self.state = 1277 + self.state = 1307 self.match(PBXProjParser.T__0) - self.state = 1278 + self.state = 1308 self.key_value() - self.state = 1279 + self.state = 1309 self.match(PBXProjParser.T__1) - self.state = 1280 + self.state = 1310 self.match(PBXProjParser.T__3) pass elif la_ == 3: self.enterOuterAlt(localctx, 3) - self.state = 1282 + self.state = 1312 self.any_string() - self.state = 1283 + self.state = 1313 self.match(PBXProjParser.T__2) - self.state = 1284 + self.state = 1314 self.match(PBXProjParser.T__43) - self.state = 1290 + self.state = 1320 self._errHandler.sync(self) _la = self._input.LA(1) - while ((((_la - 107)) & ~0x3f) == 0 and ((1 << (_la - 107)) & ((1 << (PBXProjParser.QUOTED_STRING - 107)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 107)) | (1 << (PBXProjParser.VARIABLE - 107)))) != 0): - self.state = 1285 + while ((((_la - 110)) & ~0x3f) == 0 and ((1 << (_la - 110)) & ((1 << (PBXProjParser.QUOTED_STRING - 110)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 110)) | (1 << (PBXProjParser.VARIABLE - 110)))) != 0): + self.state = 1315 self.any_string() - self.state = 1286 + self.state = 1316 self.match(PBXProjParser.T__44) - self.state = 1292 + self.state = 1322 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1293 + self.state = 1323 self.match(PBXProjParser.T__45) - self.state = 1294 + self.state = 1324 self.match(PBXProjParser.T__3) pass @@ -8768,16 +8965,16 @@ def exitRule(self, listener): def build_configurations(self): localctx = PBXProjParser.Build_configurationsContext(self, self._ctx, self.state) - self.enterRule(localctx, 268, self.RULE_build_configurations) + self.enterRule(localctx, 274, self.RULE_build_configurations) try: self.enterOuterAlt(localctx, 1) - self.state = 1298 - self.match(PBXProjParser.T__91) - self.state = 1299 + self.state = 1328 + self.match(PBXProjParser.T__94) + self.state = 1329 self.match(PBXProjParser.T__2) - self.state = 1300 + self.state = 1330 self.reference_list() - self.state = 1301 + self.state = 1331 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8813,16 +9010,16 @@ def exitRule(self, listener): def default_configuration_is_visible(self): localctx = PBXProjParser.Default_configuration_is_visibleContext(self, self._ctx, self.state) - self.enterRule(localctx, 270, self.RULE_default_configuration_is_visible) + self.enterRule(localctx, 276, self.RULE_default_configuration_is_visible) try: self.enterOuterAlt(localctx, 1) - self.state = 1303 - self.match(PBXProjParser.T__92) - self.state = 1304 + self.state = 1333 + self.match(PBXProjParser.T__95) + self.state = 1334 self.match(PBXProjParser.T__2) - self.state = 1305 + self.state = 1335 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1306 + self.state = 1336 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8858,16 +9055,16 @@ def exitRule(self, listener): def default_configuration_name(self): localctx = PBXProjParser.Default_configuration_nameContext(self, self._ctx, self.state) - self.enterRule(localctx, 272, self.RULE_default_configuration_name) + self.enterRule(localctx, 278, self.RULE_default_configuration_name) try: self.enterOuterAlt(localctx, 1) - self.state = 1308 - self.match(PBXProjParser.T__93) - self.state = 1309 + self.state = 1338 + self.match(PBXProjParser.T__96) + self.state = 1339 self.match(PBXProjParser.T__2) - self.state = 1310 + self.state = 1340 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1311 + self.state = 1341 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8907,29 +9104,29 @@ def exitRule(self, listener): def settings(self): localctx = PBXProjParser.SettingsContext(self, self._ctx, self.state) - self.enterRule(localctx, 274, self.RULE_settings) + self.enterRule(localctx, 280, self.RULE_settings) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1313 - self.match(PBXProjParser.T__94) - self.state = 1314 + self.state = 1343 + self.match(PBXProjParser.T__97) + self.state = 1344 self.match(PBXProjParser.T__2) - self.state = 1315 + self.state = 1345 self.match(PBXProjParser.T__0) - self.state = 1319 + self.state = 1349 self._errHandler.sync(self) _la = self._input.LA(1) - while ((((_la - 107)) & ~0x3f) == 0 and ((1 << (_la - 107)) & ((1 << (PBXProjParser.QUOTED_STRING - 107)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 107)) | (1 << (PBXProjParser.VARIABLE - 107)))) != 0): - self.state = 1316 + while ((((_la - 110)) & ~0x3f) == 0 and ((1 << (_la - 110)) & ((1 << (PBXProjParser.QUOTED_STRING - 110)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 110)) | (1 << (PBXProjParser.VARIABLE - 110)))) != 0): + self.state = 1346 self.key_value() - self.state = 1321 + self.state = 1351 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1322 + self.state = 1352 self.match(PBXProjParser.T__1) - self.state = 1323 + self.state = 1353 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -8969,29 +9166,29 @@ def exitRule(self, listener): def system_capabilities(self): localctx = PBXProjParser.System_capabilitiesContext(self, self._ctx, self.state) - self.enterRule(localctx, 276, self.RULE_system_capabilities) + self.enterRule(localctx, 282, self.RULE_system_capabilities) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1325 - self.match(PBXProjParser.T__95) - self.state = 1326 + self.state = 1355 + self.match(PBXProjParser.T__98) + self.state = 1356 self.match(PBXProjParser.T__2) - self.state = 1327 + self.state = 1357 self.match(PBXProjParser.T__0) - self.state = 1331 + self.state = 1361 self._errHandler.sync(self) _la = self._input.LA(1) - while ((((_la - 107)) & ~0x3f) == 0 and ((1 << (_la - 107)) & ((1 << (PBXProjParser.QUOTED_STRING - 107)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 107)) | (1 << (PBXProjParser.VARIABLE - 107)))) != 0): - self.state = 1328 + while ((((_la - 110)) & ~0x3f) == 0 and ((1 << (_la - 110)) & ((1 << (PBXProjParser.QUOTED_STRING - 110)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 110)) | (1 << (PBXProjParser.VARIABLE - 110)))) != 0): + self.state = 1358 self.key_value() - self.state = 1333 + self.state = 1363 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1334 + self.state = 1364 self.match(PBXProjParser.T__1) - self.state = 1335 + self.state = 1365 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -9027,16 +9224,16 @@ def exitRule(self, listener): def current_version(self): localctx = PBXProjParser.Current_versionContext(self, self._ctx, self.state) - self.enterRule(localctx, 278, self.RULE_current_version) + self.enterRule(localctx, 284, self.RULE_current_version) try: self.enterOuterAlt(localctx, 1) - self.state = 1337 - self.match(PBXProjParser.T__96) - self.state = 1338 + self.state = 1367 + self.match(PBXProjParser.T__99) + self.state = 1368 self.match(PBXProjParser.T__2) - self.state = 1339 + self.state = 1369 self.match(PBXProjParser.REFERENCE) - self.state = 1340 + self.state = 1370 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -9072,16 +9269,16 @@ def exitRule(self, listener): def version_group_type(self): localctx = PBXProjParser.Version_group_typeContext(self, self._ctx, self.state) - self.enterRule(localctx, 280, self.RULE_version_group_type) + self.enterRule(localctx, 286, self.RULE_version_group_type) try: self.enterOuterAlt(localctx, 1) - self.state = 1342 - self.match(PBXProjParser.T__97) - self.state = 1343 + self.state = 1372 + self.match(PBXProjParser.T__100) + self.state = 1373 self.match(PBXProjParser.T__2) - self.state = 1344 + self.state = 1374 self.match(PBXProjParser.NON_QUOTED_STRING) - self.state = 1345 + self.state = 1375 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -9118,16 +9315,16 @@ def exitRule(self, listener): def class_prefix(self): localctx = PBXProjParser.Class_prefixContext(self, self._ctx, self.state) - self.enterRule(localctx, 282, self.RULE_class_prefix) + self.enterRule(localctx, 288, self.RULE_class_prefix) try: self.enterOuterAlt(localctx, 1) - self.state = 1347 - self.match(PBXProjParser.T__98) - self.state = 1348 + self.state = 1377 + self.match(PBXProjParser.T__101) + self.state = 1378 self.match(PBXProjParser.T__2) - self.state = 1349 + self.state = 1379 self.any_string() - self.state = 1350 + self.state = 1380 self.match(PBXProjParser.T__3) except RecognitionException as re: localctx.exception = re @@ -9169,13 +9366,13 @@ def exitRule(self, listener): def any_string(self): localctx = PBXProjParser.Any_stringContext(self, self._ctx, self.state) - self.enterRule(localctx, 284, self.RULE_any_string) + self.enterRule(localctx, 290, self.RULE_any_string) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 1352 + self.state = 1382 _la = self._input.LA(1) - if not(((((_la - 107)) & ~0x3f) == 0 and ((1 << (_la - 107)) & ((1 << (PBXProjParser.QUOTED_STRING - 107)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 107)) | (1 << (PBXProjParser.VARIABLE - 107)))) != 0)): + if not(((((_la - 110)) & ~0x3f) == 0 and ((1 << (_la - 110)) & ((1 << (PBXProjParser.QUOTED_STRING - 110)) | (1 << (PBXProjParser.NON_QUOTED_STRING - 110)) | (1 << (PBXProjParser.VARIABLE - 110)))) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) diff --git a/setup.py b/setup.py index 68e2cff..e860dd3 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name='kin', - version='1.7.1', + version='1.7.2', description='A simple project.pbxproj verifier', long_description=long_description, url='https://github.com/Karumi/Kin', diff --git a/tests/ko/001.out b/tests/ko/001.out index 8b2d27b..5a89520 100644 --- a/tests/ko/001.out +++ b/tests/ko/001.out @@ -1 +1 @@ -line 400:3 mismatched input ')' expecting 'inputPaths' +line 400:3 mismatched input ')' expecting {'inputFileListPaths', 'inputPaths'} \ No newline at end of file diff --git a/tests/ok/001.pbxproj b/tests/ok/001.pbxproj new file mode 100644 index 0000000..93e414b --- /dev/null +++ b/tests/ok/001.pbxproj @@ -0,0 +1,710 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 4073733CAB3A0DFF92509CB4 /* Pods_MitsumoriUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50207757D99BA58B73384B1C /* Pods_MitsumoriUITests.framework */; }; + 40B8192350A5E6A7FD028AF1 /* Pods_Mitsumori.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9C8B51DFD24BD194B40CE8 /* Pods_Mitsumori.framework */; }; + 490970611C16D9A900200801 /* UIViewTransform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 490970601C16D9A900200801 /* UIViewTransform.swift */; }; + 495413B61C1424A20071F4A0 /* CardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 495413B51C1424A20071F4A0 /* CardViewModel.swift */; }; + 4959011B1C58F8AB000EE944 /* CustomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4959011A1C58F8AB000EE944 /* CustomView.swift */; }; + 4973659F1C19BC6E00837617 /* MitsumoriUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4973659E1C19BC6E00837617 /* MitsumoriUITests.swift */; }; + 497365A91C19BD5A00837617 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 497365A81C19BD5A00837617 /* Nimble.framework */; }; + 49C4EEDE1C5E152800B38CD9 /* SelectedCardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49C4EEDD1C5E152800B38CD9 /* SelectedCardViewModel.swift */; }; + 49F0E1DF1C1B28FF0074B5B7 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F0E1DE1C1B28FF0074B5B7 /* SnapshotHelper.swift */; }; + 49F0E1E11C1B300E0074B5B7 /* SnapshotCapturer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F0E1E01C1B300E0074B5B7 /* SnapshotCapturer.swift */; }; + 49F4A5891C583A95007C84A1 /* Animation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5881C583A95007C84A1 /* Animation.swift */; }; + 49F4A58B1C583AB3007C84A1 /* Transform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A58A1C583AB3007C84A1 /* Transform.swift */; }; + 49F4A58D1C583AE3007C84A1 /* CGPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A58C1C583AE3007C84A1 /* CGPoint.swift */; }; + 49F4A58F1C583AF3007C84A1 /* CGSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A58E1C583AF3007C84A1 /* CGSize.swift */; }; + 49F4A5911C583B0C007C84A1 /* Card.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5901C583B0C007C84A1 /* Card.swift */; }; + 49F4A5931C583B4C007C84A1 /* Double.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5921C583B4C007C84A1 /* Double.swift */; }; + 49F4A5951C583B61007C84A1 /* FrontCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5941C583B61007C84A1 /* FrontCardView.swift */; }; + 49F4A5971C583B94007C84A1 /* FrontCardView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 49F4A5961C583B94007C84A1 /* FrontCardView.xib */; }; + 49F4A5991C583BAF007C84A1 /* Math.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5981C583BAF007C84A1 /* Math.swift */; }; + 49F4A59F1C583D88007C84A1 /* RotateRevealSelectedCardAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A59E1C583D88007C84A1 /* RotateRevealSelectedCardAnimation.swift */; }; + 49F4A5A11C583DAE007C84A1 /* RotateSelectCardAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5A01C583DAE007C84A1 /* RotateSelectCardAnimation.swift */; }; + 49F4A5A31C583DD8007C84A1 /* SlideToSideRestoreAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49F4A5A21C583DD8007C84A1 /* SlideToSideRestoreAnimation.swift */; }; + 49FBBF921C10C2A200A1A4BB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49FBBF911C10C2A200A1A4BB /* AppDelegate.swift */; }; + 49FBBF971C10C2A200A1A4BB /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 49FBBF951C10C2A200A1A4BB /* Main.storyboard */; }; + 49FBBF991C10C2A200A1A4BB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 49FBBF981C10C2A200A1A4BB /* Assets.xcassets */; }; + 49FBBF9C1C10C2A200A1A4BB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 49FBBF9A1C10C2A200A1A4BB /* LaunchScreen.storyboard */; }; + 49FBBFC01C10D05800A1A4BB /* CardCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49FBBFBF1C10D05800A1A4BB /* CardCollectionViewCell.swift */; }; + 49FBBFC41C10EBE600A1A4BB /* CardsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49FBBFC31C10EBE600A1A4BB /* CardsViewController.swift */; }; + 49FBBFC81C10FB9C00A1A4BB /* UIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49FBBFC71C10FB9C00A1A4BB /* UIView.swift */; }; + EBFE74EE1C4900D000B7B646 /* BackCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBFE74ED1C4900D000B7B646 /* BackCardView.swift */; }; + EBFE74F01C4900EB00B7B646 /* BackCardView.xib in Resources */ = {isa = PBXBuildFile; fileRef = EBFE74EF1C4900EB00B7B646 /* BackCardView.xib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 497365A11C19BC6E00837617 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 49FBBF861C10C2A200A1A4BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 49FBBF8D1C10C2A200A1A4BB; + remoteInfo = Mitsumori; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0D90B4EBF4714D2C4F8805EE /* Pods_MitsumoriTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MitsumoriTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 274E42B0193BA6FEFA8FD71C /* Pods-MitsumoriUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MitsumoriUITests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-MitsumoriUITests/Pods-MitsumoriUITests.debug.xcconfig"; sourceTree = ""; }; + 2757E033CFB59572DA4E60B3 /* Pods-MitsumoriUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MitsumoriUITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-MitsumoriUITests/Pods-MitsumoriUITests.release.xcconfig"; sourceTree = ""; }; + 490970601C16D9A900200801 /* UIViewTransform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIViewTransform.swift; sourceTree = ""; }; + 495413B51C1424A20071F4A0 /* CardViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CardViewModel.swift; sourceTree = ""; }; + 4959011A1C58F8AB000EE944 /* CustomView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomView.swift; sourceTree = ""; }; + 4973659C1C19BC6E00837617 /* MitsumoriUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MitsumoriUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 4973659E1C19BC6E00837617 /* MitsumoriUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MitsumoriUITests.swift; sourceTree = ""; }; + 497365A01C19BC6E00837617 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 497365A61C19BC9500837617 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Pods/../build/Debug-iphoneos/Nimble.framework"; sourceTree = ""; }; + 497365A81C19BD5A00837617 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = "Pods/../build/Debug-iphoneos/Nimble.framework"; sourceTree = ""; }; + 49C4EEDD1C5E152800B38CD9 /* SelectedCardViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectedCardViewModel.swift; sourceTree = ""; }; + 49F0E1DE1C1B28FF0074B5B7 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = ""; }; + 49F0E1E01C1B300E0074B5B7 /* SnapshotCapturer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotCapturer.swift; sourceTree = ""; }; + 49F4A5881C583A95007C84A1 /* Animation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Animation.swift; sourceTree = ""; }; + 49F4A58A1C583AB3007C84A1 /* Transform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Transform.swift; sourceTree = ""; }; + 49F4A58C1C583AE3007C84A1 /* CGPoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGPoint.swift; sourceTree = ""; }; + 49F4A58E1C583AF3007C84A1 /* CGSize.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGSize.swift; sourceTree = ""; }; + 49F4A5901C583B0C007C84A1 /* Card.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Card.swift; sourceTree = ""; }; + 49F4A5921C583B4C007C84A1 /* Double.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Double.swift; sourceTree = ""; }; + 49F4A5941C583B61007C84A1 /* FrontCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FrontCardView.swift; sourceTree = ""; }; + 49F4A5961C583B94007C84A1 /* FrontCardView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FrontCardView.xib; sourceTree = ""; }; + 49F4A5981C583BAF007C84A1 /* Math.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Math.swift; sourceTree = ""; }; + 49F4A59E1C583D88007C84A1 /* RotateRevealSelectedCardAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RotateRevealSelectedCardAnimation.swift; sourceTree = ""; }; + 49F4A5A01C583DAE007C84A1 /* RotateSelectCardAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RotateSelectCardAnimation.swift; sourceTree = ""; }; + 49F4A5A21C583DD8007C84A1 /* SlideToSideRestoreAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlideToSideRestoreAnimation.swift; sourceTree = ""; }; + 49FBBF8E1C10C2A200A1A4BB /* Mitsumori.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Mitsumori.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 49FBBF911C10C2A200A1A4BB /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 49FBBF961C10C2A200A1A4BB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 49FBBF981C10C2A200A1A4BB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 49FBBF9B1C10C2A200A1A4BB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 49FBBF9D1C10C2A200A1A4BB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 49FBBFBF1C10D05800A1A4BB /* CardCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CardCollectionViewCell.swift; sourceTree = ""; }; + 49FBBFC31C10EBE600A1A4BB /* CardsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CardsViewController.swift; sourceTree = ""; }; + 49FBBFC71C10FB9C00A1A4BB /* UIView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIView.swift; sourceTree = ""; }; + 50207757D99BA58B73384B1C /* Pods_MitsumoriUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MitsumoriUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E9C8B51DFD24BD194B40CE8 /* Pods_Mitsumori.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Mitsumori.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 83CD4CEBE1B7A02772169FE5 /* Pods-Mitsumori.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mitsumori.release.xcconfig"; path = "Pods/Target Support Files/Pods-Mitsumori/Pods-Mitsumori.release.xcconfig"; sourceTree = ""; }; + EBFE74ED1C4900D000B7B646 /* BackCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BackCardView.swift; sourceTree = ""; }; + EBFE74EF1C4900EB00B7B646 /* BackCardView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BackCardView.xib; sourceTree = ""; }; + F128C4D0067FEE87B2756BC4 /* Pods-Mitsumori.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mitsumori.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Mitsumori/Pods-Mitsumori.debug.xcconfig"; sourceTree = ""; }; + FR_FE870E28DC2371E7ACA886F03F460581 /* Something.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "Something.xcconfig"; path = "Configurations/Something.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 497365991C19BC6E00837617 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 497365A91C19BD5A00837617 /* Nimble.framework in Frameworks */, + 4073733CAB3A0DFF92509CB4 /* Pods_MitsumoriUITests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 49FBBF8B1C10C2A200A1A4BB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 40B8192350A5E6A7FD028AF1 /* Pods_Mitsumori.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3F7D3EDF02E1003A4134947D /* Pods */ = { + isa = PBXGroup; + children = ( + 274E42B0193BA6FEFA8FD71C /* Pods-MitsumoriUITests.debug.xcconfig */, + 2757E033CFB59572DA4E60B3 /* Pods-MitsumoriUITests.release.xcconfig */, + F128C4D0067FEE87B2756BC4 /* Pods-Mitsumori.debug.xcconfig */, + 83CD4CEBE1B7A02772169FE5 /* Pods-Mitsumori.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + 4973659D1C19BC6E00837617 /* MitsumoriUITests */ = { + isa = PBXGroup; + children = ( + 49F0E1DE1C1B28FF0074B5B7 /* SnapshotHelper.swift */, + 4973659E1C19BC6E00837617 /* MitsumoriUITests.swift */, + 497365A01C19BC6E00837617 /* Info.plist */, + 49F0E1E01C1B300E0074B5B7 /* SnapshotCapturer.swift */, + ); + path = MitsumoriUITests; + sourceTree = ""; + }; + 49F4A5811C583958007C84A1 /* Animation */ = { + isa = PBXGroup; + children = ( + 49F4A5881C583A95007C84A1 /* Animation.swift */, + 49F4A59E1C583D88007C84A1 /* RotateRevealSelectedCardAnimation.swift */, + 49F4A5A01C583DAE007C84A1 /* RotateSelectCardAnimation.swift */, + 49F4A5A21C583DD8007C84A1 /* SlideToSideRestoreAnimation.swift */, + ); + name = Animation; + sourceTree = ""; + }; + 49F4A5821C583998007C84A1 /* Extension */ = { + isa = PBXGroup; + children = ( + 49F4A58C1C583AE3007C84A1 /* CGPoint.swift */, + 49F4A58E1C583AF3007C84A1 /* CGSize.swift */, + 49F4A5921C583B4C007C84A1 /* Double.swift */, + 49FBBFC71C10FB9C00A1A4BB /* UIView.swift */, + 490970601C16D9A900200801 /* UIViewTransform.swift */, + 49F4A5981C583BAF007C84A1 /* Math.swift */, + ); + name = Extension; + sourceTree = ""; + }; + 49F4A5831C5839A1007C84A1 /* Model */ = { + isa = PBXGroup; + children = ( + 49F4A5901C583B0C007C84A1 /* Card.swift */, + ); + name = Model; + sourceTree = ""; + }; + 49F4A5841C5839B0007C84A1 /* Storyboard */ = { + isa = PBXGroup; + children = ( + 49FBBF9A1C10C2A200A1A4BB /* LaunchScreen.storyboard */, + 49FBBF951C10C2A200A1A4BB /* Main.storyboard */, + ); + name = Storyboard; + sourceTree = ""; + }; + 49F4A5851C5839B7007C84A1 /* View */ = { + isa = PBXGroup; + children = ( + EBFE74ED1C4900D000B7B646 /* BackCardView.swift */, + EBFE74EF1C4900EB00B7B646 /* BackCardView.xib */, + 49FBBFBF1C10D05800A1A4BB /* CardCollectionViewCell.swift */, + 4959011A1C58F8AB000EE944 /* CustomView.swift */, + 49F4A5941C583B61007C84A1 /* FrontCardView.swift */, + 49F4A5961C583B94007C84A1 /* FrontCardView.xib */, + 49F4A58A1C583AB3007C84A1 /* Transform.swift */, + ); + name = View; + sourceTree = ""; + }; + 49F4A5861C583A12007C84A1 /* ViewController */ = { + isa = PBXGroup; + children = ( + 49FBBFC31C10EBE600A1A4BB /* CardsViewController.swift */, + ); + name = ViewController; + sourceTree = ""; + }; + 49F4A5871C583A25007C84A1 /* ViewModel */ = { + isa = PBXGroup; + children = ( + 495413B51C1424A20071F4A0 /* CardViewModel.swift */, + 49C4EEDD1C5E152800B38CD9 /* SelectedCardViewModel.swift */, + ); + name = ViewModel; + sourceTree = ""; + }; + 49FBBF851C10C2A200A1A4BB = { + isa = PBXGroup; + children = ( + 49FBBF901C10C2A200A1A4BB /* Mitsumori */, + 4973659D1C19BC6E00837617 /* MitsumoriUITests */, + 49FBBF8F1C10C2A200A1A4BB /* Products */, + 3F7D3EDF02E1003A4134947D /* Pods */, + 843513CC76A2B252F7CE6020 /* Frameworks */, + ); + sourceTree = ""; + }; + 49FBBF8F1C10C2A200A1A4BB /* Products */ = { + isa = PBXGroup; + children = ( + 49FBBF8E1C10C2A200A1A4BB /* Mitsumori.app */, + 4973659C1C19BC6E00837617 /* MitsumoriUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 49FBBF901C10C2A200A1A4BB /* Mitsumori */ = { + isa = PBXGroup; + children = ( + 49FBBF981C10C2A200A1A4BB /* Assets.xcassets */, + 49FBBF9D1C10C2A200A1A4BB /* Info.plist */, + 49F4A5811C583958007C84A1 /* Animation */, + 49F4A5821C583998007C84A1 /* Extension */, + 49F4A5831C5839A1007C84A1 /* Model */, + 49F4A5841C5839B0007C84A1 /* Storyboard */, + 49F4A5851C5839B7007C84A1 /* View */, + 49F4A5861C583A12007C84A1 /* ViewController */, + 49F4A5871C583A25007C84A1 /* ViewModel */, + 49FBBF911C10C2A200A1A4BB /* AppDelegate.swift */, + ); + path = Mitsumori; + sourceTree = ""; + }; + 843513CC76A2B252F7CE6020 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 497365A81C19BD5A00837617 /* Nimble.framework */, + 497365A61C19BC9500837617 /* Nimble.framework */, + 0D90B4EBF4714D2C4F8805EE /* Pods_MitsumoriTests.framework */, + 50207757D99BA58B73384B1C /* Pods_MitsumoriUITests.framework */, + 5E9C8B51DFD24BD194B40CE8 /* Pods_Mitsumori.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + G_78452DDA02BFEF5D6BA29AEFB4B1266A /* Configurations */ = { + isa = PBXGroup; + children = ( + FR_FE870E28DC2371E7ACA886F03F460581 /* Something.xcconfig */, + ); + name = Configurations; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4973659B1C19BC6E00837617 /* MitsumoriUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 497365A31C19BC6E00837617 /* Build configuration list for PBXNativeTarget "MitsumoriUITests" */; + buildPhases = ( + 0D338338AD469905FE45C5D7 /* Check Pods Manifest.lock */, + 497365981C19BC6E00837617 /* Sources */, + 497365991C19BC6E00837617 /* Frameworks */, + 4973659A1C19BC6E00837617 /* Resources */, + 77A1B287EDAA82F36793B49B /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 497365A21C19BC6E00837617 /* PBXTargetDependency */, + ); + name = MitsumoriUITests; + productName = MitsumoriUITests; + productReference = 4973659C1C19BC6E00837617 /* MitsumoriUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 49FBBF8D1C10C2A200A1A4BB /* Mitsumori */ = { + isa = PBXNativeTarget; + buildConfigurationList = 49FBBFB61C10C2A200A1A4BB /* Build configuration list for PBXNativeTarget "Mitsumori" */; + buildPhases = ( + B413487ECFAF19CC720F6703 /* Check Pods Manifest.lock */, + 49FBBF8A1C10C2A200A1A4BB /* Sources */, + 49FBBF8B1C10C2A200A1A4BB /* Frameworks */, + 49FBBF8C1C10C2A200A1A4BB /* Resources */, + E09A62F1C2781CCB49DC3900 /* Embed Pods Frameworks */, + 19FA3CFC97A494716FCCD298 /* Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Mitsumori; + productName = Mitsumori; + productReference = 49FBBF8E1C10C2A200A1A4BB /* Mitsumori.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 49FBBF861C10C2A200A1A4BB /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Original; + LastSwiftUpdateCheck = 0720; + LastUpgradeCheck = 0710; + ORGANIZATIONNAME = Karumi; + TargetAttributes = { + 4973659B1C19BC6E00837617 = { + CreatedOnToolsVersion = 7.2; + TestTargetID = 49FBBF8D1C10C2A200A1A4BB; + }; + 49FBBF8D1C10C2A200A1A4BB = { + CreatedOnToolsVersion = 7.1.1; + DevelopmentTeam = BD48FG9BMV; + }; + }; + }; + buildConfigurationList = 49FBBF891C10C2A200A1A4BB /* Build configuration list for PBXProject "Mitsumori" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 49FBBF851C10C2A200A1A4BB; + productRefGroup = 49FBBF8F1C10C2A200A1A4BB /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 49FBBF8D1C10C2A200A1A4BB /* Mitsumori */, + 4973659B1C19BC6E00837617 /* MitsumoriUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4973659A1C19BC6E00837617 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 49FBBF8C1C10C2A200A1A4BB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49F4A5971C583B94007C84A1 /* FrontCardView.xib in Resources */, + 49FBBF9C1C10C2A200A1A4BB /* LaunchScreen.storyboard in Resources */, + 49FBBF991C10C2A200A1A4BB /* Assets.xcassets in Resources */, + 49FBBF971C10C2A200A1A4BB /* Main.storyboard in Resources */, + EBFE74F01C4900EB00B7B646 /* BackCardView.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0D338338AD469905FE45C5D7 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 19FA3CFC97A494716FCCD298 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Mitsumori/Pods-Mitsumori-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 77A1B287EDAA82F36793B49B /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = (); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-MitsumoriUITests/Pods-MitsumoriUITests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + B413487ECFAF19CC720F6703 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + E09A62F1C2781CCB49DC3900 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Mitsumori/Pods-Mitsumori-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 497365981C19BC6E00837617 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49F0E1E11C1B300E0074B5B7 /* SnapshotCapturer.swift in Sources */, + 4973659F1C19BC6E00837617 /* MitsumoriUITests.swift in Sources */, + 49F0E1DF1C1B28FF0074B5B7 /* SnapshotHelper.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 49FBBF8A1C10C2A200A1A4BB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 49F4A58D1C583AE3007C84A1 /* CGPoint.swift in Sources */, + 49FBBFC81C10FB9C00A1A4BB /* UIView.swift in Sources */, + 49FBBFC41C10EBE600A1A4BB /* CardsViewController.swift in Sources */, + 49F4A58B1C583AB3007C84A1 /* Transform.swift in Sources */, + 49F4A5911C583B0C007C84A1 /* Card.swift in Sources */, + 49F4A58F1C583AF3007C84A1 /* CGSize.swift in Sources */, + 49F4A5931C583B4C007C84A1 /* Double.swift in Sources */, + 4959011B1C58F8AB000EE944 /* CustomView.swift in Sources */, + 490970611C16D9A900200801 /* UIViewTransform.swift in Sources */, + EBFE74EE1C4900D000B7B646 /* BackCardView.swift in Sources */, + 495413B61C1424A20071F4A0 /* CardViewModel.swift in Sources */, + 49FBBF921C10C2A200A1A4BB /* AppDelegate.swift in Sources */, + 49F4A5891C583A95007C84A1 /* Animation.swift in Sources */, + 49C4EEDE1C5E152800B38CD9 /* SelectedCardViewModel.swift in Sources */, + 49F4A5A11C583DAE007C84A1 /* RotateSelectCardAnimation.swift in Sources */, + 49FBBFC01C10D05800A1A4BB /* CardCollectionViewCell.swift in Sources */, + 49F4A5951C583B61007C84A1 /* FrontCardView.swift in Sources */, + 49F4A59F1C583D88007C84A1 /* RotateRevealSelectedCardAnimation.swift in Sources */, + 49F4A5A31C583DD8007C84A1 /* SlideToSideRestoreAnimation.swift in Sources */, + 49F4A5991C583BAF007C84A1 /* Math.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 497365A21C19BC6E00837617 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 49FBBF8D1C10C2A200A1A4BB /* Mitsumori */; + targetProxy = 497365A11C19BC6E00837617 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 49FBBF951C10C2A200A1A4BB /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 49FBBF961C10C2A200A1A4BB /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 49FBBF9A1C10C2A200A1A4BB /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 49FBBF9B1C10C2A200A1A4BB /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 497365A41C19BC6E00837617 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 274E42B0193BA6FEFA8FD71C /* Pods-MitsumoriUITests.debug.xcconfig */; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/build/Debug-iphoneos", + ); + INFOPLIST_FILE = MitsumoriUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.karumi.MitsumoriUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = Mitsumori; + USES_XCTRUNNER = YES; + }; + name = Debug; + }; + 497365A51C19BC6E00837617 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2757E033CFB59572DA4E60B3 /* Pods-MitsumoriUITests.release.xcconfig */; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/build/Debug-iphoneos", + ); + INFOPLIST_FILE = MitsumoriUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.karumi.MitsumoriUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = Mitsumori; + USES_XCTRUNNER = YES; + }; + name = Release; + }; + 49FBBFB41C10C2A200A1A4BB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 49FBBFB51C10C2A200A1A4BB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Distribution: Gokarumi S.L. (BD48FG9BMV)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 49FBBFB71C10C2A200A1A4BB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F128C4D0067FEE87B2756BC4 /* Pods-Mitsumori.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 10; + INFOPLIST_FILE = Mitsumori/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.karumi.mitsumori; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 49FBBFB81C10C2A200A1A4BB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 83CD4CEBE1B7A02772169FE5 /* Pods-Mitsumori.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 10; + INFOPLIST_FILE = Mitsumori/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.karumi.mitsumori; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 497365A31C19BC6E00837617 /* Build configuration list for PBXNativeTarget "MitsumoriUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 497365A41C19BC6E00837617 /* Debug */, + 497365A51C19BC6E00837617 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 49FBBF891C10C2A200A1A4BB /* Build configuration list for PBXProject "Mitsumori" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 49FBBFB41C10C2A200A1A4BB /* Debug */, + 49FBBFB51C10C2A200A1A4BB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 49FBBFB61C10C2A200A1A4BB /* Build configuration list for PBXNativeTarget "Mitsumori" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 49FBBFB71C10C2A200A1A4BB /* Debug */, + 49FBBFB81C10C2A200A1A4BB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 49FBBF861C10C2A200A1A4BB /* Project object */; +} diff --git a/tests/ok/mc7h-project.pbxproj b/tests/ok/mc7h-project.pbxproj new file mode 100644 index 0000000..9f2cafb --- /dev/null +++ b/tests/ok/mc7h-project.pbxproj @@ -0,0 +1,807 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A7CD39B4222E1C2D003FA014 /* MyApp-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = A7CD39B1222E1C2C003FA014 /* MyApp-Debug.xcconfig */; }; + A7CD39B5222E1C2D003FA014 /* MyApp-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = A7CD39B2222E1C2D003FA014 /* MyApp-Release.xcconfig */; }; + A7CD39B6222E1C2D003FA014 /* MyApp.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = A7CD39B3222E1C2D003FA014 /* MyApp.xcconfig */; }; + A7CD39BC222E3ABF003FA014 /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7CD39BA222E3ABF003FA014 /* Alamofire.framework */; }; + A7CD39BD222E3ABF003FA014 /* AlamofireImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7CD39BB222E3ABF003FA014 /* AlamofireImage.framework */; }; + A7CD3A64222F68E9003FA014 /* MyAppApi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7CD3A63222F68E9003FA014 /* MyAppApi.framework */; }; + A7CD3A71222F7428003FA014 /* CreateOrderPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A6B222F7428003FA014 /* CreateOrderPresenter.swift */; }; + A7CD3A72222F7428003FA014 /* CreateOrderWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A6C222F7428003FA014 /* CreateOrderWorker.swift */; }; + A7CD3A73222F7428003FA014 /* CreateOrderRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A6D222F7428003FA014 /* CreateOrderRouter.swift */; }; + A7CD3A74222F7428003FA014 /* CreateOrderModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A6E222F7428003FA014 /* CreateOrderModels.swift */; }; + A7CD3A75222F7428003FA014 /* CreateOrderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A6F222F7428003FA014 /* CreateOrderViewController.swift */; }; + A7CD3A76222F7428003FA014 /* CreateOrderInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A70222F7428003FA014 /* CreateOrderInteractor.swift */; }; + A7CD3A83222F864F003FA014 /* CreateOrderViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A7F222F864F003FA014 /* CreateOrderViewControllerTests.swift */; }; + A7CD3A84222F864F003FA014 /* CreateOrderInteractorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A80222F864F003FA014 /* CreateOrderInteractorTests.swift */; }; + A7CD3A85222F864F003FA014 /* CreateOrderWorkerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A81222F864F003FA014 /* CreateOrderWorkerTests.swift */; }; + A7CD3A86222F864F003FA014 /* CreateOrderPresenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CD3A82222F864F003FA014 /* CreateOrderPresenterTests.swift */; }; + A7D7A186222CE06C00DE4230 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D7A185222CE06C00DE4230 /* AppDelegate.swift */; }; + A7D7A188222CE06C00DE4230 /* FirstViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D7A187222CE06C00DE4230 /* FirstViewController.swift */; }; + A7D7A18A222CE06C00DE4230 /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D7A189222CE06C00DE4230 /* SecondViewController.swift */; }; + A7D7A18D222CE06C00DE4230 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A7D7A18B222CE06C00DE4230 /* Main.storyboard */; }; + A7D7A18F222CE06E00DE4230 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A7D7A18E222CE06E00DE4230 /* Assets.xcassets */; }; + A7D7A192222CE06E00DE4230 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A7D7A190222CE06E00DE4230 /* LaunchScreen.storyboard */; }; + A7D7A19D222CE06E00DE4230 /* MyAppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D7A19C222CE06E00DE4230 /* MyAppTests.swift */; }; + A7D7A1A8222CE06E00DE4230 /* MyAppUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D7A1A7222CE06E00DE4230 /* MyAppUITests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A7D7A199222CE06E00DE4230 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A7D7A17A222CE06C00DE4230 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A7D7A181222CE06C00DE4230; + remoteInfo = MyApp; + }; + A7D7A1A4222CE06E00DE4230 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A7D7A17A222CE06C00DE4230 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A7D7A181222CE06C00DE4230; + remoteInfo = MyApp; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + A7CD39B1222E1C2C003FA014 /* MyApp-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MyApp-Debug.xcconfig"; sourceTree = ""; }; + A7CD39B2222E1C2D003FA014 /* MyApp-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "MyApp-Release.xcconfig"; sourceTree = ""; }; + A7CD39B3222E1C2D003FA014 /* MyApp.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = MyApp.xcconfig; sourceTree = ""; }; + A7CD39BA222E3ABF003FA014 /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = ""; }; + A7CD39BB222E3ABF003FA014 /* AlamofireImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AlamofireImage.framework; path = Carthage/Build/iOS/AlamofireImage.framework; sourceTree = ""; }; + A7CD3A63222F68E9003FA014 /* MyAppApi.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MyAppApi.framework; path = Carthage/Build/iOS/MyAppApi.framework; sourceTree = ""; }; + A7CD3A6B222F7428003FA014 /* CreateOrderPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderPresenter.swift; sourceTree = ""; }; + A7CD3A6C222F7428003FA014 /* CreateOrderWorker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderWorker.swift; sourceTree = ""; }; + A7CD3A6D222F7428003FA014 /* CreateOrderRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderRouter.swift; sourceTree = ""; }; + A7CD3A6E222F7428003FA014 /* CreateOrderModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderModels.swift; sourceTree = ""; }; + A7CD3A6F222F7428003FA014 /* CreateOrderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderViewController.swift; sourceTree = ""; }; + A7CD3A70222F7428003FA014 /* CreateOrderInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderInteractor.swift; sourceTree = ""; }; + A7CD3A7F222F864F003FA014 /* CreateOrderViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderViewControllerTests.swift; sourceTree = ""; }; + A7CD3A80222F864F003FA014 /* CreateOrderInteractorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderInteractorTests.swift; sourceTree = ""; }; + A7CD3A81222F864F003FA014 /* CreateOrderWorkerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderWorkerTests.swift; sourceTree = ""; }; + A7CD3A82222F864F003FA014 /* CreateOrderPresenterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateOrderPresenterTests.swift; sourceTree = ""; }; + A7D7A182222CE06C00DE4230 /* MyApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D7A185222CE06C00DE4230 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + A7D7A187222CE06C00DE4230 /* FirstViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstViewController.swift; sourceTree = ""; }; + A7D7A189222CE06C00DE4230 /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = ""; }; + A7D7A18C222CE06C00DE4230 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + A7D7A18E222CE06E00DE4230 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A7D7A191222CE06E00DE4230 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + A7D7A193222CE06E00DE4230 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A7D7A198222CE06E00DE4230 /* MyAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D7A19C222CE06E00DE4230 /* MyAppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyAppTests.swift; sourceTree = ""; }; + A7D7A19E222CE06E00DE4230 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A7D7A1A3222CE06E00DE4230 /* MyAppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyAppUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A7D7A1A7222CE06E00DE4230 /* MyAppUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyAppUITests.swift; sourceTree = ""; }; + A7D7A1A9222CE06E00DE4230 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A7D7A17F222CE06C00DE4230 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A7CD39BC222E3ABF003FA014 /* Alamofire.framework in Frameworks */, + A7CD39BD222E3ABF003FA014 /* AlamofireImage.framework in Frameworks */, + A7CD3A64222F68E9003FA014 /* MyAppApi.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D7A195222CE06E00DE4230 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D7A1A0222CE06E00DE4230 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A7CD39B9222E3ABF003FA014 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A7CD39BA222E3ABF003FA014 /* Alamofire.framework */, + A7CD39BB222E3ABF003FA014 /* AlamofireImage.framework */, + A7CD3A63222F68E9003FA014 /* MyAppApi.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A7CD3A69222F738A003FA014 /* Scenes */ = { + isa = PBXGroup; + children = ( + A7CD3A6A222F73A0003FA014 /* CreateOrder */, + ); + path = Scenes; + sourceTree = ""; + }; + A7CD3A6A222F73A0003FA014 /* CreateOrder */ = { + isa = PBXGroup; + children = ( + A7CD3A70222F7428003FA014 /* CreateOrderInteractor.swift */, + A7CD3A6E222F7428003FA014 /* CreateOrderModels.swift */, + A7CD3A6B222F7428003FA014 /* CreateOrderPresenter.swift */, + A7CD3A6D222F7428003FA014 /* CreateOrderRouter.swift */, + A7CD3A6F222F7428003FA014 /* CreateOrderViewController.swift */, + A7CD3A6C222F7428003FA014 /* CreateOrderWorker.swift */, + A7CD3A7E222F862E003FA014 /* Tests */, + ); + path = CreateOrder; + sourceTree = ""; + }; + A7CD3A78222F809B003FA014 /* Shared */ = { + isa = PBXGroup; + children = ( + A7CD3A79222F80AB003FA014 /* Workers */, + ); + name = Shared; + path = ../Shared; + sourceTree = ""; + }; + A7CD3A79222F80AB003FA014 /* Workers */ = { + isa = PBXGroup; + children = ( + ); + path = Workers; + sourceTree = ""; + }; + A7CD3A7A222F80C0003FA014 /* Extensions */ = { + isa = PBXGroup; + children = ( + A7CD3A7B222F80CE003FA014 /* Language */, + A7CD3A7C222F810B003FA014 /* Library */, + ); + name = Extensions; + path = ..; + sourceTree = ""; + }; + A7CD3A7B222F80CE003FA014 /* Language */ = { + isa = PBXGroup; + children = ( + ); + path = Language; + sourceTree = ""; + }; + A7CD3A7C222F810B003FA014 /* Library */ = { + isa = PBXGroup; + children = ( + ); + path = Library; + sourceTree = ""; + }; + A7CD3A7E222F862E003FA014 /* Tests */ = { + isa = PBXGroup; + children = ( + A7CD3A80222F864F003FA014 /* CreateOrderInteractorTests.swift */, + A7CD3A82222F864F003FA014 /* CreateOrderPresenterTests.swift */, + A7CD3A7F222F864F003FA014 /* CreateOrderViewControllerTests.swift */, + A7CD3A81222F864F003FA014 /* CreateOrderWorkerTests.swift */, + ); + path = Tests; + sourceTree = ""; + }; + A7D7A179222CE06C00DE4230 = { + isa = PBXGroup; + children = ( + A7CD39B9222E3ABF003FA014 /* Frameworks */, + A7D7A183222CE06C00DE4230 /* Products */, + A7D7A184222CE06C00DE4230 /* MyApp */, + A7D7A19B222CE06E00DE4230 /* MyAppTests */, + A7D7A1A6222CE06E00DE4230 /* MyAppUITests */, + ); + sourceTree = ""; + }; + A7D7A183222CE06C00DE4230 /* Products */ = { + isa = PBXGroup; + children = ( + A7D7A182222CE06C00DE4230 /* MyApp.app */, + A7D7A198222CE06E00DE4230 /* MyAppTests.xctest */, + A7D7A1A3222CE06E00DE4230 /* MyAppUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + A7D7A184222CE06C00DE4230 /* MyApp */ = { + isa = PBXGroup; + children = ( + A7D7A185222CE06C00DE4230 /* AppDelegate.swift */, + A7D7A18E222CE06E00DE4230 /* Assets.xcassets */, + A7CD3A7A222F80C0003FA014 /* Extensions */, + A7D7A187222CE06C00DE4230 /* FirstViewController.swift */, + A7D7A193222CE06E00DE4230 /* Info.plist */, + A7D7A190222CE06E00DE4230 /* LaunchScreen.storyboard */, + A7D7A18B222CE06C00DE4230 /* Main.storyboard */, + A7CD3A69222F738A003FA014 /* Scenes */, + A7D7A189222CE06C00DE4230 /* SecondViewController.swift */, + A7CD3A78222F809B003FA014 /* Shared */, + A7CD39B3222E1C2D003FA014 /* MyApp.xcconfig */, + A7CD39B1222E1C2C003FA014 /* MyApp-Debug.xcconfig */, + A7CD39B2222E1C2D003FA014 /* MyApp-Release.xcconfig */, + ); + path = MyApp; + sourceTree = ""; + }; + A7D7A19B222CE06E00DE4230 /* MyAppTests */ = { + isa = PBXGroup; + children = ( + A7D7A19E222CE06E00DE4230 /* Info.plist */, + A7D7A19C222CE06E00DE4230 /* MyAppTests.swift */, + ); + path = MyAppTests; + sourceTree = ""; + }; + A7D7A1A6222CE06E00DE4230 /* MyAppUITests */ = { + isa = PBXGroup; + children = ( + A7D7A1A9222CE06E00DE4230 /* Info.plist */, + A7D7A1A7222CE06E00DE4230 /* MyAppUITests.swift */, + ); + path = MyAppUITests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A7D7A181222CE06C00DE4230 /* MyApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D7A1AC222CE06E00DE4230 /* Build configuration list for PBXNativeTarget "MyApp" */; + buildPhases = ( + A7CD39B7222E2806003FA014 /* Run Swiftlint */, + A7CD39B8222E2F16003FA014 /* Run Sort Project */, + A7D7A17E222CE06C00DE4230 /* Sources */, + A7D7A17F222CE06C00DE4230 /* Frameworks */, + A7D7A180222CE06C00DE4230 /* Resources */, + A7CD39BE222E3AF6003FA014 /* Run Copy Carthage Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MyApp; + productName = MyApp; + productReference = A7D7A182222CE06C00DE4230 /* MyApp.app */; + productType = "com.apple.product-type.application"; + }; + A7D7A197222CE06E00DE4230 /* MyAppTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D7A1AF222CE06E00DE4230 /* Build configuration list for PBXNativeTarget "MyAppTests" */; + buildPhases = ( + A7D7A194222CE06E00DE4230 /* Sources */, + A7D7A195222CE06E00DE4230 /* Frameworks */, + A7D7A196222CE06E00DE4230 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A7D7A19A222CE06E00DE4230 /* PBXTargetDependency */, + ); + name = MyAppTests; + productName = MyAppTests; + productReference = A7D7A198222CE06E00DE4230 /* MyAppTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + A7D7A1A2222CE06E00DE4230 /* MyAppUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A7D7A1B2222CE06E00DE4230 /* Build configuration list for PBXNativeTarget "MyAppUITests" */; + buildPhases = ( + A7D7A19F222CE06E00DE4230 /* Sources */, + A7D7A1A0222CE06E00DE4230 /* Frameworks */, + A7D7A1A1222CE06E00DE4230 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A7D7A1A5222CE06E00DE4230 /* PBXTargetDependency */, + ); + name = MyAppUITests; + productName = MyAppUITests; + productReference = A7D7A1A3222CE06E00DE4230 /* MyAppUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A7D7A17A222CE06C00DE4230 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1010; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = mc7h; + TargetAttributes = { + A7D7A181222CE06C00DE4230 = { + CreatedOnToolsVersion = 10.1; + }; + A7D7A197222CE06E00DE4230 = { + CreatedOnToolsVersion = 10.1; + TestTargetID = A7D7A181222CE06C00DE4230; + }; + A7D7A1A2222CE06E00DE4230 = { + CreatedOnToolsVersion = 10.1; + TestTargetID = A7D7A181222CE06C00DE4230; + }; + }; + }; + buildConfigurationList = A7D7A17D222CE06C00DE4230 /* Build configuration list for PBXProject "MyApp" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = A7D7A179222CE06C00DE4230; + productRefGroup = A7D7A183222CE06C00DE4230 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A7D7A181222CE06C00DE4230 /* MyApp */, + A7D7A197222CE06E00DE4230 /* MyAppTests */, + A7D7A1A2222CE06E00DE4230 /* MyAppUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A7D7A180222CE06C00DE4230 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D7A18F222CE06E00DE4230 /* Assets.xcassets in Resources */, + A7D7A192222CE06E00DE4230 /* LaunchScreen.storyboard in Resources */, + A7D7A18D222CE06C00DE4230 /* Main.storyboard in Resources */, + A7CD39B4222E1C2D003FA014 /* MyApp-Debug.xcconfig in Resources */, + A7CD39B5222E1C2D003FA014 /* MyApp-Release.xcconfig in Resources */, + A7CD39B6222E1C2D003FA014 /* MyApp.xcconfig in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D7A196222CE06E00DE4230 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D7A1A1222CE06E00DE4230 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + A7CD39B7222E2806003FA014 /* Run Swiftlint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Run Swiftlint"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\nswiftlint\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; + }; + A7CD39B8222E2F16003FA014 /* Run Sort Project */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Run Sort Project"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Type a script or drag a script file from your workspace to insert its path.\nruby ./Scripts/sortproj.rb\n"; + }; + A7CD39BE222E3AF6003FA014 /* Run Copy Carthage Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework", + "$(SRCROOT)/Carthage/Build/iOS/AlamofireImage.framework", + "$(SRCROOT)/Carthage/Build/iOS/MyAppApi.framework", + ); + name = "Run Copy Carthage Frameworks"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Alamofire.framework", + "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/AlamofireImage.framework", + "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/MyAppApi.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A7D7A17E222CE06C00DE4230 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D7A186222CE06C00DE4230 /* AppDelegate.swift in Sources */, + A7CD3A76222F7428003FA014 /* CreateOrderInteractor.swift in Sources */, + A7CD3A74222F7428003FA014 /* CreateOrderModels.swift in Sources */, + A7CD3A71222F7428003FA014 /* CreateOrderPresenter.swift in Sources */, + A7CD3A73222F7428003FA014 /* CreateOrderRouter.swift in Sources */, + A7CD3A75222F7428003FA014 /* CreateOrderViewController.swift in Sources */, + A7CD3A72222F7428003FA014 /* CreateOrderWorker.swift in Sources */, + A7D7A188222CE06C00DE4230 /* FirstViewController.swift in Sources */, + A7D7A18A222CE06C00DE4230 /* SecondViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D7A194222CE06E00DE4230 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7CD3A84222F864F003FA014 /* CreateOrderInteractorTests.swift in Sources */, + A7CD3A86222F864F003FA014 /* CreateOrderPresenterTests.swift in Sources */, + A7CD3A83222F864F003FA014 /* CreateOrderViewControllerTests.swift in Sources */, + A7CD3A85222F864F003FA014 /* CreateOrderWorkerTests.swift in Sources */, + A7D7A19D222CE06E00DE4230 /* MyAppTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A7D7A19F222CE06E00DE4230 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A7D7A1A8222CE06E00DE4230 /* MyAppUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A7D7A19A222CE06E00DE4230 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A7D7A181222CE06C00DE4230 /* MyApp */; + targetProxy = A7D7A199222CE06E00DE4230 /* PBXContainerItemProxy */; + }; + A7D7A1A5222CE06E00DE4230 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A7D7A181222CE06C00DE4230 /* MyApp */; + targetProxy = A7D7A1A4222CE06E00DE4230 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A7D7A18B222CE06C00DE4230 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A7D7A18C222CE06C00DE4230 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + A7D7A190222CE06E00DE4230 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A7D7A191222CE06E00DE4230 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A7D7A1AA222CE06E00DE4230 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + A7D7A1AB222CE06E00DE4230 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A7D7A1AD222CE06E00DE4230 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A7CD39B1222E1C2C003FA014 /* MyApp-Debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = BQNXB4G3KQ; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = MyApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.mc7h.mobile.internal.MyApp; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A7D7A1AE222CE06E00DE4230 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A7CD39B2222E1C2D003FA014 /* MyApp-Release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = BQNXB4G3KQ; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = MyApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.mc7h.mobile.internal.MyApp; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + A7D7A1B0222CE06E00DE4230 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = BQNXB4G3KQ; + INFOPLIST_FILE = MyAppTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.mc7h.mobile.internal.MyAppTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp"; + }; + name = Debug; + }; + A7D7A1B1222CE06E00DE4230 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = BQNXB4G3KQ; + INFOPLIST_FILE = MyAppTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.mc7h.mobile.internal.MyAppTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp"; + }; + name = Release; + }; + A7D7A1B3222CE06E00DE4230 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = BQNXB4G3KQ; + INFOPLIST_FILE = MyAppUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.mc7h.mobile.internal.MyAppUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MyApp; + }; + name = Debug; + }; + A7D7A1B4222CE06E00DE4230 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = BQNXB4G3KQ; + INFOPLIST_FILE = MyAppUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.mc7h.mobile.internal.MyAppUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MyApp; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A7D7A17D222CE06C00DE4230 /* Build configuration list for PBXProject "MyApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D7A1AA222CE06E00DE4230 /* Debug */, + A7D7A1AB222CE06E00DE4230 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A7D7A1AC222CE06E00DE4230 /* Build configuration list for PBXNativeTarget "MyApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D7A1AD222CE06E00DE4230 /* Debug */, + A7D7A1AE222CE06E00DE4230 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A7D7A1AF222CE06E00DE4230 /* Build configuration list for PBXNativeTarget "MyAppTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D7A1B0222CE06E00DE4230 /* Debug */, + A7D7A1B1222CE06E00DE4230 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A7D7A1B2222CE06E00DE4230 /* Build configuration list for PBXNativeTarget "MyAppUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A7D7A1B3222CE06E00DE4230 /* Debug */, + A7D7A1B4222CE06E00DE4230 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A7D7A17A222CE06C00DE4230 /* Project object */; +}