- Timestamp:
- Jan 11, 2017, 4:11:02 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 075734f
- Parents:
- bb82c03 (diff), d3a85240 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 2 added
- 56 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
rbb82c03 r2162c2c 656 656 } 657 657 658 void CodeGenerator::visit( TupleExpr * tupleExpr ) { assert( false ); } 658 void CodeGenerator::visit( UntypedTupleExpr * tupleExpr ) { assertf( false, "UntypedTupleExpr should not make it to Code Gen" ); } 659 660 void CodeGenerator::visit( TupleExpr * tupleExpr ) { assertf( false, "TupleExpr should not make it to Code Gen" ); } 659 661 660 662 void CodeGenerator::visit( TypeExpr * typeExpr ) {} -
src/CodeGen/CodeGenerator.h
rbb82c03 r2162c2c 72 72 virtual void visit( CommaExpr *commaExpr ); 73 73 virtual void visit( CompoundLiteralExpr *compLitExpr ); 74 virtual void visit( UntypedTupleExpr *tupleExpr ); 74 75 virtual void visit( TupleExpr *tupleExpr ); 75 76 virtual void visit( TypeExpr *typeExpr ); -
src/CodeGen/GenType.cc
rbb82c03 r2162c2c 41 41 virtual void visit( EnumInstType *enumInst ); 42 42 virtual void visit( TypeInstType *typeInst ); 43 virtual void visit( TupleType * tupleType ); 43 44 virtual void visit( VarArgsType *varArgsType ); 44 45 virtual void visit( ZeroType *zeroType ); … … 197 198 } 198 199 200 void GenType::visit( TupleType * tupleType ) { 201 assertf( ! mangle, "Tuple types should not make it to Code Gen." ); 202 Visitor::visit( tupleType ); 203 } 204 199 205 void GenType::visit( VarArgsType *varArgsType ) { 200 206 typeString = "__builtin_va_list " + typeString; -
src/GenPoly/Box.cc
rbb82c03 r2162c2c 136 136 template< typename DeclClass > 137 137 DeclClass *handleDecl( DeclClass *decl, Type *type ); 138 139 using PolyMutator::mutate; 138 template< typename AggDecl > 139 AggDecl * handleAggDecl( AggDecl * aggDecl ); 140 141 typedef PolyMutator Parent; 142 using Parent::mutate; 140 143 virtual DeclarationWithType *mutate( FunctionDecl *functionDecl ) override; 141 144 virtual ObjectDecl *mutate( ObjectDecl *objectDecl ) override; 145 virtual StructDecl *mutate( StructDecl *structDecl ) override; 146 virtual UnionDecl *mutate( UnionDecl *unionDecl ) override; 142 147 virtual TypeDecl *mutate( TypeDecl *typeDecl ) override; 143 148 virtual TypedefDecl *mutate( TypedefDecl *typedefDecl ) override; … … 686 691 for ( std::list< Expression* >::iterator param = params.begin(); param != params.end(); ++param ) { 687 692 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 688 assert (paramType &&"Aggregate parameters should be type expressions");693 assertf(paramType, "Aggregate parameters should be type expressions"); 689 694 paramType->set_type( replaceWithConcrete( appExpr, paramType->get_type(), false ) ); 690 695 } … … 783 788 void Pass1::boxParams( ApplicationExpr *appExpr, FunctionType *function, std::list< Expression *>::iterator &arg, const TyVarMap &exprTyVars ) { 784 789 for ( std::list< DeclarationWithType *>::const_iterator param = function->get_parameters().begin(); param != function->get_parameters().end(); ++param, ++arg ) { 785 assert ( arg != appExpr->get_args().end() );790 assertf( arg != appExpr->get_args().end(), "boxParams: missing argument for param %s to %s in %s", toString( *param ).c_str(), toString( function ).c_str(), toString( appExpr ).c_str() ); 786 791 addCast( *arg, (*param)->get_type(), exprTyVars ); 787 792 boxParam( (*param)->get_type(), *arg, exprTyVars ); … … 1127 1132 makeTyVarMap( function, exprTyVars ); // xxx - should this take into account the variables already bound in scopeTyVars (i.e. remove them from exprTyVars?) 1128 1133 ReferenceToType *dynRetType = isDynRet( function, exprTyVars ); 1129 Type *concRetType = appExpr->get_result()->isVoid() ? nullptr : appExpr->get_result();// ?: dynRetType; // xxx - is concRetType a good name? 1130 1134 1135 // NOTE: addDynRetParam needs to know the actual (generated) return type so it can make a temp variable, so pass the result type from the appExpr 1136 // passTypeVars needs to know the program-text return type (i.e. the distinction between _conc_T30 and T3(int)) 1137 // concRetType may not be a good name in one or both of these places. A more appropriate name change is welcome. 1131 1138 if ( dynRetType ) { 1139 Type *concRetType = appExpr->get_result()->isVoid() ? nullptr : appExpr->get_result(); 1132 1140 ret = addDynRetParam( appExpr, function, concRetType, arg ); // xxx - used to use dynRetType instead of concRetType 1133 1141 } else if ( needsAdapter( function, scopeTyVars ) && ! needsAdapter( function, exprTyVars) ) { // xxx - exprTyVars is used above...? … … 1142 1150 arg = appExpr->get_args().begin(); 1143 1151 1152 Type *concRetType = replaceWithConcrete( appExpr, dynRetType ); 1144 1153 passTypeVars( appExpr, concRetType, arg, exprTyVars ); // xxx - used to use dynRetType instead of concRetType; this changed so that the correct type paramaters are passed for return types (it should be the concrete type's parameters, not the formal type's) 1145 1154 addInferredParams( appExpr, function, arg, exprTyVars ); … … 1271 1280 template< typename DeclClass > 1272 1281 DeclClass * Pass2::handleDecl( DeclClass *decl, Type *type ) { 1273 DeclClass *ret = static_cast< DeclClass *>( Mutator::mutate( decl ) );1282 DeclClass *ret = static_cast< DeclClass *>( Parent::mutate( decl ) ); 1274 1283 1275 1284 return ret; … … 1305 1314 } 1306 1315 1316 template< typename AggDecl > 1317 AggDecl * Pass2::handleAggDecl( AggDecl * aggDecl ) { 1318 // prevent tyVars from leaking into containing scope 1319 scopeTyVars.beginScope(); 1320 Parent::mutate( aggDecl ); 1321 scopeTyVars.endScope(); 1322 return aggDecl; 1323 } 1324 1325 StructDecl * Pass2::mutate( StructDecl *aggDecl ) { 1326 return handleAggDecl( aggDecl ); 1327 } 1328 1329 UnionDecl * Pass2::mutate( UnionDecl *aggDecl ) { 1330 return handleAggDecl( aggDecl ); 1331 } 1332 1307 1333 TypeDecl * Pass2::mutate( TypeDecl *typeDecl ) { 1308 1334 addToTyVarMap( typeDecl, scopeTyVars ); … … 1310 1336 return handleDecl( typeDecl, typeDecl->get_base() ); 1311 1337 } else { 1312 return Mutator::mutate( typeDecl );1338 return Parent::mutate( typeDecl ); 1313 1339 } 1314 1340 } … … 1322 1348 makeTyVarMap( pointerType, scopeTyVars ); 1323 1349 1324 Type *ret = Mutator::mutate( pointerType );1350 Type *ret = Parent::mutate( pointerType ); 1325 1351 1326 1352 scopeTyVars.endScope(); -
src/GenPoly/InstantiateGeneric.cc
rbb82c03 r2162c2c 18 18 #include <utility> 19 19 #include <vector> 20 #include <unordered_map> 20 21 21 22 #include "InstantiateGeneric.h" … … 24 25 #include "GenPoly.h" 25 26 #include "ScopedSet.h" 27 #include "PolyMutator.h" 26 28 27 29 #include "ResolvExpr/typeops.h" … … 146 148 } 147 149 150 // collect the environments of each TypeInstType so that type variables can be replaced 151 // xxx - possibly temporary solution. Access to type environments is required in GenericInstantiator, but it needs to be a DeclMutator which does not provide easy access to the type environments. 152 class EnvFinder final : public GenPoly::PolyMutator { 153 public: 154 virtual Type * mutate( TypeInstType * inst ) override { 155 if ( env ) envMap[inst] = env; 156 return inst; 157 } 158 159 // don't want to associate an environment with TypeInstTypes that occur in function types - this may actually only apply to function types belonging to DeclarationWithTypes (or even just FunctionDecl)? 160 virtual Type * mutate( FunctionType * ftype ) override { 161 return ftype; 162 } 163 std::unordered_map< ReferenceToType *, TypeSubstitution * > envMap; 164 }; 165 148 166 /// Mutator pass that replaces concrete instantiations of generic types with actual struct declarations, scoped appropriately 149 167 class GenericInstantiator final : public DeclMutator { … … 154 172 /// Namer for concrete types 155 173 UniqueName typeNamer; 156 174 /// Reference to mapping of environments 175 const std::unordered_map< ReferenceToType *, TypeSubstitution * > & envMap; 157 176 public: 158 GenericInstantiator( ) : DeclMutator(), instantiations(), dtypeStatics(), typeNamer("_conc_") {}177 GenericInstantiator( const std::unordered_map< ReferenceToType *, TypeSubstitution * > & envMap ) : DeclMutator(), instantiations(), dtypeStatics(), typeNamer("_conc_"), envMap( envMap ) {} 159 178 160 179 using DeclMutator::mutate; … … 174 193 void insert( UnionInstType *inst, const std::list< TypeExpr* > &typeSubs, UnionDecl *decl ) { instantiations.insert( inst->get_baseUnion(), typeSubs, decl ); } 175 194 195 void replaceParametersWithConcrete( std::list< Expression* >& params ); 196 Type *replaceWithConcrete( Type *type, bool doClone ); 197 176 198 /// Strips a dtype-static aggregate decl of its type parameters, marks it as stripped 177 199 void stripDtypeParams( AggregateDecl *base, std::list< TypeDecl* >& baseParams, const std::list< TypeExpr* >& typeSubs ); … … 179 201 180 202 void instantiateGeneric( std::list< Declaration* > &translationUnit ) { 181 GenericInstantiator instantiator; 203 EnvFinder finder; 204 mutateAll( translationUnit, finder ); 205 GenericInstantiator instantiator( finder.envMap ); 182 206 instantiator.mutateDeclarationList( translationUnit ); 183 207 } … … 209 233 // can pretend that any ftype is `void (*)(void)` 210 234 out.push_back( new TypeExpr( new FunctionType( Type::Qualifiers(), false ) ) ); 235 break; 236 case TypeDecl::Ttype: 237 assertf( false, "Ttype parameters are not currently allowed as parameters to generic types." ); 211 238 break; 212 239 } … … 253 280 } 254 281 282 /// xxx - more or less copied from box -- these should be merged with those somehow... 283 void GenericInstantiator::replaceParametersWithConcrete( std::list< Expression* >& params ) { 284 for ( std::list< Expression* >::iterator param = params.begin(); param != params.end(); ++param ) { 285 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 286 assertf(paramType, "Aggregate parameters should be type expressions"); 287 paramType->set_type( replaceWithConcrete( paramType->get_type(), false ) ); 288 } 289 } 290 291 Type *GenericInstantiator::replaceWithConcrete( Type *type, bool doClone ) { 292 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) { 293 if ( envMap.count( typeInst ) ) { 294 TypeSubstitution * env = envMap.at( typeInst ); 295 Type *concrete = env->lookup( typeInst->get_name() ); 296 if ( concrete ) { 297 return concrete->clone(); 298 } 299 else return typeInst->clone(); 300 } 301 } else if ( StructInstType *structType = dynamic_cast< StructInstType* >( type ) ) { 302 if ( doClone ) { 303 structType = structType->clone(); 304 } 305 replaceParametersWithConcrete( structType->get_parameters() ); 306 return structType; 307 } else if ( UnionInstType *unionType = dynamic_cast< UnionInstType* >( type ) ) { 308 if ( doClone ) { 309 unionType = unionType->clone(); 310 } 311 replaceParametersWithConcrete( unionType->get_parameters() ); 312 return unionType; 313 } 314 return type; 315 } 316 317 255 318 Type* GenericInstantiator::mutate( StructInstType *inst ) { 256 319 // mutate subtypes … … 262 325 if ( inst->get_parameters().empty() ) return inst; 263 326 327 // need to replace type variables to ensure that generic types are instantiated for the return values of polymorphic functions (in particular, for thunks, because they are not [currently] copy constructed). 328 replaceWithConcrete( inst, false ); 329 264 330 // check for an already-instantiatiated dtype-static type 265 331 if ( dtypeStatics.find( inst->get_baseStruct() ) != dtypeStatics.end() ) { … … 269 335 270 336 // check if type can be concretely instantiated; put substitutions into typeSubs 271 assert ( inst->get_baseParameters() &&"Base struct has parameters" );337 assertf( inst->get_baseParameters(), "Base struct has parameters" ); 272 338 std::list< TypeExpr* > typeSubs; 273 339 genericType gt = makeSubstitutions( *inst->get_baseParameters(), inst->get_parameters(), typeSubs ); -
src/GenPoly/ScrubTyVars.cc
rbb82c03 r2162c2c 31 31 case TypeDecl::Any: 32 32 case TypeDecl::Dtype: 33 case TypeDecl::Ttype: 33 34 { 34 35 PointerType *ret = new PointerType( Type::Qualifiers(), new VoidType( typeInst->get_qualifiers() ) ); -
src/GenPoly/Specialize.cc
rbb82c03 r2162c2c 32 32 #include "Common/utility.h" 33 33 #include "InitTweak/InitTweak.h" 34 #include "Tuples/Tuples.h" 34 35 35 36 namespace GenPoly { 36 const std::list<Label> noLabels; 37 37 class Specializer; 38 38 class Specialize final : public PolyMutator { 39 friend class Specializer; 39 40 public: 40 Specialize( std::string paramPrefix = "_p" );41 42 41 using PolyMutator::mutate; 43 42 virtual Expression * mutate( ApplicationExpr *applicationExpr ) override; … … 48 47 // virtual Expression * mutate( CommaExpr *commaExpr ); 49 48 50 private: 51 Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams = 0 ); 52 Expression *doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams = 0 ); 49 Specializer * specializer = nullptr; 53 50 void handleExplicitParams( ApplicationExpr *appExpr ); 54 55 UniqueName thunkNamer;56 std::string paramPrefix;57 51 }; 58 52 59 void convertSpecializations( std::list< Declaration* >& translationUnit ) { 60 Specialize specializer; 61 mutateAll( translationUnit, specializer ); 62 } 63 64 Specialize::Specialize( std::string paramPrefix ) 65 : thunkNamer( "_thunk" ), paramPrefix( paramPrefix ) { 66 } 53 class Specializer { 54 public: 55 Specializer( Specialize & spec ) : spec( spec ), env( spec.env ), stmtsToAdd( spec.stmtsToAdd ) {} 56 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) = 0; 57 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) = 0; 58 virtual Expression *doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams = 0 ); 59 60 protected: 61 Specialize & spec; 62 std::string paramPrefix = "_p"; 63 TypeSubstitution *& env; 64 std::list< Statement * > & stmtsToAdd; 65 }; 66 67 // for normal polymorphic -> monomorphic function conversion 68 class PolySpecializer : public Specializer { 69 public: 70 PolySpecializer( Specialize & spec ) : Specializer( spec ) {} 71 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) override; 72 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) override; 73 }; 74 75 // // for tuple -> non-tuple function conversion 76 class TupleSpecializer : public Specializer { 77 public: 78 TupleSpecializer( Specialize & spec ) : Specializer( spec ) {} 79 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) override; 80 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) override; 81 }; 67 82 68 83 /// Looks up open variables in actual type, returning true if any of them are bound in the environment or formal type. 69 bool needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {84 bool PolySpecializer::needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) { 70 85 if ( env ) { 71 86 using namespace ResolvExpr; … … 92 107 93 108 /// Generates a thunk that calls `actual` with type `funType` and returns its address 94 Expression * Specialize::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) { 109 Expression * PolySpecializer::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) { 110 static UniqueName thunkNamer( "_thunk" ); 111 95 112 FunctionType *newType = funType->clone(); 96 113 if ( env ) { 97 TypeSubstitution newEnv( *env );98 114 // it is important to replace only occurrences of type variables that occur free in the 99 115 // thunk's type 100 newEnv.applyFree( newType );116 env->applyFree( newType ); 101 117 } // if 102 118 // create new thunk with same signature as formal type (C linkage, empty body) … … 125 141 std::list< Statement* > oldStmts; 126 142 oldStmts.splice( oldStmts.end(), stmtsToAdd ); 127 handleExplicitParams( appExpr );143 spec.handleExplicitParams( appExpr ); 128 144 paramPrefix = oldParamPrefix; 129 145 // write any statements added for recursive specializations into the thunk body … … 147 163 } 148 164 149 Expression * Specialize ::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) {165 Expression * Specializer::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) { 150 166 assertf( actual->has_result(), "attempting to specialize an untyped expression" ); 151 167 if ( needsSpecialization( formalType, actual->get_result(), env ) ) { 152 FunctionType *funType; 153 if ( ( funType = getFunctionType( formalType ) ) ) { 168 if ( FunctionType *funType = getFunctionType( formalType ) ) { 154 169 ApplicationExpr *appExpr; 155 170 VariableExpr *varExpr; … … 170 185 } 171 186 187 bool TupleSpecializer::needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) { 188 if ( FunctionType * ftype = getFunctionType( formalType ) ) { 189 return ftype->isTtype(); 190 } 191 return false; 192 } 193 194 /// restructures arg to match the structure of a single formal parameter. Assumes that atomic types are compatible (as the Resolver should have ensured this) 195 template< typename OutIterator > 196 void matchOneFormal( Expression * arg, unsigned & idx, Type * formal, OutIterator out ) { 197 if ( TupleType * tupleType = dynamic_cast< TupleType * >( formal ) ) { 198 std::list< Expression * > exprs; 199 for ( Type * t : *tupleType ) { 200 matchOneFormal( arg, idx, t, back_inserter( exprs ) ); 201 } 202 *out++ = new TupleExpr( exprs ); 203 } else { 204 *out++ = new TupleIndexExpr( arg->clone(), idx++ ); 205 } 206 } 207 208 /// restructures the ttype argument to match the structure of the formal parameters of the actual function. 209 // [begin, end) are the formal parameters. 210 // args is the list of arguments currently given to the actual function, the last of which needs to be restructured. 211 template< typename Iterator, typename OutIterator > 212 void fixLastArg( Expression * last, Iterator begin, Iterator end, OutIterator out ) { 213 // safe_dynamic_cast for the assertion 214 safe_dynamic_cast< TupleType * >( last->get_result() ); 215 unsigned idx = 0; 216 for ( ; begin != end; ++begin ) { 217 DeclarationWithType * formal = *begin; 218 Type * formalType = formal->get_type(); 219 matchOneFormal( last, idx, formalType, out ); 220 } 221 delete last; 222 } 223 224 Expression * TupleSpecializer::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) { 225 static UniqueName thunkNamer( "_tupleThunk" ); 226 227 FunctionType *newType = funType->clone(); 228 if ( env ) { 229 // it is important to replace only occurrences of type variables that occur free in the 230 // thunk's type 231 env->applyFree( newType ); 232 } // if 233 // create new thunk with same signature as formal type (C linkage, empty body) 234 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( noLabels ), false, false ); 235 thunkFunc->fixUniqueId(); 236 237 // thunks may be generated and not used - silence warning with attribute 238 thunkFunc->get_attributes().push_back( new Attribute( "unused" ) ); 239 240 // thread thunk parameters into call to actual function, naming thunk parameters as we go 241 UniqueName paramNamer( paramPrefix ); 242 ApplicationExpr *appExpr = new ApplicationExpr( actual ); 243 244 FunctionType * actualType = getFunctionType( actual->get_result() )->clone(); 245 if ( env ) { 246 // need to apply the environment to the actual function's type, since it may itself be polymorphic 247 env->apply( actualType ); 248 } 249 std::unique_ptr< FunctionType > actualTypeManager( actualType ); // for RAII 250 std::list< DeclarationWithType * >::iterator actualBegin = actualType->get_parameters().begin(); 251 std::list< DeclarationWithType * >::iterator actualEnd = actualType->get_parameters().end(); 252 std::list< DeclarationWithType * >::iterator formalBegin = funType->get_parameters().begin(); 253 std::list< DeclarationWithType * >::iterator formalEnd = funType->get_parameters().end(); 254 255 Expression * last = nullptr; 256 for ( DeclarationWithType* param : thunkFunc->get_functionType()->get_parameters() ) { 257 // walk the parameters to the actual function alongside the parameters to the thunk to find the location where the ttype parameter begins to satisfy parameters in the actual function. 258 param->set_name( paramNamer.newName() ); 259 assertf( formalBegin != formalEnd, "Reached end of formal parameters before finding ttype parameter" ); 260 if ( Tuples::isTtype((*formalBegin)->get_type()) ) { 261 last = new VariableExpr( param ); 262 break; 263 } 264 assertf( actualBegin != actualEnd, "reached end of actual function's arguments before finding ttype parameter" ); 265 ++actualBegin; 266 ++formalBegin; 267 268 appExpr->get_args().push_back( new VariableExpr( param ) ); 269 } // for 270 assert( last ); 271 fixLastArg( last, actualBegin, actualEnd, back_inserter( appExpr->get_args() ) ); 272 appExpr->set_env( maybeClone( env ) ); 273 if ( inferParams ) { 274 appExpr->get_inferParams() = *inferParams; 275 } // if 276 277 // handle any specializations that may still be present 278 std::string oldParamPrefix = paramPrefix; 279 paramPrefix += "p"; 280 // save stmtsToAdd in oldStmts 281 std::list< Statement* > oldStmts; 282 oldStmts.splice( oldStmts.end(), stmtsToAdd ); 283 spec.mutate( appExpr ); 284 paramPrefix = oldParamPrefix; 285 // write any statements added for recursive specializations into the thunk body 286 thunkFunc->get_statements()->get_kids().splice( thunkFunc->get_statements()->get_kids().end(), stmtsToAdd ); 287 // restore oldStmts into stmtsToAdd 288 stmtsToAdd.splice( stmtsToAdd.end(), oldStmts ); 289 290 // add return (or valueless expression) to the thunk 291 Statement *appStmt; 292 if ( funType->get_returnVals().empty() ) { 293 appStmt = new ExprStmt( noLabels, appExpr ); 294 } else { 295 appStmt = new ReturnStmt( noLabels, appExpr ); 296 } // if 297 thunkFunc->get_statements()->get_kids().push_back( appStmt ); 298 299 // add thunk definition to queue of statements to add 300 stmtsToAdd.push_back( new DeclStmt( noLabels, thunkFunc ) ); 301 // return address of thunk function as replacement expression 302 return new AddressExpr( new VariableExpr( thunkFunc ) ); 303 } 304 172 305 void Specialize::handleExplicitParams( ApplicationExpr *appExpr ) { 173 306 // create thunks for the explicit parameters … … 178 311 std::list< Expression* >::iterator actual; 179 312 for ( formal = function->get_parameters().begin(), actual = appExpr->get_args().begin(); formal != function->get_parameters().end() && actual != appExpr->get_args().end(); ++formal, ++actual ) { 180 *actual = doSpecialization( (*formal )->get_type(), *actual, &appExpr->get_inferParams() );313 *actual = specializer->doSpecialization( (*formal )->get_type(), *actual, &appExpr->get_inferParams() ); 181 314 } 182 315 } … … 190 323 // don't need to do this for intrinsic calls, because they aren't actually passed 191 324 for ( InferredParams::iterator inferParam = appExpr->get_inferParams().begin(); inferParam != appExpr->get_inferParams().end(); ++inferParam ) { 192 inferParam->second.expr = doSpecialization( inferParam->second.formalType, inferParam->second.expr, &appExpr->get_inferParams() );325 inferParam->second.expr = specializer->doSpecialization( inferParam->second.formalType, inferParam->second.expr, inferParam->second.inferParams.get() ); 193 326 } 194 195 327 handleExplicitParams( appExpr ); 196 328 } 197 198 329 return appExpr; 199 330 } … … 202 333 addrExpr->get_arg()->acceptMutator( *this ); 203 334 assert( addrExpr->has_result() ); 204 addrExpr->set_arg( doSpecialization( addrExpr->get_result(), addrExpr->get_arg() ) );335 addrExpr->set_arg( specializer->doSpecialization( addrExpr->get_result(), addrExpr->get_arg() ) ); 205 336 return addrExpr; 206 337 } … … 212 343 return castExpr; 213 344 } 214 Expression *specialized = doSpecialization( castExpr->get_result(), castExpr->get_arg() );345 Expression *specialized = specializer->doSpecialization( castExpr->get_result(), castExpr->get_arg() ); 215 346 if ( specialized != castExpr->get_arg() ) { 216 347 // assume here that the specialization incorporates the cast … … 236 367 // return commaExpr; 237 368 // } 369 370 void convertSpecializations( std::list< Declaration* >& translationUnit ) { 371 Specialize spec; 372 373 TupleSpecializer tupleSpec( spec ); 374 spec.specializer = &tupleSpec; 375 mutateAll( translationUnit, spec ); 376 377 PolySpecializer polySpec( spec ); 378 spec.specializer = &polySpec; 379 mutateAll( translationUnit, spec ); 380 } 238 381 } // namespace GenPoly 239 382 -
src/InitTweak/FixInit.cc
rbb82c03 r2162c2c 38 38 #include "SynTree/AddStmtVisitor.h" 39 39 #include "CodeGen/GenType.h" // for warning/error messages 40 #include "Tuples/Tuples.h" 40 41 41 42 bool ctordtorp = false; // print all debug … … 392 393 393 394 bool ResolveCopyCtors::skipCopyConstruct( Type * type ) { 394 return dynamic_cast< VarArgsType * >( type ) || GenPoly::getFunctionType( type ) ;395 return dynamic_cast< VarArgsType * >( type ) || GenPoly::getFunctionType( type ) || Tuples::isTtype( type ); 395 396 } 396 397 … … 1099 1100 addDeclaration( tmp ); 1100 1101 1102 // xxx - this can be TupleAssignExpr now. Need to properly handle this case. 1101 1103 ApplicationExpr * callExpr = safe_dynamic_cast< ApplicationExpr * > ( ctorExpr->get_callExpr() ); 1102 1104 TypeSubstitution * env = ctorExpr->get_env(); -
src/InitTweak/InitTweak.cc
rbb82c03 r2162c2c 487 487 virtual void visit( UntypedValofExpr *valofExpr ) { isConstExpr = false; } 488 488 virtual void visit( CompoundLiteralExpr *compLitExpr ) { isConstExpr = false; } 489 virtual void visit( UntypedTupleExpr *tupleExpr ) { isConstExpr = false; } 489 490 virtual void visit( TupleExpr *tupleExpr ) { isConstExpr = false; } 490 491 virtual void visit( TupleAssignExpr *tupleExpr ) { isConstExpr = false; } -
src/Parser/DeclarationNode.cc
rbb82c03 r2162c2c 948 948 // if ( variable.name ) { 949 949 if ( variable.tyClass != NoTypeClass ) { 950 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 950 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Dtype, TypeDecl::Ftype, TypeDecl::Ttype }; 951 assertf( sizeof(kindMap)/sizeof(kindMap[0] == NoTypeClass-1), "DeclarationNode::build: kindMap is out of sync." ); 952 assertf( variable.tyClass < sizeof(kindMap)/sizeof(kindMap[0]), "Variable's tyClass is out of bounds." ); 951 953 // TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 952 954 TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); -
src/Parser/ExpressionNode.cc
rbb82c03 r2162c2c 323 323 324 324 Expression *build_tuple( ExpressionNode * expr_node ) { 325 TupleExpr *ret = new TupleExpr();326 buildMoveList( expr_node, ret->get_exprs());327 return ret;325 std::list< Expression * > exprs; 326 buildMoveList( expr_node, exprs ); 327 return new UntypedTupleExpr( exprs );; 328 328 } 329 329 -
src/Parser/ParseNode.h
rbb82c03 r2162c2c 204 204 enum Length { Short, Long, LongLong, NoLength }; 205 205 enum Aggregate { Struct, Union, Trait, NoAggregate }; 206 enum TypeClass { Otype, Dtype, Ftype, NoTypeClass };206 enum TypeClass { Otype, Dtype, Ftype, Ttype, NoTypeClass }; 207 207 enum BuiltinType { Valist, Zero, One, NoBuiltinType }; 208 208 -
src/Parser/lex.cc
rbb82c03 r2162c2c 382 382 (yy_c_buf_p) = yy_cp; 383 383 384 #define YY_NUM_RULES 18 5385 #define YY_END_OF_BUFFER 18 6384 #define YY_NUM_RULES 186 385 #define YY_END_OF_BUFFER 187 386 386 /* This struct is not used in this scanner, 387 387 but its presence is necessary. */ … … 391 391 flex_int32_t yy_nxt; 392 392 }; 393 static yyconst flex_int16_t yy_accept[90 5] =393 static yyconst flex_int16_t yy_accept[909] = 394 394 { 0, 395 0, 0, 0, 0, 0, 0, 12 0, 120, 123, 123,396 18 6, 184, 7, 9, 8, 143, 122, 105, 148, 151,397 1 19, 130, 131, 146, 144, 134, 145, 137, 147, 110,398 11 1, 112, 135, 136, 153, 155, 154, 156, 184, 105,399 12 8, 184, 129, 149, 105, 107, 105, 105, 105, 105,400 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,401 10 5, 105, 105, 132, 152, 133, 150, 7, 184, 4,402 4, 18 5, 108, 185, 109, 120, 121, 127, 123, 124,403 7, 9, 0, 8, 16 0, 179, 105, 0, 172, 142,404 16 5, 173, 170, 157, 168, 158, 169, 167, 0, 116,405 406 3, 0, 17 1, 115, 113, 0, 0, 113, 113, 0,407 0, 11 3, 112, 112, 112, 0, 112, 140, 141, 139,408 16 1, 163, 159, 164, 162, 0, 0, 0, 0, 0,395 0, 0, 0, 0, 0, 0, 121, 121, 124, 124, 396 187, 185, 7, 9, 8, 144, 123, 106, 149, 152, 397 120, 131, 132, 147, 145, 135, 146, 138, 148, 111, 398 112, 113, 136, 137, 154, 156, 155, 157, 185, 106, 399 129, 185, 130, 150, 106, 108, 106, 106, 106, 106, 400 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 401 106, 106, 106, 133, 153, 134, 151, 7, 185, 4, 402 4, 186, 109, 186, 110, 121, 122, 128, 124, 125, 403 7, 9, 0, 8, 161, 180, 106, 0, 173, 143, 404 166, 174, 171, 158, 169, 159, 170, 168, 0, 117, 405 406 3, 0, 172, 116, 114, 0, 0, 114, 114, 0, 407 0, 114, 113, 113, 113, 0, 113, 141, 142, 140, 408 162, 164, 160, 165, 163, 0, 0, 0, 0, 0, 409 409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410 10 6, 178, 0, 122, 119, 105, 0, 0, 175, 0,411 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,412 10 5, 105, 105, 105, 105, 105, 105, 38, 105, 105,413 10 5, 105, 105, 105, 105, 105, 105, 105, 57, 105,414 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,415 10 5, 105, 105, 105, 105, 105, 105, 174, 166,7,416 417 0, 0, 0, 2, 0, 5, 108, 0, 0, 0,418 120, 0, 126, 125, 125, 0, 0, 0, 123, 0,410 107, 179, 0, 123, 120, 106, 0, 0, 176, 0, 411 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 412 106, 106, 106, 106, 106, 106, 106, 38, 106, 106, 413 106, 106, 106, 106, 106, 106, 106, 106, 57, 106, 414 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 415 106, 106, 106, 106, 106, 106, 106, 106, 175, 167, 416 417 7, 0, 0, 0, 2, 0, 5, 109, 0, 0, 418 0, 121, 0, 127, 126, 126, 0, 0, 0, 124, 419 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 0, 138, 116, 117, 0, 117, 117,421 0, 0, 6, 117, 113, 0, 0, 0, 117, 0,422 113, 113, 113, 113, 0, 114, 0, 0, 112, 112,423 11 2, 112, 0, 176, 177, 0, 182, 180, 0, 0,424 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,425 105, 17, 105, 105, 105, 105, 105, 105, 105, 105,426 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,427 428 14, 105, 105, 105, 105, 105, 105, 105, 105, 105,429 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 51,430 105, 105, 105, 64, 105, 105, 105, 105, 105, 105,431 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 91,432 105, 105, 105, 105, 105, 105, 105, 105, 0, 0,433 0, 0, 0, 0, 0, 0, 125, 0, 0, 0,434 0, 0, 125, 0, 0, 183, 0, 0, 0, 0,435 0, 0, 0, 117, 0, 117, 0, 117, 0, 117,436 0, 0, 117, 0, 113, 113, 0, 0, 114, 114,437 0, 114, 0, 114, 112, 112, 0, 0, 0, 0,438 439 0, 0, 0, 0, 0, 0, 181, 105, 105, 105,440 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,441 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,442 21, 105, 24, 105, 27, 105, 105, 105, 105, 105,443 10 5, 105, 41, 105, 43, 105, 105, 105, 105, 105,444 10 5, 105, 56, 105, 67, 105, 105, 105, 105, 105,445 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,446 10 5, 105, 99, 105, 105, 105, 0, 0, 0, 0,420 0, 0, 0, 0, 0, 139, 117, 118, 0, 118, 421 118, 0, 0, 6, 118, 114, 0, 0, 0, 118, 422 0, 114, 114, 114, 114, 0, 115, 0, 0, 113, 423 113, 113, 113, 0, 177, 178, 0, 183, 181, 0, 424 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 425 0, 106, 17, 106, 106, 106, 106, 106, 106, 106, 426 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 427 428 106, 14, 106, 106, 106, 106, 106, 106, 106, 106, 429 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 430 51, 106, 106, 106, 64, 106, 106, 106, 106, 106, 431 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 432 91, 106, 106, 106, 106, 106, 106, 106, 106, 106, 433 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 434 0, 0, 0, 0, 126, 0, 0, 184, 0, 0, 435 0, 0, 0, 0, 0, 118, 0, 118, 0, 118, 436 0, 118, 0, 0, 118, 0, 114, 114, 0, 0, 437 115, 115, 0, 115, 0, 115, 113, 113, 0, 0, 438 439 0, 0, 0, 0, 0, 0, 0, 0, 182, 106, 440 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 441 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 442 106, 106, 21, 106, 24, 106, 27, 106, 106, 106, 443 106, 106, 106, 106, 41, 106, 43, 106, 106, 106, 444 106, 106, 106, 106, 56, 106, 67, 106, 106, 106, 445 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 446 106, 106, 106, 106, 106, 100, 106, 106, 106, 0, 447 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448 125, 0, 0, 0, 0, 0, 117, 0, 0, 0, 449 450 0, 0, 0, 0, 114, 114, 0, 118, 0, 114, 451 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452 0, 0, 0, 0, 105, 105, 22, 105, 105, 105, 453 105, 105, 105, 105, 15, 105, 105, 105, 105, 105, 454 105, 105, 105, 105, 105, 105, 105, 105, 105, 23, 455 25, 105, 32, 105, 105, 105, 105, 40, 105, 105, 456 105, 105, 49, 105, 105, 54, 105, 105, 71, 72, 457 105, 105, 105, 78, 105, 105, 105, 105, 105, 88, 458 90, 105, 105, 96, 105, 105, 103, 105, 0, 0, 448 0, 0, 0, 126, 0, 0, 0, 0, 0, 118, 449 450 0, 0, 0, 0, 0, 0, 0, 115, 115, 0, 451 119, 0, 115, 115, 0, 0, 0, 0, 0, 0, 452 0, 0, 0, 0, 0, 0, 0, 106, 106, 22, 453 106, 106, 106, 106, 106, 106, 106, 15, 106, 106, 454 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 455 106, 106, 23, 25, 106, 32, 106, 106, 106, 106, 456 40, 106, 106, 106, 106, 49, 106, 106, 54, 106, 457 106, 71, 72, 106, 106, 106, 78, 106, 106, 106, 458 106, 106, 88, 90, 92, 106, 106, 97, 106, 106, 459 104, 106, 0, 0, 0, 0, 0, 0, 0, 0, 460 459 461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460 461 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 462 114, 118, 118, 118, 118, 0, 114, 0, 0, 0, 463 0, 0, 0, 0, 0, 0, 0, 105, 0, 105, 464 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 465 105, 105, 105, 105, 105, 59, 105, 105, 105, 105, 466 105, 105, 105, 105, 28, 105, 105, 105, 39, 42, 467 45, 105, 105, 52, 105, 61, 68, 105, 105, 77, 468 79, 82, 83, 85, 86, 105, 105, 93, 105, 105, 469 104, 0, 1, 0, 0, 0, 0, 0, 0, 108, 470 0, 0, 0, 125, 0, 0, 0, 0, 118, 0, 471 472 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 473 0, 105, 105, 18, 105, 105, 105, 105, 105, 105, 474 105, 16, 105, 105, 105, 33, 105, 105, 105, 105, 475 105, 105, 105, 105, 105, 105, 105, 105, 36, 37, 476 105, 48, 53, 105, 105, 105, 92, 105, 105, 0, 462 0, 119, 0, 0, 115, 119, 119, 119, 119, 0, 463 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 464 0, 106, 0, 106, 106, 106, 106, 106, 106, 106, 465 106, 106, 106, 106, 106, 106, 106, 106, 106, 59, 466 106, 106, 106, 106, 106, 106, 106, 106, 28, 106, 467 106, 106, 39, 42, 45, 106, 106, 52, 106, 61, 468 68, 106, 106, 77, 79, 82, 83, 85, 86, 106, 469 106, 94, 106, 106, 105, 0, 1, 0, 0, 0, 470 0, 0, 0, 109, 0, 0, 0, 126, 0, 0, 471 472 0, 0, 119, 0, 119, 119, 0, 0, 0, 0, 473 0, 0, 0, 0, 0, 106, 106, 18, 106, 106, 474 106, 106, 106, 106, 106, 16, 106, 106, 106, 33, 475 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 476 106, 106, 36, 37, 106, 48, 53, 106, 106, 106, 477 93, 106, 106, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 0, 0, 0, 0, 10, 11, 29, 55, 479 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 480 106, 60, 62, 65, 106, 106, 80, 95, 106, 106, 481 35, 106, 47, 73, 74, 106, 98, 101, 0, 0, 482 477 483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 10, 11, 29, 55, 105, 105, 105, 105, 479 105, 105, 105, 105, 105, 105, 105, 60, 62, 65, 480 105, 105, 80, 94, 105, 105, 35, 105, 47, 73, 481 74, 105, 97, 100, 0, 0, 0, 0, 0, 0, 482 483 0, 0, 0, 0, 0, 0, 105, 69, 105, 105, 484 12, 105, 105, 30, 34, 105, 105, 105, 66, 105, 485 105, 105, 105, 105, 105, 105, 0, 0, 0, 0, 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 487 105, 105, 105, 105, 105, 105, 105, 50, 63, 75, 488 81, 95, 101, 105, 105, 105, 0, 0, 0, 0, 489 0, 0, 0, 0, 105, 105, 13, 19, 105, 105, 490 31, 105, 105, 105, 26, 46, 89, 0, 0, 105, 491 105, 105, 105, 105, 105, 76, 102, 105, 87, 20, 492 105, 105, 44, 84, 105, 105, 105, 105, 105, 105, 493 494 105, 98, 70, 0 484 106, 69, 106, 106, 12, 106, 106, 30, 34, 106, 485 106, 106, 66, 106, 106, 106, 106, 106, 106, 106, 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487 0, 0, 0, 58, 106, 106, 106, 106, 106, 106, 488 106, 50, 63, 75, 81, 96, 102, 106, 106, 106, 489 0, 0, 0, 0, 0, 0, 0, 0, 106, 106, 490 13, 19, 106, 106, 31, 106, 106, 106, 26, 46, 491 89, 0, 0, 106, 106, 106, 106, 106, 106, 76, 492 103, 106, 87, 20, 106, 106, 44, 84, 106, 106, 493 494 106, 106, 106, 106, 106, 99, 70, 0 495 495 } ; 496 496 … … 540 540 } ; 541 541 542 static yyconst flex_int16_t yy_base[10 79] =542 static yyconst flex_int16_t yy_base[1083] = 543 543 { 0, 544 0, 84, 2323, 2322, 94, 0, 177, 178, 179, 180, 545 2338, 2866, 191, 2866, 197, 55, 2866, 2283, 60, 173, 546 2866, 2866, 2866, 56, 188, 2866, 191, 189, 204, 216, 547 275, 0, 2300, 2866, 216, 2298, 152, 344, 155, 220, 548 2866, 159, 2866, 217, 226, 2866, 185, 154, 212, 251, 549 237, 270, 235, 257, 241, 279, 193, 305, 314, 333, 550 238, 228, 227, 2866, 225, 2866, 2295, 402, 390, 2866, 551 2306, 2866, 2273, 235, 2866, 0, 2866, 426, 0, 2866, 552 417, 2866, 439, 451, 2866, 498, 2270, 264, 2866, 2866, 553 2866, 2866, 2866, 2286, 2866, 2285, 2866, 2866, 2297, 559, 554 555 2866, 2313, 2866, 438, 444, 511, 534, 289, 253, 197, 556 380, 305, 0, 319, 280, 198, 322, 2866, 2866, 2866, 557 2281, 2866, 2866, 2866, 2278, 2277, 218, 312, 2292, 350, 558 459, 368, 398, 440, 405, 448, 2272, 441, 2219, 458, 559 2247, 2866, 335, 2866, 2866, 321, 2243, 2242, 2866, 2214, 560 444, 297, 433, 372, 425, 454, 434, 461, 570, 455, 561 468, 385, 474, 475, 494, 492, 489, 464, 488, 491, 562 513, 503, 430, 521, 517, 519, 516, 522, 2240, 526, 563 523, 276, 460, 524, 542, 555, 554, 561, 325, 558, 564 584, 552, 600, 586, 593, 588, 595, 2866, 2866, 667, 565 566 655, 2287, 682, 2866, 688, 2866, 2236, 590, 2232, 2230, 567 0, 648, 2866, 2866, 675, 2227, 2224, 2223, 0, 2246, 568 578, 631, 654, 685, 698, 660, 689, 670, 692, 2242, 569 695, 701, 2200, 2198, 2866, 0, 693, 720, 685, 711, 570 2197, 2247, 2866, 737, 745, 666, 757, 763, 797, 780, 571 599, 2866, 2203, 2178, 0, 805, 2224, 806, 617, 2866, 572 2199, 2172, 819, 2866, 2866, 2203, 2866, 2866, 707, 722, 573 2182, 2182, 699, 2177, 2174, 2171, 0, 2170, 0, 2141, 574 743, 724, 739, 689, 741, 720, 623, 759, 762, 804, 575 681, 795, 749, 746, 799, 801, 765, 784, 803, 811, 576 577 2170, 814, 818, 827, 831, 817, 821, 833, 835, 841, 578 842, 834, 843, 844, 845, 847, 849, 857, 858, 860, 579 851, 859, 866, 2167, 867, 868, 869, 871, 873, 874, 580 763, 875, 876, 880, 881, 884, 887, 888, 885, 2164, 581 891, 936, 894, 897, 905, 899, 901, 902, 965, 961, 582 2160, 2159, 2157, 0, 2154, 0, 952, 956, 2153, 0, 583 2152, 0, 2150, 0, 2169, 2866, 951, 952, 2148, 2145, 584 0, 2143, 0, 2866, 967, 986, 978, 2866, 992, 1032, 585 2140, 1008, 1054, 2136, 2866, 2866, 915, 951, 1040, 993, 586 1079, 956, 1071, 994, 2866, 2866, 2132, 2130, 2128, 0, 587 588 2125, 0, 2123, 0, 2121, 0, 2866, 935, 969, 973, 589 968, 1012, 975, 1056, 992, 1058, 997, 1032, 993, 1000, 590 1060, 1061, 1066, 1070, 1073, 1030, 1071, 1069, 1072, 1078, 591 2121, 700, 2118, 1085, 2117, 1079, 1081, 1089, 1087, 1098, 592 1096, 1099, 2116, 1101, 2114, 1105, 1106, 1107, 1109, 1112, 593 1113, 1114, 2111, 1115, 2108, 1117, 1119, 1120, 1118, 1124, 594 1126, 1121, 1136, 1130, 1134, 1135, 1149, 1137, 1138, 1150, 595 1152, 1153, 2107, 1151, 1154, 1167, 1205, 2103, 0, 2101, 596 0, 2098, 0, 2095, 0, 1204, 2094, 0, 2093, 0, 597 2091, 2088, 2085, 0, 2084, 0, 1208, 2083, 1214, 1230, 598 599 1216, 1255, 1221, 1172, 1169, 2866, 1271, 1289, 1282, 2093, 600 2066, 2075, 2074, 0, 2073, 0, 2071, 0, 2068, 0, 601 2065, 0, 2064, 0, 1190, 1159, 2066, 1193, 1195, 1197, 602 1212, 1237, 1231, 1265, 1248, 1266, 1267, 1213, 1268, 1269, 603 1283, 1270, 1271, 234, 1285, 1273, 1274, 1287, 1293, 2064, 604 1306, 1301, 2061, 1290, 1303, 1305, 1308, 2058, 1312, 1309, 605 1311, 1313, 2057, 1314, 1319, 2056, 1316, 1322, 2054, 2051, 606 1315, 1327, 1330, 2050, 1333, 1332, 1336, 1334, 1338, 1345, 607 2049, 1335, 1348, 2047, 1346, 1349, 2044, 1351, 2093, 2039, 608 0, 2037, 0, 2004, 0, 2002, 0, 2001, 0, 1998, 609 610 0, 1995, 0, 1994, 0, 1394, 1404, 1428, 1415, 1993, 611 2866, 1421, 1370, 1391, 1419, 1991, 2866, 1988, 0, 1985, 612 0, 1984, 0, 1983, 0, 0, 0, 1984, 0, 1352, 613 1406, 1408, 1359, 1354, 1409, 1415, 1412, 1411, 1423, 1433, 614 1425, 1430, 1435, 1437, 1439, 1448, 1442, 1449, 1440, 1444, 615 1453, 1450, 1452, 1456, 1981, 1458, 1460, 1463, 1980, 1979, 616 1977, 1466, 1467, 1974, 1470, 1973, 1972, 1469, 1473, 1970, 617 1963, 1961, 1960, 1957, 1953, 1475, 1479, 1949, 1476, 1477, 618 1945, 1992, 2866, 1938, 0, 1937, 0, 0, 0, 1938, 619 0, 0, 0, 2866, 0, 0, 0, 0, 1525, 1932, 620 621 2866, 2866, 1531, 1931, 0, 1930, 0, 0, 0, 0, 622 1928, 1488, 1483, 1928, 1491, 1507, 1518, 1490, 1519, 1521, 623 1508, 1927, 1525, 1529, 1527, 1541, 1530, 1384, 1543, 1539, 624 1558, 1547, 1549, 1512, 1545, 1552, 1553, 1554, 1926, 1924, 625 1557, 1921, 1920, 1556, 1537, 1560, 1919, 1561, 1564, 0, 626 0, 0, 1914, 1911, 1910, 1612, 0, 1909, 1907, 1904, 627 1903, 1902, 1903, 1900, 1899, 1898, 1568, 1572, 1566, 1577, 628 1590, 1570, 1578, 1579, 1591, 1596, 1625, 1896, 1598, 1893, 629 1599, 1603, 1604, 1608, 1606, 1612, 1892, 1613, 1891, 1889, 630 1886, 1614, 1885, 1884, 1879, 1872, 1870, 1869, 1866, 1865, 631 632 1864, 1862, 1845, 1836, 1835, 1832, 1616, 1828, 1617, 1622, 633 1620, 1619, 1624, 1626, 1825, 1628, 1644, 1630, 1818, 1631, 634 1639, 1645, 1647, 1634, 1649, 1651, 1813, 1812, 1791, 1790, 635 1789, 1782, 1780, 1779, 1737, 1735, 1733, 1732, 1730, 1732, 636 1652, 1654, 1655, 1657, 1659, 1662, 1663, 1731, 1729, 1668, 637 1727, 1724, 1669, 1670, 1664, 1675, 1719, 1718, 1671, 1629, 638 1564, 1468, 1350, 1269, 1678, 1681, 1239, 1682, 1688, 1689, 639 1238, 1690, 1692, 1696, 1206, 1171, 1157, 1035, 1031, 1691, 640 1697, 1700, 1704, 1702, 1706, 998, 560, 1701, 527, 395, 641 1707, 1710, 357, 300, 1708, 1713, 1715, 1718, 1716, 1719, 642 643 1720, 233, 137, 2866, 1794, 1807, 1820, 1830, 1840, 1853, 644 1863, 1876, 1889, 1902, 1910, 1920, 1927, 1934, 1941, 1948, 645 1955, 1962, 1969, 1976, 1983, 1990, 1994, 2002, 2008, 2015, 646 2022, 2029, 2036, 2039, 2046, 2052, 2065, 2078, 2085, 2092, 647 2099, 2106, 2109, 2116, 2119, 2126, 2129, 2136, 2139, 2146, 648 2149, 2156, 2159, 2166, 2169, 2176, 2184, 2191, 2198, 2205, 649 2212, 2215, 2222, 2225, 2232, 2235, 2242, 2248, 2261, 2268, 650 2275, 2278, 2285, 2288, 2295, 2298, 2305, 2308, 2315, 2318, 651 2325, 2328, 2335, 2342, 2345, 2352, 2355, 2362, 2369, 2376, 652 2379, 2386, 2389, 2396, 2399, 2406, 2409, 2416, 2419, 2426, 653 654 2432, 2445, 2452, 2459, 2462, 2469, 2472, 2479, 2482, 2489, 655 2492, 2499, 2502, 2509, 2512, 2519, 2522, 2529, 2532, 2539, 656 2546, 2549, 2556, 2559, 2566, 2569, 2576, 2579, 2582, 2588, 657 2595, 2604, 2611, 2618, 2621, 2628, 2631, 2634, 2640, 2647, 658 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2675, 2678, 2685, 659 2688, 2691, 2694, 2697, 2707, 2714, 2717, 2720, 2723, 2730, 660 2737, 2744, 2747, 2754, 2761, 2768, 2775, 2782, 2789, 2796, 661 2803, 2810, 2817, 2824, 2831, 2838, 2845, 2852 544 0, 84, 2330, 2327, 94, 0, 177, 178, 179, 180, 545 2341, 2877, 191, 2877, 197, 55, 2877, 2287, 60, 173, 546 2877, 2877, 2877, 56, 188, 2877, 191, 189, 204, 216, 547 275, 0, 2306, 2877, 216, 2305, 152, 344, 155, 220, 548 2877, 159, 2877, 217, 226, 2877, 185, 154, 212, 251, 549 237, 270, 235, 257, 241, 279, 193, 305, 314, 351, 550 238, 228, 227, 2877, 225, 2877, 2300, 406, 412, 2877, 551 2309, 2877, 2277, 235, 2877, 0, 2877, 439, 0, 2877, 552 426, 2877, 452, 464, 2877, 511, 2276, 264, 2877, 2877, 553 2877, 2877, 2877, 2293, 2877, 2290, 2877, 2877, 2300, 572, 554 555 2877, 2317, 2877, 451, 457, 524, 547, 298, 253, 197, 556 312, 279, 0, 342, 325, 198, 322, 2877, 2877, 2877, 557 2287, 2877, 2877, 2877, 2285, 2282, 218, 312, 2295, 350, 558 363, 368, 369, 391, 411, 417, 2276, 452, 2225, 453, 559 2254, 2877, 274, 2877, 2877, 438, 2248, 2245, 2877, 2218, 560 435, 282, 353, 277, 391, 419, 442, 320, 583, 451, 561 446, 443, 479, 469, 364, 472, 481, 454, 458, 484, 562 503, 493, 352, 506, 486, 453, 507, 509, 2246, 539, 563 532, 524, 516, 528, 556, 530, 540, 552, 553, 564, 564 574, 538, 576, 613, 573, 597, 602, 571, 2877, 2877, 565 566 668, 674, 2294, 680, 2877, 686, 2877, 2241, 603, 2235, 567 2234, 0, 683, 2877, 2877, 692, 2233, 2231, 2211, 0, 568 2233, 556, 627, 630, 662, 699, 688, 692, 693, 696, 569 2230, 700, 703, 2205, 2202, 2877, 0, 695, 726, 693, 570 701, 2201, 2253, 2877, 747, 742, 700, 753, 760, 793, 571 815, 746, 2877, 2210, 2183, 0, 802, 2227, 801, 754, 572 2877, 2203, 2178, 839, 2877, 2877, 2210, 2877, 2877, 709, 573 723, 2187, 2185, 755, 2181, 2180, 2178, 0, 2175, 0, 574 2144, 694, 736, 737, 741, 614, 739, 738, 742, 798, 575 807, 792, 802, 797, 746, 816, 748, 791, 824, 819, 576 577 826, 2174, 827, 830, 831, 440, 834, 838, 836, 843, 578 847, 849, 841, 850, 861, 853, 862, 851, 863, 865, 579 872, 864, 873, 874, 2173, 749, 875, 876, 878, 880, 580 881, 882, 884, 885, 886, 888, 889, 892, 898, 896, 581 2171, 899, 906, 944, 901, 907, 913, 917, 908, 911, 582 976, 977, 2165, 2164, 2163, 0, 2161, 0, 964, 968, 583 2158, 0, 2157, 0, 2156, 0, 2176, 2877, 964, 967, 584 2153, 2147, 0, 2143, 0, 2877, 979, 998, 990, 2877, 585 1004, 1044, 2141, 1020, 1066, 2139, 2877, 2877, 963, 1006, 586 1052, 1005, 1091, 968, 1083, 1006, 2877, 2877, 2136, 2134, 587 588 2132, 0, 2129, 0, 2126, 0, 2125, 0, 2877, 931, 589 981, 985, 928, 1024, 987, 1068, 958, 1070, 1060, 1010, 590 1005, 1072, 1083, 1022, 1078, 1082, 1088, 1042, 1084, 1081, 591 1089, 1097, 2127, 1090, 2125, 1095, 2122, 1093, 1091, 1109, 592 1101, 1111, 1115, 1116, 2119, 1118, 2118, 1119, 1120, 1121, 593 1123, 1126, 1127, 1128, 2117, 1129, 2115, 1131, 1134, 1135, 594 1132, 1138, 1140, 1143, 1148, 1149, 1150, 1152, 1155, 1151, 595 1161, 1164, 1166, 1168, 1169, 2112, 1170, 1172, 1175, 1221, 596 2106, 0, 2105, 0, 2104, 0, 2102, 0, 1216, 2099, 597 0, 2096, 0, 2095, 2094, 2092, 0, 2089, 0, 1223, 598 599 2086, 1229, 1245, 1231, 1270, 1236, 1186, 1185, 2877, 1286, 600 1304, 1297, 2097, 2072, 2082, 2079, 0, 2076, 0, 2075, 601 0, 2074, 0, 2072, 0, 2069, 0, 1190, 1210, 2069, 602 1191, 1227, 1212, 1230, 1253, 1246, 1254, 1280, 1281, 1282, 603 1284, 1228, 1287, 1286, 1288, 1285, 234, 1293, 1289, 1304, 604 1300, 1305, 2068, 1322, 1306, 2067, 1308, 1313, 1318, 1320, 605 2065, 1323, 1324, 1326, 1327, 2062, 1330, 1331, 2061, 1334, 606 1335, 2060, 2058, 1337, 1339, 1340, 2055, 1004, 1346, 1347, 607 1348, 1349, 1364, 2054, 2053, 1351, 1353, 2051, 1350, 1355, 608 2018, 1362, 2066, 2012, 0, 2009, 0, 2006, 0, 2005, 609 610 0, 2004, 0, 2002, 0, 1999, 0, 1996, 0, 1401, 611 1407, 1435, 1418, 1995, 2877, 1424, 1411, 1421, 1427, 1994, 612 2877, 1992, 0, 1989, 0, 1988, 0, 1987, 0, 0, 613 0, 1988, 0, 1412, 1422, 1419, 1387, 1369, 1416, 1433, 614 1436, 1403, 1446, 1441, 1431, 1432, 1451, 1452, 1455, 1456, 615 1457, 1486, 1460, 1461, 1462, 1464, 1463, 1467, 1985, 1465, 616 1468, 1470, 1984, 1983, 1981, 1472, 1466, 1974, 1478, 1972, 617 1971, 1480, 1484, 1968, 1964, 1960, 1956, 1953, 1952, 1487, 618 1494, 1951, 1497, 1483, 1949, 1996, 2877, 1942, 0, 1941, 619 0, 0, 0, 1942, 0, 0, 0, 2877, 0, 0, 620 621 0, 0, 1537, 1936, 2877, 2877, 1543, 1935, 0, 1934, 622 0, 0, 0, 0, 1932, 1499, 1519, 1932, 1500, 1524, 623 1530, 1501, 1502, 1533, 1537, 1931, 1532, 1541, 1534, 1539, 624 1544, 599, 1548, 1549, 1579, 1556, 1557, 1560, 1561, 1562, 625 1563, 1564, 1930, 1928, 1567, 1925, 1924, 1566, 1569, 1572, 626 1923, 1574, 1578, 0, 0, 0, 1918, 1915, 1914, 1624, 627 0, 1913, 1911, 1908, 1907, 1906, 1907, 1904, 1903, 1902, 628 1580, 1588, 1576, 1577, 1601, 1583, 1602, 1589, 1604, 1603, 629 1636, 1900, 1609, 1897, 1610, 1614, 1617, 1622, 1618, 1623, 630 1896, 1624, 1895, 1893, 1886, 1626, 1884, 1883, 1877, 1876, 631 632 1875, 1873, 1856, 1847, 1846, 1843, 1836, 1833, 1826, 1824, 633 1628, 1826, 1629, 1630, 1631, 1632, 1635, 1637, 1805, 1639, 634 1667, 1642, 1804, 1643, 1653, 1658, 1651, 1652, 1659, 1662, 635 1800, 1793, 1791, 1790, 1748, 1745, 1744, 1742, 1741, 1737, 636 1735, 1733, 1732, 1734, 1663, 1664, 1666, 1672, 1673, 1674, 637 1675, 1731, 1689, 1676, 1644, 1522, 1680, 1685, 1686, 1687, 638 1500, 1411, 1363, 1362, 1260, 1219, 1218, 1047, 1690, 1688, 639 1046, 1700, 1695, 1701, 924, 1704, 1708, 1709, 839, 794, 640 759, 702, 636, 1682, 1710, 1713, 1714, 1715, 1717, 638, 641 536, 1719, 488, 441, 1721, 1722, 408, 281, 1723, 1726, 642 643 1727, 1729, 1728, 1730, 1733, 233, 137, 2877, 1805, 1818, 644 1831, 1841, 1851, 1864, 1874, 1887, 1900, 1913, 1921, 1931, 645 1938, 1945, 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 646 2005, 2013, 2019, 2026, 2033, 2040, 2047, 2050, 2057, 2063, 647 2076, 2089, 2096, 2103, 2110, 2117, 2120, 2127, 2130, 2137, 648 2140, 2147, 2150, 2157, 2160, 2167, 2170, 2177, 2180, 2187, 649 2195, 2202, 2209, 2216, 2223, 2226, 2233, 2236, 2243, 2246, 650 2253, 2259, 2272, 2279, 2286, 2289, 2296, 2299, 2306, 2309, 651 2316, 2319, 2326, 2329, 2336, 2339, 2346, 2353, 2356, 2363, 652 2366, 2373, 2380, 2387, 2390, 2397, 2400, 2407, 2410, 2417, 653 654 2420, 2427, 2430, 2437, 2443, 2456, 2463, 2470, 2473, 2480, 655 2483, 2490, 2493, 2500, 2503, 2510, 2513, 2520, 2523, 2530, 656 2533, 2540, 2543, 2550, 2557, 2560, 2567, 2570, 2577, 2580, 657 2587, 2590, 2593, 2599, 2606, 2615, 2622, 2629, 2632, 2639, 658 2642, 2645, 2651, 2658, 2661, 2664, 2667, 2670, 2673, 2676, 659 2679, 2686, 2689, 2696, 2699, 2702, 2705, 2708, 2718, 2725, 660 2728, 2731, 2734, 2741, 2748, 2755, 2758, 2765, 2772, 2779, 661 2786, 2793, 2800, 2807, 2814, 2821, 2828, 2835, 2842, 2849, 662 2856, 2863 662 663 } ; 663 664 664 static yyconst flex_int16_t yy_def[10 79] =665 static yyconst flex_int16_t yy_def[1083] = 665 666 { 0, 666 904, 1, 905, 905, 904, 5, 906, 906, 907, 907, 667 904, 904, 904, 904, 904, 904, 904, 908, 904, 904, 668 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 669 904, 31, 904, 904, 904, 904, 904, 904, 909, 908, 670 904, 904, 904, 904, 908, 904, 908, 908, 908, 908, 667 908, 1, 909, 909, 908, 5, 910, 910, 911, 911, 668 908, 908, 908, 908, 908, 908, 908, 912, 908, 908, 671 669 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 672 908, 908, 908, 904, 904, 904, 904, 904, 910, 904, 673 904, 904, 911, 904, 904, 912, 904, 904, 913, 904, 674 904, 904, 904, 904, 904, 904, 908, 904, 904, 904, 675 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 676 677 904, 914, 904, 904, 30, 904, 904, 904, 904, 915, 678 30, 904, 31, 904, 904, 31, 904, 904, 904, 904, 679 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 680 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 681 916, 904, 904, 904, 904, 908, 917, 918, 904, 904, 670 908, 31, 908, 908, 908, 908, 908, 908, 913, 912, 671 908, 908, 908, 908, 912, 908, 912, 912, 912, 912, 672 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 673 912, 912, 912, 908, 908, 908, 908, 908, 914, 908, 674 908, 908, 915, 908, 908, 916, 908, 908, 917, 908, 675 908, 908, 908, 908, 908, 908, 912, 908, 908, 908, 676 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 677 678 908, 918, 908, 908, 30, 908, 908, 908, 908, 919, 679 30, 908, 31, 908, 908, 31, 908, 908, 908, 908, 680 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 681 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 682 920, 908, 908, 908, 908, 912, 921, 922, 908, 908, 683 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 684 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 685 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 686 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 687 912, 912, 912, 912, 912, 912, 912, 912, 908, 908, 688 689 908, 914, 914, 914, 908, 914, 908, 915, 908, 923, 690 924, 916, 908, 908, 908, 908, 925, 926, 927, 917, 691 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 692 908, 908, 908, 928, 929, 908, 100, 908, 908, 908, 693 908, 100, 918, 908, 100, 111, 246, 908, 908, 908, 694 908, 908, 908, 908, 908, 930, 931, 932, 908, 908, 695 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 696 908, 908, 933, 908, 934, 935, 936, 937, 938, 939, 697 908, 940, 940, 940, 940, 940, 940, 940, 940, 940, 698 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 699 700 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 701 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 702 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 703 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 704 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 705 941, 942, 943, 944, 945, 946, 947, 948, 908, 908, 706 949, 950, 951, 952, 953, 954, 908, 908, 908, 908, 707 908, 955, 956, 957, 958, 908, 908, 908, 908, 908, 708 908, 908, 382, 908, 378, 385, 908, 908, 959, 960, 709 961, 908, 908, 908, 961, 908, 908, 908, 962, 963, 710 711 964, 965, 966, 967, 968, 969, 970, 971, 908, 972, 712 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 713 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 714 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 715 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 716 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 717 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 718 972, 972, 972, 972, 972, 972, 972, 972, 972, 973, 719 974, 975, 976, 977, 978, 979, 980, 981, 908, 982, 720 983, 984, 985, 986, 986, 987, 988, 989, 990, 908, 721 722 500, 908, 908, 991, 908, 991, 908, 908, 908, 908, 723 908, 908, 908, 908, 992, 993, 994, 995, 996, 997, 724 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1005, 1005, 725 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 726 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 727 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 728 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 729 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 730 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 731 1005, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 732 733 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 908, 734 908, 908, 908, 1023, 908, 612, 908, 908, 908, 616, 735 908, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 736 1033, 1034, 1035, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 737 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 738 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 739 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 740 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 741 1034, 1034, 1034, 1034, 1034, 1036, 908, 1037, 1038, 1039, 742 1040, 1041, 1042, 1043, 1044, 1045, 1046, 908, 1047, 1048, 743 744 1049, 1050, 908, 703, 908, 908, 908, 1051, 1052, 1053, 745 1054, 1055, 1056, 1057, 1058, 1059, 1059, 1059, 1059, 1059, 746 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 747 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 748 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 749 1059, 1059, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 908, 750 1066, 1051, 1053, 1067, 1068, 1058, 1059, 1059, 1059, 1059, 751 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 752 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 753 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1070, 754 755 1063, 1071, 1064, 1072, 1065, 1073, 1074, 1067, 1075, 1068, 756 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 757 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 758 1076, 1069, 1077, 1070, 1078, 1071, 1079, 1072, 1080, 1073, 759 1081, 1074, 1075, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 760 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 761 1082, 1076, 1077, 1078, 1079, 1053, 1080, 1081, 1059, 1059, 762 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 763 1059, 1082, 1053, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 764 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 765 766 1059, 1059, 1059, 1059, 1059, 1059, 1059, 0, 908, 908, 682 767 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 683 768 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 684 769 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 685 770 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 686 908, 908, 908, 908, 908, 908, 908, 904, 904, 904, 687 688 910, 910, 910, 904, 910, 904, 911, 904, 919, 920, 689 912, 904, 904, 904, 904, 921, 922, 923, 913, 904, 690 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 691 904, 904, 924, 925, 904, 100, 904, 904, 904, 904, 692 100, 914, 904, 100, 111, 245, 904, 904, 904, 904, 693 904, 904, 904, 904, 926, 927, 928, 904, 904, 904, 694 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 695 904, 929, 904, 930, 931, 932, 933, 934, 935, 904, 696 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 697 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 698 699 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 700 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 701 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 702 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 703 936, 936, 936, 936, 936, 936, 936, 936, 937, 938, 704 939, 940, 941, 942, 943, 944, 904, 904, 945, 946, 705 947, 948, 949, 950, 904, 904, 904, 904, 904, 951, 706 952, 953, 954, 904, 904, 904, 904, 904, 904, 904, 707 380, 904, 376, 383, 904, 904, 955, 956, 957, 904, 708 904, 904, 957, 904, 904, 904, 958, 959, 960, 961, 709 710 962, 963, 964, 965, 966, 967, 904, 968, 968, 968, 711 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 712 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 713 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 714 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 715 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 716 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 717 968, 968, 968, 968, 968, 968, 969, 970, 971, 972, 718 973, 974, 975, 976, 977, 904, 978, 979, 980, 981, 719 982, 982, 983, 984, 985, 986, 904, 497, 904, 904, 720 721 987, 904, 987, 904, 904, 904, 904, 904, 904, 904, 722 904, 988, 989, 990, 991, 992, 993, 994, 995, 996, 723 997, 998, 999, 1000, 1001, 1001, 1001, 1001, 1001, 1001, 724 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 725 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 726 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 727 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 728 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 729 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003, 730 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 731 732 1014, 1015, 1016, 1017, 1018, 904, 904, 904, 904, 1019, 733 904, 608, 904, 904, 904, 612, 904, 1020, 1021, 1022, 734 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1030, 735 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 736 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 737 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 738 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 739 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 740 1030, 1032, 904, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 741 1040, 1041, 1042, 904, 1043, 1044, 1045, 1046, 904, 699, 742 743 904, 904, 904, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 744 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 745 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 746 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 747 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1056, 748 1057, 1058, 1059, 1060, 1061, 904, 1062, 1047, 1049, 1063, 749 1064, 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 750 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 751 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 752 1055, 1055, 1055, 1055, 1065, 1066, 1059, 1067, 1060, 1068, 753 754 1061, 1069, 1070, 1063, 1071, 1064, 1055, 1055, 1055, 1055, 755 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 756 1055, 1055, 1055, 1055, 1055, 1055, 1072, 1065, 1073, 1066, 757 1074, 1067, 1075, 1068, 1076, 1069, 1077, 1070, 1071, 1055, 758 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 759 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1072, 1073, 1074, 760 1075, 1049, 1076, 1077, 1055, 1055, 1055, 1055, 1055, 1055, 761 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1049, 1055, 762 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 763 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 764 765 1055, 1055, 1055, 0, 904, 904, 904, 904, 904, 904, 766 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 767 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 768 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 769 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 770 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 771 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 772 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 773 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 774 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 775 776 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 777 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 778 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 779 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 780 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 781 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 782 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 783 904, 904, 904, 904, 904, 904, 904, 904 771 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 772 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 773 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 774 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 775 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 776 777 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 778 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 779 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 780 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 781 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 782 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 783 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 784 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 785 908, 908 784 786 } ; 785 787 786 static yyconst flex_int16_t yy_nxt[29 52] =788 static yyconst flex_int16_t yy_nxt[2963] = 787 789 { 0, 788 790 12, 13, 14, 15, 15, 15, 13, 16, 17, 12, … … 809 811 810 812 84, 84, 84, 83, 92, 94, 88, 143, 147, 99, 811 96, 100, 100, 100, 100, 100, 100, 25 5, 904, 95,813 96, 100, 100, 100, 100, 100, 100, 256, 908, 95, 812 814 101, 86, 97, 98, 86, 102, 162, 119, 144, 78, 813 815 78, 78, 78, 145, 148, 103, 104, 88, 105, 105, 814 105, 105, 106, 106, 120, 88, 121, 122, 149, 26 6,815 150, 26 7, 257, 263, 185, 107, 198, 648, 160, 108,816 105, 105, 106, 106, 120, 88, 121, 122, 149, 267, 817 150, 268, 258, 264, 185, 107, 199, 652, 160, 108, 816 818 161, 151, 152, 153, 88, 109, 110, 154, 155, 163, 817 819 156, 111, 88, 157, 158, 146, 164, 107, 88, 88, 818 88, 159, 165, 112, 209, 88, 88, 88, 197, 88, 819 88, 109, 196, 88, 110, 104, 253, 113, 113, 113, 820 821 113, 113, 113, 88, 170, 178, 171, 199, 195, 88, 822 210, 181, 166, 233, 107, 172, 167, 182, 114, 179, 823 254, 168, 88, 261, 115, 169, 180, 173, 88, 144, 824 116, 88, 251, 326, 145, 174, 107, 175, 252, 234, 825 176, 144, 117, 266, 177, 267, 145, 262, 183, 88, 826 115, 126, 88, 184, 252, 127, 128, 88, 129, 193, 827 130, 131, 259, 132, 252, 133, 88, 283, 260, 186, 828 187, 260, 251, 88, 134, 135, 136, 88, 190, 188, 829 252, 266, 189, 267, 274, 88, 191, 268, 146, 259, 830 337, 203, 204, 192, 260, 137, 203, 260, 138, 266, 831 832 904, 267, 194, 200, 82, 83, 83, 83, 200, 88, 833 275, 201, 205, 205, 205, 205, 205, 205, 81, 82, 834 83, 83, 83, 81, 88, 139, 140, 212, 213, 266, 835 904, 267, 212, 285, 214, 258, 266, 88, 267, 214, 836 83, 82, 83, 83, 83, 83, 303, 88, 215, 215, 837 215, 215, 83, 82, 84, 84, 84, 83, 904, 214, 838 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 839 269, 266, 266, 267, 267, 216, 268, 88, 214, 266, 840 270, 267, 88, 214, 214, 88, 88, 214, 214, 266, 841 266, 267, 267, 286, 904, 214, 88, 317, 214, 246, 842 843 214, 217, 214, 284, 218, 220, 88, 88, 288, 221, 844 222, 281, 88, 88, 223, 224, 88, 225, 282, 226, 845 88, 327, 904, 301, 287, 289, 88, 88, 227, 228, 846 229, 104, 306, 106, 106, 106, 106, 106, 106, 311, 847 88, 88, 302, 88, 88, 307, 88, 304, 305, 230, 848 107, 248, 231, 248, 309, 88, 249, 249, 249, 249, 849 249, 249, 310, 308, 313, 88, 247, 312, 88, 88, 850 314, 88, 107, 88, 88, 88, 88, 316, 88, 88, 851 232, 236, 236, 236, 236, 236, 236, 319, 315, 250, 852 318, 320, 325, 323, 88, 321, 322, 237, 238, 239, 853 854 324, 240, 239, 328, 88, 329, 88, 88, 144, 365, 855 88, 366, 88, 88, 241, 330, 331, 333, 335, 239, 856 238, 239, 88, 341, 240, 332, 239, 290, 291, 292, 857 338, 293, 294, 336, 334, 295, 88, 296, 88, 351, 858 88, 339, 297, 298, 299, 88, 300, 88, 385, 212, 859 213, 343, 88, 347, 212, 342, 203, 204, 345, 344, 860 346, 203, 365, 340, 366, 352, 395, 348, 200, 82, 861 83, 83, 83, 200, 385, 88, 201, 205, 205, 205, 862 205, 205, 205, 203, 204, 365, 904, 366, 203, 349, 863 204, 365, 395, 366, 349, 414, 350, 357, 357, 357, 864 865 357, 365, 366, 366, 205, 205, 205, 205, 205, 205, 866 205, 205, 205, 205, 205, 205, 365, 366, 366, 367, 867 365, 382, 366, 365, 368, 366, 365, 374, 366, 365, 868 358, 366, 365, 88, 366, 374, 374, 375, 266, 375, 869 267, 88, 376, 376, 376, 376, 376, 376, 397, 378, 870 374, 378, 88, 266, 378, 267, 420, 411, 374, 380, 871 380, 380, 380, 380, 380, 104, 550, 245, 245, 245, 872 245, 378, 88, 378, 398, 377, 88, 413, 378, 106, 873 106, 106, 106, 106, 106, 249, 249, 249, 249, 249, 874 249, 88, 381, 88, 409, 88, 107, 248, 88, 248, 875 876 246, 88, 249, 249, 249, 249, 249, 249, 408, 410, 877 412, 88, 258, 423, 88, 88, 415, 88, 107, 383, 878 383, 383, 383, 383, 383, 388, 427, 422, 106, 106, 879 106, 106, 106, 106, 416, 237, 88, 239, 461, 240, 880 239, 113, 113, 113, 113, 113, 113, 88, 390, 428, 881 391, 88, 384, 88, 392, 88, 88, 239, 426, 239, 882 393, 258, 240, 88, 239, 421, 88, 424, 425, 88, 883 88, 417, 394, 88, 263, 432, 391, 418, 419, 88, 884 392, 430, 429, 88, 431, 88, 88, 88, 433, 435, 885 434, 436, 439, 88, 88, 88, 88, 88, 440, 88, 886 887 441, 88, 444, 88, 443, 442, 437, 438, 446, 88, 888 88, 88, 88, 445, 448, 449, 447, 450, 88, 88, 889 88, 88, 452, 88, 457, 88, 88, 88, 88, 453, 890 455, 454, 88, 88, 451, 456, 88, 88, 459, 88, 891 88, 464, 458, 88, 144, 463, 88, 462, 460, 88, 892 469, 88, 470, 88, 88, 465, 474, 88, 468, 466, 893 502, 467, 472, 204, 471, 473, 349, 204, 475, 202, 894 503, 349, 476, 350, 214, 214, 214, 214, 357, 357, 895 357, 357, 365, 365, 366, 366, 502, 88, 88, 376, 896 376, 376, 376, 376, 376, 375, 502, 375, 525, 510, 897 898 376, 376, 376, 376, 376, 376, 504, 486, 497, 497, 899 497, 497, 497, 497, 236, 236, 236, 236, 236, 236, 900 88, 88, 502, 511, 237, 88, 239, 88, 240, 239, 901 245, 245, 245, 245, 106, 106, 505, 526, 530, 528, 902 527, 498, 506, 506, 88, 88, 239, 379, 239, 88, 903 88, 240, 88, 239, 380, 380, 380, 380, 380, 380, 904 388, 505, 534, 382, 88, 537, 532, 536, 506, 506, 905 237, 238, 239, 529, 240, 239, 383, 383, 383, 383, 906 383, 383, 88, 390, 88, 391, 904, 381, 545, 392, 907 904, 904, 239, 238, 239, 393, 507, 240, 507, 239, 908 909 535, 508, 508, 508, 508, 508, 508, 394, 88, 384, 910 88, 391, 88, 88, 390, 392, 391, 531, 88, 533, 911 392, 88, 88, 88, 88, 88, 512, 542, 538, 539, 912 88, 88, 547, 88, 509, 540, 541, 88, 394, 88, 913 543, 88, 391, 548, 546, 549, 392, 544, 88, 551, 914 88, 88, 552, 88, 554, 553, 556, 88, 88, 88, 915 558, 88, 555, 557, 88, 88, 88, 88, 559, 88, 916 88, 88, 88, 88, 562, 566, 88, 560, 88, 564, 917 561, 570, 88, 563, 567, 565, 88, 88, 88, 88, 918 88, 571, 568, 569, 578, 574, 572, 575, 573, 577, 919 920 576, 88, 88, 88, 88, 88, 88, 204, 579, 88, 921 582, 88, 581, 589, 580, 587, 585, 502, 611, 88, 922 583, 584, 588, 88, 631, 586, 214, 214, 214, 214, 923 497, 497, 497, 497, 497, 497, 380, 380, 380, 380, 924 380, 380, 88, 502, 611, 88, 237, 88, 239, 88, 925 240, 239, 383, 383, 383, 383, 383, 383, 88, 630, 926 632, 502, 634, 498, 88, 88, 502, 633, 239, 499, 927 239, 503, 607, 240, 607, 239, 610, 608, 608, 608, 928 608, 608, 608, 88, 642, 500, 635, 502, 637, 88, 929 88, 88, 502, 508, 508, 508, 508, 508, 508, 507, 930 931 88, 507, 636, 639, 508, 508, 508, 508, 508, 508, 932 609, 612, 612, 612, 612, 612, 612, 88, 88, 88, 933 88, 88, 88, 88, 904, 88, 88, 613, 638, 614, 934 644, 615, 614, 646, 641, 88, 647, 88, 640, 88, 935 645, 643, 88, 651, 616, 88, 649, 650, 652, 614, 936 653, 614, 654, 88, 615, 88, 614, 88, 88, 656, 937 88, 88, 655, 88, 88, 88, 88, 88, 88, 659, 938 657, 88, 658, 660, 88, 662, 665, 666, 661, 88, 939 663, 664, 88, 667, 88, 88, 88, 88, 88, 668, 940 88, 676, 669, 671, 672, 673, 677, 88, 88, 670, 941 942 88, 88, 675, 88, 88, 904, 88, 777, 674, 712, 943 678, 88, 701, 701, 680, 679, 497, 497, 497, 497, 944 497, 497, 713, 717, 716, 681, 608, 608, 608, 608, 945 608, 608, 607, 701, 607, 701, 88, 608, 608, 608, 946 608, 608, 608, 612, 612, 612, 612, 612, 612, 606, 947 699, 699, 699, 699, 699, 699, 701, 702, 88, 702, 948 88, 88, 702, 88, 88, 714, 613, 88, 614, 715, 949 615, 614, 720, 731, 719, 88, 616, 88, 722, 702, 950 721, 702, 88, 700, 718, 88, 702, 88, 614, 88, 951 614, 88, 88, 615, 88, 614, 88, 725, 723, 724, 952 953 88, 88, 88, 729, 88, 88, 727, 732, 88, 726, 954 88, 730, 88, 728, 734, 88, 733, 737, 88, 88, 955 735, 88, 88, 879, 740, 88, 736, 88, 88, 88, 956 744, 88, 745, 738, 739, 88, 746, 748, 741, 743, 957 88, 747, 88, 88, 749, 764, 742, 699, 699, 699, 958 699, 699, 699, 612, 612, 612, 612, 612, 612, 88, 959 88, 763, 768, 613, 88, 614, 766, 615, 614, 765, 960 88, 88, 783, 88, 769, 767, 770, 88, 771, 88, 961 700, 88, 88, 772, 780, 614, 703, 614, 774, 88, 962 615, 88, 614, 88, 773, 88, 775, 88, 778, 88, 963 964 779, 88, 781, 776, 88, 88, 88, 784, 88, 88, 965 88, 791, 88, 88, 782, 787, 88, 785, 88, 904, 966 88, 793, 88, 809, 88, 794, 786, 788, 790, 88, 967 88, 88, 789, 792, 699, 699, 699, 699, 699, 699, 968 807, 808, 88, 88, 810, 812, 815, 813, 88, 817, 969 88, 88, 811, 818, 819, 88, 88, 814, 88, 821, 970 88, 816, 820, 822, 88, 88, 88, 756, 88, 88, 971 848, 88, 88, 823, 88, 843, 88, 88, 88, 845, 972 88, 846, 88, 88, 904, 849, 88, 824, 825, 826, 973 841, 88, 842, 844, 851, 840, 88, 88, 847, 88, 974 975 852, 88, 854, 88, 88, 850, 88, 88, 853, 88, 976 867, 88, 855, 866, 88, 88, 88, 871, 868, 856, 977 88, 88, 88, 873, 874, 865, 904, 88, 876, 869, 978 88, 875, 872, 88, 88, 870, 877, 882, 881, 880, 979 88, 88, 88, 88, 88, 885, 884, 886, 88, 88, 980 883, 887, 88, 88, 88, 890, 88, 892, 88, 88, 981 88, 893, 88, 888, 889, 88, 891, 88, 88, 897, 982 88, 88, 88, 904, 878, 894, 88, 896, 898, 88, 983 895, 88, 903, 88, 88, 904, 901, 904, 864, 899, 984 904, 900, 863, 902, 70, 70, 70, 70, 70, 70, 985 986 70, 70, 70, 70, 70, 70, 70, 76, 76, 76, 820 88, 159, 165, 112, 210, 88, 88, 88, 198, 88, 821 88, 109, 197, 88, 110, 104, 254, 113, 113, 113, 822 823 113, 113, 113, 88, 170, 178, 171, 200, 196, 88, 824 211, 181, 166, 234, 107, 172, 167, 182, 114, 179, 825 255, 168, 88, 275, 115, 169, 180, 173, 253, 88, 826 116, 88, 908, 88, 88, 174, 107, 175, 286, 235, 827 176, 252, 117, 267, 177, 268, 252, 253, 183, 276, 828 115, 126, 284, 184, 253, 127, 128, 88, 129, 144, 829 130, 131, 908, 132, 145, 133, 88, 259, 262, 186, 830 187, 261, 88, 253, 134, 135, 136, 194, 190, 188, 831 269, 267, 189, 268, 290, 260, 191, 269, 192, 260, 832 908, 261, 263, 193, 267, 137, 268, 261, 138, 267, 833 834 267, 268, 268, 88, 88, 88, 146, 201, 82, 83, 835 83, 83, 201, 204, 205, 202, 88, 261, 204, 318, 836 195, 270, 267, 285, 268, 139, 140, 81, 82, 83, 837 83, 83, 81, 309, 206, 206, 206, 206, 206, 206, 838 213, 214, 267, 88, 268, 213, 144, 215, 267, 271, 839 268, 145, 215, 83, 82, 83, 83, 83, 83, 287, 840 88, 216, 216, 216, 216, 83, 82, 84, 84, 84, 841 83, 88, 215, 245, 245, 245, 245, 245, 245, 246, 842 246, 246, 246, 267, 267, 268, 268, 88, 217, 288, 843 88, 215, 88, 88, 88, 88, 215, 215, 88, 436, 844 845 215, 215, 282, 88, 304, 88, 88, 908, 215, 283, 846 88, 215, 247, 215, 218, 215, 289, 219, 221, 302, 847 303, 88, 222, 223, 88, 321, 307, 224, 225, 312, 848 226, 88, 227, 88, 310, 908, 88, 313, 88, 308, 849 88, 228, 229, 230, 104, 88, 106, 106, 106, 106, 850 106, 106, 305, 306, 311, 88, 320, 314, 88, 88, 851 315, 88, 231, 107, 249, 232, 249, 317, 88, 250, 852 250, 250, 250, 250, 250, 319, 88, 328, 316, 248, 853 88, 327, 88, 323, 88, 107, 322, 367, 88, 368, 854 88, 88, 88, 233, 237, 237, 237, 237, 237, 237, 855 856 333, 326, 251, 334, 88, 88, 324, 329, 88, 336, 857 238, 239, 240, 325, 241, 240, 88, 342, 338, 330, 858 335, 144, 781, 88, 337, 88, 88, 242, 88, 331, 859 332, 340, 240, 239, 240, 88, 339, 241, 345, 240, 860 291, 292, 293, 350, 294, 295, 346, 343, 296, 88, 861 297, 88, 353, 341, 88, 298, 299, 300, 367, 301, 862 368, 367, 347, 368, 348, 88, 88, 349, 344, 201, 863 82, 83, 83, 83, 201, 204, 205, 202, 354, 368, 864 204, 204, 205, 414, 213, 214, 204, 351, 205, 213, 865 88, 908, 351, 367, 352, 368, 206, 206, 206, 206, 866 867 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 868 206, 206, 206, 206, 359, 359, 359, 359, 368, 367, 869 908, 368, 369, 367, 367, 368, 368, 367, 370, 368, 870 367, 367, 368, 368, 367, 376, 368, 376, 376, 380, 871 267, 380, 268, 377, 380, 377, 88, 360, 378, 378, 872 378, 378, 378, 378, 267, 384, 268, 908, 376, 410, 873 376, 380, 104, 380, 246, 246, 246, 246, 380, 382, 874 382, 382, 382, 382, 382, 106, 106, 106, 106, 106, 875 106, 379, 250, 250, 250, 250, 250, 250, 88, 88, 876 88, 88, 107, 88, 88, 387, 415, 247, 88, 417, 877 878 88, 88, 383, 397, 399, 428, 411, 412, 259, 413, 879 416, 88, 457, 425, 107, 385, 385, 385, 385, 385, 880 385, 387, 390, 106, 106, 106, 106, 106, 106, 397, 881 400, 238, 249, 240, 249, 241, 240, 250, 250, 250, 882 250, 250, 250, 88, 88, 392, 88, 393, 386, 88, 883 88, 394, 429, 240, 88, 240, 259, 395, 241, 88, 884 240, 113, 113, 113, 113, 113, 113, 422, 88, 396, 885 418, 88, 423, 393, 419, 424, 88, 394, 88, 88, 886 420, 421, 88, 88, 426, 427, 88, 434, 88, 430, 887 88, 88, 435, 88, 264, 88, 432, 433, 431, 88, 888 889 441, 88, 88, 88, 442, 88, 437, 443, 438, 439, 890 440, 445, 444, 88, 88, 88, 88, 88, 449, 446, 891 450, 447, 451, 448, 88, 88, 88, 88, 88, 452, 892 88, 459, 88, 88, 88, 454, 88, 88, 88, 456, 893 88, 88, 458, 455, 88, 461, 453, 466, 88, 460, 894 88, 88, 144, 88, 465, 462, 464, 463, 88, 88, 895 88, 471, 467, 88, 468, 88, 469, 473, 470, 88, 896 472, 474, 475, 476, 477, 478, 88, 351, 205, 205, 897 88, 479, 351, 88, 352, 203, 215, 215, 215, 215, 898 359, 359, 359, 359, 528, 367, 88, 368, 367, 531, 899 900 368, 378, 378, 378, 378, 378, 378, 377, 505, 377, 901 88, 513, 378, 378, 378, 378, 378, 378, 506, 489, 902 500, 500, 500, 500, 500, 500, 237, 237, 237, 237, 903 237, 237, 535, 88, 505, 514, 238, 88, 240, 88, 904 241, 240, 246, 246, 246, 246, 106, 106, 508, 529, 905 533, 505, 530, 501, 509, 509, 88, 88, 240, 381, 906 240, 507, 88, 241, 675, 240, 382, 382, 382, 382, 907 382, 382, 390, 508, 88, 384, 88, 505, 538, 539, 908 509, 509, 238, 239, 240, 532, 241, 240, 385, 385, 909 385, 385, 385, 385, 88, 392, 543, 393, 88, 383, 910 911 548, 394, 908, 908, 240, 239, 240, 395, 510, 241, 912 510, 240, 88, 511, 511, 511, 511, 511, 511, 396, 913 88, 386, 88, 393, 88, 537, 392, 394, 393, 534, 914 88, 536, 394, 88, 88, 88, 88, 540, 515, 545, 915 88, 88, 88, 88, 550, 88, 512, 88, 544, 88, 916 396, 541, 542, 88, 393, 546, 553, 549, 394, 554, 917 551, 88, 547, 88, 552, 556, 555, 88, 88, 559, 918 88, 88, 88, 88, 557, 88, 558, 561, 88, 88, 919 88, 88, 560, 88, 88, 562, 88, 88, 565, 569, 920 88, 563, 88, 567, 564, 88, 573, 566, 570, 568, 921 922 88, 88, 88, 88, 88, 574, 571, 88, 572, 578, 923 575, 581, 576, 88, 582, 580, 88, 577, 88, 579, 924 88, 88, 88, 205, 88, 585, 586, 88, 583, 593, 925 592, 505, 589, 591, 615, 584, 587, 588, 215, 215, 926 215, 215, 88, 88, 590, 500, 500, 500, 500, 500, 927 500, 382, 382, 382, 382, 382, 382, 505, 636, 634, 928 615, 238, 88, 240, 88, 241, 240, 385, 385, 385, 929 385, 385, 385, 908, 883, 635, 505, 638, 501, 88, 930 88, 505, 88, 240, 502, 240, 506, 611, 241, 611, 931 240, 614, 612, 612, 612, 612, 612, 612, 88, 637, 932 933 503, 647, 505, 641, 639, 88, 88, 505, 511, 511, 934 511, 511, 511, 511, 510, 908, 510, 642, 640, 511, 935 511, 511, 511, 511, 511, 613, 616, 616, 616, 616, 936 616, 616, 88, 88, 88, 643, 88, 88, 88, 88, 937 88, 88, 617, 649, 618, 88, 619, 618, 648, 645, 938 651, 650, 88, 644, 653, 646, 88, 88, 88, 620, 939 88, 656, 657, 654, 618, 88, 618, 659, 658, 619, 940 88, 618, 88, 655, 88, 88, 88, 660, 88, 88, 941 661, 663, 88, 88, 664, 662, 88, 88, 669, 88, 942 666, 88, 88, 665, 667, 670, 671, 668, 88, 88, 943 944 88, 88, 88, 88, 673, 88, 677, 88, 676, 674, 945 680, 672, 681, 679, 88, 682, 88, 908, 908, 683, 946 684, 88, 678, 500, 500, 500, 500, 500, 500, 612, 947 612, 612, 612, 612, 612, 611, 685, 611, 721, 88, 948 612, 612, 612, 612, 612, 612, 616, 616, 616, 616, 949 616, 616, 720, 705, 705, 88, 610, 703, 703, 703, 950 703, 703, 703, 705, 88, 706, 908, 706, 88, 716, 951 706, 88, 725, 617, 88, 618, 705, 619, 618, 620, 952 719, 718, 717, 88, 88, 88, 705, 706, 88, 706, 953 704, 722, 723, 88, 706, 618, 724, 618, 88, 729, 954 955 619, 726, 618, 88, 88, 728, 727, 88, 88, 88, 956 735, 733, 88, 88, 88, 88, 88, 88, 88, 88, 957 88, 731, 88, 738, 88, 730, 734, 736, 741, 732, 958 88, 744, 88, 737, 739, 88, 88, 740, 88, 88, 959 742, 748, 743, 749, 745, 746, 88, 747, 750, 88, 960 753, 88, 88, 88, 88, 882, 751, 773, 752, 703, 961 703, 703, 703, 703, 703, 616, 616, 616, 616, 616, 962 616, 88, 767, 772, 88, 617, 88, 618, 769, 619, 963 618, 768, 88, 770, 88, 88, 88, 771, 774, 88, 964 776, 88, 704, 88, 779, 778, 88, 618, 707, 618, 965 966 88, 88, 619, 782, 618, 784, 777, 775, 88, 88, 967 783, 785, 88, 88, 88, 88, 88, 780, 88, 88, 968 787, 88, 786, 788, 88, 791, 88, 789, 88, 88, 969 88, 88, 88, 813, 797, 88, 790, 792, 794, 798, 970 88, 88, 793, 795, 814, 796, 703, 703, 703, 703, 971 703, 703, 811, 88, 88, 88, 88, 812, 816, 819, 972 821, 88, 88, 815, 822, 823, 88, 818, 820, 88, 973 88, 817, 825, 824, 88, 88, 88, 826, 88, 760, 974 88, 88, 88, 88, 88, 827, 847, 88, 88, 88, 975 849, 88, 850, 852, 88, 88, 88, 853, 828, 829, 976 977 846, 830, 845, 88, 88, 88, 848, 844, 855, 851, 978 88, 88, 857, 856, 88, 88, 88, 854, 88, 88, 979 858, 871, 859, 870, 88, 88, 88, 88, 88, 875, 980 860, 877, 88, 872, 88, 878, 869, 88, 88, 88, 981 88, 88, 88, 873, 876, 885, 879, 88, 881, 874, 982 880, 884, 88, 88, 892, 886, 88, 887, 888, 889, 983 88, 88, 88, 890, 891, 88, 88, 88, 894, 88, 984 896, 88, 897, 88, 88, 88, 895, 893, 88, 88, 985 88, 88, 88, 88, 901, 88, 88, 908, 908, 900, 986 868, 902, 908, 898, 899, 907, 867, 908, 905, 865, 987 988 908, 903, 904, 864, 906, 70, 70, 70, 70, 70, 989 70, 70, 70, 70, 70, 70, 70, 70, 76, 76, 987 990 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 988 7 9, 79, 79, 79, 79, 79, 79, 79, 79, 79,989 79, 79, 79, 87, 904, 861, 87, 904, 87, 87,990 87, 87, 87, 141, 860, 904, 859, 141, 141, 141,991 141, 141, 141, 202, 202, 202, 202, 202, 202, 202,992 20 2, 202, 202, 202, 202, 202, 207, 904, 858, 207,993 88, 207, 207, 207, 207, 207, 211, 88, 211, 211,994 88, 211, 211, 211, 211, 211, 211, 904, 211, 219,995 839, 904, 219, 219, 219, 219, 219, 219, 219, 219, 996 997 838, 219, 242, 242, 242, 242, 242, 242, 242, 242,998 24 2, 242, 242, 242, 242, 256, 256, 836, 256, 904,999 834, 904, 256, 272, 832, 904, 272, 830, 272, 272,1000 27 2, 272, 272, 276, 828, 276, 88, 88, 88, 276,1001 27 8, 88, 278, 88, 88, 88, 278, 353, 88, 353,1002 88, 88, 88, 353, 355, 88, 355, 904, 806, 804,1003 355, 359, 904, 359, 904, 801, 799, 359, 361, 797,1004 361, 88, 88, 88, 361, 363, 88, 363, 88, 88,1005 88, 363, 370, 762, 370, 759, 758, 756, 370, 372,1006 208, 372, 752, 751, 683, 372, 387, 88, 387, 389, 1007 1008 3 89, 88, 389, 389, 389, 88, 389, 256, 256, 88,1009 256, 272, 88, 88, 272, 88, 272, 272, 272, 272,1010 27 2, 399, 88, 399, 88, 88, 88, 399, 401, 88,1011 401, 88, 88, 88, 401, 403, 88, 403, 710, 709,1012 707, 403, 276, 705, 276, 405, 703, 405, 610, 698,1013 69 7, 405, 278, 695, 278, 87, 693, 691, 87, 689,1014 8 7, 87, 87, 87, 87, 202, 202, 202, 202, 202,1015 20 2, 202, 202, 202, 202, 202, 202, 202, 477, 477,1016 4 77, 477, 477, 477, 477, 477, 477, 477, 477, 477,1017 477, 478, 687, 478, 685, 683, 88, 478, 480, 88, 1018 1019 480, 88, 88, 88, 480, 482, 88, 482, 88, 88,1020 88, 482, 353, 88, 353, 484, 88, 484, 88, 629,1021 627, 484, 355, 625, 355, 487, 623, 487, 621, 619,1022 512, 487, 359, 617, 359, 489, 617, 489, 606, 605,1023 603, 489, 361, 492, 361, 491, 492, 491, 601, 599,1024 597, 491, 363, 595, 363, 493, 593, 493, 591, 88,1025 88, 493, 370, 88, 370, 495, 88, 495, 88, 88,1026 88, 495, 372, 88, 372, 501, 524, 501, 522, 501,1027 5 20, 501, 387, 518, 387, 516, 387, 514, 387, 389,1028 389, 500, 389, 389, 389, 499, 389, 513, 496, 513, 1029 1030 494, 366, 366, 513, 515, 492, 515, 490, 488, 485,1031 515, 517, 483, 517, 481, 479, 88, 517, 399, 88,1032 399, 519, 88, 519, 407, 406, 404, 519, 401, 402,1033 401, 521, 400, 521, 273, 268, 267, 521, 403, 396,1034 403, 523, 396, 523, 255, 386, 386, 523, 405, 243,1035 405, 87, 379, 373, 87, 371, 87, 87, 87, 87,1036 87, 477, 477, 477, 477, 477, 477, 477, 477, 477,1037 4 77, 477, 477, 477, 590, 369, 590, 365, 364, 362,1038 590, 478, 360, 478, 592, 356, 592, 354, 208, 204,1039 592, 480, 88, 480, 594, 280, 594, 279, 277, 273, 1040 1041 594, 482, 268, 482, 596, 271, 596, 268, 266, 265,1042 596, 484, 264, 484, 598, 243, 598, 235, 86, 86,1043 598, 487, 88, 487, 600, 208, 600, 206, 86, 123,1044 600, 489, 118, 489, 491, 88, 491, 904, 71, 71,1045 491, 602, 904, 602, 904, 904, 904, 602, 493, 904,1046 493, 604, 904, 604, 904, 904, 904, 604, 495, 904,1047 495, 501, 904, 501, 904, 501, 904, 501, 389, 904,1048 389, 904, 904, 904, 389, 618, 904, 618, 904, 904,1049 90 4, 618, 513, 904, 513, 620, 904, 620, 904, 904,1050 904, 620, 515, 904, 515, 622, 904, 622, 904, 904, 1051 1052 90 4, 622, 517, 904, 517, 624, 904, 624, 904, 904,1053 90 4, 624, 519, 904, 519, 626, 904, 626, 904, 904,1054 90 4, 626, 521, 904, 521, 628, 904, 628, 904, 904,1055 90 4, 628, 523, 904, 523, 87, 904, 904, 87, 904,1056 87, 87, 87, 87, 87, 682, 682, 682, 682, 682,1057 68 2, 682, 682, 682, 682, 682, 682, 682, 684, 904,1058 684, 904, 904, 904, 684, 590, 904, 590, 686, 904,1059 686, 904, 904, 904, 686, 592, 904, 592, 688, 904,1060 688, 904, 904, 904, 688, 594, 904, 594, 690, 904,1061 690, 904, 904, 904, 690, 596, 904, 596, 692, 904, 1062 1063 692, 904, 904, 904, 692, 598, 904, 598, 694, 904,1064 694, 904, 904, 904, 694, 600, 904, 600, 696, 904,1065 696, 904, 904, 904, 696, 602, 904, 602, 87, 904,1066 87, 904, 904, 904, 87, 604, 904, 604, 501, 904,1067 501, 904, 904, 904, 501, 704, 904, 704, 904, 904,1068 90 4, 704, 618, 904, 618, 706, 904, 706, 904, 904,1069 90 4, 706, 620, 904, 620, 708, 904, 708, 904, 904,1070 90 4, 708, 622, 904, 622, 141, 904, 141, 904, 904,1071 90 4, 141, 624, 904, 624, 711, 904, 711, 626, 904,1072 626, 87, 904, 904, 87, 904, 87, 87, 87, 87, 1073 1074 87, 628, 904, 628, 682, 682, 682, 682, 682, 682,1075 68 2, 682, 682, 682, 682, 682, 682, 750, 904, 750,1076 904, 904, 904, 750, 684, 904, 684, 207, 904, 207,1077 904, 904, 904, 207, 686, 904, 686, 753, 904, 753,1078 688, 904, 688, 207, 904, 904, 207, 904, 207, 207,1079 20 7, 207, 207, 690, 904, 690, 754, 904, 754, 692,1080 904, 692, 694, 904, 694, 755, 904, 755, 696, 904,1081 696, 87, 904, 87, 757, 904, 757, 904, 904, 904,1082 757, 704, 904, 704, 272, 904, 272, 904, 904, 904,1083 272, 706, 904, 706, 760, 904, 760, 708, 904, 708, 1084 1085 141, 904, 141, 761, 904, 761, 904, 904, 904, 761,1086 87, 904, 904, 87, 904, 87, 87, 87, 87, 87,1087 795, 904, 795, 750, 904, 750, 207, 904, 207, 796,1088 904, 796, 904, 904, 904, 796, 798, 904, 798, 904,1089 90 4, 904, 798, 800, 904, 800, 904, 904, 904, 800,1090 80 2, 904, 802, 803, 904, 803, 904, 904, 904, 803,1091 80 5, 904, 805, 904, 904, 904, 805, 827, 904, 827,1092 904, 904, 904, 827, 829, 904, 829, 904, 904, 904,1093 829, 831, 904, 831, 904, 904, 904, 831, 833, 904,1094 833, 904, 904, 904, 833, 835, 904, 835, 904, 904, 1095 1096 90 4, 835, 837, 904, 837, 904, 904, 904, 837, 628,1097 904, 628, 904, 904, 904, 628, 857, 904, 857, 904,1098 90 4, 904, 857, 690, 904, 690, 904, 904, 904, 690,1099 694, 904, 694, 904, 904, 904, 694, 87, 904, 87,1100 904, 904, 904, 87, 862, 904, 862, 904, 904, 904,1101 862, 141, 904, 141, 904, 904, 904, 141, 207, 904,1102 207, 904, 904, 904, 207, 11, 904, 904, 904, 904,1103 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1104 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1105 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1106 1107 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1108 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1109 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1110 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1111 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1112 90 4991 76, 79, 79, 79, 79, 79, 79, 79, 79, 79, 992 79, 79, 79, 79, 87, 908, 863, 87, 908, 87, 993 87, 87, 87, 87, 141, 862, 88, 88, 141, 141, 994 141, 141, 141, 141, 203, 203, 203, 203, 203, 203, 995 203, 203, 203, 203, 203, 203, 203, 208, 88, 908, 996 208, 843, 208, 208, 208, 208, 208, 212, 908, 212, 997 212, 842, 212, 212, 212, 212, 212, 212, 840, 212, 998 999 220, 908, 838, 220, 220, 220, 220, 220, 220, 220, 1000 220, 908, 220, 243, 243, 243, 243, 243, 243, 243, 1001 243, 243, 243, 243, 243, 243, 257, 257, 836, 257, 1002 908, 834, 832, 257, 273, 88, 88, 273, 88, 273, 1003 273, 273, 273, 273, 277, 88, 277, 88, 88, 88, 1004 277, 279, 88, 279, 88, 88, 88, 279, 355, 88, 1005 355, 908, 810, 808, 355, 357, 908, 357, 908, 805, 1006 803, 357, 361, 801, 361, 88, 88, 88, 361, 363, 1007 88, 363, 88, 88, 88, 363, 365, 766, 365, 763, 1008 762, 760, 365, 372, 209, 372, 756, 755, 687, 372, 1009 1010 374, 88, 374, 88, 88, 88, 374, 389, 88, 389, 1011 391, 391, 88, 391, 391, 391, 88, 391, 257, 257, 1012 88, 257, 273, 88, 88, 273, 88, 273, 273, 273, 1013 273, 273, 401, 88, 401, 88, 88, 88, 401, 403, 1014 88, 403, 714, 713, 711, 403, 405, 709, 405, 707, 1015 614, 702, 405, 277, 701, 277, 407, 699, 407, 697, 1016 695, 693, 407, 279, 691, 279, 87, 689, 687, 87, 1017 88, 87, 87, 87, 87, 87, 203, 203, 203, 203, 1018 203, 203, 203, 203, 203, 203, 203, 203, 203, 480, 1019 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 1020 1021 480, 480, 481, 88, 481, 88, 88, 88, 481, 483, 1022 88, 483, 88, 88, 88, 483, 485, 88, 485, 88, 1023 88, 88, 485, 355, 633, 355, 487, 631, 487, 629, 1024 627, 625, 487, 357, 623, 357, 490, 515, 490, 621, 1025 621, 610, 490, 361, 609, 361, 492, 607, 492, 495, 1026 495, 605, 492, 363, 603, 363, 494, 601, 494, 599, 1027 597, 595, 494, 365, 88, 365, 496, 88, 496, 88, 1028 88, 88, 496, 372, 88, 372, 498, 88, 498, 88, 1029 527, 525, 498, 374, 523, 374, 504, 521, 504, 519, 1030 504, 517, 504, 389, 503, 389, 502, 389, 499, 389, 1031 1032 391, 391, 497, 391, 391, 391, 368, 391, 516, 368, 1033 516, 495, 493, 491, 516, 518, 488, 518, 486, 484, 1034 482, 518, 520, 88, 520, 88, 88, 409, 520, 401, 1035 408, 401, 522, 406, 522, 404, 402, 274, 522, 403, 1036 269, 403, 524, 268, 524, 398, 398, 256, 524, 405, 1037 388, 405, 526, 388, 526, 244, 381, 375, 526, 407, 1038 373, 407, 87, 371, 367, 87, 366, 87, 87, 87, 1039 87, 87, 480, 480, 480, 480, 480, 480, 480, 480, 1040 480, 480, 480, 480, 480, 594, 364, 594, 362, 358, 1041 356, 594, 481, 209, 481, 596, 205, 596, 88, 281, 1042 1043 280, 596, 483, 278, 483, 598, 274, 598, 269, 272, 1044 269, 598, 485, 267, 485, 600, 266, 600, 265, 244, 1045 236, 600, 487, 86, 487, 602, 86, 602, 88, 209, 1046 207, 602, 490, 86, 490, 604, 123, 604, 118, 88, 1047 908, 604, 492, 71, 492, 494, 71, 494, 908, 908, 1048 908, 494, 606, 908, 606, 908, 908, 908, 606, 496, 1049 908, 496, 608, 908, 608, 908, 908, 908, 608, 498, 1050 908, 498, 504, 908, 504, 908, 504, 908, 504, 391, 1051 908, 391, 908, 908, 908, 391, 622, 908, 622, 908, 1052 908, 908, 622, 516, 908, 516, 624, 908, 624, 908, 1053 1054 908, 908, 624, 518, 908, 518, 626, 908, 626, 908, 1055 908, 908, 626, 520, 908, 520, 628, 908, 628, 908, 1056 908, 908, 628, 522, 908, 522, 630, 908, 630, 908, 1057 908, 908, 630, 524, 908, 524, 632, 908, 632, 908, 1058 908, 908, 632, 526, 908, 526, 87, 908, 908, 87, 1059 908, 87, 87, 87, 87, 87, 686, 686, 686, 686, 1060 686, 686, 686, 686, 686, 686, 686, 686, 686, 688, 1061 908, 688, 908, 908, 908, 688, 594, 908, 594, 690, 1062 908, 690, 908, 908, 908, 690, 596, 908, 596, 692, 1063 908, 692, 908, 908, 908, 692, 598, 908, 598, 694, 1064 1065 908, 694, 908, 908, 908, 694, 600, 908, 600, 696, 1066 908, 696, 908, 908, 908, 696, 602, 908, 602, 698, 1067 908, 698, 908, 908, 908, 698, 604, 908, 604, 700, 1068 908, 700, 908, 908, 908, 700, 606, 908, 606, 87, 1069 908, 87, 908, 908, 908, 87, 608, 908, 608, 504, 1070 908, 504, 908, 908, 908, 504, 708, 908, 708, 908, 1071 908, 908, 708, 622, 908, 622, 710, 908, 710, 908, 1072 908, 908, 710, 624, 908, 624, 712, 908, 712, 908, 1073 908, 908, 712, 626, 908, 626, 141, 908, 141, 908, 1074 908, 908, 141, 628, 908, 628, 715, 908, 715, 630, 1075 1076 908, 630, 87, 908, 908, 87, 908, 87, 87, 87, 1077 87, 87, 632, 908, 632, 686, 686, 686, 686, 686, 1078 686, 686, 686, 686, 686, 686, 686, 686, 754, 908, 1079 754, 908, 908, 908, 754, 688, 908, 688, 208, 908, 1080 208, 908, 908, 908, 208, 690, 908, 690, 757, 908, 1081 757, 692, 908, 692, 208, 908, 908, 208, 908, 208, 1082 208, 208, 208, 208, 694, 908, 694, 758, 908, 758, 1083 696, 908, 696, 698, 908, 698, 759, 908, 759, 700, 1084 908, 700, 87, 908, 87, 761, 908, 761, 908, 908, 1085 908, 761, 708, 908, 708, 273, 908, 273, 908, 908, 1086 1087 908, 273, 710, 908, 710, 764, 908, 764, 712, 908, 1088 712, 141, 908, 141, 765, 908, 765, 908, 908, 908, 1089 765, 87, 908, 908, 87, 908, 87, 87, 87, 87, 1090 87, 799, 908, 799, 754, 908, 754, 208, 908, 208, 1091 800, 908, 800, 908, 908, 908, 800, 802, 908, 802, 1092 908, 908, 908, 802, 804, 908, 804, 908, 908, 908, 1093 804, 806, 908, 806, 807, 908, 807, 908, 908, 908, 1094 807, 809, 908, 809, 908, 908, 908, 809, 831, 908, 1095 831, 908, 908, 908, 831, 833, 908, 833, 908, 908, 1096 908, 833, 835, 908, 835, 908, 908, 908, 835, 837, 1097 1098 908, 837, 908, 908, 908, 837, 839, 908, 839, 908, 1099 908, 908, 839, 841, 908, 841, 908, 908, 908, 841, 1100 632, 908, 632, 908, 908, 908, 632, 861, 908, 861, 1101 908, 908, 908, 861, 694, 908, 694, 908, 908, 908, 1102 694, 698, 908, 698, 908, 908, 908, 698, 87, 908, 1103 87, 908, 908, 908, 87, 866, 908, 866, 908, 908, 1104 908, 866, 141, 908, 141, 908, 908, 908, 141, 208, 1105 908, 208, 908, 908, 908, 208, 11, 908, 908, 908, 1106 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1107 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1108 1109 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1110 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1111 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1112 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1113 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1114 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1115 908, 908 1113 1116 } ; 1114 1117 1115 static yyconst flex_int16_t yy_chk[29 52] =1118 static yyconst flex_int16_t yy_chk[2963] = 1116 1119 { 0, 1117 1120 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … … 1134 1137 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1135 1138 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 1136 8, 9, 10, 37, 37, 20, 39, 9, 10, 90 3,1139 8, 9, 10, 37, 37, 20, 39, 9, 10, 907, 1137 1140 7, 8, 13, 13, 13, 13, 13, 13, 15, 15, 1138 1141 … … 1142 1145 8, 9, 10, 40, 42, 29, 30, 47, 30, 30, 1143 1146 30, 30, 30, 30, 35, 57, 35, 35, 44, 127, 1144 44, 127, 110, 116, 57, 30, 65, 54 4, 47, 30,1147 44, 127, 110, 116, 57, 30, 65, 547, 47, 30, 1145 1148 47, 45, 45, 45, 49, 30, 30, 45, 45, 49, 1146 1149 45, 30, 40, 45, 45, 40, 49, 30, 45, 63, 1147 62, 45, 49, 30, 74, 90 2, 544, 53, 63, 51,1150 62, 45, 49, 30, 74, 906, 547, 53, 63, 51, 1148 1151 61, 30, 62, 55, 30, 31, 109, 31, 31, 31, 1149 1152 1150 1153 31, 31, 31, 50, 51, 53, 51, 65, 61, 54, 1151 1154 74, 55, 50, 88, 31, 51, 50, 55, 31, 54, 1152 109, 50, 52, 115, 31, 50, 54, 52, 182, 146, 1153 31, 56, 108, 182, 146, 52, 31, 52, 108, 88, 1154 52, 60, 31, 128, 52, 128, 60, 115, 56, 152, 1155 31, 38, 894, 56, 112, 38, 38, 58, 38, 60, 1156 38, 38, 114, 38, 108, 38, 59, 152, 114, 58, 1157 58, 117, 112, 146, 38, 38, 38, 189, 59, 58, 1158 112, 130, 58, 130, 143, 60, 59, 132, 60, 117, 1159 189, 69, 69, 59, 114, 38, 69, 117, 38, 132, 1160 1161 111, 132, 60, 68, 68, 68, 68, 68, 68, 893, 1162 143, 68, 69, 69, 69, 69, 69, 69, 81, 81, 1163 81, 81, 81, 81, 154, 38, 38, 78, 78, 133, 1164 111, 133, 78, 154, 78, 111, 135, 162, 135, 78, 1165 83, 83, 83, 83, 83, 83, 162, 890, 78, 78, 1166 78, 78, 84, 84, 84, 84, 84, 84, 111, 78, 1167 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 1168 134, 134, 138, 134, 138, 78, 131, 155, 78, 136, 1169 136, 136, 173, 78, 78, 153, 157, 78, 78, 140, 1170 131, 140, 131, 155, 105, 78, 151, 173, 78, 105, 1171 1172 78, 78, 78, 153, 78, 86, 156, 160, 157, 86, 1173 86, 151, 183, 158, 86, 86, 168, 86, 151, 86, 1174 161, 183, 105, 160, 156, 158, 163, 164, 86, 86, 1175 86, 106, 164, 106, 106, 106, 106, 106, 106, 168, 1176 169, 167, 161, 170, 166, 164, 165, 163, 163, 86, 1177 106, 107, 86, 107, 166, 172, 107, 107, 107, 107, 1178 107, 107, 167, 165, 170, 171, 106, 169, 177, 175, 1179 171, 176, 106, 174, 178, 181, 184, 172, 180, 889, 1180 86, 100, 100, 100, 100, 100, 100, 175, 171, 107, 1181 174, 176, 181, 180, 185, 177, 178, 100, 100, 100, 1182 1183 180, 100, 100, 184, 192, 185, 187, 186, 193, 221, 1184 190, 221, 887, 188, 100, 185, 185, 187, 188, 100, 1185 100, 100, 159, 192, 100, 186, 100, 159, 159, 159, 1186 190, 159, 159, 188, 187, 159, 191, 159, 194, 208, 1187 196, 191, 159, 159, 159, 195, 159, 197, 251, 212, 1188 212, 194, 193, 196, 212, 193, 201, 201, 195, 194, 1189 195, 201, 222, 191, 222, 208, 259, 197, 200, 200, 1190 200, 200, 200, 200, 251, 287, 200, 201, 201, 201, 1191 201, 201, 201, 203, 203, 223, 246, 223, 203, 205, 1192 205, 226, 259, 226, 205, 287, 205, 215, 215, 215, 1193 1194 215, 228, 224, 228, 203, 203, 203, 203, 203, 203, 1195 205, 205, 205, 205, 205, 205, 224, 225, 224, 227, 1196 227, 246, 227, 229, 229, 229, 231, 239, 231, 225, 1197 215, 225, 232, 291, 232, 237, 237, 238, 269, 238, 1198 269, 284, 238, 238, 238, 238, 238, 238, 273, 240, 1199 239, 240, 432, 270, 240, 270, 291, 284, 237, 244, 1200 244, 244, 244, 244, 244, 245, 432, 245, 245, 245, 1201 245, 240, 286, 240, 273, 238, 282, 286, 240, 247, 1202 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 1203 248, 283, 244, 285, 282, 281, 247, 250, 294, 250, 1204 1205 245, 293, 250, 250, 250, 250, 250, 250, 281, 283, 1206 285, 288, 247, 294, 289, 331, 288, 297, 247, 249, 1207 249, 249, 249, 249, 249, 256, 297, 293, 258, 258, 1208 258, 258, 258, 258, 289, 249, 298, 249, 331, 249, 1209 249, 263, 263, 263, 263, 263, 263, 292, 256, 298, 1210 256, 295, 249, 296, 256, 299, 290, 249, 296, 249, 1211 256, 258, 249, 300, 249, 292, 302, 295, 295, 306, 1212 303, 290, 256, 307, 263, 303, 256, 290, 290, 304, 1213 256, 300, 299, 305, 302, 308, 312, 309, 304, 306, 1214 305, 307, 309, 310, 311, 313, 314, 315, 310, 316, 1215 1216 311, 317, 314, 321, 313, 312, 308, 308, 316, 318, 1217 319, 322, 320, 315, 318, 319, 317, 320, 323, 325, 1218 326, 327, 321, 328, 327, 329, 330, 332, 333, 322, 1219 325, 323, 334, 335, 320, 326, 336, 339, 329, 337, 1220 338, 334, 328, 341, 342, 333, 343, 332, 330, 344, 1221 339, 346, 341, 347, 348, 335, 346, 345, 338, 336, 1222 387, 337, 344, 350, 343, 345, 349, 349, 347, 350, 1223 387, 349, 348, 349, 357, 357, 357, 357, 358, 358, 1224 358, 358, 367, 368, 367, 368, 387, 408, 342, 375, 1225 375, 375, 375, 375, 375, 377, 388, 377, 408, 392, 1226 1227 377, 377, 377, 377, 377, 377, 388, 357, 376, 376, 1228 376, 376, 376, 376, 379, 379, 379, 379, 379, 379, 1229 411, 409, 388, 392, 376, 410, 376, 413, 376, 376, 1230 382, 382, 382, 382, 382, 382, 390, 409, 413, 411, 1231 410, 376, 390, 394, 415, 419, 376, 379, 376, 417, 1232 886, 376, 420, 376, 380, 380, 380, 380, 380, 380, 1233 389, 394, 417, 382, 412, 420, 415, 419, 390, 394, 1234 380, 380, 380, 412, 380, 380, 383, 383, 383, 383, 1235 383, 383, 426, 389, 418, 389, 879, 380, 426, 389, 1236 878, 393, 380, 380, 380, 389, 391, 380, 391, 380, 1237 1238 418, 391, 391, 391, 391, 391, 391, 389, 414, 383, 1239 416, 389, 421, 422, 393, 389, 393, 414, 423, 416, 1240 393, 428, 424, 427, 429, 425, 393, 424, 421, 421, 1241 430, 436, 428, 437, 391, 422, 423, 434, 393, 439, 1242 425, 438, 393, 429, 427, 430, 393, 425, 441, 434, 1243 440, 442, 436, 444, 438, 437, 440, 446, 447, 448, 1244 442, 449, 439, 441, 450, 451, 452, 454, 444, 456, 1245 459, 457, 458, 462, 448, 452, 460, 446, 461, 450, 1246 447, 458, 464, 449, 454, 451, 465, 466, 463, 468, 1247 469, 459, 456, 457, 466, 462, 460, 463, 461, 465, 1248 1249 464, 467, 470, 474, 471, 472, 475, 477, 467, 877, 1250 470, 526, 469, 477, 468, 475, 472, 504, 505, 476, 1251 470, 471, 476, 876, 526, 474, 486, 486, 486, 486, 1252 497, 497, 497, 497, 497, 497, 499, 499, 499, 499, 1253 499, 499, 525, 504, 505, 528, 497, 529, 497, 530, 1254 497, 497, 500, 500, 500, 500, 500, 500, 875, 525, 1255 528, 501, 530, 497, 531, 538, 503, 529, 497, 499, 1256 497, 501, 502, 497, 502, 497, 503, 502, 502, 502, 1257 502, 502, 502, 533, 538, 500, 531, 501, 533, 532, 1258 871, 867, 503, 507, 507, 507, 507, 507, 507, 509, 1259 1260 535, 509, 532, 535, 509, 509, 509, 509, 509, 509, 1261 502, 508, 508, 508, 508, 508, 508, 534, 536, 537, 1262 539, 540, 542, 543, 864, 546, 547, 508, 534, 508, 1263 540, 508, 508, 542, 537, 541, 543, 545, 536, 548, 1264 541, 539, 554, 547, 508, 549, 545, 546, 548, 508, 1265 549, 508, 551, 552, 508, 555, 508, 556, 551, 554, 1266 557, 560, 552, 561, 559, 562, 564, 571, 567, 557, 1267 555, 565, 556, 559, 568, 561, 565, 567, 560, 572, 1268 562, 564, 573, 568, 576, 575, 578, 582, 577, 571, 1269 579, 580, 572, 575, 576, 577, 582, 580, 585, 573, 1270 1271 583, 586, 579, 588, 630, 863, 634, 728, 578, 630, 1272 583, 633, 613, 613, 586, 585, 606, 606, 606, 606, 1273 606, 606, 630, 634, 633, 588, 607, 607, 607, 607, 1274 607, 607, 609, 614, 609, 613, 728, 609, 609, 609, 1275 609, 609, 609, 612, 612, 612, 612, 612, 612, 606, 1276 608, 608, 608, 608, 608, 608, 614, 615, 631, 615, 1277 632, 635, 615, 638, 637, 631, 608, 636, 608, 632, 1278 608, 608, 637, 648, 636, 639, 612, 641, 639, 615, 1279 638, 615, 642, 608, 635, 640, 615, 643, 608, 644, 1280 608, 645, 649, 608, 647, 608, 650, 642, 640, 641, 1281 1282 646, 648, 652, 646, 653, 651, 644, 649, 654, 643, 1283 656, 647, 657, 645, 651, 658, 650, 654, 662, 663, 1284 652, 668, 665, 862, 658, 669, 653, 676, 679, 680, 1285 668, 677, 669, 656, 657, 713, 676, 679, 662, 665, 1286 712, 677, 718, 715, 680, 713, 663, 699, 699, 699, 1287 699, 699, 699, 703, 703, 703, 703, 703, 703, 716, 1288 721, 712, 718, 699, 734, 699, 716, 699, 699, 715, 1289 717, 719, 734, 720, 719, 717, 720, 723, 721, 725, 1290 699, 724, 727, 723, 731, 699, 703, 699, 725, 745, 1291 699, 730, 699, 726, 724, 729, 726, 735, 729, 732, 1292 1293 730, 733, 732, 727, 736, 737, 738, 735, 744, 741, 1294 731, 745, 746, 748, 733, 738, 749, 736, 769, 861, 1295 767, 748, 772, 769, 768, 749, 737, 741, 744, 770, 1296 773, 774, 741, 746, 756, 756, 756, 756, 756, 756, 1297 767, 768, 771, 775, 770, 772, 775, 773, 776, 777, 1298 779, 781, 771, 779, 781, 782, 783, 774, 785, 783, 1299 784, 776, 782, 784, 786, 788, 792, 756, 807, 809, 1300 817, 812, 811, 785, 810, 811, 813, 777, 814, 813, 1301 816, 814, 818, 820, 860, 818, 824, 786, 788, 792, 1302 809, 821, 810, 812, 821, 807, 817, 822, 816, 823, 1303 1304 822, 825, 824, 826, 841, 820, 842, 843, 823, 844, 1305 843, 845, 825, 842, 846, 847, 855, 846, 844, 826, 1306 850, 853, 854, 850, 853, 841, 859, 856, 855, 845, 1307 865, 854, 847, 866, 868, 845, 856, 868, 866, 865, 1308 869, 870, 872, 880, 873, 872, 870, 873, 874, 881, 1309 869, 874, 882, 888, 884, 882, 883, 884, 885, 891, 1310 895, 885, 892, 880, 881, 896, 883, 897, 899, 895, 1311 898, 900, 901, 858, 857, 888, 852, 892, 896, 851, 1312 891, 849, 901, 848, 840, 839, 899, 838, 837, 897, 1313 836, 898, 835, 900, 905, 905, 905, 905, 905, 905, 1314 1315 905, 905, 905, 905, 905, 905, 905, 906, 906, 906, 1316 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 1317 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 1318 907, 907, 907, 908, 834, 833, 908, 832, 908, 908, 1319 908, 908, 908, 909, 831, 830, 829, 909, 909, 909, 1320 909, 909, 909, 910, 910, 910, 910, 910, 910, 910, 1321 910, 910, 910, 910, 910, 910, 911, 828, 827, 911, 1322 819, 911, 911, 911, 911, 911, 912, 815, 912, 912, 1323 808, 912, 912, 912, 912, 912, 912, 806, 912, 913, 1324 805, 804, 913, 913, 913, 913, 913, 913, 913, 913, 1325 1326 803, 913, 914, 914, 914, 914, 914, 914, 914, 914, 1327 914, 914, 914, 914, 914, 915, 915, 802, 915, 801, 1328 800, 799, 915, 916, 798, 797, 916, 796, 916, 916, 1329 916, 916, 916, 917, 795, 917, 794, 793, 791, 917, 1330 918, 790, 918, 789, 787, 780, 918, 919, 778, 919, 1331 766, 765, 764, 919, 920, 763, 920, 762, 761, 760, 1332 920, 921, 759, 921, 758, 755, 754, 921, 922, 753, 1333 922, 747, 743, 742, 922, 923, 740, 923, 739, 722, 1334 714, 923, 924, 711, 924, 706, 704, 700, 924, 925, 1335 690, 925, 686, 684, 682, 925, 926, 681, 926, 927, 1336 1337 927, 678, 927, 927, 927, 675, 927, 928, 928, 674, 1338 928, 929, 673, 672, 929, 671, 929, 929, 929, 929, 1339 929, 930, 670, 930, 667, 666, 664, 930, 931, 661, 1340 931, 660, 659, 655, 931, 932, 628, 932, 624, 622, 1341 620, 932, 933, 618, 933, 934, 616, 934, 610, 604, 1342 602, 934, 935, 600, 935, 936, 598, 596, 936, 594, 1343 936, 936, 936, 936, 936, 937, 937, 937, 937, 937, 1344 937, 937, 937, 937, 937, 937, 937, 937, 938, 938, 1345 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 1346 938, 939, 592, 939, 590, 589, 587, 939, 940, 584, 1347 1348 940, 581, 574, 570, 940, 941, 569, 941, 566, 563, 1349 558, 941, 942, 553, 942, 943, 550, 943, 527, 523, 1350 521, 943, 944, 519, 944, 945, 517, 945, 515, 513, 1351 512, 945, 946, 511, 946, 947, 510, 947, 498, 495, 1352 493, 947, 948, 492, 948, 949, 491, 949, 489, 487, 1353 484, 949, 950, 482, 950, 951, 480, 951, 478, 473, 1354 455, 951, 952, 453, 952, 953, 445, 953, 443, 435, 1355 433, 953, 954, 431, 954, 955, 405, 955, 403, 955, 1356 401, 955, 956, 399, 956, 398, 956, 397, 956, 957, 1357 957, 384, 957, 957, 957, 381, 957, 958, 372, 958, 1358 1359 370, 369, 365, 958, 959, 363, 959, 361, 359, 355, 1360 959, 960, 353, 960, 352, 351, 340, 960, 961, 324, 1361 961, 962, 301, 962, 280, 278, 276, 962, 963, 275, 1362 963, 964, 274, 964, 272, 271, 266, 964, 965, 262, 1363 965, 966, 261, 966, 257, 254, 253, 966, 967, 242, 1364 967, 968, 241, 234, 968, 233, 968, 968, 968, 968, 1365 968, 969, 969, 969, 969, 969, 969, 969, 969, 969, 1366 969, 969, 969, 969, 970, 230, 970, 220, 218, 217, 1367 970, 971, 216, 971, 972, 210, 972, 209, 207, 202, 1368 972, 973, 179, 973, 974, 150, 974, 148, 147, 141, 1369 1370 974, 975, 139, 975, 976, 137, 976, 129, 126, 125, 1371 976, 977, 121, 977, 978, 102, 978, 99, 96, 94, 1372 978, 979, 87, 979, 980, 73, 980, 71, 67, 36, 1373 980, 981, 33, 981, 982, 18, 982, 11, 4, 3, 1374 982, 983, 0, 983, 0, 0, 0, 983, 984, 0, 1375 984, 985, 0, 985, 0, 0, 0, 985, 986, 0, 1376 986, 987, 0, 987, 0, 987, 0, 987, 988, 0, 1377 988, 0, 0, 0, 988, 989, 0, 989, 0, 0, 1378 0, 989, 990, 0, 990, 991, 0, 991, 0, 0, 1379 0, 991, 992, 0, 992, 993, 0, 993, 0, 0, 1380 1381 0, 993, 994, 0, 994, 995, 0, 995, 0, 0, 1382 0, 995, 996, 0, 996, 997, 0, 997, 0, 0, 1383 0, 997, 998, 0, 998, 999, 0, 999, 0, 0, 1384 0, 999, 1000, 0, 1000, 1001, 0, 0, 1001, 0, 1385 1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1386 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 0, 1387 1003, 0, 0, 0, 1003, 1004, 0, 1004, 1005, 0, 1388 1005, 0, 0, 0, 1005, 1006, 0, 1006, 1007, 0, 1389 1007, 0, 0, 0, 1007, 1008, 0, 1008, 1009, 0, 1390 1009, 0, 0, 0, 1009, 1010, 0, 1010, 1011, 0, 1391 1392 1011, 0, 0, 0, 1011, 1012, 0, 1012, 1013, 0, 1393 1013, 0, 0, 0, 1013, 1014, 0, 1014, 1015, 0, 1394 1015, 0, 0, 0, 1015, 1016, 0, 1016, 1017, 0, 1395 1017, 0, 0, 0, 1017, 1018, 0, 1018, 1019, 0, 1396 1019, 0, 0, 0, 1019, 1020, 0, 1020, 0, 0, 1397 0, 1020, 1021, 0, 1021, 1022, 0, 1022, 0, 0, 1398 0, 1022, 1023, 0, 1023, 1024, 0, 1024, 0, 0, 1399 0, 1024, 1025, 0, 1025, 1026, 0, 1026, 0, 0, 1400 0, 1026, 1027, 0, 1027, 1028, 0, 1028, 1029, 0, 1401 1029, 1030, 0, 0, 1030, 0, 1030, 1030, 1030, 1030, 1402 1403 1030, 1031, 0, 1031, 1032, 1032, 1032, 1032, 1032, 1032, 1404 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1033, 0, 1033, 1405 0, 0, 0, 1033, 1034, 0, 1034, 1035, 0, 1035, 1406 0, 0, 0, 1035, 1036, 0, 1036, 1037, 0, 1037, 1407 1038, 0, 1038, 1039, 0, 0, 1039, 0, 1039, 1039, 1408 1039, 1039, 1039, 1040, 0, 1040, 1041, 0, 1041, 1042, 1409 0, 1042, 1043, 0, 1043, 1044, 0, 1044, 1045, 0, 1410 1045, 1046, 0, 1046, 1047, 0, 1047, 0, 0, 0, 1411 1047, 1048, 0, 1048, 1049, 0, 1049, 0, 0, 0, 1412 1049, 1050, 0, 1050, 1051, 0, 1051, 1052, 0, 1052, 1413 1414 1053, 0, 1053, 1054, 0, 1054, 0, 0, 0, 1054, 1415 1055, 0, 0, 1055, 0, 1055, 1055, 1055, 1055, 1055, 1416 1056, 0, 1056, 1057, 0, 1057, 1058, 0, 1058, 1059, 1417 0, 1059, 0, 0, 0, 1059, 1060, 0, 1060, 0, 1418 0, 0, 1060, 1061, 0, 1061, 0, 0, 0, 1061, 1419 1062, 0, 1062, 1063, 0, 1063, 0, 0, 0, 1063, 1420 1064, 0, 1064, 0, 0, 0, 1064, 1065, 0, 1065, 1421 0, 0, 0, 1065, 1066, 0, 1066, 0, 0, 0, 1422 1066, 1067, 0, 1067, 0, 0, 0, 1067, 1068, 0, 1423 1068, 0, 0, 0, 1068, 1069, 0, 1069, 0, 0, 1424 1425 0, 1069, 1070, 0, 1070, 0, 0, 0, 1070, 1071, 1426 0, 1071, 0, 0, 0, 1071, 1072, 0, 1072, 0, 1427 0, 0, 1072, 1073, 0, 1073, 0, 0, 0, 1073, 1428 1074, 0, 1074, 0, 0, 0, 1074, 1075, 0, 1075, 1429 0, 0, 0, 1075, 1076, 0, 1076, 0, 0, 0, 1430 1076, 1077, 0, 1077, 0, 0, 0, 1077, 1078, 0, 1431 1078, 0, 0, 0, 1078, 904, 904, 904, 904, 904, 1432 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1433 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1434 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1435 1436 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1437 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1438 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1439 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1440 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1441 904 1155 109, 50, 52, 143, 31, 50, 54, 52, 112, 154, 1156 31, 56, 111, 898, 152, 52, 31, 52, 154, 88, 1157 52, 108, 31, 128, 52, 128, 112, 108, 56, 143, 1158 31, 38, 152, 56, 112, 38, 38, 58, 38, 60, 1159 38, 38, 111, 38, 60, 38, 59, 111, 115, 58, 1160 58, 117, 158, 108, 38, 38, 38, 60, 59, 58, 1161 131, 130, 58, 130, 158, 114, 59, 132, 59, 117, 1162 111, 114, 115, 59, 131, 38, 131, 117, 38, 132, 1163 1164 133, 132, 133, 60, 173, 153, 60, 68, 68, 68, 1165 68, 68, 68, 69, 69, 68, 165, 114, 69, 173, 1166 60, 134, 134, 153, 134, 38, 38, 81, 81, 81, 1167 81, 81, 81, 165, 69, 69, 69, 69, 69, 69, 1168 78, 78, 135, 155, 135, 78, 146, 78, 136, 136, 1169 136, 146, 78, 83, 83, 83, 83, 83, 83, 155, 1170 897, 78, 78, 78, 78, 84, 84, 84, 84, 84, 1171 84, 156, 78, 104, 104, 104, 104, 104, 104, 105, 1172 105, 105, 105, 138, 140, 138, 140, 151, 78, 156, 1173 146, 78, 306, 894, 157, 162, 78, 78, 161, 306, 1174 1175 78, 78, 151, 160, 162, 176, 168, 105, 78, 151, 1176 169, 78, 105, 78, 78, 78, 157, 78, 86, 160, 1177 161, 164, 86, 86, 166, 176, 164, 86, 86, 168, 1178 86, 163, 86, 167, 166, 105, 170, 169, 175, 164, 1179 893, 86, 86, 86, 106, 172, 106, 106, 106, 106, 1180 106, 106, 163, 163, 167, 171, 175, 170, 174, 177, 1181 171, 178, 86, 106, 107, 86, 107, 172, 183, 107, 1182 107, 107, 107, 107, 107, 174, 182, 183, 171, 106, 1183 184, 182, 186, 178, 181, 106, 177, 222, 891, 222, 1184 192, 180, 187, 86, 100, 100, 100, 100, 100, 100, 1185 1186 186, 181, 107, 187, 188, 189, 180, 184, 185, 188, 1187 100, 100, 100, 180, 100, 100, 190, 192, 189, 185, 1188 187, 194, 732, 198, 188, 195, 191, 100, 193, 185, 1189 185, 191, 100, 100, 100, 159, 190, 100, 195, 100, 1190 159, 159, 159, 198, 159, 159, 195, 193, 159, 196, 1191 159, 732, 209, 191, 197, 159, 159, 159, 223, 159, 1192 223, 224, 196, 224, 196, 194, 286, 197, 194, 201, 1193 201, 201, 201, 201, 201, 202, 202, 201, 209, 225, 1194 202, 204, 204, 286, 213, 213, 204, 206, 206, 213, 1195 890, 883, 206, 225, 206, 225, 202, 202, 202, 202, 1196 1197 202, 202, 204, 204, 204, 204, 204, 204, 206, 206, 1198 206, 206, 206, 206, 216, 216, 216, 216, 226, 227, 1199 247, 227, 228, 228, 229, 228, 229, 230, 230, 230, 1200 226, 232, 226, 232, 233, 240, 233, 238, 238, 241, 1201 270, 241, 270, 239, 241, 239, 282, 216, 239, 239, 1202 239, 239, 239, 239, 271, 247, 271, 882, 240, 282, 1203 238, 241, 246, 241, 246, 246, 246, 246, 241, 245, 1204 245, 245, 245, 245, 245, 248, 248, 248, 248, 248, 1205 248, 239, 249, 249, 249, 249, 249, 249, 283, 284, 1206 288, 287, 248, 285, 289, 252, 287, 246, 295, 289, 1207 1208 297, 326, 245, 260, 274, 297, 283, 284, 248, 285, 1209 288, 881, 326, 295, 248, 250, 250, 250, 250, 250, 1210 250, 252, 257, 259, 259, 259, 259, 259, 259, 260, 1211 274, 250, 251, 250, 251, 250, 250, 251, 251, 251, 1212 251, 251, 251, 298, 292, 257, 880, 257, 250, 294, 1213 290, 257, 298, 250, 293, 250, 259, 257, 250, 291, 1214 250, 264, 264, 264, 264, 264, 264, 292, 296, 257, 1215 290, 300, 293, 257, 291, 294, 299, 257, 301, 303, 1216 291, 291, 304, 305, 296, 296, 307, 304, 309, 299, 1217 308, 879, 305, 313, 264, 310, 301, 303, 300, 311, 1218 1219 310, 312, 314, 318, 311, 316, 307, 312, 308, 309, 1220 309, 314, 313, 315, 317, 319, 322, 320, 318, 315, 1221 319, 316, 320, 317, 321, 323, 324, 327, 328, 321, 1222 329, 328, 330, 331, 332, 322, 333, 334, 335, 324, 1223 336, 337, 327, 323, 338, 330, 321, 335, 340, 329, 1224 339, 342, 344, 345, 334, 331, 333, 332, 343, 346, 1225 349, 340, 336, 350, 337, 347, 338, 343, 339, 348, 1226 342, 345, 346, 347, 348, 349, 875, 351, 351, 352, 1227 413, 350, 351, 410, 351, 352, 359, 359, 359, 359, 1228 360, 360, 360, 360, 410, 369, 344, 369, 370, 413, 1229 1230 370, 377, 377, 377, 377, 377, 377, 379, 389, 379, 1231 417, 394, 379, 379, 379, 379, 379, 379, 389, 359, 1232 378, 378, 378, 378, 378, 378, 381, 381, 381, 381, 1233 381, 381, 417, 411, 389, 394, 378, 412, 378, 415, 1234 378, 378, 384, 384, 384, 384, 384, 384, 392, 411, 1235 415, 390, 412, 378, 392, 396, 578, 421, 378, 381, 1236 378, 390, 420, 378, 578, 378, 382, 382, 382, 382, 1237 382, 382, 391, 396, 424, 384, 414, 390, 420, 421, 1238 392, 396, 382, 382, 382, 414, 382, 382, 385, 385, 1239 385, 385, 385, 385, 428, 391, 424, 391, 871, 382, 1240 1241 428, 391, 868, 395, 382, 382, 382, 391, 393, 382, 1242 393, 382, 419, 393, 393, 393, 393, 393, 393, 391, 1243 416, 385, 418, 391, 422, 419, 395, 391, 395, 416, 1244 425, 418, 395, 430, 426, 423, 429, 422, 395, 426, 1245 427, 431, 434, 439, 430, 438, 393, 436, 425, 432, 1246 395, 423, 423, 441, 395, 427, 434, 429, 395, 436, 1247 431, 440, 427, 442, 432, 439, 438, 443, 444, 442, 1248 446, 448, 449, 450, 440, 451, 441, 444, 452, 453, 1249 454, 456, 443, 458, 461, 446, 459, 460, 450, 454, 1250 462, 448, 463, 452, 449, 464, 460, 451, 456, 453, 1251 1252 465, 466, 467, 470, 468, 461, 458, 469, 459, 465, 1253 462, 468, 463, 471, 469, 467, 472, 464, 473, 466, 1254 474, 475, 477, 480, 478, 472, 473, 479, 470, 480, 1255 479, 507, 475, 478, 508, 471, 473, 474, 489, 489, 1256 489, 489, 528, 531, 477, 500, 500, 500, 500, 500, 1257 500, 502, 502, 502, 502, 502, 502, 507, 531, 528, 1258 508, 500, 529, 500, 533, 500, 500, 503, 503, 503, 1259 503, 503, 503, 867, 866, 529, 504, 533, 500, 532, 1260 542, 506, 534, 500, 502, 500, 504, 505, 500, 505, 1261 500, 506, 505, 505, 505, 505, 505, 505, 536, 532, 1262 1263 503, 542, 504, 536, 534, 535, 537, 506, 510, 510, 1264 510, 510, 510, 510, 512, 865, 512, 537, 535, 512, 1265 512, 512, 512, 512, 512, 505, 511, 511, 511, 511, 1266 511, 511, 538, 539, 540, 538, 541, 546, 544, 543, 1267 545, 549, 511, 544, 511, 548, 511, 511, 543, 540, 1268 546, 545, 551, 539, 548, 541, 550, 552, 555, 511, 1269 557, 551, 552, 549, 511, 558, 511, 555, 554, 511, 1270 559, 511, 560, 550, 554, 562, 563, 557, 564, 565, 1271 558, 560, 567, 568, 562, 559, 570, 571, 568, 574, 1272 564, 575, 576, 563, 565, 570, 571, 567, 579, 580, 1273 1274 581, 582, 589, 586, 575, 587, 580, 590, 579, 576, 1275 583, 574, 586, 582, 592, 587, 583, 864, 863, 589, 1276 590, 638, 581, 610, 610, 610, 610, 610, 610, 611, 1277 611, 611, 611, 611, 611, 613, 592, 613, 638, 637, 1278 613, 613, 613, 613, 613, 613, 616, 616, 616, 616, 1279 616, 616, 637, 617, 617, 642, 610, 612, 612, 612, 1280 612, 612, 612, 618, 634, 619, 862, 619, 639, 634, 1281 619, 636, 642, 612, 635, 612, 617, 612, 612, 616, 1282 636, 635, 634, 645, 646, 640, 618, 619, 641, 619, 1283 612, 639, 640, 644, 619, 612, 641, 612, 643, 646, 1284 1285 612, 643, 612, 647, 648, 645, 644, 649, 650, 651, 1286 652, 650, 653, 654, 655, 657, 656, 660, 667, 658, 1287 661, 648, 662, 655, 666, 647, 651, 653, 658, 649, 1288 669, 662, 672, 654, 656, 684, 673, 657, 652, 680, 1289 660, 672, 661, 673, 666, 667, 681, 669, 680, 683, 1290 684, 716, 719, 722, 723, 861, 681, 723, 683, 703, 1291 703, 703, 703, 703, 703, 707, 707, 707, 707, 707, 1292 707, 717, 716, 722, 856, 703, 720, 703, 719, 703, 1293 703, 717, 721, 720, 727, 724, 729, 721, 724, 725, 1294 727, 730, 703, 728, 730, 729, 731, 703, 707, 703, 1295 1296 733, 734, 703, 733, 703, 735, 728, 725, 736, 737, 1297 734, 736, 738, 739, 740, 741, 742, 731, 748, 745, 1298 738, 749, 737, 739, 750, 742, 752, 740, 773, 774, 1299 753, 735, 771, 773, 752, 776, 741, 745, 748, 753, 1300 772, 778, 745, 749, 774, 750, 760, 760, 760, 760, 1301 760, 760, 771, 775, 777, 780, 779, 772, 776, 779, 1302 781, 783, 785, 775, 783, 785, 786, 778, 780, 787, 1303 789, 777, 787, 786, 788, 790, 792, 788, 796, 760, 1304 811, 813, 814, 815, 816, 789, 815, 817, 781, 818, 1305 817, 820, 818, 821, 822, 824, 855, 822, 790, 792, 1306 1307 814, 796, 813, 827, 828, 825, 816, 811, 825, 820, 1308 826, 829, 827, 826, 830, 845, 846, 824, 847, 821, 1309 828, 847, 829, 846, 848, 849, 850, 851, 854, 850, 1310 830, 854, 857, 848, 884, 857, 845, 858, 859, 860, 1311 870, 853, 869, 849, 851, 870, 858, 873, 860, 849, 1312 859, 869, 872, 874, 884, 872, 876, 873, 874, 876, 1313 877, 878, 885, 877, 878, 886, 887, 888, 886, 889, 1314 888, 892, 889, 895, 896, 899, 887, 885, 900, 901, 1315 903, 902, 904, 852, 899, 905, 844, 843, 842, 896, 1316 841, 900, 840, 892, 895, 905, 839, 838, 903, 837, 1317 1318 836, 901, 902, 835, 904, 909, 909, 909, 909, 909, 1319 909, 909, 909, 909, 909, 909, 909, 909, 910, 910, 1320 910, 910, 910, 910, 910, 910, 910, 910, 910, 910, 1321 910, 911, 911, 911, 911, 911, 911, 911, 911, 911, 1322 911, 911, 911, 911, 912, 834, 833, 912, 832, 912, 1323 912, 912, 912, 912, 913, 831, 823, 819, 913, 913, 1324 913, 913, 913, 913, 914, 914, 914, 914, 914, 914, 1325 914, 914, 914, 914, 914, 914, 914, 915, 812, 810, 1326 915, 809, 915, 915, 915, 915, 915, 916, 808, 916, 1327 916, 807, 916, 916, 916, 916, 916, 916, 806, 916, 1328 1329 917, 805, 804, 917, 917, 917, 917, 917, 917, 917, 1330 917, 803, 917, 918, 918, 918, 918, 918, 918, 918, 1331 918, 918, 918, 918, 918, 918, 919, 919, 802, 919, 1332 801, 800, 799, 919, 920, 798, 797, 920, 795, 920, 1333 920, 920, 920, 920, 921, 794, 921, 793, 791, 784, 1334 921, 922, 782, 922, 770, 769, 768, 922, 923, 767, 1335 923, 766, 765, 764, 923, 924, 763, 924, 762, 759, 1336 758, 924, 925, 757, 925, 751, 747, 746, 925, 926, 1337 744, 926, 743, 726, 718, 926, 927, 715, 927, 710, 1338 708, 704, 927, 928, 694, 928, 690, 688, 686, 928, 1339 1340 929, 685, 929, 682, 679, 678, 929, 930, 677, 930, 1341 931, 931, 676, 931, 931, 931, 675, 931, 932, 932, 1342 674, 932, 933, 671, 670, 933, 668, 933, 933, 933, 1343 933, 933, 934, 665, 934, 664, 663, 659, 934, 935, 1344 632, 935, 628, 626, 624, 935, 936, 622, 936, 620, 1345 614, 608, 936, 937, 606, 937, 938, 604, 938, 602, 1346 600, 598, 938, 939, 596, 939, 940, 594, 593, 940, 1347 591, 940, 940, 940, 940, 940, 941, 941, 941, 941, 1348 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 1349 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 1350 1351 942, 942, 943, 588, 943, 585, 584, 577, 943, 944, 1352 573, 944, 572, 569, 566, 944, 945, 561, 945, 556, 1353 553, 530, 945, 946, 526, 946, 947, 524, 947, 522, 1354 520, 518, 947, 948, 516, 948, 949, 515, 949, 514, 1355 513, 501, 949, 950, 498, 950, 951, 496, 951, 495, 1356 494, 492, 951, 952, 490, 952, 953, 487, 953, 485, 1357 483, 481, 953, 954, 476, 954, 955, 457, 955, 455, 1358 447, 445, 955, 956, 437, 956, 957, 435, 957, 433, 1359 407, 405, 957, 958, 403, 958, 959, 401, 959, 400, 1360 959, 399, 959, 960, 386, 960, 383, 960, 374, 960, 1361 1362 961, 961, 372, 961, 961, 961, 371, 961, 962, 367, 1363 962, 365, 363, 361, 962, 963, 357, 963, 355, 354, 1364 353, 963, 964, 341, 964, 325, 302, 281, 964, 965, 1365 279, 965, 966, 277, 966, 276, 275, 273, 966, 967, 1366 272, 967, 968, 267, 968, 263, 262, 258, 968, 969, 1367 255, 969, 970, 254, 970, 243, 242, 235, 970, 971, 1368 234, 971, 972, 231, 221, 972, 219, 972, 972, 972, 1369 972, 972, 973, 973, 973, 973, 973, 973, 973, 973, 1370 973, 973, 973, 973, 973, 974, 218, 974, 217, 211, 1371 210, 974, 975, 208, 975, 976, 203, 976, 179, 150, 1372 1373 148, 976, 977, 147, 977, 978, 141, 978, 139, 137, 1374 129, 978, 979, 126, 979, 980, 125, 980, 121, 102, 1375 99, 980, 981, 96, 981, 982, 94, 982, 87, 73, 1376 71, 982, 983, 67, 983, 984, 36, 984, 33, 18, 1377 11, 984, 985, 4, 985, 986, 3, 986, 0, 0, 1378 0, 986, 987, 0, 987, 0, 0, 0, 987, 988, 1379 0, 988, 989, 0, 989, 0, 0, 0, 989, 990, 1380 0, 990, 991, 0, 991, 0, 991, 0, 991, 992, 1381 0, 992, 0, 0, 0, 992, 993, 0, 993, 0, 1382 0, 0, 993, 994, 0, 994, 995, 0, 995, 0, 1383 1384 0, 0, 995, 996, 0, 996, 997, 0, 997, 0, 1385 0, 0, 997, 998, 0, 998, 999, 0, 999, 0, 1386 0, 0, 999, 1000, 0, 1000, 1001, 0, 1001, 0, 1387 0, 0, 1001, 1002, 0, 1002, 1003, 0, 1003, 0, 1388 0, 0, 1003, 1004, 0, 1004, 1005, 0, 0, 1005, 1389 0, 1005, 1005, 1005, 1005, 1005, 1006, 1006, 1006, 1006, 1390 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1007, 1391 0, 1007, 0, 0, 0, 1007, 1008, 0, 1008, 1009, 1392 0, 1009, 0, 0, 0, 1009, 1010, 0, 1010, 1011, 1393 0, 1011, 0, 0, 0, 1011, 1012, 0, 1012, 1013, 1394 1395 0, 1013, 0, 0, 0, 1013, 1014, 0, 1014, 1015, 1396 0, 1015, 0, 0, 0, 1015, 1016, 0, 1016, 1017, 1397 0, 1017, 0, 0, 0, 1017, 1018, 0, 1018, 1019, 1398 0, 1019, 0, 0, 0, 1019, 1020, 0, 1020, 1021, 1399 0, 1021, 0, 0, 0, 1021, 1022, 0, 1022, 1023, 1400 0, 1023, 0, 0, 0, 1023, 1024, 0, 1024, 0, 1401 0, 0, 1024, 1025, 0, 1025, 1026, 0, 1026, 0, 1402 0, 0, 1026, 1027, 0, 1027, 1028, 0, 1028, 0, 1403 0, 0, 1028, 1029, 0, 1029, 1030, 0, 1030, 0, 1404 0, 0, 1030, 1031, 0, 1031, 1032, 0, 1032, 1033, 1405 1406 0, 1033, 1034, 0, 0, 1034, 0, 1034, 1034, 1034, 1407 1034, 1034, 1035, 0, 1035, 1036, 1036, 1036, 1036, 1036, 1408 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1037, 0, 1409 1037, 0, 0, 0, 1037, 1038, 0, 1038, 1039, 0, 1410 1039, 0, 0, 0, 1039, 1040, 0, 1040, 1041, 0, 1411 1041, 1042, 0, 1042, 1043, 0, 0, 1043, 0, 1043, 1412 1043, 1043, 1043, 1043, 1044, 0, 1044, 1045, 0, 1045, 1413 1046, 0, 1046, 1047, 0, 1047, 1048, 0, 1048, 1049, 1414 0, 1049, 1050, 0, 1050, 1051, 0, 1051, 0, 0, 1415 0, 1051, 1052, 0, 1052, 1053, 0, 1053, 0, 0, 1416 1417 0, 1053, 1054, 0, 1054, 1055, 0, 1055, 1056, 0, 1418 1056, 1057, 0, 1057, 1058, 0, 1058, 0, 0, 0, 1419 1058, 1059, 0, 0, 1059, 0, 1059, 1059, 1059, 1059, 1420 1059, 1060, 0, 1060, 1061, 0, 1061, 1062, 0, 1062, 1421 1063, 0, 1063, 0, 0, 0, 1063, 1064, 0, 1064, 1422 0, 0, 0, 1064, 1065, 0, 1065, 0, 0, 0, 1423 1065, 1066, 0, 1066, 1067, 0, 1067, 0, 0, 0, 1424 1067, 1068, 0, 1068, 0, 0, 0, 1068, 1069, 0, 1425 1069, 0, 0, 0, 1069, 1070, 0, 1070, 0, 0, 1426 0, 1070, 1071, 0, 1071, 0, 0, 0, 1071, 1072, 1427 1428 0, 1072, 0, 0, 0, 1072, 1073, 0, 1073, 0, 1429 0, 0, 1073, 1074, 0, 1074, 0, 0, 0, 1074, 1430 1075, 0, 1075, 0, 0, 0, 1075, 1076, 0, 1076, 1431 0, 0, 0, 1076, 1077, 0, 1077, 0, 0, 0, 1432 1077, 1078, 0, 1078, 0, 0, 0, 1078, 1079, 0, 1433 1079, 0, 0, 0, 1079, 1080, 0, 1080, 0, 0, 1434 0, 1080, 1081, 0, 1081, 0, 0, 0, 1081, 1082, 1435 0, 1082, 0, 0, 0, 1082, 908, 908, 908, 908, 1436 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1437 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1438 1439 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1440 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1441 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1442 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1443 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1444 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1445 908, 908 1442 1446 } ; 1443 1447 1444 1448 /* Table of booleans, true if rule could match eol. */ 1445 static yyconst flex_int32_t yy_rule_can_match_eol[18 6] =1449 static yyconst flex_int32_t yy_rule_can_match_eol[187] = 1446 1450 { 0, 1447 1451 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 1451 1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1452 1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1453 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1457 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1454 1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1455 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456 0, 0, 0, 0, 0, 0, };1460 0, 0, 0, 0, 0, 0, 0, }; 1457 1461 1458 1462 static yy_state_type yy_last_accepting_state; … … 1476 1480 * The contents of this file are covered under the licence agreement in the 1477 1481 * file "LICENCE" distributed with Cforall. 1478 * 1479 * lex.l -- 1480 * 1482 * 1483 * lex.l -- 1484 * 1481 1485 * Author : Peter A. Buhr 1482 1486 * Created On : Sat Sep 22 08:58:10 2001 … … 1544 1548 1545 1549 1546 #line 15 47"Parser/lex.cc"1550 #line 1551 "Parser/lex.cc" 1547 1551 1548 1552 #define INITIAL 0 … … 1739 1743 1740 1744 /* line directives */ 1741 #line 174 2"Parser/lex.cc"1745 #line 1746 "Parser/lex.cc" 1742 1746 1743 1747 if ( !(yy_init) ) … … 1793 1797 { 1794 1798 yy_current_state = (int) yy_def[yy_current_state]; 1795 if ( yy_current_state >= 90 5)1799 if ( yy_current_state >= 909 ) 1796 1800 yy_c = yy_meta[(unsigned int) yy_c]; 1797 1801 } … … 1799 1803 ++yy_cp; 1800 1804 } 1801 while ( yy_base[yy_current_state] != 28 66);1805 while ( yy_base[yy_current_state] != 2877 ); 1802 1806 1803 1807 yy_find_action: … … 2320 2324 YY_RULE_SETUP 2321 2325 #line 260 "lex.ll" 2326 { KEYWORD_RETURN(TTYPE); } // CFA 2327 YY_BREAK 2328 case 93: 2329 YY_RULE_SETUP 2330 #line 261 "lex.ll" 2322 2331 { KEYWORD_RETURN(TYPEDEF); } 2323 YY_BREAK2324 case 93:2325 YY_RULE_SETUP2326 #line 261 "lex.ll"2327 { KEYWORD_RETURN(TYPEOF); } // GCC2328 2332 YY_BREAK 2329 2333 case 94: … … 2340 2344 YY_RULE_SETUP 2341 2345 #line 264 "lex.ll" 2346 { KEYWORD_RETURN(TYPEOF); } // GCC 2347 YY_BREAK 2348 case 97: 2349 YY_RULE_SETUP 2350 #line 265 "lex.ll" 2342 2351 { KEYWORD_RETURN(UNION); } 2343 2352 YY_BREAK 2344 case 9 7:2345 YY_RULE_SETUP 2346 #line 26 5"lex.ll"2353 case 98: 2354 YY_RULE_SETUP 2355 #line 266 "lex.ll" 2347 2356 { KEYWORD_RETURN(UNSIGNED); } 2348 2357 YY_BREAK 2349 case 9 8:2350 YY_RULE_SETUP 2351 #line 26 6"lex.ll"2358 case 99: 2359 YY_RULE_SETUP 2360 #line 267 "lex.ll" 2352 2361 { KEYWORD_RETURN(VALIST); } // GCC 2353 2362 YY_BREAK 2354 case 99:2355 YY_RULE_SETUP 2356 #line 26 7"lex.ll"2363 case 100: 2364 YY_RULE_SETUP 2365 #line 268 "lex.ll" 2357 2366 { KEYWORD_RETURN(VOID); } 2358 2367 YY_BREAK 2359 case 10 0:2360 YY_RULE_SETUP 2361 #line 26 8"lex.ll"2368 case 101: 2369 YY_RULE_SETUP 2370 #line 269 "lex.ll" 2362 2371 { KEYWORD_RETURN(VOLATILE); } 2363 YY_BREAK2364 case 101:2365 YY_RULE_SETUP2366 #line 269 "lex.ll"2367 { KEYWORD_RETURN(VOLATILE); } // GCC2368 2372 YY_BREAK 2369 2373 case 102: … … 2375 2379 YY_RULE_SETUP 2376 2380 #line 271 "lex.ll" 2381 { KEYWORD_RETURN(VOLATILE); } // GCC 2382 YY_BREAK 2383 case 104: 2384 YY_RULE_SETUP 2385 #line 272 "lex.ll" 2377 2386 { KEYWORD_RETURN(WHILE); } 2378 2387 YY_BREAK 2379 case 10 4:2380 YY_RULE_SETUP 2381 #line 27 2"lex.ll"2388 case 105: 2389 YY_RULE_SETUP 2390 #line 273 "lex.ll" 2382 2391 { NUMERIC_RETURN(ZERO_T); } // CFA 2383 2392 YY_BREAK 2384 2393 /* identifier */ 2385 case 10 5:2386 YY_RULE_SETUP 2387 #line 27 5"lex.ll"2394 case 106: 2395 YY_RULE_SETUP 2396 #line 276 "lex.ll" 2388 2397 { IDENTIFIER_RETURN(); } 2389 2398 YY_BREAK 2390 case 10 6:2391 YY_RULE_SETUP 2392 #line 27 6"lex.ll"2399 case 107: 2400 YY_RULE_SETUP 2401 #line 277 "lex.ll" 2393 2402 { ATTRIBUTE_RETURN(); } 2394 2403 YY_BREAK 2395 case 10 7:2396 YY_RULE_SETUP 2397 #line 27 7"lex.ll"2404 case 108: 2405 YY_RULE_SETUP 2406 #line 278 "lex.ll" 2398 2407 { BEGIN BKQUOTE; } 2399 2408 YY_BREAK 2400 case 10 8:2401 YY_RULE_SETUP 2402 #line 27 8"lex.ll"2409 case 109: 2410 YY_RULE_SETUP 2411 #line 279 "lex.ll" 2403 2412 { IDENTIFIER_RETURN(); } 2404 2413 YY_BREAK 2405 case 1 09:2406 YY_RULE_SETUP 2407 #line 2 79"lex.ll"2414 case 110: 2415 YY_RULE_SETUP 2416 #line 280 "lex.ll" 2408 2417 { BEGIN 0; } 2409 2418 YY_BREAK 2410 2419 /* numeric constants */ 2411 case 11 0:2412 YY_RULE_SETUP 2413 #line 28 2"lex.ll"2420 case 111: 2421 YY_RULE_SETUP 2422 #line 283 "lex.ll" 2414 2423 { NUMERIC_RETURN(ZERO); } // CFA 2415 2424 YY_BREAK 2416 case 11 1:2417 YY_RULE_SETUP 2418 #line 28 3"lex.ll"2425 case 112: 2426 YY_RULE_SETUP 2427 #line 284 "lex.ll" 2419 2428 { NUMERIC_RETURN(ONE); } // CFA 2420 YY_BREAK2421 case 112:2422 YY_RULE_SETUP2423 #line 284 "lex.ll"2424 { NUMERIC_RETURN(INTEGERconstant); }2425 2429 YY_BREAK 2426 2430 case 113: … … 2437 2441 YY_RULE_SETUP 2438 2442 #line 287 "lex.ll" 2443 { NUMERIC_RETURN(INTEGERconstant); } 2444 YY_BREAK 2445 case 116: 2446 YY_RULE_SETUP 2447 #line 288 "lex.ll" 2439 2448 { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant 2440 2449 YY_BREAK 2441 case 11 6:2442 YY_RULE_SETUP 2443 #line 28 8"lex.ll"2450 case 117: 2451 YY_RULE_SETUP 2452 #line 289 "lex.ll" 2444 2453 { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant 2445 YY_BREAK2446 case 117:2447 YY_RULE_SETUP2448 #line 289 "lex.ll"2449 { NUMERIC_RETURN(FLOATINGconstant); }2450 2454 YY_BREAK 2451 2455 case 118: … … 2454 2458 { NUMERIC_RETURN(FLOATINGconstant); } 2455 2459 YY_BREAK 2460 case 119: 2461 YY_RULE_SETUP 2462 #line 291 "lex.ll" 2463 { NUMERIC_RETURN(FLOATINGconstant); } 2464 YY_BREAK 2456 2465 /* character constant, allows empty value */ 2457 case 1 19:2458 YY_RULE_SETUP 2459 #line 29 3"lex.ll"2466 case 120: 2467 YY_RULE_SETUP 2468 #line 294 "lex.ll" 2460 2469 { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2461 2470 YY_BREAK 2462 case 12 0:2463 YY_RULE_SETUP 2464 #line 29 4"lex.ll"2471 case 121: 2472 YY_RULE_SETUP 2473 #line 295 "lex.ll" 2465 2474 { strtext->append( yytext, yyleng ); } 2466 2475 YY_BREAK 2467 case 12 1:2468 /* rule 12 1can match eol */2469 YY_RULE_SETUP 2470 #line 29 5"lex.ll"2476 case 122: 2477 /* rule 122 can match eol */ 2478 YY_RULE_SETUP 2479 #line 296 "lex.ll" 2471 2480 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } 2472 2481 YY_BREAK 2473 2482 /* ' stop highlighting */ 2474 2483 /* string constant */ 2475 case 12 2:2476 YY_RULE_SETUP 2477 #line 299"lex.ll"2484 case 123: 2485 YY_RULE_SETUP 2486 #line 300 "lex.ll" 2478 2487 { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2479 2488 YY_BREAK 2480 case 12 3:2481 YY_RULE_SETUP 2482 #line 30 0"lex.ll"2489 case 124: 2490 YY_RULE_SETUP 2491 #line 301 "lex.ll" 2483 2492 { strtext->append( yytext, yyleng ); } 2484 2493 YY_BREAK 2485 case 12 4:2486 /* rule 12 4can match eol */2487 YY_RULE_SETUP 2488 #line 30 1"lex.ll"2494 case 125: 2495 /* rule 125 can match eol */ 2496 YY_RULE_SETUP 2497 #line 302 "lex.ll" 2489 2498 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } 2490 2499 YY_BREAK 2491 2500 /* " stop highlighting */ 2492 2501 /* common character/string constant */ 2493 case 12 5:2494 YY_RULE_SETUP 2495 #line 30 5"lex.ll"2502 case 126: 2503 YY_RULE_SETUP 2504 #line 306 "lex.ll" 2496 2505 { rm_underscore(); strtext->append( yytext, yyleng ); } 2497 2506 YY_BREAK 2498 case 12 6:2499 /* rule 12 6can match eol */2500 YY_RULE_SETUP 2501 #line 30 6"lex.ll"2507 case 127: 2508 /* rule 127 can match eol */ 2509 YY_RULE_SETUP 2510 #line 307 "lex.ll" 2502 2511 {} // continuation (ALSO HANDLED BY CPP) 2503 2512 YY_BREAK 2504 case 12 7:2505 YY_RULE_SETUP 2506 #line 30 7"lex.ll"2513 case 128: 2514 YY_RULE_SETUP 2515 #line 308 "lex.ll" 2507 2516 { strtext->append( yytext, yyleng ); } // unknown escape character 2508 2517 YY_BREAK 2509 2518 /* punctuation */ 2510 case 128:2511 YY_RULE_SETUP2512 #line 310 "lex.ll"2513 { ASCIIOP_RETURN(); }2514 YY_BREAK2515 2519 case 129: 2516 2520 YY_RULE_SETUP … … 2541 2545 YY_RULE_SETUP 2542 2546 #line 316 "lex.ll" 2547 { ASCIIOP_RETURN(); } 2548 YY_BREAK 2549 case 135: 2550 YY_RULE_SETUP 2551 #line 317 "lex.ll" 2543 2552 { ASCIIOP_RETURN(); } // also operator 2544 YY_BREAK2545 case 135:2546 YY_RULE_SETUP2547 #line 317 "lex.ll"2548 { ASCIIOP_RETURN(); }2549 2553 YY_BREAK 2550 2554 case 136: … … 2556 2560 YY_RULE_SETUP 2557 2561 #line 319 "lex.ll" 2562 { ASCIIOP_RETURN(); } 2563 YY_BREAK 2564 case 138: 2565 YY_RULE_SETUP 2566 #line 320 "lex.ll" 2558 2567 { ASCIIOP_RETURN(); } // also operator 2559 2568 YY_BREAK 2560 case 13 8:2561 YY_RULE_SETUP 2562 #line 32 0"lex.ll"2569 case 139: 2570 YY_RULE_SETUP 2571 #line 321 "lex.ll" 2563 2572 { NAMEDOP_RETURN(ELLIPSIS); } 2564 2573 YY_BREAK 2565 2574 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */ 2566 case 1 39:2567 YY_RULE_SETUP 2568 #line 32 3"lex.ll"2575 case 140: 2576 YY_RULE_SETUP 2577 #line 324 "lex.ll" 2569 2578 { RETURN_VAL('['); } 2570 2579 YY_BREAK 2571 case 14 0:2572 YY_RULE_SETUP 2573 #line 32 4"lex.ll"2580 case 141: 2581 YY_RULE_SETUP 2582 #line 325 "lex.ll" 2574 2583 { RETURN_VAL(']'); } 2575 2584 YY_BREAK 2576 case 14 1:2577 YY_RULE_SETUP 2578 #line 32 5"lex.ll"2585 case 142: 2586 YY_RULE_SETUP 2587 #line 326 "lex.ll" 2579 2588 { RETURN_VAL('{'); } 2580 2589 YY_BREAK 2581 case 14 2:2582 YY_RULE_SETUP 2583 #line 32 6"lex.ll"2590 case 143: 2591 YY_RULE_SETUP 2592 #line 327 "lex.ll" 2584 2593 { RETURN_VAL('}'); } 2585 2594 YY_BREAK 2586 2595 /* operators */ 2587 case 143:2588 YY_RULE_SETUP2589 #line 329 "lex.ll"2590 { ASCIIOP_RETURN(); }2591 YY_BREAK2592 2596 case 144: 2593 2597 YY_RULE_SETUP … … 2657 2661 case 157: 2658 2662 YY_RULE_SETUP 2659 #line 344 "lex.ll" 2663 #line 343 "lex.ll" 2664 { ASCIIOP_RETURN(); } 2665 YY_BREAK 2666 case 158: 2667 YY_RULE_SETUP 2668 #line 345 "lex.ll" 2660 2669 { NAMEDOP_RETURN(ICR); } 2661 2670 YY_BREAK 2662 case 15 8:2663 YY_RULE_SETUP 2664 #line 34 5"lex.ll"2671 case 159: 2672 YY_RULE_SETUP 2673 #line 346 "lex.ll" 2665 2674 { NAMEDOP_RETURN(DECR); } 2666 2675 YY_BREAK 2667 case 1 59:2668 YY_RULE_SETUP 2669 #line 34 6"lex.ll"2676 case 160: 2677 YY_RULE_SETUP 2678 #line 347 "lex.ll" 2670 2679 { NAMEDOP_RETURN(EQ); } 2671 2680 YY_BREAK 2672 case 16 0:2673 YY_RULE_SETUP 2674 #line 34 7"lex.ll"2681 case 161: 2682 YY_RULE_SETUP 2683 #line 348 "lex.ll" 2675 2684 { NAMEDOP_RETURN(NE); } 2676 2685 YY_BREAK 2677 case 16 1:2678 YY_RULE_SETUP 2679 #line 34 8"lex.ll"2686 case 162: 2687 YY_RULE_SETUP 2688 #line 349 "lex.ll" 2680 2689 { NAMEDOP_RETURN(LS); } 2681 2690 YY_BREAK 2682 case 16 2:2683 YY_RULE_SETUP 2684 #line 3 49"lex.ll"2691 case 163: 2692 YY_RULE_SETUP 2693 #line 350 "lex.ll" 2685 2694 { NAMEDOP_RETURN(RS); } 2686 2695 YY_BREAK 2687 case 16 3:2688 YY_RULE_SETUP 2689 #line 35 0"lex.ll"2696 case 164: 2697 YY_RULE_SETUP 2698 #line 351 "lex.ll" 2690 2699 { NAMEDOP_RETURN(LE); } 2691 2700 YY_BREAK 2692 case 16 4:2693 YY_RULE_SETUP 2694 #line 35 1"lex.ll"2701 case 165: 2702 YY_RULE_SETUP 2703 #line 352 "lex.ll" 2695 2704 { NAMEDOP_RETURN(GE); } 2696 2705 YY_BREAK 2697 case 16 5:2698 YY_RULE_SETUP 2699 #line 35 2"lex.ll"2706 case 166: 2707 YY_RULE_SETUP 2708 #line 353 "lex.ll" 2700 2709 { NAMEDOP_RETURN(ANDAND); } 2701 2710 YY_BREAK 2702 case 16 6:2703 YY_RULE_SETUP 2704 #line 35 3"lex.ll"2711 case 167: 2712 YY_RULE_SETUP 2713 #line 354 "lex.ll" 2705 2714 { NAMEDOP_RETURN(OROR); } 2706 2715 YY_BREAK 2707 case 16 7:2708 YY_RULE_SETUP 2709 #line 35 4"lex.ll"2716 case 168: 2717 YY_RULE_SETUP 2718 #line 355 "lex.ll" 2710 2719 { NAMEDOP_RETURN(ARROW); } 2711 2720 YY_BREAK 2712 case 16 8:2713 YY_RULE_SETUP 2714 #line 35 5"lex.ll"2721 case 169: 2722 YY_RULE_SETUP 2723 #line 356 "lex.ll" 2715 2724 { NAMEDOP_RETURN(PLUSassign); } 2716 2725 YY_BREAK 2717 case 1 69:2718 YY_RULE_SETUP 2719 #line 35 6"lex.ll"2726 case 170: 2727 YY_RULE_SETUP 2728 #line 357 "lex.ll" 2720 2729 { NAMEDOP_RETURN(MINUSassign); } 2721 2730 YY_BREAK 2722 case 17 0:2723 YY_RULE_SETUP 2724 #line 35 7"lex.ll"2731 case 171: 2732 YY_RULE_SETUP 2733 #line 358 "lex.ll" 2725 2734 { NAMEDOP_RETURN(MULTassign); } 2726 2735 YY_BREAK 2727 case 17 1:2728 YY_RULE_SETUP 2729 #line 35 8"lex.ll"2736 case 172: 2737 YY_RULE_SETUP 2738 #line 359 "lex.ll" 2730 2739 { NAMEDOP_RETURN(DIVassign); } 2731 2740 YY_BREAK 2732 case 17 2:2733 YY_RULE_SETUP 2734 #line 3 59"lex.ll"2741 case 173: 2742 YY_RULE_SETUP 2743 #line 360 "lex.ll" 2735 2744 { NAMEDOP_RETURN(MODassign); } 2736 2745 YY_BREAK 2737 case 17 3:2738 YY_RULE_SETUP 2739 #line 36 0"lex.ll"2746 case 174: 2747 YY_RULE_SETUP 2748 #line 361 "lex.ll" 2740 2749 { NAMEDOP_RETURN(ANDassign); } 2741 2750 YY_BREAK 2742 case 17 4:2743 YY_RULE_SETUP 2744 #line 36 1"lex.ll"2751 case 175: 2752 YY_RULE_SETUP 2753 #line 362 "lex.ll" 2745 2754 { NAMEDOP_RETURN(ORassign); } 2746 2755 YY_BREAK 2747 case 17 5:2748 YY_RULE_SETUP 2749 #line 36 2"lex.ll"2756 case 176: 2757 YY_RULE_SETUP 2758 #line 363 "lex.ll" 2750 2759 { NAMEDOP_RETURN(ERassign); } 2751 2760 YY_BREAK 2752 case 17 6:2753 YY_RULE_SETUP 2754 #line 36 3"lex.ll"2761 case 177: 2762 YY_RULE_SETUP 2763 #line 364 "lex.ll" 2755 2764 { NAMEDOP_RETURN(LSassign); } 2756 2765 YY_BREAK 2757 case 17 7:2758 YY_RULE_SETUP 2759 #line 36 4"lex.ll"2766 case 178: 2767 YY_RULE_SETUP 2768 #line 365 "lex.ll" 2760 2769 { NAMEDOP_RETURN(RSassign); } 2761 2770 YY_BREAK 2762 case 17 8:2763 YY_RULE_SETUP 2764 #line 36 6"lex.ll"2771 case 179: 2772 YY_RULE_SETUP 2773 #line 367 "lex.ll" 2765 2774 { NAMEDOP_RETURN(ATassign); } // CFA 2766 2775 YY_BREAK 2767 2776 /* CFA, operator identifier */ 2768 case 1 79:2769 YY_RULE_SETUP 2770 #line 3 69"lex.ll"2777 case 180: 2778 YY_RULE_SETUP 2779 #line 370 "lex.ll" 2771 2780 { IDENTIFIER_RETURN(); } // unary 2772 YY_BREAK2773 case 180:2774 YY_RULE_SETUP2775 #line 370 "lex.ll"2776 { IDENTIFIER_RETURN(); }2777 2781 YY_BREAK 2778 2782 case 181: … … 2784 2788 YY_RULE_SETUP 2785 2789 #line 372 "lex.ll" 2790 { IDENTIFIER_RETURN(); } 2791 YY_BREAK 2792 case 183: 2793 YY_RULE_SETUP 2794 #line 373 "lex.ll" 2786 2795 { IDENTIFIER_RETURN(); } // binary 2787 2796 YY_BREAK … … 2812 2821 an argument list. 2813 2822 */ 2814 case 18 3:2815 YY_RULE_SETUP 2816 #line 399"lex.ll"2823 case 184: 2824 YY_RULE_SETUP 2825 #line 400 "lex.ll" 2817 2826 { 2818 2827 // 1 or 2 character unary operator ? … … 2827 2836 YY_BREAK 2828 2837 /* unknown characters */ 2829 case 18 4:2830 YY_RULE_SETUP 2831 #line 41 1"lex.ll"2838 case 185: 2839 YY_RULE_SETUP 2840 #line 412 "lex.ll" 2832 2841 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2833 2842 YY_BREAK 2834 case 18 5:2835 YY_RULE_SETUP 2836 #line 41 3"lex.ll"2843 case 186: 2844 YY_RULE_SETUP 2845 #line 414 "lex.ll" 2837 2846 ECHO; 2838 2847 YY_BREAK 2839 #line 284 0"Parser/lex.cc"2848 #line 2849 "Parser/lex.cc" 2840 2849 case YY_STATE_EOF(INITIAL): 2841 2850 case YY_STATE_EOF(COMMENT): … … 3134 3143 { 3135 3144 yy_current_state = (int) yy_def[yy_current_state]; 3136 if ( yy_current_state >= 90 5)3145 if ( yy_current_state >= 909 ) 3137 3146 yy_c = yy_meta[(unsigned int) yy_c]; 3138 3147 } … … 3162 3171 { 3163 3172 yy_current_state = (int) yy_def[yy_current_state]; 3164 if ( yy_current_state >= 90 5)3173 if ( yy_current_state >= 909 ) 3165 3174 yy_c = yy_meta[(unsigned int) yy_c]; 3166 3175 } 3167 3176 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3168 yy_is_jam = (yy_current_state == 90 4);3177 yy_is_jam = (yy_current_state == 908); 3169 3178 3170 3179 return yy_is_jam ? 0 : yy_current_state; … … 3812 3821 #define YYTABLES_NAME "yytables" 3813 3822 3814 #line 41 3"lex.ll"3823 #line 414 "lex.ll" 3815 3824 3816 3825 -
src/Parser/lex.ll
rbb82c03 r2162c2c 4 4 * The contents of this file are covered under the licence agreement in the 5 5 * file "LICENCE" distributed with Cforall. 6 * 7 * lex.l -- 8 * 6 * 7 * lex.l -- 8 * 9 9 * Author : Peter A. Buhr 10 10 * Created On : Sat Sep 22 08:58:10 2001 … … 258 258 trait { KEYWORD_RETURN(TRAIT); } // CFA 259 259 try { KEYWORD_RETURN(TRY); } // CFA 260 ttype { KEYWORD_RETURN(TTYPE); } // CFA 260 261 typedef { KEYWORD_RETURN(TYPEDEF); } 261 262 typeof { KEYWORD_RETURN(TYPEOF); } // GCC -
src/Parser/parser.cc
rbb82c03 r2162c2c 159 159 FTYPE = 291, 160 160 DTYPE = 292, 161 TRAIT = 293, 162 SIZEOF = 294, 163 OFFSETOF = 295, 164 ATTRIBUTE = 296, 165 EXTENSION = 297, 166 IF = 298, 167 ELSE = 299, 168 SWITCH = 300, 169 CASE = 301, 170 DEFAULT = 302, 171 DO = 303, 172 WHILE = 304, 173 FOR = 305, 174 BREAK = 306, 175 CONTINUE = 307, 176 GOTO = 308, 177 RETURN = 309, 178 CHOOSE = 310, 179 DISABLE = 311, 180 ENABLE = 312, 181 FALLTHRU = 313, 182 TRY = 314, 183 CATCH = 315, 184 CATCHRESUME = 316, 185 FINALLY = 317, 186 THROW = 318, 187 THROWRESUME = 319, 188 AT = 320, 189 ASM = 321, 190 ALIGNAS = 322, 191 ALIGNOF = 323, 192 ATOMIC = 324, 193 GENERIC = 325, 194 NORETURN = 326, 195 STATICASSERT = 327, 196 THREADLOCAL = 328, 197 IDENTIFIER = 329, 198 QUOTED_IDENTIFIER = 330, 199 TYPEDEFname = 331, 200 TYPEGENname = 332, 201 ATTR_IDENTIFIER = 333, 202 ATTR_TYPEDEFname = 334, 203 ATTR_TYPEGENname = 335, 204 INTEGERconstant = 336, 205 CHARACTERconstant = 337, 206 STRINGliteral = 338, 207 REALDECIMALconstant = 339, 208 REALFRACTIONconstant = 340, 209 FLOATINGconstant = 341, 210 ZERO = 342, 211 ONE = 343, 212 ARROW = 344, 213 ICR = 345, 214 DECR = 346, 215 LS = 347, 216 RS = 348, 217 LE = 349, 218 GE = 350, 219 EQ = 351, 220 NE = 352, 221 ANDAND = 353, 222 OROR = 354, 223 ELLIPSIS = 355, 224 MULTassign = 356, 225 DIVassign = 357, 226 MODassign = 358, 227 PLUSassign = 359, 228 MINUSassign = 360, 229 LSassign = 361, 230 RSassign = 362, 231 ANDassign = 363, 232 ERassign = 364, 233 ORassign = 365, 234 ATassign = 366, 235 THEN = 367 161 TTYPE = 293, 162 TRAIT = 294, 163 SIZEOF = 295, 164 OFFSETOF = 296, 165 ATTRIBUTE = 297, 166 EXTENSION = 298, 167 IF = 299, 168 ELSE = 300, 169 SWITCH = 301, 170 CASE = 302, 171 DEFAULT = 303, 172 DO = 304, 173 WHILE = 305, 174 FOR = 306, 175 BREAK = 307, 176 CONTINUE = 308, 177 GOTO = 309, 178 RETURN = 310, 179 CHOOSE = 311, 180 DISABLE = 312, 181 ENABLE = 313, 182 FALLTHRU = 314, 183 TRY = 315, 184 CATCH = 316, 185 CATCHRESUME = 317, 186 FINALLY = 318, 187 THROW = 319, 188 THROWRESUME = 320, 189 AT = 321, 190 ASM = 322, 191 ALIGNAS = 323, 192 ALIGNOF = 324, 193 ATOMIC = 325, 194 GENERIC = 326, 195 NORETURN = 327, 196 STATICASSERT = 328, 197 THREADLOCAL = 329, 198 IDENTIFIER = 330, 199 QUOTED_IDENTIFIER = 331, 200 TYPEDEFname = 332, 201 TYPEGENname = 333, 202 ATTR_IDENTIFIER = 334, 203 ATTR_TYPEDEFname = 335, 204 ATTR_TYPEGENname = 336, 205 INTEGERconstant = 337, 206 CHARACTERconstant = 338, 207 STRINGliteral = 339, 208 REALDECIMALconstant = 340, 209 REALFRACTIONconstant = 341, 210 FLOATINGconstant = 342, 211 ZERO = 343, 212 ONE = 344, 213 ARROW = 345, 214 ICR = 346, 215 DECR = 347, 216 LS = 348, 217 RS = 349, 218 LE = 350, 219 GE = 351, 220 EQ = 352, 221 NE = 353, 222 ANDAND = 354, 223 OROR = 355, 224 ELLIPSIS = 356, 225 MULTassign = 357, 226 DIVassign = 358, 227 MODassign = 359, 228 PLUSassign = 360, 229 MINUSassign = 361, 230 LSassign = 362, 231 RSassign = 363, 232 ANDassign = 364, 233 ERassign = 365, 234 ORassign = 366, 235 ATassign = 367, 236 THEN = 368 236 237 }; 237 238 #endif … … 272 273 #define FTYPE 291 273 274 #define DTYPE 292 274 #define TRAIT 293 275 #define SIZEOF 294 276 #define OFFSETOF 295 277 #define ATTRIBUTE 296 278 #define EXTENSION 297 279 #define IF 298 280 #define ELSE 299 281 #define SWITCH 300 282 #define CASE 301 283 #define DEFAULT 302 284 #define DO 303 285 #define WHILE 304 286 #define FOR 305 287 #define BREAK 306 288 #define CONTINUE 307 289 #define GOTO 308 290 #define RETURN 309 291 #define CHOOSE 310 292 #define DISABLE 311 293 #define ENABLE 312 294 #define FALLTHRU 313 295 #define TRY 314 296 #define CATCH 315 297 #define CATCHRESUME 316 298 #define FINALLY 317 299 #define THROW 318 300 #define THROWRESUME 319 301 #define AT 320 302 #define ASM 321 303 #define ALIGNAS 322 304 #define ALIGNOF 323 305 #define ATOMIC 324 306 #define GENERIC 325 307 #define NORETURN 326 308 #define STATICASSERT 327 309 #define THREADLOCAL 328 310 #define IDENTIFIER 329 311 #define QUOTED_IDENTIFIER 330 312 #define TYPEDEFname 331 313 #define TYPEGENname 332 314 #define ATTR_IDENTIFIER 333 315 #define ATTR_TYPEDEFname 334 316 #define ATTR_TYPEGENname 335 317 #define INTEGERconstant 336 318 #define CHARACTERconstant 337 319 #define STRINGliteral 338 320 #define REALDECIMALconstant 339 321 #define REALFRACTIONconstant 340 322 #define FLOATINGconstant 341 323 #define ZERO 342 324 #define ONE 343 325 #define ARROW 344 326 #define ICR 345 327 #define DECR 346 328 #define LS 347 329 #define RS 348 330 #define LE 349 331 #define GE 350 332 #define EQ 351 333 #define NE 352 334 #define ANDAND 353 335 #define OROR 354 336 #define ELLIPSIS 355 337 #define MULTassign 356 338 #define DIVassign 357 339 #define MODassign 358 340 #define PLUSassign 359 341 #define MINUSassign 360 342 #define LSassign 361 343 #define RSassign 362 344 #define ANDassign 363 345 #define ERassign 364 346 #define ORassign 365 347 #define ATassign 366 348 #define THEN 367 275 #define TTYPE 293 276 #define TRAIT 294 277 #define SIZEOF 295 278 #define OFFSETOF 296 279 #define ATTRIBUTE 297 280 #define EXTENSION 298 281 #define IF 299 282 #define ELSE 300 283 #define SWITCH 301 284 #define CASE 302 285 #define DEFAULT 303 286 #define DO 304 287 #define WHILE 305 288 #define FOR 306 289 #define BREAK 307 290 #define CONTINUE 308 291 #define GOTO 309 292 #define RETURN 310 293 #define CHOOSE 311 294 #define DISABLE 312 295 #define ENABLE 313 296 #define FALLTHRU 314 297 #define TRY 315 298 #define CATCH 316 299 #define CATCHRESUME 317 300 #define FINALLY 318 301 #define THROW 319 302 #define THROWRESUME 320 303 #define AT 321 304 #define ASM 322 305 #define ALIGNAS 323 306 #define ALIGNOF 324 307 #define ATOMIC 325 308 #define GENERIC 326 309 #define NORETURN 327 310 #define STATICASSERT 328 311 #define THREADLOCAL 329 312 #define IDENTIFIER 330 313 #define QUOTED_IDENTIFIER 331 314 #define TYPEDEFname 332 315 #define TYPEGENname 333 316 #define ATTR_IDENTIFIER 334 317 #define ATTR_TYPEDEFname 335 318 #define ATTR_TYPEGENname 336 319 #define INTEGERconstant 337 320 #define CHARACTERconstant 338 321 #define STRINGliteral 339 322 #define REALDECIMALconstant 340 323 #define REALFRACTIONconstant 341 324 #define FLOATINGconstant 342 325 #define ZERO 343 326 #define ONE 344 327 #define ARROW 345 328 #define ICR 346 329 #define DECR 347 330 #define LS 348 331 #define RS 349 332 #define LE 350 333 #define GE 351 334 #define EQ 352 335 #define NE 353 336 #define ANDAND 354 337 #define OROR 355 338 #define ELLIPSIS 356 339 #define MULTassign 357 340 #define DIVassign 358 341 #define MODassign 359 342 #define PLUSassign 360 343 #define MINUSassign 361 344 #define LSassign 362 345 #define RSassign 363 346 #define ANDassign 364 347 #define ERassign 365 348 #define ORassign 366 349 #define ATassign 367 350 #define THEN 368 349 351 350 352 … … 376 378 377 379 /* Line 293 of yacc.c */ 378 #line 3 79"Parser/parser.cc"380 #line 381 "Parser/parser.cc" 379 381 } YYSTYPE; 380 382 # define YYSTYPE_IS_TRIVIAL 1 … … 388 390 389 391 /* Line 343 of yacc.c */ 390 #line 39 1"Parser/parser.cc"392 #line 393 "Parser/parser.cc" 391 393 392 394 #ifdef short … … 607 609 #define YYFINAL 251 608 610 /* YYLAST -- Last index in YYTABLE. */ 609 #define YYLAST 10 624611 #define YYLAST 10466 610 612 611 613 /* YYNTOKENS -- Number of terminals. */ 612 #define YYNTOKENS 13 7614 #define YYNTOKENS 138 613 615 /* YYNNTS -- Number of nonterminals. */ 614 616 #define YYNNTS 243 615 617 /* YYNRULES -- Number of rules. */ 616 #define YYNRULES 75 7618 #define YYNRULES 758 617 619 /* YYNRULES -- Number of states. */ 618 #define YYNSTATES 154 0620 #define YYNSTATES 1541 619 621 620 622 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 621 623 #define YYUNDEFTOK 2 622 #define YYMAXUTOK 36 7624 #define YYMAXUTOK 368 623 625 624 626 #define YYTRANSLATE(YYX) \ … … 631 633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 632 634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 633 2, 2, 2, 12 5, 2, 2, 2, 128, 122, 2,634 11 3, 114, 121, 123, 120, 124, 117, 127, 2, 2,635 2, 2, 2, 2, 2, 2, 2, 2, 13 4, 136,636 1 29, 135, 130, 133, 2, 2, 2, 2, 2, 2,635 2, 2, 2, 126, 2, 2, 2, 129, 123, 2, 636 114, 115, 122, 124, 121, 125, 118, 128, 2, 2, 637 2, 2, 2, 2, 2, 2, 2, 2, 135, 137, 638 130, 136, 131, 134, 2, 2, 2, 2, 2, 2, 637 639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 638 640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 639 2, 11 5, 2, 116, 131, 2, 2, 2, 2, 2,641 2, 116, 2, 117, 132, 2, 2, 2, 2, 2, 640 642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 641 643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 642 2, 2, 2, 11 8, 132, 119, 126, 2, 2, 2,644 2, 2, 2, 119, 133, 120, 127, 2, 2, 2, 643 645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 644 646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 664 666 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 665 667 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 666 105, 106, 107, 108, 109, 110, 111, 112 668 105, 106, 107, 108, 109, 110, 111, 112, 113 667 669 }; 668 670 … … 721 723 1597, 1600, 1603, 1605, 1608, 1611, 1617, 1623, 1631, 1638, 722 724 1640, 1643, 1646, 1650, 1652, 1655, 1658, 1663, 1666, 1671, 723 1672, 1677, 1680, 1682, 1684, 1686, 168 7, 1690, 1696, 1702,724 17 16, 1718, 1720, 1724, 1728, 1731, 1735, 1739, 1742, 1747,725 1749, 175 6, 1766, 1767, 1779, 1781, 1785, 1789, 1793, 1795,726 1797, 1 803, 1806, 1812, 1813, 1815, 1817, 1821, 1822, 1824,727 1826, 1828, 1830, 183 1, 1838, 1841, 1843, 1846, 1851, 1854,728 185 8, 1862, 1866, 1871, 1877, 1883, 1889, 1896, 1898, 1900,729 1902, 190 6, 1907, 1913, 1914, 1916, 1918, 1921, 1928, 1930,730 193 4, 1935, 1937, 1942, 1944, 1946, 1948, 1950, 1953, 1955,731 195 8, 1961, 1963, 1967, 1970, 1974, 1978, 1981, 1986, 1991,732 199 5, 2004, 2008, 2011, 2013, 2016, 2023, 2032, 2036, 2039,733 204 3, 2047, 2052, 2057, 2061, 2063, 2065, 2067, 2072, 2079,734 208 3, 2086, 2090, 2094, 2099, 2104, 2108, 2111, 2113, 2116,735 211 9, 2121, 2125, 2128, 2132, 2136, 2139, 2144, 2149, 2153,736 21 60, 2169, 2173, 2176, 2178, 2181, 2184, 2187, 2191, 2195,737 219 8, 2203, 2208, 2212, 2219, 2228, 2232, 2235, 2237, 2240,738 224 3, 2245, 2247, 2250, 2254, 2258, 2261, 2266, 2273, 2282,739 2284, 228 7, 2290, 2292, 2295, 2298, 2302, 2306, 2308, 2313,740 231 8, 2322, 2328, 2337, 2341, 2344, 2348, 2350, 2356, 2362,741 236 9, 2376, 2378, 2381, 2384, 2386, 2389, 2392, 2396, 2400,742 2402, 240 7, 2412, 2416, 2422, 2431, 2435, 2437, 2440, 2442,743 244 5, 2452, 2458, 2465, 2473, 2481, 2483, 2486, 2489, 2491,744 249 4, 2497, 2501, 2505, 2507, 2512, 2517, 2521, 2530, 2534,745 2536, 2538, 254 1, 2543, 2545, 2548, 2552, 2555, 2559, 2562,746 256 6, 2570, 2573, 2578, 2582, 2585, 2589, 2592, 2597, 2601,747 260 4, 2611, 2618, 2625, 2633, 2635, 2638, 2640, 2642, 2644,748 264 7, 2651, 2654, 2658, 2661, 2665, 2669, 2674, 2677, 2681,749 268 6, 2689, 2695, 2702, 2709, 2710, 2712, 2713725 1672, 1677, 1680, 1682, 1684, 1686, 1688, 1689, 1692, 1698, 726 1704, 1718, 1720, 1722, 1726, 1730, 1733, 1737, 1741, 1744, 727 1749, 1751, 1758, 1768, 1769, 1781, 1783, 1787, 1791, 1795, 728 1797, 1799, 1805, 1808, 1814, 1815, 1817, 1819, 1823, 1824, 729 1826, 1828, 1830, 1832, 1833, 1840, 1843, 1845, 1848, 1853, 730 1856, 1860, 1864, 1868, 1873, 1879, 1885, 1891, 1898, 1900, 731 1902, 1904, 1908, 1909, 1915, 1916, 1918, 1920, 1923, 1930, 732 1932, 1936, 1937, 1939, 1944, 1946, 1948, 1950, 1952, 1955, 733 1957, 1960, 1963, 1965, 1969, 1972, 1976, 1980, 1983, 1988, 734 1993, 1997, 2006, 2010, 2013, 2015, 2018, 2025, 2034, 2038, 735 2041, 2045, 2049, 2054, 2059, 2063, 2065, 2067, 2069, 2074, 736 2081, 2085, 2088, 2092, 2096, 2101, 2106, 2110, 2113, 2115, 737 2118, 2121, 2123, 2127, 2130, 2134, 2138, 2141, 2146, 2151, 738 2155, 2162, 2171, 2175, 2178, 2180, 2183, 2186, 2189, 2193, 739 2197, 2200, 2205, 2210, 2214, 2221, 2230, 2234, 2237, 2239, 740 2242, 2245, 2247, 2249, 2252, 2256, 2260, 2263, 2268, 2275, 741 2284, 2286, 2289, 2292, 2294, 2297, 2300, 2304, 2308, 2310, 742 2315, 2320, 2324, 2330, 2339, 2343, 2346, 2350, 2352, 2358, 743 2364, 2371, 2378, 2380, 2383, 2386, 2388, 2391, 2394, 2398, 744 2402, 2404, 2409, 2414, 2418, 2424, 2433, 2437, 2439, 2442, 745 2444, 2447, 2454, 2460, 2467, 2475, 2483, 2485, 2488, 2491, 746 2493, 2496, 2499, 2503, 2507, 2509, 2514, 2519, 2523, 2532, 747 2536, 2538, 2540, 2543, 2545, 2547, 2550, 2554, 2557, 2561, 748 2564, 2568, 2572, 2575, 2580, 2584, 2587, 2591, 2594, 2599, 749 2603, 2606, 2613, 2620, 2627, 2635, 2637, 2640, 2642, 2644, 750 2646, 2649, 2653, 2656, 2660, 2663, 2667, 2671, 2676, 2679, 751 2683, 2688, 2691, 2697, 2704, 2711, 2712, 2714, 2715 750 752 }; 751 753 … … 753 755 static const yytype_int16 yyrhs[] = 754 756 { 755 30 8, 0, -1, -1, -1, 81, -1, 84, -1, 85,756 -1, 8 6, -1, 82, -1, 74, -1, 78, -1, 144,757 -1, 7 4, -1, 78, -1, 74, -1, 144, -1, 87,758 -1, 8 8, -1, 146, -1, 83, -1, 146, 83, -1,759 7 4, -1, 144, -1, 174, -1, 113, 176, 114, -1,760 11 3, 180, 114, -1, 147, -1, 148, 115, 138, 171,761 1 39, 116, -1, 148, 113, 149, 114, -1, 148, 117,762 14 3, -1, 148, 117, 115, 138, 151, 139, 116, -1,763 14 8, 85, -1, 148, 89, 143, -1, 148, 89, 115,764 13 8, 151, 139, 116, -1, 148, 90, -1, 148, 91,765 -1, 11 3, 281, 114, 118, 285, 378, 119, -1, 148,766 11 8, 149, 119, -1, 150, -1, 149, 120, 150, -1,767 -1, 17 1, -1, 152, -1, 151, 120, 152, -1, 153,768 -1, 8 4, 152, -1, 84, 115, 138, 151, 139, 116,769 -1, 15 3, 117, 152, -1, 153, 117, 115, 138, 151,770 1 39, 116, -1, 153, 89, 152, -1, 153, 89, 115,771 13 8, 151, 139, 116, -1, 81, 154, -1, 86, 154,772 -1, 14 3, 154, -1, -1, 154, 85, -1, 148, -1,773 14 0, -1, 145, -1, 42, 158, -1, 156, 158, -1,774 15 7, 158, -1, 90, 155, -1, 91, 155, -1, 39,775 15 5, -1, 39, 113, 281, 114, -1, 68, 155, -1,776 6 8, 113, 281, 114, -1, 40, 113, 281, 120, 143,777 11 4, -1, 78, -1, 78, 113, 150, 114, -1, 78,778 11 3, 282, 114, -1, 121, -1, 122, -1, 123, -1,779 12 4, -1, 125, -1, 126, -1, 155, -1, 113, 281,780 11 4, 158, -1, 158, -1, 159, 121, 158, -1, 159,781 12 7, 158, -1, 159, 128, 158, -1, 159, -1, 160,782 12 3, 159, -1, 160, 124, 159, -1, 160, -1, 161,783 9 2, 160, -1, 161, 93, 160, -1, 161, -1, 162,784 1 29, 161, -1, 162, 130, 161, -1, 162, 94, 161,785 -1, 16 2, 95, 161, -1, 162, -1, 163, 96, 162,786 -1, 16 3, 97, 162, -1, 163, -1, 164, 122, 163,787 -1, 16 4, -1, 165, 131, 164, -1, 165, -1, 166,788 13 2, 165, -1, 166, -1, 167, 98, 166, -1, 167,789 -1, 16 8, 99, 167, -1, 168, -1, 168, 133, 176,790 13 4, 169, -1, 168, 133, 134, 169, -1, 169, -1,791 1 69, -1, 155, 173, 171, -1, -1, 171, -1, 135,792 -1, 11 1, -1, 101, -1, 102, -1, 103, -1, 104,793 -1, 10 5, -1, 106, -1, 107, -1, 108, -1, 109,794 -1, 11 0, -1, 115, 138, 120, 175, 139, 116, -1,795 11 5, 138, 171, 120, 175, 139, 116, -1, 172, -1,796 17 5, 120, 172, -1, 171, -1, 176, 120, 171, -1,797 -1, 17 6, -1, 179, -1, 180, -1, 184, -1, 185,798 -1, 19 7, -1, 199, -1, 200, -1, 205, -1, 131,799 14 8, 118, 149, 119, 136, -1, 74, 134, 318, 178,800 -1, 11 8, 119, -1, 118, 138, 138, 216, 181, 139,801 1 19, -1, 182, -1, 181, 138, 182, -1, 219, -1,802 4 2, 219, -1, 314, -1, 178, 139, -1, 178, -1,803 18 3, 178, -1, 177, 136, -1, 43, 113, 176, 114,804 17 8, -1, 43, 113, 176, 114, 178, 44, 178, -1,805 4 5, 113, 176, 114, 190, -1, 45, 113, 176, 114,806 11 8, 138, 212, 191, 119, -1, 55, 113, 176, 114,807 19 0, -1, 55, 113, 176, 114, 118, 138, 212, 193,808 1 19, -1, 170, -1, 170, 100, 170, -1, 316, -1,809 18 6, -1, 187, 120, 186, -1, 46, 187, 134, -1,810 4 7, 134, -1, 188, -1, 189, 188, -1, 189, 178,811 -1, -1, 19 2, -1, 189, 183, -1, 192, 189, 183,812 -1, -1, 19 4, -1, 189, 196, -1, 189, 183, 195,813 -1, 19 4, 189, 196, -1, 194, 189, 183, 195, -1,814 -1, 19 6, -1, 58, -1, 58, 136, -1, 49, 113,815 17 6, 114, 178, -1, 48, 178, 49, 113, 176, 114,816 13 6, -1, 50, 113, 138, 198, 114, 178, -1, 177,817 1 39, 136, 177, 136, 177, -1, 219, 177, 136, 177,818 -1, 5 3, 74, 136, -1, 53, 121, 176, 136, -1,819 5 2, 136, -1, 52, 74, 136, -1, 51, 136, -1,820 5 1, 74, 136, -1, 54, 177, 136, -1, 63, 172,821 13 6, -1, 64, 172, 136, -1, 64, 172, 65, 171,822 13 6, -1, 59, 180, 201, -1, 59, 180, 203, -1,823 59, 180, 201, 203, -1, 202, -1, 60, 113, 100,824 11 4, 180, -1, 202, 60, 113, 100, 114, 180, -1,825 6 1, 113, 100, 114, 180, -1, 202, 61, 113, 100,826 11 4, 180, -1, 60, 113, 138, 138, 204, 139, 114,827 18 0, 139, -1, 202, 60, 113, 138, 138, 204, 139,828 11 4, 180, 139, -1, 61, 113, 138, 138, 204, 139,829 11 4, 180, 139, -1, 202, 61, 113, 138, 138, 204,830 1 39, 114, 180, 139, -1, 62, 180, -1, 232, -1,831 23 2, 315, -1, 232, 363, -1, 372, 143, -1, 372,832 -1, 6 6, 206, 113, 145, 114, 136, -1, 66, 206,833 11 3, 145, 134, 207, 114, 136, -1, 66, 206, 113,834 14 5, 134, 207, 134, 207, 114, 136, -1, 66, 206,835 11 3, 145, 134, 207, 134, 207, 134, 210, 114, 136,836 -1, 6 6, 206, 53, 113, 145, 134, 134, 207, 134,837 21 0, 134, 211, 114, 136, -1, -1, 11, -1, -1,838 20 8, -1, 209, -1, 208, 120, 209, -1, 145, 113,839 17 0, 114, -1, 115, 170, 116, 145, 113, 170, 114,840 -1, -1, 14 5, -1, 210, 120, 145, -1, 143, -1,841 21 1, 120, 143, -1, 139, -1, 213, -1, 219, -1,842 21 3, 138, 219, -1, 139, -1, 215, -1, 229, -1,843 21 5, 138, 229, -1, -1, 217, -1, 31, 218, 136,844 -1, 21 7, 31, 218, 136, -1, 280, -1, 218, 120,845 28 0, -1, 220, -1, 229, -1, 221, 139, 136, -1,846 22 6, 139, 136, -1, 223, 139, 136, -1, 299, 139,847 13 6, -1, 302, 139, 136, -1, 222, 283, -1, 238,848 22 2, 283, -1, 221, 139, 120, 138, 278, 283, -1,849 37 3, 278, 317, -1, 376, 278, 317, -1, 234, 376,850 27 8, 317, -1, 224, -1, 234, 224, -1, 238, 224,851 -1, 23 8, 234, 224, -1, 223, 139, 120, 138, 278,852 -1, 37 6, 278, 113, 138, 266, 139, 114, -1, 225,853 27 8, 113, 138, 266, 139, 114, -1, 115, 138, 268,854 1 39, 116, -1, 115, 138, 268, 139, 120, 138, 269,855 1 39, 116, -1, 3, 222, -1, 3, 224, -1, 226,856 1 39, 120, 138, 143, -1, 3, 232, 315, -1, 227,857 1 39, 120, 138, 315, -1, 234, 3, 232, 315, -1,858 23 2, 3, 315, -1, 232, 3, 234, 315, -1, 3,859 14 3, 135, 171, -1, 228, 139, 120, 138, 143, 135,860 17 1, -1, 230, 139, 136, -1, 227, 139, 136, -1,861 22 8, 139, 136, -1, 246, 139, 136, -1, 231, 315,862 31 7, 283, -1, 230, 120, 318, 315, 317, 283, -1,863 24 2, -1, 246, -1, 248, -1, 289, -1, 243, -1,864 24 7, -1, 249, -1, 290, -1, -1, 234, -1, 235,865 -1, 23 4, 235, -1, 236, -1, 320, -1, 10, -1,866 12, -1, 11, -1, 14, -1, 69, -1, -1, 13,867 11 3, 237, 292, 114, -1, 239, -1, 234, 239, -1,868 23 8, 234, 239, -1, 240, -1, 239, 240, -1, 5,757 309, 0, -1, -1, -1, 82, -1, 85, -1, 86, 758 -1, 87, -1, 83, -1, 75, -1, 79, -1, 145, 759 -1, 75, -1, 79, -1, 75, -1, 145, -1, 88, 760 -1, 89, -1, 147, -1, 84, -1, 147, 84, -1, 761 75, -1, 145, -1, 175, -1, 114, 177, 115, -1, 762 114, 181, 115, -1, 148, -1, 149, 116, 139, 172, 763 140, 117, -1, 149, 114, 150, 115, -1, 149, 118, 764 144, -1, 149, 118, 116, 139, 152, 140, 117, -1, 765 149, 86, -1, 149, 90, 144, -1, 149, 90, 116, 766 139, 152, 140, 117, -1, 149, 91, -1, 149, 92, 767 -1, 114, 282, 115, 119, 286, 379, 120, -1, 149, 768 119, 150, 120, -1, 151, -1, 150, 121, 151, -1, 769 -1, 172, -1, 153, -1, 152, 121, 153, -1, 154, 770 -1, 85, 153, -1, 85, 116, 139, 152, 140, 117, 771 -1, 154, 118, 153, -1, 154, 118, 116, 139, 152, 772 140, 117, -1, 154, 90, 153, -1, 154, 90, 116, 773 139, 152, 140, 117, -1, 82, 155, -1, 87, 155, 774 -1, 144, 155, -1, -1, 155, 86, -1, 149, -1, 775 141, -1, 146, -1, 43, 159, -1, 157, 159, -1, 776 158, 159, -1, 91, 156, -1, 92, 156, -1, 40, 777 156, -1, 40, 114, 282, 115, -1, 69, 156, -1, 778 69, 114, 282, 115, -1, 41, 114, 282, 121, 144, 779 115, -1, 79, -1, 79, 114, 151, 115, -1, 79, 780 114, 283, 115, -1, 122, -1, 123, -1, 124, -1, 781 125, -1, 126, -1, 127, -1, 156, -1, 114, 282, 782 115, 159, -1, 159, -1, 160, 122, 159, -1, 160, 783 128, 159, -1, 160, 129, 159, -1, 160, -1, 161, 784 124, 160, -1, 161, 125, 160, -1, 161, -1, 162, 785 93, 161, -1, 162, 94, 161, -1, 162, -1, 163, 786 130, 162, -1, 163, 131, 162, -1, 163, 95, 162, 787 -1, 163, 96, 162, -1, 163, -1, 164, 97, 163, 788 -1, 164, 98, 163, -1, 164, -1, 165, 123, 164, 789 -1, 165, -1, 166, 132, 165, -1, 166, -1, 167, 790 133, 166, -1, 167, -1, 168, 99, 167, -1, 168, 791 -1, 169, 100, 168, -1, 169, -1, 169, 134, 177, 792 135, 170, -1, 169, 134, 135, 170, -1, 170, -1, 793 170, -1, 156, 174, 172, -1, -1, 172, -1, 136, 794 -1, 112, -1, 102, -1, 103, -1, 104, -1, 105, 795 -1, 106, -1, 107, -1, 108, -1, 109, -1, 110, 796 -1, 111, -1, 116, 139, 121, 176, 140, 117, -1, 797 116, 139, 172, 121, 176, 140, 117, -1, 173, -1, 798 176, 121, 173, -1, 172, -1, 177, 121, 172, -1, 799 -1, 177, -1, 180, -1, 181, -1, 185, -1, 186, 800 -1, 198, -1, 200, -1, 201, -1, 206, -1, 132, 801 149, 119, 150, 120, 137, -1, 75, 135, 319, 179, 802 -1, 119, 120, -1, 119, 139, 139, 217, 182, 140, 803 120, -1, 183, -1, 182, 139, 183, -1, 220, -1, 804 43, 220, -1, 315, -1, 179, 140, -1, 179, -1, 805 184, 179, -1, 178, 137, -1, 44, 114, 177, 115, 806 179, -1, 44, 114, 177, 115, 179, 45, 179, -1, 807 46, 114, 177, 115, 191, -1, 46, 114, 177, 115, 808 119, 139, 213, 192, 120, -1, 56, 114, 177, 115, 809 191, -1, 56, 114, 177, 115, 119, 139, 213, 194, 810 120, -1, 171, -1, 171, 101, 171, -1, 317, -1, 811 187, -1, 188, 121, 187, -1, 47, 188, 135, -1, 812 48, 135, -1, 189, -1, 190, 189, -1, 190, 179, 813 -1, -1, 193, -1, 190, 184, -1, 193, 190, 184, 814 -1, -1, 195, -1, 190, 197, -1, 190, 184, 196, 815 -1, 195, 190, 197, -1, 195, 190, 184, 196, -1, 816 -1, 197, -1, 59, -1, 59, 137, -1, 50, 114, 817 177, 115, 179, -1, 49, 179, 50, 114, 177, 115, 818 137, -1, 51, 114, 139, 199, 115, 179, -1, 178, 819 140, 137, 178, 137, 178, -1, 220, 178, 137, 178, 820 -1, 54, 75, 137, -1, 54, 122, 177, 137, -1, 821 53, 137, -1, 53, 75, 137, -1, 52, 137, -1, 822 52, 75, 137, -1, 55, 178, 137, -1, 64, 173, 823 137, -1, 65, 173, 137, -1, 65, 173, 66, 172, 824 137, -1, 60, 181, 202, -1, 60, 181, 204, -1, 825 60, 181, 202, 204, -1, 203, -1, 61, 114, 101, 826 115, 181, -1, 203, 61, 114, 101, 115, 181, -1, 827 62, 114, 101, 115, 181, -1, 203, 62, 114, 101, 828 115, 181, -1, 61, 114, 139, 139, 205, 140, 115, 829 181, 140, -1, 203, 61, 114, 139, 139, 205, 140, 830 115, 181, 140, -1, 62, 114, 139, 139, 205, 140, 831 115, 181, 140, -1, 203, 62, 114, 139, 139, 205, 832 140, 115, 181, 140, -1, 63, 181, -1, 233, -1, 833 233, 316, -1, 233, 364, -1, 373, 144, -1, 373, 834 -1, 67, 207, 114, 146, 115, 137, -1, 67, 207, 835 114, 146, 135, 208, 115, 137, -1, 67, 207, 114, 836 146, 135, 208, 135, 208, 115, 137, -1, 67, 207, 837 114, 146, 135, 208, 135, 208, 135, 211, 115, 137, 838 -1, 67, 207, 54, 114, 146, 135, 135, 208, 135, 839 211, 135, 212, 115, 137, -1, -1, 11, -1, -1, 840 209, -1, 210, -1, 209, 121, 210, -1, 146, 114, 841 171, 115, -1, 116, 171, 117, 146, 114, 171, 115, 842 -1, -1, 146, -1, 211, 121, 146, -1, 144, -1, 843 212, 121, 144, -1, 140, -1, 214, -1, 220, -1, 844 214, 139, 220, -1, 140, -1, 216, -1, 230, -1, 845 216, 139, 230, -1, -1, 218, -1, 31, 219, 137, 846 -1, 218, 31, 219, 137, -1, 281, -1, 219, 121, 847 281, -1, 221, -1, 230, -1, 222, 140, 137, -1, 848 227, 140, 137, -1, 224, 140, 137, -1, 300, 140, 849 137, -1, 303, 140, 137, -1, 223, 284, -1, 239, 850 223, 284, -1, 222, 140, 121, 139, 279, 284, -1, 851 374, 279, 318, -1, 377, 279, 318, -1, 235, 377, 852 279, 318, -1, 225, -1, 235, 225, -1, 239, 225, 853 -1, 239, 235, 225, -1, 224, 140, 121, 139, 279, 854 -1, 377, 279, 114, 139, 267, 140, 115, -1, 226, 855 279, 114, 139, 267, 140, 115, -1, 116, 139, 269, 856 140, 117, -1, 116, 139, 269, 140, 121, 139, 270, 857 140, 117, -1, 3, 223, -1, 3, 225, -1, 227, 858 140, 121, 139, 144, -1, 3, 233, 316, -1, 228, 859 140, 121, 139, 316, -1, 235, 3, 233, 316, -1, 860 233, 3, 316, -1, 233, 3, 235, 316, -1, 3, 861 144, 136, 172, -1, 229, 140, 121, 139, 144, 136, 862 172, -1, 231, 140, 137, -1, 228, 140, 137, -1, 863 229, 140, 137, -1, 247, 140, 137, -1, 232, 316, 864 318, 284, -1, 231, 121, 319, 316, 318, 284, -1, 865 243, -1, 247, -1, 249, -1, 290, -1, 244, -1, 866 248, -1, 250, -1, 291, -1, -1, 235, -1, 236, 867 -1, 235, 236, -1, 237, -1, 321, -1, 10, -1, 868 12, -1, 11, -1, 14, -1, 70, -1, -1, 13, 869 114, 238, 293, 115, -1, 240, -1, 235, 240, -1, 870 239, 235, 240, -1, 241, -1, 240, 241, -1, 5, 869 871 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 870 -1, 7 1, -1, 73, -1, 16, -1, 21, -1, 20,872 -1, 72, -1, 74, -1, 16, -1, 21, -1, 20, 871 873 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 872 874 -1, 15, -1, 27, -1, 28, -1, 29, -1, 26, 873 -1, 24, -1, 25, -1, 24 3, -1, 238, 243, -1,874 24 2, 240, -1, 242, 240, 234, -1, 242, 240, 243,875 -1, 24 4, -1, 233, 245, 233, -1, 241, -1, 234,876 24 1, -1, 244, 235, -1, 244, 241, -1, 30, 113,877 28 2, 114, -1, 30, 113, 176, 114, -1, 80, 113,878 28 2, 114, -1, 80, 113, 176, 114, -1, 247, -1,879 23 8, 247, -1, 246, 240, -1, 246, 240, 234, -1,880 25 0, -1, 234, 250, -1, 247, 235, -1, 249, -1,881 23 8, 249, -1, 248, 240, -1, 248, 240, 234, -1,882 7 6, -1, 234, 76, -1, 249, 235, -1, 251, -1,883 26 2, -1, 253, 118, 254, 119, -1, 253, 280, -1,884 -1, 25 3, 280, 252, 118, 254, 119, -1, 253, 113,885 29 8, 114, 118, 254, 119, -1, 253, 291, -1, 33,886 31 8, -1, 34, 318, -1, -1, 254, 255, -1, 256,887 13 6, -1, 42, 256, 136, -1, 257, 136, -1, 42,888 25 7, 136, -1, 372, -1, 372, 280, -1, 256, 120,889 28 0, -1, 256, 120, -1, 232, 258, -1, 257, 120,890 31 8, 258, -1, -1, 260, -1, 324, 259, -1, 337,891 2 59, -1, 363, -1, -1, 260, -1, 134, 170, -1,892 32, 31 8, -1, 261, 118, 264, 378, 119, -1, 261,893 28 0, -1, -1, 261, 280, 263, 118, 264, 378, 119,894 -1, 28 0, 265, -1, 264, 120, 280, 265, -1, -1,895 13 5, 170, -1, -1, 267, -1, 269, -1, 268, -1,896 26 8, 139, 120, 138, 269, -1, 269, 139, 120, 138,897 10 0, -1, 268, 139, 120, 138, 100, -1, 273, -1,898 2 69, 139, 120, 138, 273, -1, 268, 139, 120, 138,899 27 3, -1, 268, 139, 120, 138, 269, 139, 120, 138,900 27 3, -1, 274, -1, 269, 139, 120, 138, 274, -1,901 -1, 27 1, -1, 272, -1, 272, 139, 120, 138, 100,902 -1, 27 6, -1, 275, -1, 272, 139, 120, 138, 276,903 -1, 27 2, 139, 120, 138, 275, -1, 275, -1, 368,904 27 8, 379, -1, 376, 278, 379, -1, 234, 376, 278,905 3 79, -1, 224, -1, 276, -1, 368, -1, 376, -1,906 23 4, 376, -1, 377, -1, 231, 342, 379, -1, 231,907 34 6, 379, -1, 231, -1, 231, 357, -1, 143, -1,908 27 7, 120, 143, -1, 141, -1, 76, -1, 77, -1,909 14 2, -1, 76, -1, 77, -1, 143, -1, 76, -1,910 7 7, -1, 372, -1, 232, -1, 232, 363, -1, 372,911 -1, 37 7, -1, 232, -1, 232, 351, -1, -1, 135,912 28 4, -1, 111, 284, -1, 171, -1, 118, 285, 378,913 1 19, -1, -1, 284, -1, 286, 284, -1, 285, 120,914 28 4, -1, 285, 120, 286, 284, -1, 287, 134, -1,915 28 0, 134, -1, 288, -1, 287, 288, -1, 117, 280,916 -1, 11 5, 138, 171, 139, 116, -1, 115, 138, 316,917 1 39, 116, -1, 115, 138, 170, 100, 170, 139, 116,918 -1, 11 7, 115, 138, 151, 139, 116, -1, 290, -1,919 23 8, 290, -1, 289, 240, -1, 289, 240, 234, -1,920 29 1, -1, 234, 291, -1, 290, 235, -1, 77, 113,921 29 8, 114, -1, 293, 379, -1, 292, 120, 293, 379,922 -1, -1, 29 5, 280, 294, 296, -1, 232, 342, -1,923 35, -1, 37, -1, 36, -1, -1, 296, 297, -1,924 132, 280, 113, 298, 114, -1, 132, 118, 138, 304,925 1 19, -1, 132, 113, 138, 292, 139, 114, 118, 138,926 304, 119, 113, 298, 114, -1, 282, -1, 171, -1,927 298, 120, 282, -1, 298, 120, 171, -1, 35, 300,928 -1, 239, 35, 300, -1, 299, 120, 300, -1, 301,929 296, -1, 301, 296, 135, 282, -1, 280, -1, 279,930 113, 138, 292, 139, 114, -1, 38, 280, 113, 138,931 292, 139, 114, 118, 119, -1, -1, 38, 280, 113,932 138, 292, 139, 114, 118, 303, 304, 119, -1, 305,933 -1, 30 4, 138, 305, -1, 306, 139, 136, -1, 307,934 139, 136, -1, 222, -1, 224, -1, 306, 139, 120,935 1 38, 278, -1, 232, 315, -1, 307, 139, 120, 138,936 315, -1, -1, 309, -1, 311, -1, 309, 138, 311,937 -1, -1, 309, -1, 219, -1, 313, -1, 205, -1,938 -1, 5, 83, 312, 118, 310, 119, -1, 42, 311,939 -1, 314, -1, 329, 180, -1, 333, 138, 214, 180,940 -1, 223, 180, -1, 231, 329, 180, -1, 234, 329,941 180, -1, 238, 329, 180, -1, 238, 234, 329, 180,942 -1, 231, 333, 138, 214, 180, -1, 234, 333, 138,943 214, 180, -1, 238, 333, 138, 214, 180, -1, 238,944 234, 333, 138, 214, 180, -1, 324, -1, 337, -1,945 3 29, -1, 170, 126, 170, -1, -1, 66, 113, 145,946 114, 318, -1, -1, 319, -1, 320, -1, 319, 320,947 -1, 41, 113, 113, 321, 114, 114, -1, 322, -1,948 32 1, 120, 322, -1, -1, 323, -1, 323, 113, 177,949 114, -1, 278, -1, 240, -1, 241, -1, 235, -1,950 325, 318, -1, 326, -1, 327, 318, -1, 328, 318,951 -1, 141, -1, 113, 325, 114, -1, 156, 324, -1,952 156, 234, 324, -1, 113, 326, 114, -1, 325, 355,953 -1, 113, 326, 114, 355, -1, 113, 327, 114, 356,954 -1, 113, 327, 114, -1, 113, 326, 114, 113, 138,955 270, 139, 114, -1, 113, 328, 114, -1, 330, 318,956 -1, 331, -1, 332, 318, -1, 325, 113, 138, 270,957 139, 114, -1, 113, 331, 114, 113, 138, 270, 139,958 114, -1, 113, 330, 114, -1, 156, 329, -1, 156,959 234, 329, -1, 113, 331, 114, -1, 113, 331, 114,960 3 55, -1, 113, 332, 114, 356, -1, 113, 332, 114,961 -1, 334, -1, 335, -1, 336, -1, 325, 113, 277,962 114, -1, 113, 335, 114, 113, 277, 114, -1, 113,963 334, 114, -1, 156, 333, -1, 156, 234, 333, -1,964 113, 335, 114, -1, 113, 335, 114, 355, -1, 113,965 336, 114, 356, -1, 113, 336, 114, -1, 338, 318,966 -1, 339, -1, 340, 318, -1, 341, 318, -1, 347,967 -1, 113, 338, 114, -1, 156, 337, -1, 156, 234,968 337, -1, 113, 339, 114, -1, 338, 355, -1, 113,969 339, 114, 355, -1, 113, 340, 114, 356, -1, 113,970 340, 114, -1, 338, 113, 138, 270, 139, 114, -1,971 11 3, 339, 114, 113, 138, 270, 139, 114, -1, 113,972 341, 114, -1, 325, 318, -1, 343, -1, 344, 318,973 -1, 345, 318, -1, 156, 342, -1, 156, 234, 342,974 -1, 113, 343, 114, -1, 325, 361, -1, 113, 343,975 114, 3 55, -1, 113, 344, 114, 356, -1, 113, 344,976 114, -1, 325, 113, 138, 270, 139, 114, -1, 113,977 343, 114, 113, 138, 270, 139, 114, -1, 113, 345,978 114, -1, 347, 318, -1, 348, -1, 349, 318, -1,979 3 50, 318, -1, 76, -1, 77, -1, 156, 346, -1,980 156, 234, 346, -1, 113, 348, 114, -1, 347, 361,981 -1, 113, 348, 114, 361, -1, 347, 113, 138, 270,982 139, 114, -1, 113, 348, 114, 113, 138, 270, 139,983 114, -1, 352, -1, 353, 318, -1, 354, 318, -1,984 156, -1, 156, 234, -1, 156, 351, -1, 156, 234,985 351, -1, 113, 352, 114, -1, 355, -1, 113, 352,986 114, 35 5, -1, 113, 353, 114, 356, -1, 113, 353,987 114, -1, 113, 138, 270, 139, 114, -1, 113, 352,988 114, 113, 138, 270, 139, 114, -1, 113, 354, 114,989 -1, 115, 116, -1, 115, 116, 356, -1, 356, -1,990 115, 138, 171, 139, 116, -1, 115, 138, 121, 139,991 1 16, -1, 356, 115, 138, 171, 139, 116, -1, 356,992 115, 138, 121, 139, 116, -1, 358, -1, 359, 318,993 -1, 360, 318, -1, 156, -1, 156, 234, -1, 156,994 357, -1, 156, 234, 357, -1, 113, 358, 114, -1,995 361, -1, 113, 358, 114, 361, -1, 113, 359, 114,996 3 56, -1, 113, 359, 114, -1, 113, 138, 270, 139,997 114, -1, 113, 358, 114, 113, 138, 270, 139, 114,998 -1, 113, 360, 114, -1, 362, -1, 362, 356, -1,999 35 6, -1, 115, 116, -1, 115, 138, 234, 121, 139,1000 1 16, -1, 115, 138, 234, 139, 116, -1, 115, 138,1001 234, 171, 139, 116, -1, 115, 138, 7, 233, 171,1002 139, 116, -1, 115, 138, 234, 7, 171, 139, 116,1003 -1, 364, -1, 365, 318, -1, 366, 318, -1, 156,1004 -1, 15 6, 234, -1, 156, 363, -1, 156, 234, 363,1005 -1, 113, 364, 114, -1, 355, -1, 113, 364, 114,1006 3 55, -1, 113, 365, 114, 356, -1, 113, 365, 114,1007 -1, 113, 364, 114, 113, 138, 270, 139, 114, -1,1008 11 3, 366, 114, -1, 368, -1, 376, -1, 234, 376,1009 -1, 369, -1, 370, -1, 156, 232, -1, 234, 156,1010 23 2, -1, 156, 377, -1, 234, 156, 377, -1, 156,1011 367, -1, 234, 156, 367, -1, 115, 116, 232, -1,1012 371, 232, -1, 115, 116, 356, 232, -1, 371, 356,1013 232, -1, 356, 232, -1, 115, 116, 369, -1, 371,1014 369, -1, 115, 116, 356, 369, -1, 371, 356, 369,1015 -1, 356, 369, -1, 115, 138, 234, 121, 139, 116,1016 -1, 115, 138, 234, 171, 139, 116, -1, 115, 138,1017 238, 171, 139, 116, -1, 115, 138, 238, 234, 171,1018 139, 116, -1, 376, -1, 234, 376, -1, 373, -1,1019 374, -1, 375, -1, 156, 232, -1, 234, 156, 232,1020 -1, 156, 377, -1, 234, 156, 377, -1, 156, 372,1021 -1, 234, 156, 372, -1, 115, 116, 232, -1, 115,1022 116, 356, 232, -1, 356, 232, -1, 115, 116, 374,1023 -1, 115, 116, 356, 374, -1, 356, 374, -1, 115,1024 138, 269, 139, 116, -1, 376, 113, 138, 266, 139,1025 114, -1, 225, 113, 138, 266, 139, 114, -1, -1,1026 120, -1, -1, 135, 171, -1875 -1, 24, -1, 25, -1, 244, -1, 239, 244, -1, 876 243, 241, -1, 243, 241, 235, -1, 243, 241, 244, 877 -1, 245, -1, 234, 246, 234, -1, 242, -1, 235, 878 242, -1, 245, 236, -1, 245, 242, -1, 30, 114, 879 283, 115, -1, 30, 114, 177, 115, -1, 81, 114, 880 283, 115, -1, 81, 114, 177, 115, -1, 248, -1, 881 239, 248, -1, 247, 241, -1, 247, 241, 235, -1, 882 251, -1, 235, 251, -1, 248, 236, -1, 250, -1, 883 239, 250, -1, 249, 241, -1, 249, 241, 235, -1, 884 77, -1, 235, 77, -1, 250, 236, -1, 252, -1, 885 263, -1, 254, 119, 255, 120, -1, 254, 281, -1, 886 -1, 254, 281, 253, 119, 255, 120, -1, 254, 114, 887 299, 115, 119, 255, 120, -1, 254, 292, -1, 33, 888 319, -1, 34, 319, -1, -1, 255, 256, -1, 257, 889 137, -1, 43, 257, 137, -1, 258, 137, -1, 43, 890 258, 137, -1, 373, -1, 373, 281, -1, 257, 121, 891 281, -1, 257, 121, -1, 233, 259, -1, 258, 121, 892 319, 259, -1, -1, 261, -1, 325, 260, -1, 338, 893 260, -1, 364, -1, -1, 261, -1, 135, 171, -1, 894 32, 319, -1, 262, 119, 265, 379, 120, -1, 262, 895 281, -1, -1, 262, 281, 264, 119, 265, 379, 120, 896 -1, 281, 266, -1, 265, 121, 281, 266, -1, -1, 897 136, 171, -1, -1, 268, -1, 270, -1, 269, -1, 898 269, 140, 121, 139, 270, -1, 270, 140, 121, 139, 899 101, -1, 269, 140, 121, 139, 101, -1, 274, -1, 900 270, 140, 121, 139, 274, -1, 269, 140, 121, 139, 901 274, -1, 269, 140, 121, 139, 270, 140, 121, 139, 902 274, -1, 275, -1, 270, 140, 121, 139, 275, -1, 903 -1, 272, -1, 273, -1, 273, 140, 121, 139, 101, 904 -1, 277, -1, 276, -1, 273, 140, 121, 139, 277, 905 -1, 273, 140, 121, 139, 276, -1, 276, -1, 369, 906 279, 380, -1, 377, 279, 380, -1, 235, 377, 279, 907 380, -1, 225, -1, 277, -1, 369, -1, 377, -1, 908 235, 377, -1, 378, -1, 232, 343, 380, -1, 232, 909 347, 380, -1, 232, -1, 232, 358, -1, 144, -1, 910 278, 121, 144, -1, 142, -1, 77, -1, 78, -1, 911 143, -1, 77, -1, 78, -1, 144, -1, 77, -1, 912 78, -1, 373, -1, 233, -1, 233, 364, -1, 373, 913 -1, 378, -1, 233, -1, 233, 352, -1, -1, 136, 914 285, -1, 112, 285, -1, 172, -1, 119, 286, 379, 915 120, -1, -1, 285, -1, 287, 285, -1, 286, 121, 916 285, -1, 286, 121, 287, 285, -1, 288, 135, -1, 917 281, 135, -1, 289, -1, 288, 289, -1, 118, 281, 918 -1, 116, 139, 172, 140, 117, -1, 116, 139, 317, 919 140, 117, -1, 116, 139, 171, 101, 171, 140, 117, 920 -1, 118, 116, 139, 152, 140, 117, -1, 291, -1, 921 239, 291, -1, 290, 241, -1, 290, 241, 235, -1, 922 292, -1, 235, 292, -1, 291, 236, -1, 78, 114, 923 299, 115, -1, 294, 380, -1, 293, 121, 294, 380, 924 -1, -1, 296, 281, 295, 297, -1, 233, 343, -1, 925 35, -1, 37, -1, 36, -1, 38, -1, -1, 297, 926 298, -1, 133, 281, 114, 299, 115, -1, 133, 119, 927 139, 305, 120, -1, 133, 114, 139, 293, 140, 115, 928 119, 139, 305, 120, 114, 299, 115, -1, 283, -1, 929 172, -1, 299, 121, 283, -1, 299, 121, 172, -1, 930 35, 301, -1, 240, 35, 301, -1, 300, 121, 301, 931 -1, 302, 297, -1, 302, 297, 136, 283, -1, 281, 932 -1, 280, 114, 139, 293, 140, 115, -1, 39, 281, 933 114, 139, 293, 140, 115, 119, 120, -1, -1, 39, 934 281, 114, 139, 293, 140, 115, 119, 304, 305, 120, 935 -1, 306, -1, 305, 139, 306, -1, 307, 140, 137, 936 -1, 308, 140, 137, -1, 223, -1, 225, -1, 307, 937 140, 121, 139, 279, -1, 233, 316, -1, 308, 140, 938 121, 139, 316, -1, -1, 310, -1, 312, -1, 310, 939 139, 312, -1, -1, 310, -1, 220, -1, 314, -1, 940 206, -1, -1, 5, 84, 313, 119, 311, 120, -1, 941 43, 312, -1, 315, -1, 330, 181, -1, 334, 139, 942 215, 181, -1, 224, 181, -1, 232, 330, 181, -1, 943 235, 330, 181, -1, 239, 330, 181, -1, 239, 235, 944 330, 181, -1, 232, 334, 139, 215, 181, -1, 235, 945 334, 139, 215, 181, -1, 239, 334, 139, 215, 181, 946 -1, 239, 235, 334, 139, 215, 181, -1, 325, -1, 947 338, -1, 330, -1, 171, 127, 171, -1, -1, 67, 948 114, 146, 115, 319, -1, -1, 320, -1, 321, -1, 949 320, 321, -1, 42, 114, 114, 322, 115, 115, -1, 950 323, -1, 322, 121, 323, -1, -1, 324, -1, 324, 951 114, 178, 115, -1, 279, -1, 241, -1, 242, -1, 952 236, -1, 326, 319, -1, 327, -1, 328, 319, -1, 953 329, 319, -1, 142, -1, 114, 326, 115, -1, 157, 954 325, -1, 157, 235, 325, -1, 114, 327, 115, -1, 955 326, 356, -1, 114, 327, 115, 356, -1, 114, 328, 956 115, 357, -1, 114, 328, 115, -1, 114, 327, 115, 957 114, 139, 271, 140, 115, -1, 114, 329, 115, -1, 958 331, 319, -1, 332, -1, 333, 319, -1, 326, 114, 959 139, 271, 140, 115, -1, 114, 332, 115, 114, 139, 960 271, 140, 115, -1, 114, 331, 115, -1, 157, 330, 961 -1, 157, 235, 330, -1, 114, 332, 115, -1, 114, 962 332, 115, 356, -1, 114, 333, 115, 357, -1, 114, 963 333, 115, -1, 335, -1, 336, -1, 337, -1, 326, 964 114, 278, 115, -1, 114, 336, 115, 114, 278, 115, 965 -1, 114, 335, 115, -1, 157, 334, -1, 157, 235, 966 334, -1, 114, 336, 115, -1, 114, 336, 115, 356, 967 -1, 114, 337, 115, 357, -1, 114, 337, 115, -1, 968 339, 319, -1, 340, -1, 341, 319, -1, 342, 319, 969 -1, 348, -1, 114, 339, 115, -1, 157, 338, -1, 970 157, 235, 338, -1, 114, 340, 115, -1, 339, 356, 971 -1, 114, 340, 115, 356, -1, 114, 341, 115, 357, 972 -1, 114, 341, 115, -1, 339, 114, 139, 271, 140, 973 115, -1, 114, 340, 115, 114, 139, 271, 140, 115, 974 -1, 114, 342, 115, -1, 326, 319, -1, 344, -1, 975 345, 319, -1, 346, 319, -1, 157, 343, -1, 157, 976 235, 343, -1, 114, 344, 115, -1, 326, 362, -1, 977 114, 344, 115, 356, -1, 114, 345, 115, 357, -1, 978 114, 345, 115, -1, 326, 114, 139, 271, 140, 115, 979 -1, 114, 344, 115, 114, 139, 271, 140, 115, -1, 980 114, 346, 115, -1, 348, 319, -1, 349, -1, 350, 981 319, -1, 351, 319, -1, 77, -1, 78, -1, 157, 982 347, -1, 157, 235, 347, -1, 114, 349, 115, -1, 983 348, 362, -1, 114, 349, 115, 362, -1, 348, 114, 984 139, 271, 140, 115, -1, 114, 349, 115, 114, 139, 985 271, 140, 115, -1, 353, -1, 354, 319, -1, 355, 986 319, -1, 157, -1, 157, 235, -1, 157, 352, -1, 987 157, 235, 352, -1, 114, 353, 115, -1, 356, -1, 988 114, 353, 115, 356, -1, 114, 354, 115, 357, -1, 989 114, 354, 115, -1, 114, 139, 271, 140, 115, -1, 990 114, 353, 115, 114, 139, 271, 140, 115, -1, 114, 991 355, 115, -1, 116, 117, -1, 116, 117, 357, -1, 992 357, -1, 116, 139, 172, 140, 117, -1, 116, 139, 993 122, 140, 117, -1, 357, 116, 139, 172, 140, 117, 994 -1, 357, 116, 139, 122, 140, 117, -1, 359, -1, 995 360, 319, -1, 361, 319, -1, 157, -1, 157, 235, 996 -1, 157, 358, -1, 157, 235, 358, -1, 114, 359, 997 115, -1, 362, -1, 114, 359, 115, 362, -1, 114, 998 360, 115, 357, -1, 114, 360, 115, -1, 114, 139, 999 271, 140, 115, -1, 114, 359, 115, 114, 139, 271, 1000 140, 115, -1, 114, 361, 115, -1, 363, -1, 363, 1001 357, -1, 357, -1, 116, 117, -1, 116, 139, 235, 1002 122, 140, 117, -1, 116, 139, 235, 140, 117, -1, 1003 116, 139, 235, 172, 140, 117, -1, 116, 139, 7, 1004 234, 172, 140, 117, -1, 116, 139, 235, 7, 172, 1005 140, 117, -1, 365, -1, 366, 319, -1, 367, 319, 1006 -1, 157, -1, 157, 235, -1, 157, 364, -1, 157, 1007 235, 364, -1, 114, 365, 115, -1, 356, -1, 114, 1008 365, 115, 356, -1, 114, 366, 115, 357, -1, 114, 1009 366, 115, -1, 114, 365, 115, 114, 139, 271, 140, 1010 115, -1, 114, 367, 115, -1, 369, -1, 377, -1, 1011 235, 377, -1, 370, -1, 371, -1, 157, 233, -1, 1012 235, 157, 233, -1, 157, 378, -1, 235, 157, 378, 1013 -1, 157, 368, -1, 235, 157, 368, -1, 116, 117, 1014 233, -1, 372, 233, -1, 116, 117, 357, 233, -1, 1015 372, 357, 233, -1, 357, 233, -1, 116, 117, 370, 1016 -1, 372, 370, -1, 116, 117, 357, 370, -1, 372, 1017 357, 370, -1, 357, 370, -1, 116, 139, 235, 122, 1018 140, 117, -1, 116, 139, 235, 172, 140, 117, -1, 1019 116, 139, 239, 172, 140, 117, -1, 116, 139, 239, 1020 235, 172, 140, 117, -1, 377, -1, 235, 377, -1, 1021 374, -1, 375, -1, 376, -1, 157, 233, -1, 235, 1022 157, 233, -1, 157, 378, -1, 235, 157, 378, -1, 1023 157, 373, -1, 235, 157, 373, -1, 116, 117, 233, 1024 -1, 116, 117, 357, 233, -1, 357, 233, -1, 116, 1025 117, 375, -1, 116, 117, 357, 375, -1, 357, 375, 1026 -1, 116, 139, 270, 140, 117, -1, 377, 114, 139, 1027 267, 140, 115, -1, 226, 114, 139, 267, 140, 115, 1028 -1, -1, 121, -1, -1, 136, 172, -1 1027 1029 }; 1028 1030 … … 1079 1081 1810, 1811, 1816, 1817, 1823, 1825, 1828, 1830, 1832, 1855, 1080 1082 1856, 1858, 1860, 1865, 1866, 1868, 1873, 1878, 1879, 1885, 1081 1884, 1888, 1892, 1894, 1896, 1 902, 1903, 1908, 1913, 1915,1082 19 20, 1922, 1923, 1925, 1930, 1932, 1934, 1939, 1941, 1946,1083 19 51, 1959, 1965, 1964, 1978, 1979, 1984, 1985, 1989, 1994,1084 199 9, 2007, 2012, 2023, 2024, 2029, 2030, 2036, 2037, 2041,1085 204 2, 2043, 2046, 2045, 2056, 2065, 2071, 2077, 2086, 2092,1086 209 8, 2104, 2110, 2118, 2124, 2132, 2138, 2147, 2148, 2149,1087 215 3, 2159, 2160, 2166, 2167, 2171, 2172, 2177, 2183, 2184,1088 218 7, 2189, 2190, 2194, 2195, 2196, 2197, 2231, 2233, 2234,1089 2236, 22 41, 2246, 2251, 2253, 2255, 2260, 2262, 2264, 2266,1090 22 71, 2273, 2282, 2284, 2285, 2290, 2292, 2294, 2299, 2301,1091 2303, 230 8, 2310, 2312, 2321, 2322, 2323, 2327, 2329, 2331,1092 233 6, 2338, 2340, 2345, 2347, 2349, 2364, 2366, 2367, 2369,1093 237 4, 2375, 2380, 2382, 2384, 2389, 2391, 2393, 2395, 2400,1094 2402, 2404, 24 14, 2416, 2417, 2419, 2424, 2426, 2428, 2433,1095 2435, 2437, 2439, 244 4, 2446, 2448, 2479, 2481, 2482, 2484,1096 248 9, 2494, 2502, 2504, 2506, 2511, 2513, 2518, 2520, 2534,1097 253 5, 2537, 2542, 2544, 2546, 2548, 2550, 2555, 2556, 2558,1098 2560, 256 5, 2567, 2569, 2575, 2577, 2579, 2583, 2585, 2587,1099 2589, 2 603, 2604, 2606, 2611, 2613, 2615, 2617, 2619, 2624,1100 262 5, 2627, 2629, 2634, 2636, 2638, 2644, 2645, 2647, 2656,1101 265 9, 2661, 2664, 2666, 2668, 2681, 2682, 2684, 2689, 2691,1102 2693, 2695, 2697, 2 702, 2703, 2705, 2707, 2712, 2714, 2722,1103 272 3, 2724, 2729, 2730, 2734, 2736, 2738, 2740, 2742, 2744,1104 27 51, 2753, 2755, 2757, 2759, 2762, 2764, 2766, 2768, 2770,1105 277 5, 2777, 2779, 2784, 2810, 2811, 2813, 2817, 2818, 2822,1106 2824, 2826, 2828, 2830, 2832, 283 9, 2841, 2843, 2845, 2847,1107 2849, 285 4, 2861, 2863, 2881, 2883, 2888, 28891083 1884, 1888, 1892, 1894, 1896, 1898, 1904, 1905, 1910, 1915, 1084 1917, 1922, 1924, 1925, 1927, 1932, 1934, 1936, 1941, 1943, 1085 1948, 1953, 1961, 1967, 1966, 1980, 1981, 1986, 1987, 1991, 1086 1996, 2001, 2009, 2014, 2025, 2026, 2031, 2032, 2038, 2039, 1087 2043, 2044, 2045, 2048, 2047, 2058, 2067, 2073, 2079, 2088, 1088 2094, 2100, 2106, 2112, 2120, 2126, 2134, 2140, 2149, 2150, 1089 2151, 2155, 2161, 2162, 2168, 2169, 2173, 2174, 2179, 2185, 1090 2186, 2189, 2191, 2192, 2196, 2197, 2198, 2199, 2233, 2235, 1091 2236, 2238, 2243, 2248, 2253, 2255, 2257, 2262, 2264, 2266, 1092 2268, 2273, 2275, 2284, 2286, 2287, 2292, 2294, 2296, 2301, 1093 2303, 2305, 2310, 2312, 2314, 2323, 2324, 2325, 2329, 2331, 1094 2333, 2338, 2340, 2342, 2347, 2349, 2351, 2366, 2368, 2369, 1095 2371, 2376, 2377, 2382, 2384, 2386, 2391, 2393, 2395, 2397, 1096 2402, 2404, 2406, 2416, 2418, 2419, 2421, 2426, 2428, 2430, 1097 2435, 2437, 2439, 2441, 2446, 2448, 2450, 2481, 2483, 2484, 1098 2486, 2491, 2496, 2504, 2506, 2508, 2513, 2515, 2520, 2522, 1099 2536, 2537, 2539, 2544, 2546, 2548, 2550, 2552, 2557, 2558, 1100 2560, 2562, 2567, 2569, 2571, 2577, 2579, 2581, 2585, 2587, 1101 2589, 2591, 2605, 2606, 2608, 2613, 2615, 2617, 2619, 2621, 1102 2626, 2627, 2629, 2631, 2636, 2638, 2640, 2646, 2647, 2649, 1103 2658, 2661, 2663, 2666, 2668, 2670, 2683, 2684, 2686, 2691, 1104 2693, 2695, 2697, 2699, 2704, 2705, 2707, 2709, 2714, 2716, 1105 2724, 2725, 2726, 2731, 2732, 2736, 2738, 2740, 2742, 2744, 1106 2746, 2753, 2755, 2757, 2759, 2761, 2764, 2766, 2768, 2770, 1107 2772, 2777, 2779, 2781, 2786, 2812, 2813, 2815, 2819, 2820, 1108 2824, 2826, 2828, 2830, 2832, 2834, 2841, 2843, 2845, 2847, 1109 2849, 2851, 2856, 2863, 2865, 2883, 2885, 2890, 2891 1108 1110 }; 1109 1111 #endif … … 1119 1121 "SIGNED", "UNSIGNED", "ZERO_T", "ONE_T", "VALIST", "BOOL", "COMPLEX", 1120 1122 "IMAGINARY", "TYPEOF", "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", 1121 "FTYPE", "DTYPE", "T RAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE",1123 "FTYPE", "DTYPE", "TTYPE", "TRAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE", 1122 1124 "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT", "DO", "WHILE", 1123 1125 "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE", "DISABLE", … … 1240 1242 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1241 1243 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 1242 365, 366, 367, 40, 41, 91, 93, 46, 123, 125,1243 44, 42, 38, 43, 45, 33, 126, 47, 37, 60,1244 6 2, 94, 124, 63, 58, 61, 591244 365, 366, 367, 368, 40, 41, 91, 93, 46, 123, 1245 125, 44, 42, 38, 43, 45, 33, 126, 47, 37, 1246 60, 62, 94, 124, 63, 58, 61, 59 1245 1247 }; 1246 1248 # endif … … 1249 1251 static const yytype_uint16 yyr1[] = 1250 1252 { 1251 0, 13 7, 138, 139, 140, 140, 140, 140, 140, 141,1252 14 1, 141, 142, 142, 143, 143, 144, 144, 145, 146,1253 14 6, 147, 147, 147, 147, 147, 148, 148, 148, 148,1254 14 8, 148, 148, 148, 148, 148, 148, 148, 149, 149,1255 15 0, 150, 151, 151, 152, 152, 152, 152, 152, 152,1256 15 2, 153, 153, 153, 154, 154, 155, 155, 155, 155,1257 15 5, 155, 155, 155, 155, 155, 155, 155, 155, 155,1258 15 5, 155, 156, 156, 157, 157, 157, 157, 158, 158,1259 1 59, 159, 159, 159, 160, 160, 160, 161, 161, 161,1260 16 2, 162, 162, 162, 162, 163, 163, 163, 164, 164,1261 16 5, 165, 166, 166, 167, 167, 168, 168, 169, 169,1262 1 69, 170, 171, 171, 172, 172, 173, 173, 173, 173,1263 17 3, 173, 173, 173, 173, 173, 173, 173, 174, 174,1264 17 5, 175, 176, 176, 177, 177, 178, 178, 178, 178,1265 17 8, 178, 178, 178, 178, 179, 180, 180, 181, 181,1266 18 2, 182, 182, 182, 183, 183, 184, 185, 185, 185,1267 18 5, 185, 185, 186, 186, 186, 187, 187, 188, 188,1268 1 89, 189, 190, 191, 191, 192, 192, 193, 193, 194,1269 19 4, 194, 194, 195, 195, 196, 196, 197, 197, 197,1270 19 8, 198, 199, 199, 199, 199, 199, 199, 199, 199,1271 199, 199, 200, 200, 200, 201, 201, 201, 201, 201,1272 20 2, 202, 202, 202, 203, 204, 204, 204, 204, 204,1273 20 5, 205, 205, 205, 205, 206, 206, 207, 207, 208,1274 20 8, 209, 209, 210, 210, 210, 211, 211, 212, 212,1275 21 3, 213, 214, 214, 215, 215, 216, 216, 217, 217,1276 21 8, 218, 219, 219, 220, 220, 220, 220, 220, 221,1277 22 1, 221, 222, 222, 222, 223, 223, 223, 223, 223,1278 22 4, 224, 225, 225, 226, 226, 226, 227, 227, 227,1279 22 7, 227, 228, 228, 229, 229, 229, 229, 230, 230,1280 23 1, 231, 231, 231, 232, 232, 232, 232, 233, 233,1281 23 4, 234, 235, 235, 236, 236, 236, 236, 236, 237,1282 23 6, 238, 238, 238, 239, 239, 240, 240, 240, 240,1283 24 0, 240, 240, 240, 241, 241, 241, 241, 241, 241,1284 24 1, 241, 241, 241, 241, 241, 241, 241, 241, 242,1285 24 2, 242, 242, 242, 243, 243, 244, 244, 244, 244,1286 24 5, 245, 245, 245, 246, 246, 246, 246, 247, 247,1287 24 7, 248, 248, 248, 248, 249, 249, 249, 250, 250,1288 25 1, 251, 252, 251, 251, 251, 253, 253, 254, 254,1289 25 5, 255, 255, 255, 256, 256, 256, 256, 257, 257,1290 25 8, 258, 258, 258, 258, 259, 259, 260, 261, 262,1291 26 2, 263, 262, 264, 264, 265, 265, 266, 266, 267,1292 26 7, 267, 267, 267, 268, 268, 268, 268, 269, 269,1293 27 0, 270, 271, 271, 272, 272, 272, 272, 273, 273,1294 27 3, 273, 273, 274, 274, 274, 274, 274, 275, 275,1295 27 6, 276, 277, 277, 278, 278, 278, 279, 279, 279,1296 28 0, 280, 280, 281, 281, 281, 282, 282, 282, 282,1297 28 3, 283, 283, 284, 284, 285, 285, 285, 285, 285,1298 28 6, 286, 287, 287, 288, 288, 288, 288, 288, 289,1299 2 89, 289, 289, 290, 290, 290, 291, 292, 292, 294,1300 29 3, 293, 295, 295, 295, 296, 296, 297, 297, 297,1301 298, 29 8, 298, 298, 299, 299, 299, 300, 300, 301,1302 30 1, 302, 303, 302, 304, 304, 305, 305, 306, 306,1303 30 6, 307, 307, 308, 308, 309, 309, 310, 310, 311,1304 31 1, 311, 312, 311, 311, 313, 313, 313, 314, 314,1305 31 4, 314, 314, 314, 314, 314, 314, 315, 315, 315,1306 316, 317, 31 7, 318, 318, 319, 319, 320, 321, 321,1307 322, 32 2, 322, 323, 323, 323, 323, 324, 324, 324,1308 32 4, 325, 325, 326, 326, 326, 327, 327, 327, 327,1309 328, 32 8, 329, 329, 329, 330, 330, 330, 331, 331,1310 33 1, 332, 332, 332, 333, 333, 333, 334, 334, 334,1311 335, 33 5, 335, 336, 336, 336, 337, 337, 337, 337,1312 338, 33 8, 339, 339, 339, 340, 340, 340, 340, 341,1313 34 1, 341, 342, 342, 342, 342, 343, 343, 343, 344,1314 34 4, 344, 344, 345, 345, 345, 346, 346, 346, 346,1315 347, 34 7, 348, 348, 348, 349, 349, 350, 350, 351,1316 35 1, 351, 352, 352, 352, 352, 352, 353, 353, 353,1317 35 3, 354, 354, 354, 355, 355, 355, 356, 356, 356,1318 35 6, 357, 357, 357, 358, 358, 358, 358, 358, 359,1319 3 59, 359, 359, 360, 360, 360, 361, 361, 361, 362,1320 36 2, 362, 362, 362, 362, 363, 363, 363, 364, 364,1321 36 4, 364, 364, 365, 365, 365, 365, 366, 366, 367,1322 36 7, 367, 368, 368, 369, 369, 369, 369, 369, 369,1323 370, 37 0, 370, 370, 370, 370, 370, 370, 370, 370,1324 371, 37 1, 371, 371, 372, 372, 372, 373, 373, 374,1325 37 4, 374, 374, 374, 374, 375, 375, 375, 375, 375,1326 37 5, 376, 377, 377, 378, 378, 379, 3791253 0, 138, 139, 140, 141, 141, 141, 141, 141, 142, 1254 142, 142, 143, 143, 144, 144, 145, 145, 146, 147, 1255 147, 148, 148, 148, 148, 148, 149, 149, 149, 149, 1256 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 1257 151, 151, 152, 152, 153, 153, 153, 153, 153, 153, 1258 153, 154, 154, 154, 155, 155, 156, 156, 156, 156, 1259 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 1260 156, 156, 157, 157, 158, 158, 158, 158, 159, 159, 1261 160, 160, 160, 160, 161, 161, 161, 162, 162, 162, 1262 163, 163, 163, 163, 163, 164, 164, 164, 165, 165, 1263 166, 166, 167, 167, 168, 168, 169, 169, 170, 170, 1264 170, 171, 172, 172, 173, 173, 174, 174, 174, 174, 1265 174, 174, 174, 174, 174, 174, 174, 174, 175, 175, 1266 176, 176, 177, 177, 178, 178, 179, 179, 179, 179, 1267 179, 179, 179, 179, 179, 180, 181, 181, 182, 182, 1268 183, 183, 183, 183, 184, 184, 185, 186, 186, 186, 1269 186, 186, 186, 187, 187, 187, 188, 188, 189, 189, 1270 190, 190, 191, 192, 192, 193, 193, 194, 194, 195, 1271 195, 195, 195, 196, 196, 197, 197, 198, 198, 198, 1272 199, 199, 200, 200, 200, 200, 200, 200, 200, 200, 1273 200, 200, 201, 201, 201, 202, 202, 202, 202, 202, 1274 203, 203, 203, 203, 204, 205, 205, 205, 205, 205, 1275 206, 206, 206, 206, 206, 207, 207, 208, 208, 209, 1276 209, 210, 210, 211, 211, 211, 212, 212, 213, 213, 1277 214, 214, 215, 215, 216, 216, 217, 217, 218, 218, 1278 219, 219, 220, 220, 221, 221, 221, 221, 221, 222, 1279 222, 222, 223, 223, 223, 224, 224, 224, 224, 224, 1280 225, 225, 226, 226, 227, 227, 227, 228, 228, 228, 1281 228, 228, 229, 229, 230, 230, 230, 230, 231, 231, 1282 232, 232, 232, 232, 233, 233, 233, 233, 234, 234, 1283 235, 235, 236, 236, 237, 237, 237, 237, 237, 238, 1284 237, 239, 239, 239, 240, 240, 241, 241, 241, 241, 1285 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 1286 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 1287 243, 243, 243, 243, 244, 244, 245, 245, 245, 245, 1288 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 1289 248, 249, 249, 249, 249, 250, 250, 250, 251, 251, 1290 252, 252, 253, 252, 252, 252, 254, 254, 255, 255, 1291 256, 256, 256, 256, 257, 257, 257, 257, 258, 258, 1292 259, 259, 259, 259, 259, 260, 260, 261, 262, 263, 1293 263, 264, 263, 265, 265, 266, 266, 267, 267, 268, 1294 268, 268, 268, 268, 269, 269, 269, 269, 270, 270, 1295 271, 271, 272, 272, 273, 273, 273, 273, 274, 274, 1296 274, 274, 274, 275, 275, 275, 275, 275, 276, 276, 1297 277, 277, 278, 278, 279, 279, 279, 280, 280, 280, 1298 281, 281, 281, 282, 282, 282, 283, 283, 283, 283, 1299 284, 284, 284, 285, 285, 286, 286, 286, 286, 286, 1300 287, 287, 288, 288, 289, 289, 289, 289, 289, 290, 1301 290, 290, 290, 291, 291, 291, 292, 293, 293, 295, 1302 294, 294, 296, 296, 296, 296, 297, 297, 298, 298, 1303 298, 299, 299, 299, 299, 300, 300, 300, 301, 301, 1304 302, 302, 303, 304, 303, 305, 305, 306, 306, 307, 1305 307, 307, 308, 308, 309, 309, 310, 310, 311, 311, 1306 312, 312, 312, 313, 312, 312, 314, 314, 314, 315, 1307 315, 315, 315, 315, 315, 315, 315, 315, 316, 316, 1308 316, 317, 318, 318, 319, 319, 320, 320, 321, 322, 1309 322, 323, 323, 323, 324, 324, 324, 324, 325, 325, 1310 325, 325, 326, 326, 327, 327, 327, 328, 328, 328, 1311 328, 329, 329, 330, 330, 330, 331, 331, 331, 332, 1312 332, 332, 333, 333, 333, 334, 334, 334, 335, 335, 1313 335, 336, 336, 336, 337, 337, 337, 338, 338, 338, 1314 338, 339, 339, 340, 340, 340, 341, 341, 341, 341, 1315 342, 342, 342, 343, 343, 343, 343, 344, 344, 344, 1316 345, 345, 345, 345, 346, 346, 346, 347, 347, 347, 1317 347, 348, 348, 349, 349, 349, 350, 350, 351, 351, 1318 352, 352, 352, 353, 353, 353, 353, 353, 354, 354, 1319 354, 354, 355, 355, 355, 356, 356, 356, 357, 357, 1320 357, 357, 358, 358, 358, 359, 359, 359, 359, 359, 1321 360, 360, 360, 360, 361, 361, 361, 362, 362, 362, 1322 363, 363, 363, 363, 363, 363, 364, 364, 364, 365, 1323 365, 365, 365, 365, 366, 366, 366, 366, 367, 367, 1324 368, 368, 368, 369, 369, 370, 370, 370, 370, 370, 1325 370, 371, 371, 371, 371, 371, 371, 371, 371, 371, 1326 371, 372, 372, 372, 372, 373, 373, 373, 374, 374, 1327 375, 375, 375, 375, 375, 375, 376, 376, 376, 376, 1328 376, 376, 377, 378, 378, 379, 379, 380, 380 1327 1329 }; 1328 1330 … … 1379 1381 2, 2, 1, 2, 2, 5, 5, 7, 6, 1, 1380 1382 2, 2, 3, 1, 2, 2, 4, 2, 4, 0, 1381 4, 2, 1, 1, 1, 0, 2, 5, 5, 13, 1382 1, 1, 3, 3, 2, 3, 3, 2, 4, 1, 1383 6, 9, 0, 11, 1, 3, 3, 3, 1, 1, 1384 5, 2, 5, 0, 1, 1, 3, 0, 1, 1, 1385 1, 1, 0, 6, 2, 1, 2, 4, 2, 3, 1386 3, 3, 4, 5, 5, 5, 6, 1, 1, 1, 1387 3, 0, 5, 0, 1, 1, 2, 6, 1, 3, 1388 0, 1, 4, 1, 1, 1, 1, 2, 1, 2, 1383 4, 2, 1, 1, 1, 1, 0, 2, 5, 5, 1384 13, 1, 1, 3, 3, 2, 3, 3, 2, 4, 1385 1, 6, 9, 0, 11, 1, 3, 3, 3, 1, 1386 1, 5, 2, 5, 0, 1, 1, 3, 0, 1, 1387 1, 1, 1, 0, 6, 2, 1, 2, 4, 2, 1388 3, 3, 3, 4, 5, 5, 5, 6, 1, 1, 1389 1, 3, 0, 5, 0, 1, 1, 2, 6, 1, 1390 3, 0, 1, 4, 1, 1, 1, 1, 2, 1, 1391 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1392 3, 8, 3, 2, 1, 2, 6, 8, 3, 2, 1393 3, 3, 4, 4, 3, 1, 1, 1, 4, 6, 1394 3, 2, 3, 3, 4, 4, 3, 2, 1, 2, 1389 1395 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 1390 8, 3, 2, 1, 2, 6, 8, 3, 2, 3, 1391 3, 4, 4, 3, 1, 1, 1, 4, 6, 3, 1392 2, 3, 3, 4, 4, 3, 2, 1, 2, 2, 1393 1, 3, 2, 3, 3, 2, 4, 4, 3, 6, 1394 8, 3, 2, 1, 2, 2, 2, 3, 3, 2, 1395 4, 4, 3, 6, 8, 3, 2, 1, 2, 2, 1396 1, 1, 2, 3, 3, 2, 4, 6, 8, 1, 1397 2, 2, 1, 2, 2, 3, 3, 1, 4, 4, 1398 3, 5, 8, 3, 2, 3, 1, 5, 5, 6, 1399 6, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1400 4, 4, 3, 5, 8, 3, 1, 2, 1, 2, 1401 6, 5, 6, 7, 7, 1, 2, 2, 1, 2, 1402 2, 3, 3, 1, 4, 4, 3, 8, 3, 1, 1403 1, 2, 1, 1, 2, 3, 2, 3, 2, 3, 1404 3, 2, 4, 3, 2, 3, 2, 4, 3, 2, 1405 6, 6, 6, 7, 1, 2, 1, 1, 1, 2, 1406 3, 2, 3, 2, 3, 3, 4, 2, 3, 4, 1407 2, 5, 6, 6, 0, 1, 0, 2 1396 6, 8, 3, 2, 1, 2, 2, 2, 3, 3, 1397 2, 4, 4, 3, 6, 8, 3, 2, 1, 2, 1398 2, 1, 1, 2, 3, 3, 2, 4, 6, 8, 1399 1, 2, 2, 1, 2, 2, 3, 3, 1, 4, 1400 4, 3, 5, 8, 3, 2, 3, 1, 5, 5, 1401 6, 6, 1, 2, 2, 1, 2, 2, 3, 3, 1402 1, 4, 4, 3, 5, 8, 3, 1, 2, 1, 1403 2, 6, 5, 6, 7, 7, 1, 2, 2, 1, 1404 2, 2, 3, 3, 1, 4, 4, 3, 8, 3, 1405 1, 1, 2, 1, 1, 2, 3, 2, 3, 2, 1406 3, 3, 2, 4, 3, 2, 3, 2, 4, 3, 1407 2, 6, 6, 6, 7, 1, 2, 1, 1, 1, 1408 2, 3, 2, 3, 2, 3, 3, 4, 2, 3, 1409 4, 2, 5, 6, 6, 0, 1, 0, 2 1408 1410 }; 1409 1411 … … 1415 1417 298, 298, 318, 316, 319, 317, 320, 321, 304, 306, 1416 1418 305, 0, 307, 332, 324, 329, 327, 328, 326, 325, 1417 330, 331, 337, 338, 336, 333, 334, 335, 55 3, 553,1418 55 3, 0, 0, 0, 298, 225, 308, 322, 323, 9,1419 365, 0, 10, 16, 17, 0, 2, 72, 73, 57 1,1420 11, 298, 53 1, 529, 252, 3, 460, 3, 265, 0,1419 330, 331, 337, 338, 336, 333, 334, 335, 554, 554, 1420 554, 0, 0, 0, 298, 225, 308, 322, 323, 9, 1421 365, 0, 10, 16, 17, 0, 2, 72, 73, 572, 1422 11, 298, 532, 530, 252, 3, 460, 3, 265, 0, 1421 1423 3, 3, 3, 253, 3, 0, 0, 0, 299, 300, 1422 1424 302, 298, 311, 314, 346, 290, 339, 344, 291, 354, 1423 1425 292, 361, 358, 368, 0, 0, 369, 293, 479, 483, 1424 3, 3, 0, 2, 52 5, 530, 535, 303, 0, 0,1425 55 3, 583, 553, 2, 594, 595, 596, 298, 0, 737,1426 73 8, 0, 14, 0, 15, 298, 274, 275, 0, 299,1427 294, 295, 296, 297, 53 2, 309, 398, 554, 555, 376,1428 377, 14, 451, 452, 13, 447, 450, 0, 5 09, 504,1429 49 5, 451, 452, 0, 0, 534, 226, 0, 298, 0,1426 3, 3, 0, 2, 526, 531, 536, 303, 0, 0, 1427 554, 584, 554, 2, 595, 596, 597, 298, 0, 738, 1428 739, 0, 14, 0, 15, 298, 274, 275, 0, 299, 1429 294, 295, 296, 297, 533, 309, 398, 555, 556, 376, 1430 377, 14, 451, 452, 13, 447, 450, 0, 510, 505, 1431 496, 451, 452, 0, 0, 535, 226, 0, 298, 0, 1430 1432 0, 0, 0, 0, 0, 0, 0, 298, 298, 0, 1431 7 39, 299, 588, 600, 743, 736, 734, 741, 0, 0,1432 0, 259, 2, 0, 53 8, 445, 446, 444, 0, 0,1433 0, 0, 55 3, 0, 640, 641, 0, 0, 551, 547,1434 55 3, 568, 553, 553, 549, 2, 548, 553, 607, 553,1435 55 3, 610, 0, 0, 0, 298, 298, 316, 366, 2,1433 740, 299, 589, 601, 744, 737, 735, 742, 0, 0, 1434 0, 259, 2, 0, 539, 445, 446, 444, 0, 0, 1435 0, 0, 554, 0, 641, 642, 0, 0, 552, 548, 1436 554, 569, 554, 554, 550, 2, 549, 554, 608, 554, 1437 554, 611, 0, 0, 0, 298, 298, 316, 366, 2, 1436 1438 298, 266, 301, 312, 347, 359, 484, 0, 2, 0, 1437 1439 460, 267, 299, 340, 355, 362, 480, 0, 2, 0, 1438 1440 315, 341, 348, 349, 0, 356, 360, 363, 367, 452, 1439 1441 298, 378, 371, 375, 0, 400, 481, 485, 0, 0, 1440 0, 1, 298, 2, 53 6, 582, 584, 298, 2, 747,1441 299, 75 0, 551, 551, 0, 299, 0, 0, 277, 553,1442 5 49, 2, 298, 0, 0, 298, 556, 2, 507, 2,1443 56 0, 0, 0, 0, 0, 0, 0, 21, 69, 4,1442 0, 1, 298, 2, 537, 583, 585, 298, 2, 748, 1443 299, 751, 552, 552, 0, 299, 0, 0, 277, 554, 1444 550, 2, 298, 0, 0, 298, 557, 2, 508, 2, 1445 561, 0, 0, 0, 0, 0, 0, 21, 69, 4, 1444 1446 8, 19, 5, 6, 7, 0, 0, 298, 2, 74, 1445 1447 75, 76, 77, 57, 22, 58, 18, 26, 56, 78, 1446 1448 298, 0, 80, 84, 87, 90, 95, 98, 100, 102, 1447 104, 106, 108, 112, 50 1, 23, 458, 500, 0, 456,1448 457, 0, 57 2, 587, 590, 593, 599, 602, 605, 2,1449 74 5, 298, 748, 2, 72, 298, 3, 432, 0, 440,1449 104, 106, 108, 112, 502, 23, 458, 501, 0, 456, 1450 457, 0, 573, 588, 591, 594, 600, 603, 606, 2, 1451 746, 298, 749, 2, 72, 298, 3, 432, 0, 440, 1450 1452 299, 298, 311, 339, 291, 354, 361, 3, 3, 414, 1451 418, 428, 433, 479, 298, 434, 71 2, 713, 298, 435,1452 437, 2, 5 89, 601, 735, 2, 2, 254, 2, 465,1453 418, 428, 433, 479, 298, 434, 713, 714, 298, 435, 1454 437, 2, 590, 602, 736, 2, 2, 254, 2, 465, 1453 1455 0, 463, 462, 461, 146, 2, 2, 256, 2, 2, 1454 1456 255, 2, 285, 2, 286, 0, 284, 0, 0, 0, 1455 0, 0, 0, 0, 0, 0, 57 3, 612, 0, 460,1456 2, 56 7, 576, 666, 569, 570, 539, 298, 2, 606,1457 61 5, 608, 609, 0, 280, 298, 298, 345, 299, 0,1458 299, 298, 74 0, 744, 742, 540, 298, 551, 260, 268,1459 313, 0, 2, 54 1, 298, 505, 342, 343, 287, 357,1460 364, 0, 298, 0, 75 4, 405, 0, 482, 506, 257,1461 258, 52 6, 298, 442, 0, 298, 242, 0, 2, 244,1457 0, 0, 0, 0, 0, 0, 574, 613, 0, 460, 1458 2, 568, 577, 667, 570, 571, 540, 298, 2, 607, 1459 616, 609, 610, 0, 280, 298, 298, 345, 299, 0, 1460 299, 298, 741, 745, 743, 541, 298, 552, 260, 268, 1461 313, 0, 2, 542, 298, 506, 342, 343, 287, 357, 1462 364, 0, 298, 0, 755, 405, 0, 482, 507, 257, 1463 258, 527, 298, 442, 0, 298, 242, 0, 2, 244, 1462 1464 0, 299, 0, 262, 2, 263, 282, 0, 0, 2, 1463 298, 55 1, 298, 492, 494, 493, 0, 0, 756, 0,1464 298, 0, 298, 496, 298, 566, 564, 565, 563, 0,1465 558, 561, 0, 0, 298, 64, 298, 78, 59, 298,1466 66, 298, 298, 62, 63, 2, 132, 0, 0, 454,1467 0, 453, 734, 298, 20, 31, 0, 34, 35, 40,1468 2, 0, 40, 118, 119, 120, 121, 122, 123, 124,1469 12 5, 126, 127, 117, 116, 0, 60, 61, 0, 0,1465 298, 552, 298, 492, 494, 493, 495, 0, 0, 757, 1466 0, 298, 0, 298, 497, 298, 567, 565, 566, 564, 1467 0, 559, 562, 0, 0, 298, 64, 298, 78, 59, 1468 298, 66, 298, 298, 62, 63, 2, 132, 0, 0, 1469 454, 0, 453, 735, 298, 20, 31, 0, 34, 35, 1470 40, 2, 0, 40, 118, 119, 120, 121, 122, 123, 1471 124, 125, 126, 127, 117, 116, 0, 60, 61, 0, 1470 1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471 0, 0, 0, 0, 0, 0, 0, 2, 652, 459, 1472 649, 553, 553, 657, 486, 298, 2, 591, 592, 0, 1473 603, 604, 0, 746, 749, 298, 298, 0, 714, 299, 1474 718, 709, 710, 716, 0, 2, 2, 674, 553, 756, 1475 623, 553, 553, 756, 553, 637, 553, 553, 688, 441, 1476 671, 553, 553, 679, 686, 298, 436, 299, 0, 0, 1477 298, 724, 299, 729, 756, 721, 298, 726, 756, 298, 1478 298, 0, 0, 21, 2, 0, 22, 0, 466, 754, 1479 0, 0, 472, 246, 0, 298, 0, 0, 0, 551, 1480 575, 579, 581, 611, 614, 618, 621, 574, 613, 0, 1481 288, 664, 0, 298, 281, 0, 0, 0, 0, 279, 1482 2, 0, 264, 542, 298, 0, 0, 298, 2, 370, 1483 390, 379, 0, 0, 384, 378, 755, 0, 0, 403, 1484 0, 299, 3, 421, 3, 425, 424, 597, 0, 537, 1485 298, 72, 3, 298, 440, 299, 3, 434, 435, 2, 1486 0, 0, 0, 491, 310, 298, 0, 487, 489, 3, 1487 2, 2, 0, 508, 3, 0, 560, 134, 0, 0, 1488 227, 0, 0, 0, 0, 41, 0, 0, 298, 24, 1489 0, 25, 0, 698, 703, 455, 695, 553, 553, 0, 1490 114, 3, 2, 32, 0, 38, 0, 2, 29, 0, 1491 113, 81, 82, 83, 85, 86, 88, 89, 93, 94, 1492 91, 92, 96, 97, 99, 101, 103, 105, 107, 0, 1493 0, 298, 0, 0, 0, 653, 654, 650, 651, 503, 1494 502, 298, 0, 720, 298, 725, 299, 298, 668, 711, 1495 667, 2, 298, 0, 0, 0, 0, 0, 0, 0, 1496 0, 689, 0, 675, 626, 642, 676, 2, 622, 629, 1497 438, 624, 625, 439, 2, 636, 645, 638, 639, 672, 1498 673, 687, 715, 719, 717, 756, 272, 2, 751, 2, 1499 429, 723, 728, 430, 3, 408, 3, 3, 3, 460, 1500 0, 0, 2, 474, 471, 755, 0, 467, 2, 470, 1501 473, 0, 298, 247, 269, 3, 276, 278, 0, 460, 1502 2, 577, 578, 2, 616, 617, 0, 665, 543, 3, 1503 351, 350, 353, 352, 298, 544, 0, 545, 378, 0, 1504 0, 298, 0, 0, 698, 388, 391, 395, 553, 395, 1505 394, 387, 380, 553, 382, 385, 298, 405, 399, 111, 1506 406, 754, 0, 0, 443, 245, 0, 0, 3, 2, 1507 674, 436, 0, 533, 0, 756, 757, 495, 0, 298, 1508 298, 298, 0, 557, 559, 135, 0, 0, 220, 0, 1509 0, 0, 228, 229, 65, 0, 67, 70, 71, 0, 1510 133, 0, 0, 0, 699, 700, 696, 697, 465, 79, 1511 115, 130, 3, 114, 0, 28, 40, 3, 0, 37, 1512 110, 0, 3, 656, 660, 663, 655, 3, 598, 722, 1513 727, 2, 72, 298, 3, 3, 299, 0, 3, 628, 1514 632, 635, 644, 678, 682, 685, 298, 3, 627, 643, 1515 677, 298, 298, 431, 298, 298, 0, 0, 0, 0, 1516 261, 111, 0, 3, 3, 0, 468, 0, 464, 0, 1517 0, 250, 298, 0, 0, 134, 0, 0, 0, 0, 1518 0, 134, 0, 0, 114, 114, 21, 0, 0, 3, 1519 136, 137, 2, 148, 138, 139, 140, 141, 142, 143, 1520 150, 152, 0, 0, 0, 289, 298, 298, 553, 0, 1521 546, 298, 381, 383, 0, 397, 699, 392, 396, 393, 1522 386, 390, 373, 404, 0, 585, 2, 670, 669, 0, 1523 675, 2, 488, 490, 510, 3, 518, 519, 0, 2, 1524 514, 3, 3, 0, 0, 562, 227, 0, 0, 0, 1525 227, 0, 0, 702, 706, 708, 701, 754, 114, 0, 1526 3, 54, 0, 54, 54, 3, 42, 44, 39, 0, 1527 3, 109, 0, 2, 658, 659, 0, 298, 0, 0, 1528 0, 3, 644, 0, 2, 630, 631, 2, 646, 2, 1529 680, 681, 0, 0, 72, 0, 3, 3, 3, 3, 1530 416, 415, 419, 753, 2, 2, 752, 0, 0, 0, 1531 0, 3, 469, 3, 0, 248, 151, 3, 299, 298, 1532 0, 0, 0, 0, 2, 0, 196, 0, 194, 0, 1533 0, 0, 0, 0, 0, 0, 553, 0, 156, 153, 1534 298, 0, 0, 271, 283, 3, 3, 552, 619, 374, 1535 389, 402, 298, 270, 298, 0, 521, 498, 298, 0, 1536 0, 497, 512, 0, 0, 0, 221, 0, 230, 68, 1537 2, 704, 705, 0, 131, 128, 0, 51, 2, 45, 1538 52, 53, 0, 0, 0, 0, 27, 0, 661, 298, 1539 586, 730, 731, 732, 0, 683, 298, 298, 298, 3, 1540 3, 0, 691, 0, 0, 0, 0, 298, 298, 3, 1541 550, 475, 476, 0, 251, 299, 0, 0, 0, 0, 1542 298, 197, 195, 192, 0, 198, 0, 0, 0, 0, 1543 202, 205, 203, 199, 0, 200, 134, 40, 149, 147, 1544 249, 0, 0, 423, 427, 426, 0, 515, 2, 516, 1545 2, 517, 511, 298, 233, 0, 231, 0, 233, 298, 1546 36, 129, 55, 0, 43, 33, 2, 49, 2, 47, 1547 30, 3, 733, 3, 3, 3, 0, 0, 690, 692, 1548 633, 647, 273, 2, 413, 3, 412, 0, 478, 134, 1549 0, 0, 134, 3, 0, 134, 193, 0, 2, 2, 1550 214, 204, 0, 0, 0, 145, 0, 580, 620, 2, 1551 0, 0, 2, 234, 0, 0, 222, 0, 3, 3, 1552 0, 0, 0, 0, 0, 0, 693, 694, 298, 0, 1553 477, 157, 0, 0, 2, 170, 134, 159, 0, 187, 1554 0, 134, 0, 2, 161, 0, 2, 0, 2, 2, 1555 2, 201, 37, 298, 520, 522, 513, 0, 0, 0, 1556 0, 0, 0, 3, 3, 662, 634, 648, 684, 417, 1557 134, 163, 166, 0, 165, 169, 3, 172, 171, 0, 1558 134, 189, 134, 3, 0, 298, 0, 298, 0, 2, 1559 0, 2, 144, 2, 235, 236, 0, 232, 223, 707, 1560 46, 0, 0, 158, 0, 0, 168, 238, 173, 2, 1561 240, 188, 0, 191, 177, 206, 3, 215, 219, 208, 1562 3, 0, 298, 0, 298, 0, 0, 0, 50, 48, 1563 164, 167, 134, 0, 174, 298, 134, 134, 0, 178, 1564 0, 0, 698, 216, 217, 218, 0, 207, 3, 209, 1565 3, 298, 224, 237, 154, 175, 160, 134, 241, 190, 1566 185, 183, 179, 162, 134, 0, 699, 0, 0, 0, 1567 0, 155, 176, 186, 180, 184, 183, 181, 3, 3, 1568 0, 0, 499, 182, 210, 212, 3, 3, 211, 213 1473 0, 0, 0, 0, 0, 0, 0, 0, 2, 653, 1474 459, 650, 554, 554, 658, 486, 298, 2, 592, 593, 1475 0, 604, 605, 0, 747, 750, 298, 298, 0, 715, 1476 299, 719, 710, 711, 717, 0, 2, 2, 675, 554, 1477 757, 624, 554, 554, 757, 554, 638, 554, 554, 689, 1478 441, 672, 554, 554, 680, 687, 298, 436, 299, 0, 1479 0, 298, 725, 299, 730, 757, 722, 298, 727, 757, 1480 298, 298, 0, 0, 21, 2, 0, 22, 0, 466, 1481 755, 0, 0, 472, 246, 0, 298, 0, 0, 0, 1482 552, 576, 580, 582, 612, 615, 619, 622, 575, 614, 1483 0, 288, 665, 0, 298, 281, 0, 0, 0, 0, 1484 279, 2, 0, 264, 543, 298, 0, 0, 298, 2, 1485 370, 390, 379, 0, 0, 384, 378, 756, 0, 0, 1486 403, 0, 299, 3, 421, 3, 425, 424, 598, 0, 1487 538, 298, 72, 3, 298, 440, 299, 3, 434, 435, 1488 2, 0, 0, 0, 491, 310, 298, 0, 487, 489, 1489 3, 2, 2, 0, 509, 3, 0, 561, 134, 0, 1490 0, 227, 0, 0, 0, 0, 41, 0, 0, 298, 1491 24, 0, 25, 0, 699, 704, 455, 696, 554, 554, 1492 0, 114, 3, 2, 32, 0, 38, 0, 2, 29, 1493 0, 113, 81, 82, 83, 85, 86, 88, 89, 93, 1494 94, 91, 92, 96, 97, 99, 101, 103, 105, 107, 1495 0, 0, 298, 0, 0, 0, 654, 655, 651, 652, 1496 504, 503, 298, 0, 721, 298, 726, 299, 298, 669, 1497 712, 668, 2, 298, 0, 0, 0, 0, 0, 0, 1498 0, 0, 690, 0, 676, 627, 643, 677, 2, 623, 1499 630, 438, 625, 626, 439, 2, 637, 646, 639, 640, 1500 673, 674, 688, 716, 720, 718, 757, 272, 2, 752, 1501 2, 429, 724, 729, 430, 3, 408, 3, 3, 3, 1502 460, 0, 0, 2, 474, 471, 756, 0, 467, 2, 1503 470, 473, 0, 298, 247, 269, 3, 276, 278, 0, 1504 460, 2, 578, 579, 2, 617, 618, 0, 666, 544, 1505 3, 351, 350, 353, 352, 298, 545, 0, 546, 378, 1506 0, 0, 298, 0, 0, 699, 388, 391, 395, 554, 1507 395, 394, 387, 380, 554, 382, 385, 298, 405, 399, 1508 111, 406, 755, 0, 0, 443, 245, 0, 0, 3, 1509 2, 675, 436, 0, 534, 0, 757, 758, 496, 0, 1510 298, 298, 298, 0, 558, 560, 135, 0, 0, 220, 1511 0, 0, 0, 228, 229, 65, 0, 67, 70, 71, 1512 0, 133, 0, 0, 0, 700, 701, 697, 698, 465, 1513 79, 115, 130, 3, 114, 0, 28, 40, 3, 0, 1514 37, 110, 0, 3, 657, 661, 664, 656, 3, 599, 1515 723, 728, 2, 72, 298, 3, 3, 299, 0, 3, 1516 629, 633, 636, 645, 679, 683, 686, 298, 3, 628, 1517 644, 678, 298, 298, 431, 298, 298, 0, 0, 0, 1518 0, 261, 111, 0, 3, 3, 0, 468, 0, 464, 1519 0, 0, 250, 298, 0, 0, 134, 0, 0, 0, 1520 0, 0, 134, 0, 0, 114, 114, 21, 0, 0, 1521 3, 136, 137, 2, 148, 138, 139, 140, 141, 142, 1522 143, 150, 152, 0, 0, 0, 289, 298, 298, 554, 1523 0, 547, 298, 381, 383, 0, 397, 700, 392, 396, 1524 393, 386, 390, 373, 404, 0, 586, 2, 671, 670, 1525 0, 676, 2, 488, 490, 511, 3, 519, 520, 0, 1526 2, 515, 3, 3, 0, 0, 563, 227, 0, 0, 1527 0, 227, 0, 0, 703, 707, 709, 702, 755, 114, 1528 0, 3, 54, 0, 54, 54, 3, 42, 44, 39, 1529 0, 3, 109, 0, 2, 659, 660, 0, 298, 0, 1530 0, 0, 3, 645, 0, 2, 631, 632, 2, 647, 1531 2, 681, 682, 0, 0, 72, 0, 3, 3, 3, 1532 3, 416, 415, 419, 754, 2, 2, 753, 0, 0, 1533 0, 0, 3, 469, 3, 0, 248, 151, 3, 299, 1534 298, 0, 0, 0, 0, 2, 0, 196, 0, 194, 1535 0, 0, 0, 0, 0, 0, 0, 554, 0, 156, 1536 153, 298, 0, 0, 271, 283, 3, 3, 553, 620, 1537 374, 389, 402, 298, 270, 298, 0, 522, 499, 298, 1538 0, 0, 498, 513, 0, 0, 0, 221, 0, 230, 1539 68, 2, 705, 706, 0, 131, 128, 0, 51, 2, 1540 45, 52, 53, 0, 0, 0, 0, 27, 0, 662, 1541 298, 587, 731, 732, 733, 0, 684, 298, 298, 298, 1542 3, 3, 0, 692, 0, 0, 0, 0, 298, 298, 1543 3, 551, 475, 476, 0, 251, 299, 0, 0, 0, 1544 0, 298, 197, 195, 192, 0, 198, 0, 0, 0, 1545 0, 202, 205, 203, 199, 0, 200, 134, 40, 149, 1546 147, 249, 0, 0, 423, 427, 426, 0, 516, 2, 1547 517, 2, 518, 512, 298, 233, 0, 231, 0, 233, 1548 298, 36, 129, 55, 0, 43, 33, 2, 49, 2, 1549 47, 30, 3, 734, 3, 3, 3, 0, 0, 691, 1550 693, 634, 648, 273, 2, 413, 3, 412, 0, 478, 1551 134, 0, 0, 134, 3, 0, 134, 193, 0, 2, 1552 2, 214, 204, 0, 0, 0, 145, 0, 581, 621, 1553 2, 0, 0, 2, 234, 0, 0, 222, 0, 3, 1554 3, 0, 0, 0, 0, 0, 0, 694, 695, 298, 1555 0, 477, 157, 0, 0, 2, 170, 134, 159, 0, 1556 187, 0, 134, 0, 2, 161, 0, 2, 0, 2, 1557 2, 2, 201, 37, 298, 521, 523, 514, 0, 0, 1558 0, 0, 0, 0, 3, 3, 663, 635, 649, 685, 1559 417, 134, 163, 166, 0, 165, 169, 3, 172, 171, 1560 0, 134, 189, 134, 3, 0, 298, 0, 298, 0, 1561 2, 0, 2, 144, 2, 235, 236, 0, 232, 223, 1562 708, 46, 0, 0, 158, 0, 0, 168, 238, 173, 1563 2, 240, 188, 0, 191, 177, 206, 3, 215, 219, 1564 208, 3, 0, 298, 0, 298, 0, 0, 0, 50, 1565 48, 164, 167, 134, 0, 174, 298, 134, 134, 0, 1566 178, 0, 0, 699, 216, 217, 218, 0, 207, 3, 1567 209, 3, 298, 224, 237, 154, 175, 160, 134, 241, 1568 190, 185, 183, 179, 162, 134, 0, 700, 0, 0, 1569 0, 0, 155, 176, 186, 180, 184, 183, 181, 3, 1570 3, 0, 0, 500, 182, 210, 212, 3, 3, 211, 1571 213 1569 1572 }; 1570 1573 … … 1572 1575 static const yytype_int16 yydefgoto[] = 1573 1576 { 1574 -1, 80 2, 466, 303, 49, 135, 136, 304, 305, 306,1575 307, 308, 75 4, 755, 1115, 1116, 1117, 1227, 309, 380,1577 -1, 803, 466, 303, 49, 135, 136, 304, 305, 306, 1578 307, 308, 755, 756, 1116, 1117, 1118, 1228, 309, 380, 1576 1579 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 1577 321, 322, 323, 101 2, 516, 961, 545, 325, 962, 935,1578 103 8, 1504, 1040, 1041, 1042, 1043, 1505, 1044, 1045, 1422,1579 142 3, 1385, 1386, 1387, 1483, 1484, 1488, 1489, 1524, 1525,1580 104 6, 1344, 1047, 1048, 1280, 1281, 1282, 1466, 1049, 147,1581 94 1, 942, 943, 1364, 1446, 1458, 1459, 467, 468, 862,1582 86 3, 1020, 53, 54, 55, 56, 57, 347, 159, 60,1580 321, 322, 323, 1013, 517, 962, 546, 325, 963, 936, 1581 1039, 1505, 1041, 1042, 1043, 1044, 1506, 1045, 1046, 1423, 1582 1424, 1386, 1387, 1388, 1484, 1485, 1489, 1490, 1525, 1526, 1583 1047, 1345, 1048, 1049, 1281, 1282, 1283, 1467, 1050, 147, 1584 942, 943, 944, 1365, 1447, 1459, 1460, 467, 468, 863, 1585 864, 1021, 53, 54, 55, 56, 57, 347, 159, 60, 1583 1586 61, 62, 63, 64, 349, 66, 67, 265, 69, 70, 1584 1587 275, 351, 352, 73, 74, 75, 120, 77, 205, 354, 1585 121, 80, 122, 82, 83, 453, 84, 452, 68 1, 682,1586 68 3, 895, 1067, 896, 85, 86, 456, 454, 689, 844,1587 84 5, 357, 358, 692, 693, 694, 359, 360, 361, 362,1588 464, 178, 137, 138, 52 0, 327, 171, 638, 639, 640,1589 64 1, 642, 87, 123, 89, 487, 488, 927, 489, 278,1590 49 3, 328, 90, 139, 140, 91, 1303, 1089, 1090, 1091,1591 109 2, 92, 93, 710, 94, 274, 95, 96, 188, 1014,1592 67 2, 411, 127, 97, 499, 500, 501, 189, 269, 191,1588 121, 80, 122, 82, 83, 453, 84, 452, 682, 683, 1589 684, 896, 1068, 897, 85, 86, 456, 454, 690, 845, 1590 846, 357, 358, 693, 694, 695, 359, 360, 361, 362, 1591 464, 178, 137, 138, 521, 327, 171, 639, 640, 641, 1592 642, 643, 87, 123, 89, 488, 489, 928, 490, 278, 1593 494, 328, 90, 139, 140, 91, 1304, 1090, 1091, 1092, 1594 1093, 92, 93, 711, 94, 274, 95, 96, 188, 1015, 1595 673, 411, 127, 97, 500, 501, 502, 189, 269, 191, 1593 1596 192, 193, 270, 100, 101, 102, 103, 104, 105, 106, 1594 196, 197, 198, 199, 200, 81 4, 600, 601, 602, 603,1595 201, 60 5, 606, 607, 569, 570, 571, 572, 744, 107,1596 6 09, 610, 611, 612, 613, 614, 955, 746, 747, 748,1597 59 0, 365, 366, 367, 368, 329, 165, 109, 110, 111,1598 370, 68 7, 7171597 196, 197, 198, 199, 200, 815, 601, 602, 603, 604, 1598 201, 606, 607, 608, 570, 571, 572, 573, 745, 107, 1599 610, 611, 612, 613, 614, 615, 956, 747, 748, 749, 1600 591, 365, 366, 367, 368, 329, 165, 109, 110, 111, 1601 370, 688, 718 1599 1602 }; 1600 1603 1601 1604 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1602 1605 STATE-NUM. */ 1603 #define YYPACT_NINF -126 71606 #define YYPACT_NINF -1263 1604 1607 static const yytype_int16 yypact[] = 1605 1608 { 1606 5235, 8510, -1267, -14, -1267, -1267, -1267, -1267, -1267, -1267, 1607 -1267, -27, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1608 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 84, 84, 1609 84, 1541, 905, 123, 6677, 163, -1267, -1267, -1267, -1267, 1610 -1267, 157, -1267, -1267, -1267, 1043, 81, -1267, -1267, -1267, 1611 -1267, 4048, -1267, -1267, -1267, -1267, 225, 198, -1267, 1956, 1612 -1267, -1267, -1267, -1267, 217, 1716, 371, 37, 6797, -1267, 1613 -1267, 4048, 829, -1267, -1267, 1101, 380, 3172, 661, 839, 1614 1101, 977, -1267, -1267, 1289, 340, -1267, 1101, 1140, -1267, 1615 273, -1267, 439, 447, -1267, -1267, -1267, -1267, 337, 198, 1616 84, -1267, 84, -1267, -1267, -1267, -1267, 7269, 1956, -1267, 1617 -1267, 1956, -1267, 325, -1267, 7582, -1267, -1267, 2178, 8744, 1618 -1267, 675, 675, 675, -1267, -1267, -1267, 84, -1267, -1267, 1619 -1267, 360, 395, 436, -1267, -1267, -1267, 466, -1267, -1267, 1620 -1267, -1267, -1267, 503, 515, -1267, -1267, 272, 8119, 1675, 1621 307, 370, 377, 524, 565, 568, 580, 8828, 6307, 594, 1622 -1267, 4677, -1267, -1267, -1267, -1267, 613, -1267, 271, 9583, 1623 9583, -1267, 610, 339, -1267, -1267, -1267, -1267, 618, 379, 1624 421, 468, 84, 603, -1267, -1267, 1716, 2591, 687, -1267, 1625 90, -1267, 84, 84, 198, -1267, -1267, 91, -1267, 84, 1626 84, -1267, 2973, 652, 657, 675, 6831, -1267, -1267, -1267, 1627 4048, -1267, -1267, 1101, -1267, -1267, -1267, 198, -1267, 1956, 1628 225, -1267, 7235, -1267, 675, 675, 675, 198, -1267, 1541, 1629 -1267, 3826, -1267, -1267, 642, 675, -1267, 675, -1267, 157, 1630 8119, -1267, 665, -1267, 905, 685, 675, -1267, 1541, 689, 1631 710, -1267, 6677, 291, -1267, -1267, -1267, 8477, -1267, -1267, 1632 4354, -1267, 687, 8, 9760, 8744, 2178, 2973, -1267, 101, 1633 -1267, -1267, 7582, 1956, 740, 10515, -1267, -1267, 378, -1267, 1634 10178, 730, 705, 9819, 773, 9760, 9878, -1267, 794, -1267, 1635 -1267, -1267, -1267, -1267, -1267, 9937, 9937, 7885, 81, -1267, 1636 -1267, -1267, -1267, -1267, -1267, -1267, 834, -1267, 1184, 2546, 1637 8119, 9760, -1267, 525, 415, 844, 338, 853, 823, 831, 1638 841, 886, 56, -1267, -1267, -1267, 518, -1267, 528, -1267, 1639 -1267, 1675, -1267, -1267, 456, 900, -1267, 490, 900, -1267, 1640 -1267, 7269, -1267, 940, 946, 8236, -1267, -1267, 536, 1525, 1641 7667, 6831, 1101, -1267, 1101, 675, 675, -1267, -1267, -1267, 1642 -1267, -1267, -1267, 675, 7269, 1956, -1267, -1267, 8828, 1786, 1643 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9524, 1644 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1645 -1267, -1267, -1267, -1267, -1267, 2178, -1267, 446, 945, 961, 1646 968, 800, 973, 976, 981, 2591, -1267, -1267, 939, 225, 1647 982, -1267, -1267, 987, -1267, -1267, -1267, 8477, -1267, -1267, 1648 -1267, -1267, -1267, 2973, -1267, 8119, 8119, -1267, 675, 2178, 1649 10547, 7742, -1267, -1267, -1267, -1267, 8477, 8, -1267, -1267, 1650 1101, 198, -1267, -1267, 8477, -1267, 5404, -1267, -1267, 675, 1651 675, 579, 8594, 994, 993, 983, 998, 675, -1267, -1267, 1652 -1267, -1267, 9019, -1267, 616, 10212, -1267, 198, 1004, -1267, 1653 2178, 10298, 9996, -1267, -1267, -1267, -1267, 843, 2973, -1267, 1654 7742, 687, 5806, -1267, -1267, -1267, 1900, 626, 990, 905, 1655 10515, 1647, 7582, -1267, 10515, -1267, -1267, -1267, -1267, 627, 1656 -1267, 1013, 705, 154, 7885, -1267, 8860, -1267, -1267, 7885, 1657 -1267, 8002, 7885, -1267, -1267, 81, -1267, 640, 1015, 658, 1658 1021, -1267, -1267, 6061, -1267, -1267, 315, -1267, -1267, 9760, 1659 -1267, 368, 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1660 -1267, -1267, -1267, -1267, -1267, 9760, -1267, -1267, 9760, 9760, 1661 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 1662 9760, 9760, 9760, 9760, 9760, 9760, 3432, 518, 1212, -1267, 1663 -1267, 84, 84, -1267, -1267, 8119, -1267, -1267, 987, 291, 1664 -1267, 987, 10055, -1267, -1267, 8828, 6061, 1020, -1267, 8744, 1665 -1267, -1267, 613, -1267, 1023, 1793, 1025, 1950, 136, 990, 1666 -1267, 84, 84, 990, 407, -1267, 84, 84, 987, -1267, 1667 -1267, 84, 84, -1267, 900, 8944, 1956, 10447, 356, 541, 1668 8944, -1267, 4354, -1267, 990, -1267, 7269, -1267, 126, 7354, 1669 7354, 1956, 9642, 1003, -1267, 789, 1008, 1010, -1267, 1026, 1670 9583, 449, -1267, 1114, 1956, 7354, 291, 2178, 291, 687, 1671 707, 900, -1267, -1267, 766, 900, -1267, -1267, -1267, 705, 1672 -1267, 900, 198, 9019, -1267, 643, 1041, 647, 1045, -1267, 1673 940, 198, -1267, -1267, 8477, 198, 1042, 8860, 81, -1267, 1674 1307, -1267, 471, 481, 905, -1267, 905, 1047, 9760, -1267, 1675 905, 10447, -1267, -1267, 1056, -1267, -1267, -1267, 291, -1267, 1676 10373, 946, -1267, 7354, 694, 7667, -1267, -1267, 613, 1052, 1677 1057, 1900, 2267, -1267, -1267, 10515, 9760, -1267, -1267, 1055, 1678 -1267, -1267, 1048, -1267, 1055, 1063, 10178, 9760, 1046, 1051, 1679 117, 1065, 1062, 1070, 1074, -1267, 1081, 1082, 6061, -1267, 1680 9760, -1267, 658, 1520, -1267, -1267, -1267, 84, 84, 9701, 1681 9760, 1077, -1267, -1267, 679, -1267, 9760, -1267, -1267, 821, 1682 -1267, -1267, -1267, -1267, 525, 525, 415, 415, 844, 844, 1683 844, 844, 338, 338, 853, 823, 831, 841, 886, 9760, 1684 397, 9019, 1085, 1086, 1087, 1212, -1267, -1267, -1267, -1267, 1685 -1267, 9019, 691, -1267, 7269, -1267, 6430, 8353, -1267, -1267, 1686 -1267, 1793, 9019, 856, 1089, 1091, 1092, 1093, 1096, 1098, 1687 1104, -1267, 3291, 1950, -1267, -1267, -1267, -1267, -1267, -1267, 1688 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1689 -1267, 987, -1267, -1267, -1267, 990, -1267, -1267, -1267, -1267, 1690 -1267, -1267, -1267, -1267, -1267, -1267, 1105, 1106, -1267, 225, 1691 1077, 9642, -1267, -1267, -1267, 9524, 1108, -1267, -1267, -1267, 1692 -1267, 905, 5524, 1197, -1267, -1267, -1267, -1267, 1095, 225, 1693 -1267, -1267, 987, -1267, -1267, 987, 1117, 987, -1267, -1267, 1694 -1267, -1267, -1267, -1267, 6307, -1267, 198, -1267, -1267, 505, 1695 507, 6307, 1549, 9760, 2098, -1267, -1267, 1099, 38, 1099, 1696 -1267, 905, -1267, 84, -1267, -1267, 8627, 983, -1267, -1267, 1697 -1267, 993, 1120, 1115, -1267, -1267, 1122, 1123, -1267, 694, 1698 1698, -1267, 576, -1267, 2267, 990, -1267, -1267, 1126, 10515, 1699 7582, 8119, 1129, -1267, -1267, 1125, 1135, 1118, -1267, 9760, 1700 1141, 190, 1136, -1267, 1142, 291, 1142, -1267, -1267, 1142, 1701 -1267, 1147, 1152, 1154, 1520, -1267, -1267, -1267, 9524, -1267, 1702 -1267, -1267, 1163, 9760, 986, -1267, 9760, -1267, 986, -1267, 1703 -1267, 9760, -1267, 894, 900, -1267, -1267, -1267, -1267, -1267, 1704 -1267, -1267, 946, 8236, -1267, -1267, 6553, 1171, -1267, 898, 1705 900, -1267, 920, 936, 900, -1267, 675, 7112, -1267, -1267, 1706 -1267, 9019, 9019, -1267, 7742, 7742, 1172, 1167, 1168, 1175, 1707 -1267, 670, 111, 1077, -1267, 986, -1267, 9583, -1267, 9760, 1708 540, -1267, 5932, 1180, 1181, 9465, 1182, 1185, -8, 40, 1709 86, 9760, 1191, 198, 9760, 9760, 1177, 585, 1169, -1267, 1710 -1267, -1267, 1187, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1711 -1267, -1267, 905, 1195, 9760, -1267, 9019, 9019, 84, 1201, 1712 -1267, 8711, -1267, -1267, 862, -1267, 2098, -1267, -1267, -1267, 1713 -1267, 1307, -1267, -1267, 1198, -1267, -1267, -1267, -1267, 1202, 1714 1698, -1267, -1267, 1196, -1267, 1055, -1267, -1267, 2178, 1210, 1715 -1267, -1267, -1267, 704, 1217, -1267, 117, 1214, 9760, 1200, 1716 117, 117, 1224, 950, 900, -1267, -1267, 1026, 9760, 1230, 1717 1163, -1267, 943, -1267, -1267, 1220, -1267, 78, -1267, 1231, 1718 1220, -1267, 1234, -1267, -1267, 987, 1236, 6184, 1235, 1239, 1719 1241, -1267, -1267, 1238, -1267, -1267, 987, -1267, -1267, -1267, 1720 -1267, 987, 9760, 9760, 946, 1243, -1267, -1267, -1267, -1267, 1721 -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9760, 9760, 1244, 1722 1248, 1220, -1267, -1267, 905, -1267, -1267, -1267, 7070, 7582, 1723 9760, 9760, 1318, 9760, -1267, 1233, -1267, 1246, -1267, 1250, 1724 9760, 1254, 9760, 938, 1255, 47, 84, 1805, -1267, -1267, 1725 5524, 1256, 554, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1726 -1267, -1267, 9281, -1267, 7742, 1260, -1267, -1267, 7582, 555, 1727 561, -1267, 1273, 1262, 705, 1283, -1267, 256, -1267, -1267, 1728 -1267, -1267, 987, 1282, -1267, -1267, 1288, 1321, -1267, -1267, 1729 1321, 1321, 986, 1292, 1699, 1866, -1267, 1295, -1267, 9019, 1730 -1267, -1267, -1267, -1267, 1298, -1267, 9019, 9019, 9019, -1267, 1731 -1267, 1300, -1267, 1301, 1310, 1311, 725, 7429, 7548, -1267, 1732 -1267, -1267, -1267, 1305, -1267, 7817, 709, 755, 1317, 758, 1733 5667, -1267, -1267, -1267, 582, -1267, 768, 1319, 1323, 198, 1734 1369, 935, -1267, -1267, 9760, -1267, 9465, 9760, -1267, -1267, 1735 -1267, 1320, 1326, -1267, -1267, -1267, 1324, -1267, -1267, -1267, 1736 -1267, -1267, -1267, 7582, 705, 1330, -1267, 1313, 705, 9019, 1737 -1267, -1267, -1267, 986, -1267, -1267, -1267, -1267, -1267, -1267, 1738 -1267, -1267, -1267, -1267, -1267, -1267, 1337, 1340, -1267, -1267, 1739 -1267, -1267, -1267, -1267, -1267, 1343, -1267, 1342, -1267, 9465, 1740 276, 9760, 9465, -1267, 1346, 9760, -1267, 281, 1361, 1363, 1741 -1267, -1267, 1355, 1356, 1339, -1267, 901, -1267, -1267, -1267, 1742 1956, 2178, 1347, -1267, 401, 9760, -1267, 783, -1267, 1220, 1743 986, 986, 1362, 1364, 1365, 1367, -1267, -1267, 7742, 1357, 1744 -1267, 1438, 9760, 1352, -1267, -1267, 9375, -1267, 791, -1267, 1745 1360, 9465, 1368, -1267, -1267, 1386, -1267, 1389, -1267, 1407, 1746 1409, -1267, 1376, 7582, -1267, -1267, -1267, 705, 291, 1403, 1747 1382, 1405, 1404, 1220, 1220, -1267, -1267, -1267, -1267, -1267, 1748 9465, 240, -1267, 474, -1267, -1267, 6917, -1267, -1267, 1385, 1749 9760, -1267, 9760, 6917, 198, 8860, 198, 8860, 1410, -1267, 1750 1411, -1267, -1267, 1408, -1267, -1267, 802, -1267, -1267, -1267, 1751 -1267, 1422, 1423, -1267, 9760, 9760, -1267, -1267, 979, 59, 1752 -1267, -1267, 1390, -1267, 979, -1267, -1267, 2042, 291, -1267, 1753 -1267, 198, 8860, 198, 8860, 1427, 1412, 291, -1267, -1267, 1754 -1267, -1267, 9375, 1425, 979, 6995, 9760, 9285, 1426, 979, 1755 1435, 2042, 2360, -1267, -1267, -1267, 1436, -1267, -1267, -1267, 1756 -1267, 8119, -1267, -1267, -1267, 9148, -1267, 9375, -1267, -1267, 1757 1416, 9058, -1267, -1267, 9285, 198, 2360, 198, 1441, 1445, 1758 814, -1267, 9148, -1267, -1267, -1267, 9058, -1267, -1267, -1267, 1759 198, 198, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267 1609 6864, 4432, -1263, 10, -1263, -1263, -1263, -1263, -1263, -1263, 1610 -1263, -12, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 1611 -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 67, 67, 1612 67, 564, 950, 20, 6985, 166, -1263, -1263, -1263, -1263, 1613 -1263, 71, -1263, -1263, -1263, 1431, 111, -1263, -1263, -1263, 1614 -1263, 3253, -1263, -1263, -1263, -1263, 83, 193, -1263, 1119, 1615 -1263, -1263, -1263, -1263, 213, 1691, 349, 98, 7106, -1263, 1616 -1263, 3253, 817, -1263, -1263, 596, 492, 5210, 1011, 1044, 1617 596, 1122, -1263, -1263, 838, 957, -1263, 596, 1203, -1263, 1618 236, -1263, 406, 508, -1263, -1263, -1263, -1263, 429, 193, 1619 67, -1263, 67, -1263, -1263, -1263, -1263, 4697, 1119, -1263, 1620 -1263, 1119, -1263, 434, -1263, 7806, -1263, -1263, 2149, 8896, 1621 -1263, 644, 644, 644, -1263, -1263, -1263, 67, -1263, -1263, 1622 -1263, 436, 458, 468, -1263, -1263, -1263, 480, -1263, -1263, 1623 -1263, -1263, -1263, 498, 503, -1263, -1263, 77, 8347, 2436, 1624 255, 519, 522, 535, 547, 585, 603, 8929, 6488, 597, 1625 -1263, 4574, -1263, -1263, -1263, -1263, 608, -1263, -37, 5487, 1626 5487, -1263, 539, 241, -1263, -1263, -1263, -1263, 624, 287, 1627 313, 327, 67, 621, -1263, -1263, 1691, 2813, 734, -1263, 1628 120, -1263, 67, 67, 193, -1263, -1263, 204, -1263, 67, 1629 67, -1263, 2931, 664, 675, 644, 6274, -1263, -1263, -1263, 1630 3253, -1263, -1263, 596, -1263, -1263, -1263, 193, -1263, 1119, 1631 83, -1263, 7457, -1263, 644, 644, 644, 193, -1263, 564, 1632 -1263, 3379, -1263, -1263, 671, 644, -1263, 644, -1263, 71, 1633 8347, -1263, 715, -1263, 950, 724, 644, -1263, 564, 704, 1634 714, -1263, 6985, 544, -1263, -1263, -1263, 8708, -1263, -1263, 1635 8263, -1263, 734, 123, 9697, 8896, 2149, 2931, -1263, 205, 1636 -1263, -1263, 7806, 1119, 738, 5343, -1263, -1263, 211, -1263, 1637 10116, 739, 650, 9756, 757, 9697, 9815, -1263, 763, -1263, 1638 -1263, -1263, -1263, -1263, -1263, 9874, 9874, 8111, 111, -1263, 1639 -1263, -1263, -1263, -1263, -1263, -1263, 795, -1263, 1259, 2219, 1640 8347, 9697, -1263, 496, 315, 375, 430, 719, 760, 770, 1641 771, 807, 114, -1263, -1263, -1263, 814, -1263, 402, -1263, 1642 -1263, 2436, -1263, -1263, 104, 792, -1263, 372, 792, -1263, 1643 -1263, 4697, -1263, 802, 812, 8465, -1263, -1263, 721, 1811, 1644 7892, 6274, 596, -1263, 596, 644, 644, -1263, -1263, -1263, 1645 -1263, -1263, -1263, 644, 4697, 1119, -1263, -1263, 8929, 1749, 1646 -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 4858, 1647 9697, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 1648 -1263, -1263, -1263, -1263, -1263, 2149, -1263, 677, 823, 827, 1649 829, 862, 831, 834, 836, 2813, -1263, -1263, 842, 83, 1650 841, -1263, -1263, 837, -1263, -1263, -1263, 8708, -1263, -1263, 1651 -1263, -1263, -1263, 2931, -1263, 8347, 8347, -1263, 644, 2149, 1652 6398, 7967, -1263, -1263, -1263, -1263, 8708, 123, -1263, -1263, 1653 596, 193, -1263, -1263, 8708, -1263, 5038, -1263, -1263, 644, 1654 644, 474, 8741, 848, 849, 824, 850, 644, -1263, -1263, 1655 -1263, -1263, 9167, -1263, 507, 10150, -1263, 193, 853, -1263, 1656 2149, 10237, 9933, -1263, -1263, -1263, -1263, 898, 2931, -1263, 1657 7967, 734, 5424, -1263, -1263, -1263, -1263, 1676, 514, 844, 1658 950, 5343, 1027, 7806, -1263, 5343, -1263, -1263, -1263, -1263, 1659 545, -1263, 859, 650, 244, 8111, -1263, 9014, -1263, -1263, 1660 8111, -1263, 8229, 8111, -1263, -1263, 111, -1263, 548, 867, 1661 926, 872, -1263, -1263, 6240, -1263, -1263, 387, -1263, -1263, 1662 9697, -1263, 467, 9697, -1263, -1263, -1263, -1263, -1263, -1263, 1663 -1263, -1263, -1263, -1263, -1263, -1263, 9697, -1263, -1263, 9697, 1664 9697, 9697, 9697, 9697, 9697, 9697, 9697, 9697, 9697, 9697, 1665 9697, 9697, 9697, 9697, 9697, 9697, 9697, 4047, 814, 1636, 1666 -1263, -1263, 67, 67, -1263, -1263, 8347, -1263, -1263, 837, 1667 544, -1263, 837, 9992, -1263, -1263, 8929, 6240, 873, -1263, 1668 8896, -1263, -1263, 608, -1263, 880, 787, 882, 2301, 259, 1669 844, -1263, 67, 67, 844, 286, -1263, 67, 67, 837, 1670 -1263, -1263, 67, 67, -1263, 792, 9047, 1119, 10388, 450, 1671 493, 9047, -1263, 8263, -1263, 844, -1263, 4697, -1263, -35, 1672 7577, 7577, 1119, 5632, 869, -1263, 326, 874, 889, -1263, 1673 881, 5487, 342, -1263, 977, 1119, 7577, 544, 2149, 544, 1674 734, 382, 792, -1263, -1263, 405, 792, -1263, -1263, -1263, 1675 650, -1263, 792, 193, 9167, -1263, 570, 918, 602, 921, 1676 -1263, 802, 193, -1263, -1263, 8708, 193, 940, 9014, 111, 1677 -1263, 1310, -1263, 353, 395, 950, -1263, 950, 941, 9697, 1678 -1263, 950, 10388, -1263, -1263, 948, -1263, -1263, -1263, 544, 1679 -1263, 10313, 812, -1263, 7577, 987, 7892, -1263, -1263, 608, 1680 955, 960, 1676, 3085, -1263, -1263, 5343, 9697, -1263, -1263, 1681 947, -1263, -1263, 956, -1263, 947, 967, 10116, 9697, 949, 1682 954, 180, 972, 975, 984, 993, -1263, 1002, 1005, 6240, 1683 -1263, 9697, -1263, 926, 1965, -1263, -1263, -1263, 67, 67, 1684 9638, 9697, 992, -1263, -1263, 615, -1263, 9697, -1263, -1263, 1685 711, -1263, -1263, -1263, -1263, 496, 496, 315, 315, 375, 1686 375, 375, 375, 430, 430, 719, 760, 770, 771, 807, 1687 9697, 330, 9167, 1006, 1007, 1008, 1636, -1263, -1263, -1263, 1688 -1263, -1263, 9167, 620, -1263, 4697, -1263, 6612, 8583, -1263, 1689 -1263, -1263, 787, 9167, 937, 1012, 1014, 1022, 1023, 1024, 1690 1029, 1036, -1263, 3424, 2301, -1263, -1263, -1263, -1263, -1263, 1691 -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 1692 -1263, -1263, 837, -1263, -1263, -1263, 844, -1263, -1263, -1263, 1693 -1263, -1263, -1263, -1263, -1263, -1263, -1263, 1039, 1043, -1263, 1694 83, 992, 5632, -1263, -1263, -1263, 4858, 1042, -1263, -1263, 1695 -1263, -1263, 950, 5809, 1095, -1263, -1263, -1263, -1263, 1030, 1696 83, -1263, -1263, 837, -1263, -1263, 837, 1048, 837, -1263, 1697 -1263, -1263, -1263, -1263, -1263, 6488, -1263, 193, -1263, -1263, 1698 407, 410, 6488, 2038, 9697, 2697, -1263, -1263, 1037, 53, 1699 1037, -1263, 950, -1263, 67, -1263, -1263, 8781, 824, -1263, 1700 -1263, -1263, 849, 1059, 1021, -1263, -1263, 1062, 1063, -1263, 1701 987, 2296, -1263, 528, -1263, 3085, 844, -1263, -1263, 1071, 1702 5343, 7806, 8347, 1073, -1263, -1263, 1074, 1084, 1066, -1263, 1703 9697, 1088, 282, 1083, -1263, 1091, 544, 1091, -1263, -1263, 1704 1091, -1263, 1097, 1105, 1115, 1965, -1263, -1263, -1263, 4858, 1705 -1263, -1263, -1263, 1113, 9697, 605, -1263, 9697, -1263, 605, 1706 -1263, -1263, 9697, -1263, 424, 792, -1263, -1263, -1263, -1263, 1707 -1263, -1263, -1263, 812, 8465, -1263, -1263, 6736, 1120, -1263, 1708 568, 792, -1263, 594, 631, 792, -1263, 644, 3969, -1263, 1709 -1263, -1263, 9167, 9167, -1263, 7967, 7967, 1123, 1118, 1127, 1710 1125, -1263, 558, 212, 992, -1263, 605, -1263, 5487, -1263, 1711 9697, 420, -1263, 6116, 1129, 1135, 9579, 1136, 1137, 146, 1712 206, 181, 9697, 1140, 193, 9697, 9697, 1106, 305, 1124, 1713 -1263, -1263, -1263, 1143, -1263, -1263, -1263, -1263, -1263, -1263, 1714 -1263, -1263, -1263, 950, 1141, 9697, -1263, 9167, 9167, 67, 1715 1150, -1263, 8856, -1263, -1263, 722, -1263, 2697, -1263, -1263, 1716 -1263, -1263, 1310, -1263, -1263, 1148, -1263, -1263, -1263, -1263, 1717 1154, 2296, -1263, -1263, 1139, -1263, 947, -1263, -1263, 2149, 1718 1158, -1263, -1263, -1263, 627, 1151, -1263, 180, 1138, 9697, 1719 1146, 180, 180, 1165, 653, 792, -1263, -1263, 881, 9697, 1720 1164, 1113, -1263, 1068, -1263, -1263, 1163, -1263, 219, -1263, 1721 1168, 1163, -1263, 1171, -1263, -1263, 837, 1173, 6364, 1172, 1722 1175, 1177, -1263, -1263, 1180, -1263, -1263, 837, -1263, -1263, 1723 -1263, -1263, 837, 9697, 9697, 812, 1179, -1263, -1263, -1263, 1724 -1263, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 9697, 9697, 1725 1182, 1184, 1163, -1263, -1263, 950, -1263, -1263, -1263, 7382, 1726 7806, 9697, 9697, 1240, 9697, -1263, 1160, -1263, 1170, -1263, 1727 1174, 9697, 1178, 9697, 1032, 1185, 59, 67, 1380, -1263, 1728 -1263, 5809, 1189, 442, -1263, -1263, -1263, -1263, -1263, -1263, 1729 -1263, -1263, -1263, 9395, -1263, 7967, 1190, -1263, -1263, 7806, 1730 454, 456, -1263, 1197, 1193, 650, 1210, -1263, 295, -1263, 1731 -1263, -1263, -1263, 837, 1213, -1263, -1263, 1220, 1252, -1263, 1732 -1263, 1252, 1252, 605, 1222, 1144, 1570, -1263, 1237, -1263, 1733 9167, -1263, -1263, -1263, -1263, 1238, -1263, 9167, 9167, 9167, 1734 -1263, -1263, 1239, -1263, 1241, 1242, 1245, 586, 7652, 7772, 1735 -1263, -1263, -1263, -1263, 1244, -1263, 8042, 635, 640, 1249, 1736 662, 5981, -1263, -1263, -1263, 460, -1263, 666, 1250, 1251, 1737 193, 1306, 785, -1263, -1263, 9697, -1263, 9579, 9697, -1263, 1738 -1263, -1263, 1255, 1257, -1263, -1263, -1263, 1262, -1263, -1263, 1739 -1263, -1263, -1263, -1263, 7806, 650, 1270, -1263, 1254, 650, 1740 9167, -1263, -1263, -1263, 605, -1263, -1263, -1263, -1263, -1263, 1741 -1263, -1263, -1263, -1263, -1263, -1263, -1263, 1278, 1279, -1263, 1742 -1263, -1263, -1263, -1263, -1263, -1263, 1282, -1263, 1284, -1263, 1743 9579, 89, 9697, 9579, -1263, 1287, 9697, -1263, 136, 1302, 1744 1311, -1263, -1263, 1297, 1299, 1280, -1263, 753, -1263, -1263, 1745 -1263, 1119, 2149, 1300, -1263, 338, 9697, -1263, 667, -1263, 1746 1163, 605, 605, 1314, 1315, 1320, 1328, -1263, -1263, 7967, 1747 1304, -1263, 1376, 9697, 1309, -1263, -1263, 9489, -1263, 690, 1748 -1263, 1313, 9579, 1321, -1263, -1263, 1331, -1263, 1333, -1263, 1749 1351, 1361, -1263, 1337, 7806, -1263, -1263, -1263, 650, 544, 1750 1362, 1339, 1365, 1364, 1163, 1163, -1263, -1263, -1263, -1263, 1751 -1263, 9579, 234, -1263, 427, -1263, -1263, 7227, -1263, -1263, 1752 1346, 9697, -1263, 9697, 7227, 193, 9014, 193, 9014, 1369, 1753 -1263, 1370, -1263, -1263, 1367, -1263, -1263, 697, -1263, -1263, 1754 -1263, -1263, 1371, 1373, -1263, 9697, 9697, -1263, -1263, 839, 1755 85, -1263, -1263, 1358, -1263, 839, -1263, -1263, 2097, 544, 1756 -1263, -1263, 193, 9014, 193, 9014, 1387, 1366, 544, -1263, 1757 -1263, -1263, -1263, 9489, 1384, 839, 7306, 9697, 9399, 1388, 1758 839, 1392, 2097, 3030, -1263, -1263, -1263, 1399, -1263, -1263, 1759 -1263, -1263, 8347, -1263, -1263, -1263, 9261, -1263, 9489, -1263, 1760 -1263, 1378, 9171, -1263, -1263, 9399, 193, 3030, 193, 1401, 1761 1403, 712, -1263, 9261, -1263, -1263, -1263, 9171, -1263, -1263, 1762 -1263, 193, 193, -1263, -1263, -1263, -1263, -1263, -1263, -1263, 1763 -1263 1760 1764 }; 1761 1765 … … 1763 1767 static const yytype_int16 yypgoto[] = 1764 1768 { 1765 -126 7, 4051, 2784, -1267, 133, -1267, 1353, 867, -240, -1267,1766 -126 7, 504, -528, -489, -834, -1001, -1267, -77, 4776, 0,1767 -126 7, 793, 489, 531, 722, 534, 999, 1001, 1005, 1007,1768 1002, -1267, 711, -584, 4023, -739, -1267, -1267, 606, -227,1769 -6 74, -263, -1267, 335, -1267, 382, -963, -1267, -1267, 119,1770 -126 7, -732, -1049, 228, -1267, -1267, -1267, -1267, 54, -1266,1771 -126 7, -1267, -1267, -1267, -1267, -1267, 302, -1050, 23, -1267,1772 - 171, -1267, 482, 277, -1267, 153, -1267, -355, -1267, -1267,1773 -126 7, 538, -612, -1267, -1267, 9, -990, 219, 2319, -1267,1774 -126 7, -1267, -124, -1267, 110, 36, -188, 1213, 3869, -1267,1775 -126 7, 12, 61, 970, 1623, -1267, 1495, -1267, -1267, 21,1776 1 827, -1267, 2153, 1937, -1267, -1267, -1267, -641, -1267, 911,1777 914, 521, 695, -93, -1267, -1267, -1267, 906, 690, -521,1778 -126 7, -507, -417, -420, -1267, -1267, -914, -941, -147, -54,1779 1019, 19, -1267, 2311, 381, -366, -185, -122, 649, 745,1780 -126 7, 964, -1267, 2435, 1823, -463, 895, -1267, -1267, 693,1781 -126 7, -225, -1267, 103, -1267, -1267, -1267, -1263, 408, -1267,1782 -126 7, -1267, 1139, -1267, 42, -1267, -1267, -832, -94, -1230,1783 -1 62, 2364, -1267, 3117, -1267, 908, -1267, -103, 120, -184,1784 -1 83, -178, 7, -40, -39, -36, 1505, 4, 32, 71,1785 92, -173, -172, -170, -168, -306, -510, -503, -496, -559,1786 -3 13, -498, -1267, -1267, -514, 1064, 1072, 1076, 1925, 4399,1787 -5 24, -566, -556, -543, -548, -1267, -508, -723, -722, -717,1788 -58 2, -166, -229, -1267, -1267, 283, 102, 6, -1267, 3380,1789 108, -611, -4621769 -1263, 3947, 2776, -1263, 44, -1263, 887, 695, -232, -1263, 1770 -1263, 487, -523, -501, -842, -960, -1263, -216, 4593, 0, 1771 -1263, 122, 359, 368, 437, 403, 964, 965, 963, 966, 1772 969, -1263, 998, -607, 4667, -955, -1263, -1263, 569, -183, 1773 -658, 414, -1263, 1406, -1263, 347, -1148, -1263, -1263, 84, 1774 -1263, -949, -1074, 191, -1263, -1263, -1263, -1263, 17, -1186, 1775 -1263, -1263, -1263, -1263, -1263, -1263, 265, -1262, 33, -1263, 1776 -866, -1263, 445, 246, -1263, 124, -1263, -320, -1263, -1263, 1777 -1263, 506, -835, -1263, -1263, 19, -980, 55, 606, -1263, 1778 -1263, -1263, -220, -1263, 129, 1096, -190, 1478, 3486, -1263, 1779 -1263, 96, 144, 1103, 1793, -1263, 1550, -1263, -1263, 27, 1780 1989, -1263, 2286, 1081, -1263, -1263, -1263, -632, -1263, 884, 1781 886, 488, 668, -575, -1263, -1263, -1263, 875, 659, -511, 1782 -1263, -466, -248, 801, -1263, -1263, -959, -944, -218, 636, 1783 989, 92, -1263, 209, 354, -244, -203, -140, 611, 717, 1784 -1263, 932, -1263, 2427, 1924, -447, 860, -1263, -1263, 647, 1785 -1263, -235, -1263, 189, -1263, -1263, -1263, -1245, 370, -1263, 1786 -1263, -1263, 1098, -1263, 2, -1263, -1263, -849, -115, -1223, 1787 -150, 2775, -1263, 2462, -1263, 854, -1263, -127, 40, -178, 1788 -174, -173, 7, -43, -41, -36, 1803, 12, 18, 21, 1789 -101, -168, -162, -160, -144, -317, -520, -513, -497, -545, 1790 -300, -486, -1263, -1263, -547, 1009, 1026, 1028, 1598, 4212, 1791 -563, -557, -544, -532, -458, -1263, -514, -722, -720, -718, 1792 -585, -194, -291, -1263, -1263, 769, 138, -88, -1263, 3371, 1793 239, -624, -483 1790 1794 }; 1791 1795 … … 1793 1797 positive, shift that token. If negative, reduce the rule which 1794 1798 number is the opposite. If YYTABLE_NINF, syntax error. */ 1795 #define YYTABLE_NINF -5 291799 #define YYTABLE_NINF -530 1796 1800 static const yytype_int16 yytable[] = 1797 1801 { 1798 51, 115, 398, 399, 759, 151, 152, 99, 400, 153, 1799 116, 745, 71, 401, 402, 451, 403, 427, 404, 951, 1800 952, 78, 734, 52, 268, 953, 409, 719, 856, 808, 1801 1051, 724, 1167, 833, 51, 438, 604, 118, 815, 809, 1802 1362, 99, 503, 599, 906, 149, 71, 382, 383, 154, 1803 819, 51, 810, 936, 786, 78, 826, 52, 162, 666, 1804 668, 72, 662, 706, 1152, 187, 1175, 203, 210, 124, 1805 517, 51, 194, 816, 408, 217, 145, 155, 227, 33, 1806 220, 671, 398, 399, 406, 804, 125, 160, 400, 675, 1807 1150, 1151, 805, 401, 402, 72, 403, 807, 404, 806, 1808 473, 475, 108, 108, 910, -239, -239, 115, 424, 848, 1809 65, 1229, 1284, 261, 1177, 115, 156, 204, 267, 272, 1810 98, 474, 846, 846, 865, 33, 723, 262, 1176, 213, 1811 263, 33, 33, 469, 1120, 623, 108, 820, 846, 627, 1812 1443, 823, 33, 259, 65, 736, 151, 152, 310, 149, 1813 153, 160, 1424, 410, 98, 565, 162, 115, 345, 167, 1814 1179, 210, 840, 342, 406, 150, 843, 1234, 372, 951, 1815 952, 98, 900, 108, 146, 953, 1178, 33, -239, 591, 1816 713, 1161, 918, 1285, 326, 190, 187, 187, 98, 566, 1817 154, 98, 177, 340, 162, 1235, 846, 157, 665, 667, 1818 291, 804, 267, 253, 418, 410, 410, 1180, 805, 790, 1819 51, 1157, 847, 847, 479, 806, 410, 162, 155, 58, 1820 117, 1512, 210, 167, 660, 1424, 151, 152, 847, 441, 1821 153, 1314, 939, 1317, 1319, 808, 144, 1158, 437, 474, 1822 310, 177, 429, 879, 177, 809, 432, 1061, 1527, 817, 1823 1050, 596, 51, 58, 999, 819, 330, 156, 810, 99, 1824 272, 716, 728, 1152, 71, 272, 267, 267, 729, 98, 1825 148, 976, 115, 78, 162, 52, 326, 517, 78, 407, 1826 1167, 98, 517, 440, 604, 517, 847, 211, 730, 1000, 1827 221, 804, 481, 469, 461, 1184, 1185, 310, 805, 498, 1828 1074, 649, 657, 987, 1099, 806, 397, 190, 432, 1065, 1829 310, 486, 469, 72, 707, 695, 172, 1152, 434, 886, 1830 469, 706, 1382, 1383, 1100, 281, 568, 1382, 1383, 664, 1831 98, 149, 445, 519, 164, 669, 169, 182, 372, 780, 1832 1454, 115, 98, 1150, 1151, 345, 160, 584, 330, 597, 1833 615, 458, 177, 808, 108, 1097, 795, 1181, 1051, 407, 1834 170, 972, 65, 809, 620, 112, 1158, 470, 620, 1224, 1835 1307, 977, 98, 1003, 202, 657, 810, 583, 43, 44, 1836 434, 588, 988, -294, 624, 282, 477, 1470, 628, 112, 1837 1308, 376, 174, 248, 1384, 267, 816, 842, 164, 1393, 1838 621, 833, 43, 44, 625, 187, 177, 377, 696, 1482, 1839 1166, 213, 372, 177, 112, 1487, 141, 142, 167, 876, 1840 253, 332, 1498, 267, 1500, 310, 310, 43, 44, 267, 1841 752, 620, 555, 556, 254, 1507, 1167, 1152, 78, 251, 1842 1514, 439, 112, 1167, 1138, 1140, 1106, -524, 33, 591, 1843 253, 98, 115, 593, 591, 43, 44, 78, 244, 386, 1844 264, 326, 326, 1082, 1419, 78, 1085, 557, 558, 598, 1845 267, 58, 836, -12, 706, 387, 837, 1118, 267, 1369, 1846 620, 177, 51, 757, 333, 372, 712, 869, 680, 99, 1847 940, 334, 115, 433, 71, 1167, 1223, 658, 177, 389, 1848 604, 118, 177, 78, 310, 52, 115, 998, -448, 310, 1849 491, 310, 310, 492, 1215, 390, 695, 740, 857, 743, 1850 824, 1407, 596, 345, 1511, 190, 486, 470, 326, 416, 1851 486, 971, 213, 330, 330, 1408, 1413, 1414, 551, 552, 1852 519, 391, 519, 72, 1522, 519, 470, 326, 519, -449, 1853 469, 1526, 435, 867, 470, 433, 1000, 392, 1106, 253, 1854 332, 410, 443, 900, 858, 980, 635, 568, 568, 576, 1855 658, 410, 707, 1259, 1260, 310, 915, 897, 1050, 277, 1856 521, 1147, 1148, 859, 108, 620, 345, 1149, 393, 615, 1857 704, 901, 65, 164, 1455, 597, 1343, 597, 797, 1039, 1858 330, 903, 98, 579, 394, 410, 598, 902, 1456, 696, 1859 39, 326, 175, 176, 42, 620, 279, 904, 998, 330, 1860 620, 793, 615, 43, 44, 901, 620, 903, 280, 620, 1861 620, 567, 518, 410, 695, 835, 1195, 1196, 335, 47, 1862 48, 1062, 574, 1063, 695, 620, 548, 267, 575, 371, 1863 849, 832, 549, 550, 1428, 695, 588, 838, 1345, 287, 1864 1164, 839, 841, 864, 1010, 2, 207, 4, 5, 6, 1865 7, 1392, 43, 44, 1164, 1298, 1165, 115, 440, 336, 1866 894, 1300, 337, 330, 1055, 8, 9, 10, 11, 12, 1867 1290, 1299, 838, 676, 338, 78, 1081, 1301, 512, 575, 1868 378, 58, 740, 620, 920, 615, 1093, 371, 398, 399, 1869 706, 712, 712, 680, 400, 803, 33, 598, 1346, 401, 1870 402, 78, 403, 834, 404, 707, 375, 696, 593, 384, 1871 697, 388, 37, 1016, 38, 684, 698, 696, 345, 396, 1872 714, 725, 743, 743, 36, 498, 715, 726, 696, 177, 1873 1428, 486, 213, 408, 739, 1428, 1462, 880, 1463, 1356, 1874 740, 882, 1172, 740, 177, 425, 213, 740, 951, 952, 1875 426, 742, 899, 410, 953, 1428, 673, 177, 448, 47, 1876 48, 1409, 1428, -372, 470, 568, -112, 521, 291, 521, 1877 -112, 406, 521, 965, 620, 521, 983, -3, 1421, 966, 1878 898, 597, 699, -401, 1068, 978, 1068, 919, 1142, 596, 1879 470, 698, 1509, 597, 1460, 47, 48, 591, 1211, 1321, 1880 870, 1460, 410, 1339, 575, 459, 1323, 1324, 1325, 740, 1881 979, 803, 598, 2, 207, 4, 5, 6, 7, 518, 1882 1335, 1332, -295, 502, 518, 1333, 460, 518, 704, 8, 1883 9, 10, 11, 12, 695, 695, 940, 213, 482, 177, 1884 940, 940, 310, 112, 229, 141, 142, 50, 114, 1340, 1885 1480, 1421, 1342, 1508, 71, 740, 43, 44, 740, 873, 1886 33, 410, 1347, 78, 345, 731, 506, 732, 740, 1368, 1887 733, 345, 894, 737, 894, 1162, 797, 1410, 114, 114, 1888 37, 50, 38, 1407, 852, 1429, 115, 511, 36, 695, 1889 695, 740, 50, 418, 653, 410, 1476, 524, 50, 920, 1890 920, 803, 1477, 72, 712, 1213, 50, 1039, 1532, 1217, 1891 115, 310, 50, 598, 575, 50, 553, 554, 50, 1086, 1892 969, 966, 680, 1266, 1267, 561, 1269, 696, 696, 559, 1893 560, 114, 114, 1274, 743, 1276, 479, 332, 410, 1494, 1894 684, 707, 562, 657, 108, 486, 1088, 326, 897, 817, 1895 332, 596, 65, 563, 1305, 50, 332, 410, 50, 112, 1896 -296, 141, 142, 345, 564, 50, 407, 8, 9, 10, 1897 11, 12, 43, 44, 1206, 1352, 1353, 878, 1277, 1278, 1898 1279, 704, 696, 696, 620, 620, 885, 1123, 1106, 410, 1899 887, 1134, 1064, 410, 898, 339, 50, 112, 33, 832, 1900 1402, 966, 310, 1355, 1111, 1382, 1383, 1112, 50, 1113, 1901 43, 44, 108, 1137, 1169, 596, 1230, 1231, 707, 330, 1902 764, 765, 230, 78, 598, 231, 36, 440, 235, 1139, 1903 237, 596, 659, 50, 50, 1294, 585, 246, 1228, 650, 1904 112, 115, -3, 1220, 1363, 410, 894, 1111, 1363, 50, 1905 1112, 894, 1113, 43, 44, 651, 1381, 50, 508, 1389, 1906 920, 58, 652, 72, 766, 767, 50, 654, 267, 50, 1907 655, 834, 695, 772, 773, 656, 114, 680, 661, 695, 1908 695, 695, 258, 546, 547, 2, 207, 4, 5, 6, 1909 7, 114, 685, 686, 1388, 114, 690, 39, 688, 50, 1910 114, 42, -243, 1427, 108, 716, 727, 345, 1431, 741, 1911 43, 44, 470, 50, 50, 749, 798, -14, 546, 800, 1912 50, 811, -15, -297, 854, 861, 855, 50, 1295, 1087, 1913 8, 9, 10, 11, 12, 881, 45, 1453, 658, 883, 1914 888, 931, 695, 899, 47, 48, 908, 1444, 272, 115, 1915 -422, -528, 37, 546, 38, 715, 923, 933, 220, 944, 1916 937, 33, 945, 230, 946, 696, 898, 938, 947, 684, 1917 310, 898, 696, 696, 696, 948, 949, 963, 50, 973, 1918 974, 975, 71, 989, 620, 990, 991, 992, 115, 36, 1919 993, 78, 994, 68, 119, 50, 50, 1086, 995, -410, 1920 -409, 1060, 8, 9, 10, 11, 12, 1018, 1052, 213, 1921 1054, 1058, 50, 893, 1075, 1076, 50, 704, 1077, 1078, 1922 1084, 58, 1521, 1094, 1088, 740, 636, 68, 1521, 1095, 1923 496, 72, 1096, 33, 1098, 696, 1101, 620, 620, 1521, 1924 958, 1103, 50, 1521, 161, 272, 1104, 1405, 1105, 525, 1925 310, 108, 50, 526, 527, 528, 1520, 768, 769, 770, 1926 771, 36, 1169, 1108, 222, 1132, 1153, 1154, 1155, 1156, 1927 50, 78, 108, 1170, 1171, 1173, 50, 529, 1174, 530, 1928 65, 531, 532, 115, 1182, 1188, -3, 398, 399, 1193, 1929 108, 1186, 1086, 400, 704, 1198, 1203, 1201, 401, 402, 1930 260, 403, 230, 404, 235, 567, 440, 410, 491, 1207, 1931 1214, 72, 114, 47, 48, 1212, 1216, 50, 1219, 1088, 1932 1232, 761, 762, 763, 684, 50, 1225, 1236, 1238, 50, 1933 1240, 1241, 1245, 50, 113, 1242, 114, 1243, 114, 1252, 1934 1261, 267, 331, 112, 1262, 141, 239, 1268, 1183, 1271, 1935 260, 350, 108, 1493, 1296, 1289, 43, 44, 620, 1404, 1936 470, 39, 1272, 184, 185, 42, 1273, 211, 221, 406, 1937 1275, 1283, 1302, 114, 43, 44, 1304, 1306, 114, 909, 1938 405, 1310, 240, 115, 1311, 108, 1312, 241, 1315, 58, 1939 230, 1320, 1086, 657, 1322, 423, 1328, 1329, 428, 430, 1940 892, 1338, 410, 161, 1330, 1331, 115, 1087, 47, 48, 1941 1341, 1279, 1348, 115, 1357, 115, 1349, 115, 1169, 1088, 1942 1358, 893, 1359, 1365, 446, 1169, 114, 78, 449, 1366, 1943 450, 151, 152, 1376, 78, 153, 1377, -411, 1380, 457, 1944 1391, 1395, 50, 1397, 50, 68, 1406, 1492, 1399, 1400, 1945 471, 1467, 115, 1467, 115, 1401, 1415, 1333, 1416, 1417, 1946 478, 1418, 1420, 50, 439, 115, 1425, 72, 430, 58, 1947 970, 1492, 1492, 177, 72, 76, 1430, 1169, 50, 162, 1948 1434, 310, 114, 1436, 1432, 108, 78, 1438, 1467, 1440, 1949 1467, 50, 1442, 114, 50, 114, 1492, 1447, 1448, 1449, 1950 1450, 1461, 1087, 372, 1471, 1473, 1486, 1475, 108, 76, 1951 8, 9, 10, 11, 12, 108, 470, 326, 1478, 1479, 1952 1501, 1187, 959, 470, 1506, 1513, 72, 50, 1502, 1515, 1953 1517, 114, 1523, 114, 260, 1530, 163, 114, 589, 1531, 1954 774, 33, 1011, 775, 617, 114, 223, 778, 776, 1110, 1955 195, 777, 1288, 218, 1481, 1394, 228, 622, 50, 50, 1956 1533, 622, 1351, 1218, 407, 1367, 1464, 108, 889, 36, 1957 1192, 890, 1200, 50, 1069, 470, 911, 1073, 792, 39, 1958 1017, 184, 185, 42, 909, 860, 463, 1107, 658, 330, 1959 925, 477, 43, 44, 1350, 131, 1297, 132, 133, 134, 1960 1083, 709, 1087, 39, 0, 184, 185, 42, 43, 44, 1961 471, 782, 0, 742, 934, 410, 43, 44, 595, 783, 1962 596, 47, 48, 784, 350, 58, 47, 48, 0, 471, 1963 909, 0, 58, 353, 163, 0, 0, 471, 0, 0, 1964 0, 0, 892, 0, 410, 0, 373, 0, 50, 0, 1965 47, 48, 0, 0, 0, 691, 0, 0, 430, 0, 1966 50, 0, 1121, 0, 0, 8, 9, 10, 11, 12, 1967 0, 214, 163, 705, 0, 68, 496, 0, 0, 0, 1968 233, 0, 0, 430, 58, 0, 0, 430, 8, 9, 1969 10, 11, 12, 0, 0, 163, 33, 0, 1468, 0, 1970 1468, 112, 636, 141, 142, 0, 447, 442, 114, 0, 1971 1011, 0, 0, 0, 43, 44, 350, 0, 0, 33, 1972 0, 0, 214, 0, 36, 0, 0, 76, 0, 39, 1973 0, 0, 76, 42, 0, 1468, 0, 1468, 0, 50, 1974 720, 50, 43, 44, 0, 721, 0, 36, 114, 1465, 1975 0, 1469, 0, 112, 0, 0, 546, 0, 0, 0, 1976 1111, 785, 0, 1112, 214, 1113, 43, 44, 45, 0, 1977 39, 50, 184, 185, 42, 0, 47, 48, 622, 796, 1978 0, 0, 0, 43, 44, 0, 1497, 0, 1499, 909, 1979 813, 919, 114, 596, 1316, 508, 0, 0, 113, 47, 1980 48, 0, 0, 0, 0, 636, 0, 79, 589, 186, 1981 0, 114, 0, 589, 0, 114, 373, 47, 48, 622, 1982 0, 0, 350, 350, 0, 214, 223, 0, 0, 0, 1983 1528, 0, 1529, 0, 0, 0, 0, 0, 350, 0, 1984 39, 79, 175, 176, 42, 1536, 1537, 39, 909, 909, 1985 0, 42, 0, 43, 44, 0, 691, 0, 0, 753, 1986 43, 44, 114, 214, 758, 0, 0, 471, 214, 0, 1987 525, 216, 0, 0, 526, 527, 528, 0, 224, 375, 1988 0, 0, 0, 497, 0, 0, 801, 243, 596, 0, 1989 373, 0, 76, 471, 47, 48, 350, 0, 529, 114, 1990 530, 0, 531, 1287, 0, 924, 353, 0, 430, 0, 1991 0, 76, 463, 50, 0, 0, 0, 0, 50, 76, 1992 112, 0, 216, 0, 0, 0, 0, 1111, 0, 0, 1993 1112, 705, 1113, 43, 44, 50, 954, 353, 0, 0, 1994 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 1995 0, 0, 0, 214, 39, 353, 0, 76, 42, 114, 1996 0, 1318, 0, 0, 216, 355, 0, 43, 44, 0, 1997 0, 33, 0, 0, 691, 0, 0, 0, 0, 866, 1998 0, 868, 0, 0, 691, 215, 0, 622, 0, 0, 1999 986, 0, 0, 711, 0, 691, 0, 0, 353, 36, 2000 0, 47, 48, 0, 39, 997, 184, 185, 42, 0, 2001 39, 114, 175, 176, 42, 0, 0, 43, 44, 0, 2002 0, 0, 0, 43, 44, 216, 0, 0, 0, 0, 2003 0, 914, 0, 214, 0, 0, 215, 0, 0, 0, 2004 0, 0, 0, 595, 0, 596, 0, 0, 0, 214, 2005 0, 47, 48, 0, 0, 68, 909, 0, 0, 79, 2006 0, 353, 0, 216, 79, 0, 0, 0, 216, 0, 2007 0, 0, 0, 909, 214, 0, 0, 796, 215, 114, 2008 0, 114, 114, 0, 705, 0, 0, 1066, 8, 9, 2009 10, 11, 12, 0, 0, 412, 39, 0, 184, 185, 2010 42, 0, 420, 0, 353, 353, 0, 0, 0, 43, 2011 44, 0, 0, 1080, 0, 0, 0, 0, 0, 33, 2012 353, 0, 430, 119, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 81, 0, 1491, 0, 410, 353, 215, 2014 0, 0, 0, 47, 48, 909, 909, 36, 0, 76, 2015 0, 0, 39, 216, 184, 185, 42, 0, 224, 0, 2016 114, 0, 0, 0, 0, 43, 44, 81, 0, 0, 2017 0, 0, 0, 0, 412, 76, 589, 215, 353, 0, 2018 0, 0, 215, 0, 0, 0, 0, 0, 0, 428, 2019 0, 892, 214, 410, 691, 691, 0, 350, 350, 47, 2020 48, 0, 0, 0, 225, 0, 0, 50, 50, 0, 2021 0, 0, 0, 353, 0, 1168, 0, 114, 114, 0, 2022 214, 0, 0, 0, 79, 214, 0, 0, 0, 0, 2023 0, 573, 39, 216, 184, 185, 42, 0, 355, 577, 2024 0, 0, 580, 79, 0, 43, 44, 0, 0, 691, 2025 691, 79, 0, 0, 0, 114, 353, 8, 9, 10, 2026 11, 12, 0, 0, 0, 0, 353, 215, 0, 355, 2027 0, 266, 223, 0, 216, 0, 0, 353, 1102, 47, 2028 48, 0, 0, 0, 0, 0, 0, 355, 33, 79, 2029 0, 356, 0, 0, 214, 0, 0, 1114, 0, 59, 2030 59, 1114, 412, 0, 0, 0, 420, 0, 214, 0, 2031 0, 0, 0, 0, 50, 114, 36, 0, 0, 0, 2032 705, 39, 0, 143, 114, 42, 0, 0, 0, 497, 2033 355, 0, 0, 59, 43, 44, 0, 76, 50, 50, 2034 0, 0, 0, 0, 0, 0, 0, 215, 1114, 0, 2035 8, 9, 10, 11, 12, 0, 0, 0, 0, 353, 2036 711, 0, 1265, 50, 0, 0, 353, 59, 47, 48, 2037 59, 0, 126, 129, 130, 242, 245, 0, 0, 0, 2038 0, 33, 412, 68, 0, 81, 0, 0, 215, 0, 2039 81, 0, 216, 355, 0, 691, 0, 705, 0, 214, 2040 0, 119, 0, 0, 0, 0, 0, 0, 0, 36, 2041 0, 0, 0, 0, 39, 88, 184, 185, 42, 0, 2042 216, 0, 0, 0, 0, 216, 0, 43, 44, 0, 2043 0, 0, 691, 0, 0, 0, 355, 355, 0, 691, 2044 691, 691, 0, 0, 255, 1114, 256, 0, 0, 88, 2045 350, 350, 355, 1491, 0, 410, 0, 348, 0, 0, 2046 0, 47, 48, 1168, 0, 0, 0, 0, 0, 0, 2047 355, 0, 573, 573, 0, 0, 353, 353, 0, 353, 2048 353, 79, 0, 0, 225, 0, 226, 0, 0, 0, 2049 0, 0, 0, 0, 216, 0, 119, 76, 0, 0, 2050 0, 0, 691, 0, 0, 0, 215, 79, 216, 0, 1802 51, 115, 151, 268, 152, 451, 746, 99, 398, 153, 1803 760, 735, 399, 400, 1052, 427, 857, 438, 401, 261, 1804 116, 952, 787, 953, 402, 954, 403, 78, 1051, 382, 1805 383, 834, 600, 52, 51, 817, 145, 469, 409, 809, 1806 98, 99, 404, 1168, 720, 149, 1151, 1152, 725, 605, 1807 504, 51, 810, 816, 907, 58, 117, 154, 162, 1363, 1808 406, 78, 1153, 155, 811, 187, 156, 52, 210, 342, 1809 937, 51, 194, 624, 98, 217, 805, 628, 227, 474, 1810 1185, 1186, 911, 806, 376, 150, 407, 424, 398, 58, 1811 220, 98, 399, 400, 124, 33, 71, 663, 401, 807, 1812 377, 717, 125, 177, 402, 190, 403, 115, 98, 33, 1813 808, 98, 473, 475, 518, 115, 672, 821, 267, 272, 1814 849, 824, 404, 211, 676, 1285, 221, 1121, 203, 65, 1815 71, 281, -239, -239, 144, 866, 1383, 1384, 108, 108, 1816 406, 820, 841, 151, 72, 152, 844, 827, 310, 149, 1817 153, 592, 177, 1230, 1225, 177, 162, 115, 345, 1444, 1818 1425, 210, 33, 65, 847, 847, 407, 901, 372, 410, 1819 714, 952, 108, 953, 1162, 954, 1471, 146, 72, 204, 1820 847, 667, 669, 1383, 1384, 148, 187, 187, 1167, 98, 1821 408, 282, 805, 919, 162, 169, 1286, 469, 154, 806, 1822 262, 98, 267, 263, 155, -239, 661, 156, 1385, 108, 1823 51, 1499, 213, 1501, 566, 807, 469, 162, 577, 170, 1824 410, 1176, 210, 151, 469, 152, 397, 190, 157, 441, 1825 153, 1214, 707, 1425, 253, 1218, 410, 474, 847, 977, 1826 310, 143, 666, 668, 696, 809, 33, 33, 567, 724, 1827 98, 1001, 51, 585, 461, 1394, 1180, 1062, 810, 99, 1828 272, 1153, 98, 177, 291, 272, 267, 267, 737, 1000, 1829 811, 729, 115, 1315, 162, 1318, 1320, 439, 658, 78, 1830 650, 1178, 805, 1177, 78, 52, 708, 1066, 1075, 806, 1831 167, 1168, 98, 242, 245, 796, 940, 310, 605, 1151, 1832 1152, 33, 1513, 1181, 659, 807, 477, 58, 665, 1235, 1833 310, 437, 172, 1158, 670, 1153, 988, 177, 418, 479, 1834 410, 410, 518, 1069, 177, 1069, 569, 518, 33, 1528, 1835 518, 149, 791, 1098, 182, 1455, 843, 1236, 372, 1159, 1836 1512, 115, 1052, 1179, 492, 345, 820, 493, 71, 598, 1837 616, 658, 202, 1004, 167, 887, 1051, 248, 817, 730, 1838 1523, 1159, 386, 809, 621, 481, 440, 1527, 621, 253, 1839 332, 98, 499, 818, 1182, 597, 810, 659, 387, 731, 1840 287, 65, 848, 848, 781, 1483, 470, 330, 811, 599, 1841 108, 1488, 177, 43, 44, 267, 72, 1100, 848, 834, 1842 825, 112, 597, 141, 142, 187, 251, 509, 389, 177, 1843 1308, 1508, 372, 177, 43, 44, 1515, 1101, 445, 513, 1844 1420, 378, 592, 267, 390, 310, 310, 592, 877, 267, 1845 1309, 621, 547, 548, 391, 1153, 1346, 458, 1429, 552, 1846 553, 1107, 853, 1083, 78, 190, 696, 1168, 393, 434, 1847 392, 741, 115, 455, 1168, 469, 848, 625, 859, 1408, 1848 636, 629, 112, 78, 394, 972, 1119, 547, 554, 555, 1849 267, 78, 1370, 1409, 902, 43, 44, 860, 267, 330, 1850 621, 916, 51, 1086, 1224, 372, 580, 713, 410, 99, 1851 903, 707, 1216, 115, 213, -294, 871, 999, 410, 941, 1852 870, 858, 547, 753, 981, 310, 1168, 115, -525, 78, 1853 310, 434, 310, 310, 605, 52, 904, 575, 1001, 874, 1854 744, 410, 98, 576, 345, 556, 557, 599, 902, 1414, 1855 1415, 904, 905, 868, 1429, 1139, 1141, 58, 1124, 1429, 1856 410, 1165, 112, 253, 1063, 708, 470, 1064, 1456, 167, 1857 -12, 1260, 1261, 1107, 898, 43, 44, 1166, 901, 1429, 1858 558, 559, 1457, 1165, 696, 470, 1429, 837, 569, 569, 1859 264, 838, -448, 470, 696, 1299, 310, 1301, 71, 1291, 1860 900, 741, -449, 758, 594, 696, 621, 345, 638, 677, 1861 616, 1300, 1461, 1302, 277, 576, 598, 1347, 598, 1461, 1862 2, 207, 4, 5, 6, 7, 59, 59, 999, 705, 1863 839, 65, 279, 1344, 840, 213, 621, 280, 549, 112, 1864 108, 621, 698, 616, 550, 551, 72, 621, 699, 715, 1865 621, 621, 43, 44, 333, 716, 804, 334, 599, 131, 1866 59, 132, 133, 134, 707, 839, 621, 1011, 267, 1082, 1867 335, 1509, 43, 44, 8, 9, 10, 11, 12, 384, 1868 726, 177, 336, 740, 330, 330, 727, 1056, 37, 741, 1869 38, 762, 763, 764, 59, -112, 177, 59, 115, -112, 1870 112, 895, 1135, 798, 410, 881, 33, 1112, 1393, 177, 1871 1113, 741, 1114, 43, 44, 50, 114, 1094, 708, 719, 1872 337, 723, 78, 1333, 621, 921, 616, 1334, 1138, 836, 1873 597, 371, 713, 713, 36, 398, 1017, 883, 338, 399, 1874 400, 899, 375, 741, 850, 401, 114, 114, 78, 50, 1875 966, 402, 330, 403, 291, 979, 967, 865, 388, 345, 1876 50, 699, 1212, 744, 744, 1140, 50, 597, 576, 404, 1877 1340, 330, 804, 599, 50, 1341, 741, 1150, 396, 1410, 1878 50, 741, 440, 50, 348, 1357, 50, 1221, 406, 410, 1879 952, 177, 953, 1463, 954, 1464, 1422, 1343, 425, 114, 1880 114, 1348, 1411, 741, 696, 696, 569, 741, 1408, 426, 1881 592, 253, 332, 410, 407, 621, 39, 984, 175, 176, 1882 42, 408, 598, 50, 470, 1430, 50, 1143, 448, 43, 1883 44, 741, 1477, 50, 598, 330, 560, 561, 1478, 499, 1884 164, 2, 207, 4, 5, 6, 7, 1533, 59, 1510, 1885 470, 970, 967, 576, -372, 371, 213, 332, 410, 696, 1886 696, 459, 804, -401, 50, 854, 1353, 1354, 1481, 1422, 1887 213, 460, 229, 503, 599, 835, 50, 482, 59, 732, 1888 594, 733, 39, 310, 734, 941, 42, 738, 705, 941, 1889 941, 507, 960, 1403, 967, 43, 44, 512, 1163, 525, 1890 707, 50, 50, 562, 164, 345, 1383, 1384, 113, 37, 1891 78, 38, 345, 895, 906, 895, 908, 50, 1231, 1232, 1892 455, 802, 563, 597, 564, 50, 565, 115, 339, 47, 1893 48, 765, 766, 112, 50, 141, 239, 50, 58, 586, 1894 921, 921, 767, 768, 114, 713, 43, 44, 568, -3, 1895 410, 115, 310, 1065, 708, 899, 47, 48, 651, 114, 1896 658, 213, 652, 114, 653, 898, 655, 50, 114, 656, 1897 1087, 657, 240, 258, 1495, 744, 660, 241, 662, 71, 1898 689, 50, 50, 773, 774, 599, 659, 686, 50, 691, 1899 687, 900, -243, 728, 1207, 50, 418, 654, 410, 433, 1900 717, 798, 742, 1306, 345, 1295, 1088, 750, 1267, 1268, 1901 799, 1270, 65, 769, 770, 771, 772, 801, 1275, 812, 1902 1277, 108, 856, 1107, -14, 621, 621, 72, 862, -15, 1903 1336, 708, 479, 332, 410, 2, 207, 4, 5, 6, 1904 7, 705, 696, 310, 855, 112, 50, 141, 142, 696, 1905 696, 696, 112, 882, 141, 142, 884, 348, 43, 44, 1906 743, 433, 410, 50, 50, 43, 44, -295, 47, 48, 1907 78, 818, 332, 597, 8, 9, 10, 11, 12, 889, 1908 50, 909, 115, -422, 50, 638, 522, 895, 716, 108, 1909 932, 1022, 895, 1364, 637, -529, 244, 1364, 58, 164, 1910 924, 921, 934, 37, 938, 38, 33, 945, 59, 267, 1911 50, 939, 696, 1278, 1279, 1280, 946, 118, 697, 947, 1912 50, 920, 112, 597, 141, 142, 547, 899, 948, 47, 1913 48, 1071, 899, 964, 36, 43, 44, 949, 50, 1170, 1914 950, 974, 975, 976, 50, -296, 1053, 990, 345, 991, 1915 348, 440, 8, 9, 10, 11, 12, 992, 993, 994, 1916 463, 721, 1077, 112, 995, 509, 722, 160, -3, 215, 1917 1112, 996, 470, 1113, -410, 1114, 43, 44, -409, 1389, 1918 114, 108, 1019, 1059, 33, 50, 1055, 72, 638, 272, 1919 115, 330, 894, 50, 1076, 230, 1445, 50, 231, 1078, 1920 1079, 235, 50, 237, 1229, 114, 1085, 114, 1095, 220, 1921 246, 310, 36, 348, 39, 741, 175, 176, 42, 1096, 1922 215, 1097, 1099, 259, 1102, 621, -297, 43, 44, 115, 1923 959, 160, 1104, 8, 9, 10, 11, 12, 78, 112, 1924 1105, 685, 114, 835, 211, 221, 1112, 114, 1087, 1113, 1925 1106, 1114, 43, 44, 1109, 1133, 348, 348, 1154, 1155, 1926 1157, 1187, 215, 1171, 326, 33, 58, 1406, 1156, 1172, 1927 1174, 1175, 348, 340, 1183, 1215, 1194, 705, 621, 621, 1928 1317, 1189, 1022, -3, 1088, 1199, 272, 1521, 1202, 1204, 1929 1213, 310, 492, 36, 522, 114, 522, 1040, 1208, 522, 1930 1220, 1226, 522, 1217, 1233, 1237, 1239, 71, 1241, 1242, 1931 1269, 50, 1243, 50, 1244, 1246, 1253, 1272, 78, 1262, 1932 697, 1263, 429, 215, 115, 1297, 432, 1273, 108, 1290, 1933 348, 1274, 50, 213, 398, 1276, 230, 1303, 399, 400, 1934 65, 439, 1284, 1087, 401, 1307, 58, 50, 1305, 108, 1935 402, 114, 403, 1311, 705, 72, 326, 1312, 1313, 1316, 1936 50, 215, 114, 50, 114, 526, 215, 108, 404, 527, 1937 528, 529, 113, 1494, 1321, 1323, 1329, 1331, 1330, 1088, 1938 1332, 1339, 267, 1342, 1349, 1350, 406, 1170, 432, 1280, 1939 1358, 487, 1359, 530, 1265, 531, 50, 532, 533, 621, 1940 114, 1360, 114, 497, 1366, 39, 114, 184, 185, 42, 1941 658, 1367, 407, 520, 114, 1377, 1378, -411, 43, 44, 1942 470, 1381, 1392, 1396, 115, 177, 160, 50, 50, 108, 1943 440, 1400, 1398, 1401, 754, 72, 659, 1402, 697, 759, 1944 1407, 1421, 50, 1087, 893, 1334, 410, 115, 697, 1416, 1945 1417, 215, 47, 48, 115, 1418, 115, 584, 115, 697, 1946 1173, 589, 108, 1419, 1426, 894, 1435, 685, 1437, 151, 1947 1431, 152, 1439, 1405, 78, 230, 153, 235, 1433, 1088, 1948 622, 78, 1441, 174, 626, 880, 526, 463, 1493, 59, 1949 527, 528, 529, 115, 1443, 115, 1449, 1448, 68, 119, 1950 1450, 1451, 58, 1462, 1472, 1474, 115, 1476, 1479, 58, 1951 1480, 348, 1493, 1493, 530, 1487, 531, 50, 532, 1288, 1952 162, 1502, 310, 1503, 1507, 254, 39, 1516, 1514, 50, 1953 42, 215, 68, 78, 1518, 1524, 1531, 1493, 1532, 43, 1954 44, 326, 326, 1170, 372, 1188, 775, 777, 776, 161, 1955 1170, 778, 477, 1111, 867, 779, 869, 59, 1289, 1395, 1956 1482, 58, 108, 230, 1534, 45, 1352, 1219, 681, 222, 1957 76, 637, 215, 47, 48, 1368, 470, 114, 1465, 1193, 1958 1201, 118, 890, 470, 891, 108, 912, 1074, 1070, 793, 1959 1108, 72, 108, 1018, 861, 1084, 926, 783, 72, 1298, 1960 710, 935, 1170, 973, 76, 260, 915, 487, 50, 326, 1961 50, 487, 0, 978, 784, 0, 785, 114, 0, 0, 1962 416, 520, 0, 520, 989, 1040, 520, 0, 326, 520, 1963 0, 348, 348, 0, 0, 470, 0, 0, 0, 0, 1964 50, 223, 0, 435, 108, 0, 0, 331, 0, 59, 1965 72, 0, 0, 443, 0, 260, 350, 0, 697, 697, 1966 0, 114, 0, 0, 0, 112, 8, 9, 10, 11, 1967 12, 0, 1112, 0, 637, 1113, 0, 1114, 43, 44, 1968 114, 0, 0, 0, 114, 405, 0, 0, 0, 0, 1969 0, 215, 326, 0, 0, 0, 685, 0, 33, 0, 1970 423, 0, 794, 428, 430, 0, 1319, 910, 161, 0, 1971 0, 0, 0, 697, 697, 0, 0, 0, 0, 215, 1972 0, 1356, 0, 519, 215, 0, 36, 0, 353, 446, 1973 0, 114, 833, 449, 0, 450, 0, 589, 0, 0, 1974 0, 0, 0, 842, 457, 0, 0, 0, 0, 0, 1975 68, 0, 0, 0, 0, 471, 0, 0, 0, 0, 1976 0, 330, 0, 0, 0, 478, 0, 0, 114, 0, 1977 568, 39, 410, 430, 1382, 42, 0, 1390, 47, 48, 1978 0, 0, 50, 0, 43, 44, 39, 50, 184, 185, 1979 42, 0, 0, 215, 681, 59, 59, 0, 971, 43, 1980 44, 447, 0, 0, 50, 0, 0, 215, 412, 0, 1981 712, 0, 0, 0, 0, 420, 0, 59, 47, 48, 1982 0, 1428, 76, 1148, 1149, 186, 1432, 76, 114, 0, 1983 0, 0, 487, 47, 48, 59, 0, 0, 0, 260, 1984 0, 0, 0, 590, 39, 0, 175, 176, 42, 618, 1985 497, 685, 0, 1103, 0, 1454, 0, 43, 44, 1296, 1986 0, 0, 623, 0, 0, 0, 623, 674, 0, 0, 1987 1012, 0, 1115, 0, 163, 0, 1115, 0, 1196, 1197, 1988 114, 214, 0, 375, 348, 348, 0, 412, 195, 0, 1989 233, 218, 59, 700, 228, 0, 697, 59, 215, 0, 1990 0, 0, 0, 697, 697, 697, 39, 0, 184, 185, 1991 42, 980, 910, 0, 0, 471, 0, 0, 0, 43, 1992 44, 223, 0, 1115, 0, 0, 0, 0, 0, 350, 1993 59, 519, 214, 0, 471, 0, 519, 0, 0, 519, 1994 1522, 0, 471, 0, 574, 596, 1522, 597, 114, 0, 1995 114, 114, 578, 47, 48, 581, 0, 1522, 910, 0, 1996 692, 1522, 0, 430, 0, 0, 697, 0, 0, 0, 1997 0, 0, 163, 0, 214, 0, 0, 0, 706, 0, 1998 68, 0, 0, 0, 373, 0, 0, 76, 0, 430, 1999 1122, 0, 0, 430, 0, 8, 9, 10, 11, 12, 2000 0, 353, 0, 0, 0, 348, 76, 0, 0, 79, 2001 163, 0, 216, 0, 76, 412, 0, 0, 0, 420, 2002 1115, 0, 350, 681, 0, 0, 0, 33, 243, 114, 2003 59, 0, 353, 163, 0, 214, 0, 0, 1012, 0, 2004 0, 0, 0, 79, 0, 442, 487, 1089, 326, 0, 2005 353, 0, 76, 59, 0, 36, 0, 0, 0, 0, 2006 59, 1322, 0, 216, 0, 0, 0, 786, 1324, 1325, 2007 1326, 0, 0, 214, 0, 0, 50, 50, 214, 0, 2008 224, 0, 0, 0, 623, 797, 114, 114, 215, 879, 2009 0, 0, 0, 498, 353, 412, 814, 0, 886, 743, 2010 833, 410, 888, 0, 0, 216, 0, 47, 48, 0, 2011 0, 0, 59, 0, 590, 0, 0, 910, 0, 590, 2012 0, 0, 0, 0, 114, 623, 0, 0, 350, 350, 2013 0, 1369, 0, 39, 0, 184, 185, 42, 0, 0, 2014 1115, 0, 1115, 1115, 350, 0, 43, 44, 0, 0, 2015 0, 0, 0, 0, 373, 0, 0, 353, 0, 0, 2016 0, 0, 692, 214, 0, 0, 216, 355, 0, 0, 2017 0, 0, 893, 471, 410, 0, 910, 910, 681, 0, 2018 47, 48, 0, 50, 114, 0, 574, 574, 0, 0, 2019 0, 0, 39, 114, 184, 185, 42, 0, 0, 471, 2020 353, 353, 350, 0, 216, 43, 44, 50, 50, 216, 2021 0, 925, 0, 0, 430, 0, 353, 0, 0, 0, 2022 0, 1115, 0, 0, 0, 1469, 0, 1469, 373, 0, 2023 0, 1492, 50, 410, 353, 0, 0, 706, 0, 47, 2024 48, 0, 955, 214, 39, 76, 184, 185, 42, 0, 2025 0, 0, 0, 0, 0, 0, 0, 43, 44, 214, 2026 0, 79, 1469, 0, 1469, 0, 79, 0, 0, 872, 2027 215, 76, 0, 875, 353, 0, 0, 0, 1115, 1115, 2028 692, 0, 0, 266, 214, 0, 0, 0, 0, 0, 2029 692, 47, 48, 623, 216, 0, 987, 0, 0, 0, 2030 0, 692, 0, 0, 0, 0, 81, 0, 0, 353, 2031 0, 998, 0, 1061, 0, 0, 1446, 0, 0, 0, 2032 0, 0, 0, 0, 0, 1089, 8, 9, 10, 11, 2033 12, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2034 81, 534, 535, 536, 537, 538, 539, 540, 541, 542, 2035 543, 544, 353, 0, 0, 0, 0, 0, 33, 0, 2036 224, 68, 353, 33, 0, 0, 0, 215, 223, 0, 2037 0, 0, 0, 353, 216, 545, 1496, 225, 0, 0, 2038 0, 0, 0, 797, 910, 1504, 36, 0, 0, 0, 2039 706, 36, 0, 1067, 0, 0, 39, 0, 184, 185, 2040 42, 910, 0, 214, 574, 0, 0, 0, 0, 43, 2041 44, 0, 0, 0, 0, 216, 0, 0, 0, 1081, 2042 1089, 0, 0, 0, 0, 0, 79, 0, 430, 119, 2043 920, 214, 597, 76, 0, 596, 214, 597, 47, 48, 2044 355, 0, 0, 47, 48, 79, 0, 88, 0, 0, 2045 0, 0, 0, 79, 0, 353, 0, 0, 0, 0, 2046 1184, 0, 353, 0, 356, 0, 8, 9, 10, 11, 2047 12, 355, 0, 910, 910, 0, 0, 0, 0, 0, 2048 0, 88, 590, 0, 0, 0, 0, 0, 0, 355, 2049 0, 79, 0, 0, 0, 428, 0, 0, 33, 0, 2050 692, 692, 0, 350, 350, 214, 0, 0, 0, 0, 2051 128, 128, 128, 0, 0, 0, 0, 412, 226, 214, 2052 1089, 1169, 0, 0, 0, 0, 36, 0, 0, 0, 2053 0, 39, 0, 355, 216, 42, 0, 0, 0, 0, 2054 498, 0, 0, 0, 43, 44, 0, 0, 0, 0, 2055 0, 0, 1468, 0, 1468, 692, 692, 0, 81, 0, 2056 0, 0, 216, 81, 0, 0, 0, 216, 0, 0, 2057 45, 0, 353, 353, 0, 353, 353, 0, 47, 48, 2058 0, 0, 128, 0, 128, 0, 0, 0, 0, 1468, 2059 0, 1468, 1125, 76, 0, 0, 355, 0, 0, 0, 2060 0, 0, 0, 0, 0, 363, 0, 0, 1136, 276, 2061 214, 0, 0, 0, 0, 0, 0, 0, 326, 0, 2062 0, 0, 0, 0, 0, 0, 706, 353, 353, 0, 2063 0, 0, 0, 0, 0, 0, 216, 0, 0, 355, 2051 2064 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052 0, 59, 0, 0, 0, 0, 395, 0, 0, 0, 2053 0, 353, 353, 0, 215, 455, 414, 415, 0, 215, 2054 0, 419, 0, 421, 422, 355, 0, 0, 0, 0, 2055 81, 59, 0, 0, 0, 871, 0, 0, 0, 874, 2056 0, 0, 0, 0, 356, 1114, 0, 1114, 1114, 81, 2057 0, 350, 0, 363, 0, 0, 0, 81, 0, 0, 2058 0, 8, 9, 10, 11, 12, 0, 0, 355, 214, 2059 0, 0, 0, 0, 0, 356, 119, 0, 355, 216, 2060 0, 0, 353, 0, 224, 0, 0, 0, 215, 355, 2061 0, 0, 33, 356, 0, 81, 0, 0, 0, 1168, 2062 0, 0, 215, 0, 0, 0, 1168, 533, 534, 535, 2063 536, 537, 538, 539, 540, 541, 542, 543, 0, 0, 2064 36, 0, 0, 0, 223, 39, 1114, 184, 185, 42, 2065 0, 0, 0, 0, 0, 0, 356, 0, 43, 44, 2066 0, 544, 0, 0, 0, 76, 0, 88, 0, 79, 2067 637, 0, 88, 0, 0, 0, 0, 353, 1168, 353, 2068 0, 0, 0, 0, 186, 1516, 0, 0, 0, 0, 2069 573, 355, 47, 48, 0, 0, 0, 0, 355, 0, 2070 0, 0, 0, 1114, 1114, 0, 0, 0, 0, 0, 2071 0, 0, 0, 215, 353, 0, 0, 0, 0, 356, 2072 0, 353, 353, 353, 0, 0, 0, 0, 0, 0, 2073 348, 0, 353, 353, 0, 0, 0, 0, 0, 0, 2074 0, 1445, 0, 0, 0, 76, 0, 0, 0, 0, 2065 216, 0, 0, 0, 0, 355, 0, 225, 0, 0, 2066 0, 0, 0, 0, 128, 0, 0, 0, 1266, 0, 2067 0, 0, 128, 355, 128, 128, 0, 0, 0, 128, 2068 0, 128, 128, 412, 79, 0, 0, 0, 0, 68, 2069 0, 0, 0, 0, 0, 0, 0, 0, 353, 88, 2070 0, 692, 0, 706, 88, 0, 1351, 119, 0, 0, 2071 79, 0, 0, 355, 0, 0, 0, 0, 0, 0, 2072 0, 0, 1222, 81, 0, 0, 0, 8, 9, 10, 2073 11, 12, 0, 0, 0, 0, 0, 356, 692, 0, 2074 223, 216, 81, 0, 0, 692, 692, 692, 355, 0, 2075 81, 128, 0, 0, 0, 0, 350, 350, 0, 33, 2076 0, 76, 0, 0, 0, 0, 0, 0, 356, 1169, 2077 0, 0, 0, 353, 0, 353, 0, 0, 0, 0, 2078 0, 0, 0, 0, 0, 0, 356, 36, 81, 0, 2079 0, 355, 39, 0, 184, 185, 42, 0, 226, 0, 2080 214, 355, 119, 0, 0, 43, 44, 224, 692, 0, 2081 353, 0, 355, 0, 0, 0, 0, 353, 353, 353, 2082 0, 0, 0, 126, 129, 130, 0, 0, 353, 353, 2083 356, 893, 0, 410, 0, 0, 0, 0, 0, 47, 2084 48, 76, 0, 8, 9, 10, 11, 12, 0, 0, 2085 0, 168, 0, 173, 0, 0, 179, 180, 181, 0, 2086 183, 1466, 0, 1470, 88, 0, 0, 0, 0, 0, 2087 0, 0, 79, 0, 234, 33, 0, 350, 363, 0, 2088 353, 0, 0, 88, 0, 0, 249, 250, 0, 0, 2089 0, 88, 0, 356, 355, 255, 0, 256, 1498, 0, 2090 1500, 355, 119, 36, 0, 0, 0, 0, 39, 363, 2091 184, 185, 42, 0, 0, 0, 0, 0, 0, 0, 2092 0, 43, 44, 0, 0, 1169, 0, 363, 0, 88, 2093 0, 216, 1169, 0, 0, 0, 356, 356, 0, 0, 2094 0, 0, 1529, 0, 1530, 0, 0, 186, 0, 353, 2095 0, 0, 356, 0, 0, 47, 48, 1537, 1538, 0, 2096 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2097 356, 363, 0, 0, 0, 0, 0, 395, 0, 0, 2098 0, 81, 214, 0, 1169, 0, 0, 414, 415, 0, 2099 0, 1517, 419, 33, 421, 422, 0, 76, 0, 0, 2100 0, 0, 0, 0, 76, 0, 0, 81, 0, 0, 2101 356, 355, 355, 0, 355, 355, 0, 0, 0, 0, 2102 0, 36, 0, 0, 0, 0, 39, 0, 184, 185, 2103 42, 0, 79, 0, 363, 0, 0, 0, 0, 43, 2104 44, 0, 0, 0, 0, 356, 0, 0, 0, 0, 2105 0, 0, 0, 0, 128, 128, 76, 0, 0, 0, 2106 8, 9, 10, 11, 12, 266, 355, 355, 0, 0, 2107 0, 0, 0, 47, 48, 0, 0, 363, 363, 214, 2108 0, 128, 0, 0, 128, 128, 0, 128, 356, 128, 2109 128, 0, 33, 363, 128, 128, 0, 0, 356, 0, 2110 0, 0, 0, 0, 225, 0, 0, 0, 0, 356, 2111 0, 363, 0, 216, 0, 8, 9, 10, 11, 12, 2112 36, 0, 88, 0, 0, 39, 0, 184, 185, 42, 2113 0, 0, 0, 0, 0, 0, 0, 355, 43, 44, 2114 588, 0, 595, 0, 0, 0, 0, 33, 88, 0, 2115 0, 363, 0, 619, 620, 0, 0, 0, 0, 0, 2116 0, 0, 0, 0, 1492, 0, 410, 0, 0, 81, 2117 0, 0, 47, 48, 0, 36, 0, 0, 0, 224, 2118 39, 0, 0, 0, 42, 0, 363, 0, 0, 0, 2119 0, 356, 0, 43, 44, 0, 0, 0, 356, 0, 2120 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2121 216, 0, 355, 0, 355, 0, 0, 0, 0, 712, 2122 0, 0, 0, 0, 0, 0, 0, 47, 48, 363, 2123 128, 128, 0, 0, 0, 0, 0, 0, 0, 363, 2124 0, 0, 0, 0, 0, 226, 0, 0, 0, 355, 2125 363, 0, 0, 0, 0, 0, 355, 355, 355, 0, 2126 0, 0, 0, 0, 0, 0, 0, 355, 355, 0, 2075 2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2076 0, 0, 356, 356, 0, 0, 226, 0, 0, 0, 2077 0, 214, 0, 0, 0, 0, 0, 0, 356, 0, 2078 718, 59, 722, 0, 353, 0, 0, 0, 0, 216, 2079 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 2080 0, 1495, 0, 412, 0, 0, 0, 81, 355, 355, 2081 1503, 355, 355, 0, 0, 0, 0, 0, 0, 168, 2082 0, 173, 348, 0, 179, 180, 181, 0, 183, 79, 2083 0, 0, 88, 81, 0, 0, 356, 0, 0, 0, 2084 0, 0, 234, 0, 0, 0, 363, 0, 0, 0, 2085 0, 88, 0, 353, 249, 250, 0, 0, 0, 88, 2086 0, 0, 0, 355, 355, 0, 0, 0, 214, 0, 2087 0, 356, 0, 0, 0, 0, 0, 363, 1124, 0, 2088 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 2089 0, 0, 0, 0, 1135, 363, 0, 88, 0, 0, 2090 0, 76, 0, 215, 0, 0, 0, 0, 76, 0, 2091 0, 0, 0, 0, 356, 787, 788, 0, 0, 0, 2092 0, 0, 0, 0, 356, 0, 853, 0, 348, 348, 2093 225, 0, 0, 0, 355, 356, 0, 0, 363, 0, 2094 0, 0, 818, 0, 348, 821, 822, 0, 825, 0, 2095 827, 828, 0, 0, 0, 829, 830, 0, 0, 0, 2096 76, 0, 0, 8, 9, 10, 11, 12, 0, 412, 2097 0, 216, 0, 0, 0, 905, 224, 907, 0, 0, 2098 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 2099 0, 0, 0, 0, 33, 81, 0, 79, 0, 0, 2100 0, 363, 348, 0, 0, 0, 0, 0, 1221, 355, 2101 0, 355, 0, 0, 0, 0, 0, 356, 0, 0, 2102 0, 0, 36, 0, 356, 0, 0, 39, 0, 184, 2103 185, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2104 43, 44, 0, 0, 363, 363, 355, 0, 0, 0, 2105 0, 0, 0, 355, 355, 355, 0, 0, 0, 0, 2106 363, 0, 0, 0, 355, 355, 266, 0, 216, 0, 2107 0, 0, 0, 0, 47, 48, 0, 79, 363, 0, 2108 0, 0, 0, 0, 0, 215, 0, 0, 0, 88, 2109 0, 956, 957, 0, 0, 0, 0, 0, 0, 0, 2110 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, 2111 594, 0, 0, 0, 0, 88, 355, 0, 363, 0, 2112 0, 618, 619, 0, 0, 128, 128, 128, 0, 0, 2113 0, 0, 0, 0, 356, 356, 0, 356, 356, 0, 2114 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 2115 0, 0, 1021, 363, 0, 81, 0, 0, 0, 0, 2116 0, 59, 8, 9, 10, 11, 12, 13, 14, 15, 2128 79, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2129 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2130 25, 26, 27, 0, 0, 28, 29, 30, 356, 356, 2131 88, 356, 356, 0, 0, 33, 0, 0, 0, 355, 2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 2133 0, 0, 363, 0, 0, 0, 0, 0, 0, 363, 2134 0, 0, 0, 36, 0, 0, 0, 0, 39, 0, 2135 40, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2136 0, 43, 44, 356, 356, 0, 0, 788, 789, 0, 2137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2138 0, 128, 0, 0, 0, 0, 128, 45, 355, 46, 2139 0, 0, 0, 0, 819, 47, 48, 822, 823, 0, 2140 826, 0, 828, 829, 0, 0, 0, 830, 831, 8, 2141 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2142 19, 20, 21, 22, 23, 24, 25, 26, 27, -298, 2143 0, 0, 0, 0, 356, 0, 79, 0, 0, 0, 2144 0, 33, 166, 79, 0, 0, 0, 0, 0, 363, 2145 363, 997, 363, 363, 8, 9, 10, 11, 12, 219, 2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2147 88, 0, 0, 0, 0, 0, 225, 0, 0, 0, 2148 -298, 0, 0, 0, 283, 284, 33, 285, 0, 913, 2149 0, 914, 0, 0, 0, 79, 0, 81, 917, 918, 2150 0, 0, 0, 923, 363, 363, 166, 0, 0, 356, 2151 273, 356, 0, 286, 36, 0, 929, 0, 0, 287, 2152 0, 933, 0, 288, 0, 0, 289, 290, 291, 292, 2153 293, 294, 43, 44, 0, 295, 296, 0, 0, 166, 2154 0, 128, 0, 957, 958, 0, 356, 0, 595, 369, 2155 0, 0, 374, 356, 356, 356, 0, 0, 297, 0, 2156 378, 0, 0, 0, 356, 356, 344, 48, 299, 300, 2157 301, 302, 0, 0, 212, 363, 0, 81, 0, 0, 2158 0, 0, 0, 232, 0, 236, 0, 238, 0, 0, 2159 0, 0, 0, 0, 247, 0, 0, 0, 0, 0, 2160 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 2161 0, 0, 0, 219, 0, 0, 356, 226, 0, 0, 2162 0, 0, 0, 0, 0, 212, 0, 236, 238, 247, 2163 0, 166, 0, 0, 0, 0, 0, 0, 88, 0, 2164 0, 1007, 0, 1008, 1009, 1010, 0, 0, 0, 0, 2165 363, 0, 363, 0, 0, 0, 374, 0, 0, 0, 2166 0, 0, 1054, 166, 0, 0, 0, 212, 0, 128, 2167 0, 0, 0, 0, 0, 0, 1060, 0, 0, 0, 2168 0, 0, 0, 0, 0, 356, 0, 363, 523, 0, 2169 0, 0, 0, 0, 363, 363, 363, 0, 0, 1072, 2170 0, 166, 0, 0, 0, 363, 363, 0, 0, 0, 2171 0, 0, 0, 0, 0, 1080, 0, 0, 88, 0, 2172 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 2173 236, 238, 247, 81, 0, 0, 593, 0, 0, 0, 2174 81, 617, 0, 0, 0, 0, 0, 0, 0, 0, 2175 0, 0, 0, 0, 0, 0, 0, 363, 0, 1110, 2176 0, 0, 0, 0, 1120, 0, 212, 0, 0, 1123, 2177 0, 212, 0, 0, 1127, 0, 0, 0, 0, 1129, 2178 0, 1130, 1131, 0, 0, 1134, 496, 0, 0, 0, 2179 0, 0, 81, 0, 1146, 0, 0, 0, 0, 0, 2180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2181 1160, 1161, 0, 0, 0, 0, 166, 166, 0, 0, 2182 0, 0, 369, 0, 0, 0, 363, 0, 0, 0, 2183 0, 0, 0, 0, 0, 0, 1190, 212, 0, 1192, 2184 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 2185 0, 0, 0, 0, 1198, 0, 212, 0, 0, 0, 2186 0, 236, 238, 0, 0, 0, 0, 0, 0, 247, 2187 0, 709, 0, 0, 88, 0, 0, 0, 0, 0, 2188 0, 88, 1206, 0, 166, 0, 0, 0, 1210, 1211, 2189 0, 0, 0, 0, 0, 0, 523, 0, 523, 0, 2190 0, 523, 0, 166, 523, 0, 0, 1227, 0, 0, 2191 0, 212, 1234, 0, 0, 369, 0, 1238, 0, 0, 2192 0, 0, 0, 0, 0, 0, 0, 0, 1245, 212, 2193 0, 0, 0, 88, 212, 0, 212, 0, 0, 0, 2194 0, 1252, 0, 1254, 1255, 1256, 1257, 0, 0, 0, 2195 0, 0, 212, 0, 0, 212, 212, 0, 1264, 0, 2196 1160, 0, 0, 212, 173, 0, 0, 166, 0, 0, 2197 0, 0, 0, 0, 0, 0, 0, 212, 369, 0, 2198 0, 800, 1287, 0, 212, 0, 0, 0, 0, 0, 2199 0, 0, 1292, 1293, 0, 0, 1144, 0, 0, 8, 2200 9, 10, 11, 12, 0, 0, 0, 593, 0, 0, 2201 0, 0, 593, 158, 0, 0, 0, 0, 0, 0, 2202 0, 369, 369, 0, 0, 0, 0, 0, 0, 283, 2203 284, 33, 285, 0, 0, 0, 0, 369, 0, 0, 2204 0, 0, 0, 0, 0, 0, 1327, 1328, 0, 0, 2205 0, 0, 0, 0, 0, 0, 1338, 0, 286, 36, 2206 252, 0, 0, 0, 287, 0, 0, 0, 288, 523, 2207 257, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2208 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2209 0, 0, 0, 0, 0, 369, 212, 922, 0, 0, 2210 0, 0, 0, 297, 0, 378, 0, 283, 284, 0, 2211 285, 1145, 48, 299, 300, 301, 302, 0, 1373, 0, 2212 1374, 1375, 1376, 0, 212, 0, 0, 0, 0, 212, 2213 709, 0, 1380, 0, 0, 0, 286, 0, 0, 385, 2214 1391, 0, 287, 0, 0, 0, 288, 0, 0, 289, 2215 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2216 0, 0, 417, 0, 0, 1412, 1413, 0, 0, 0, 2217 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, 2218 0, 297, 0, 378, 0, 436, 0, 0, 617, 47, 2219 48, 299, 300, 301, 302, 444, 0, 0, 212, 0, 2220 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, 2221 1452, 1453, 212, 0, 0, 0, 0, 0, 0, 0, 2222 462, 0, 0, 1458, 0, 472, 0, 0, 0, 0, 2223 1458, 0, 0, 496, 0, 0, 0, 0, 480, 0, 2224 0, 0, 0, 0, 491, 0, 495, 0, 0, 0, 2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2226 0, 0, 0, 1491, 0, 524, 0, 1497, 0, 0, 2227 0, 0, 0, 0, 0, 0, 369, 0, 0, 0, 2228 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 2229 0, 0, 212, 0, 0, 1519, 0, 1520, 523, 0, 2230 0, 0, 0, 212, 0, 0, 583, 0, 0, 0, 2231 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2232 212, 0, 0, 166, 0, 1535, 1536, 0, 0, 0, 2233 0, 0, 0, 1539, 1540, 0, 0, 0, 630, 0, 2234 0, 0, 631, 632, 0, 633, 0, 0, 0, 0, 2235 0, 0, 644, 645, 0, 646, 647, 0, 648, 0, 2236 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2237 0, 0, 0, 0, 0, 593, 0, 583, 0, 0, 2238 0, 0, 0, 0, 0, 664, 0, 0, 0, 341, 2239 364, 0, 0, 0, 0, 0, 369, 369, 0, 0, 2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 675, 2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2242 0, 0, 413, 0, 0, 0, 0, 0, 0, 413, 2243 0, 212, 0, 0, 0, 701, 0, 0, 0, 0, 2244 0, 704, 0, 0, 0, 0, 462, 0, 0, 0, 2245 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 2246 0, 212, 8, 9, 10, 11, 12, 13, 14, 15, 2117 2247 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2118 26, 27, 215, 348, 0, 355, 0, 0, 0, 356, 2119 356, 0, 1070, 33, 0, 0, 363, 128, 0, 128, 2120 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2121 0, 0, 226, 0, 0, 0, 0, 363, 0, 0, 2122 0, 36, 0, 0, 276, 0, 0, 0, 0, 59, 2123 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 2124 79, 0, 0, 0, 0, 0, 0, 1071, 0, 637, 2248 26, 27, 0, 739, 28, 29, 30, 0, 0, 0, 2249 0, 0, 0, 212, 33, 0, 0, 0, 757, 0, 2250 0, 413, 0, 0, 212, 0, 0, 0, 0, 0, 2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 709, 2252 0, 0, 36, 0, 0, 0, 0, 112, 0, 40, 2253 41, 0, 0, 0, 0, 782, 0, 0, 0, 0, 2254 43, 44, 0, 0, 792, 0, 0, 0, 0, 0, 2255 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 2256 219, 0, 0, 0, 813, 0, 413, 579, 46, 413, 2257 582, 0, 0, 212, 47, 48, 0, 364, 0, 0, 2258 0, 609, 0, 0, 0, 0, 0, 212, 0, 0, 2259 0, 0, 0, 0, 0, 0, 709, 0, 0, 0, 2260 627, 0, 852, 0, 8, 9, 10, 11, 12, 13, 2261 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2262 24, 25, 26, 27, 0, 0, 28, 29, 30, 413, 2263 0, 0, 0, 413, 0, 0, 33, 0, 885, 0, 2264 0, 0, 0, 0, 0, 0, 892, 0, 0, 369, 2265 369, 0, 0, 0, 0, 0, 0, 219, 0, 0, 2266 0, 0, 0, 364, 36, 0, 0, 0, 0, 39, 2267 0, 208, 41, 42, 0, 212, 0, 252, 0, 0, 2268 0, 0, 43, 44, 0, 0, 0, 0, 930, 931, 2125 2269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2126 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127 0, 0, 0, 0, 0, 0, 0, 88, 996, 128, 2128 0, 8, 9, 10, 11, 12, 0, 128, 0, 128, 2129 128, 0, 79, 0, 128, 0, 128, 128, 0, 363, 2130 0, 0, 225, 348, 348, 0, 363, 0, 0, 0, 2131 283, 284, 33, 285, 0, 0, 0, 0, 0, 0, 2132 0, 59, 0, 81, 0, 0, 0, 0, 0, 0, 2133 0, 0, 0, 0, 0, 356, 0, 356, 0, 286, 2134 36, 0, 0, 1021, 0, 287, 0, 0, 0, 288, 2135 0, 0, 289, 290, 291, 292, 293, 294, 43, 44, 2136 0, 295, 296, 0, 0, 0, 128, 0, 0, 0, 2137 0, 0, 356, 0, 0, 0, 0, 0, 0, 356, 2138 356, 356, 0, 0, 297, 0, 378, 0, 0, 0, 2139 356, 356, 344, 48, 299, 300, 301, 302, 0, 0, 2140 0, 0, 1197, 81, 0, 0, 0, 0, 0, 0, 2141 0, 166, 0, 0, 0, 0, 363, 363, 0, 363, 2142 363, 0, 0, 0, 0, 0, 0, 0, 219, 0, 2143 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 2144 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 2145 0, 283, 284, 0, 285, 1264, 912, 0, 913, 0, 2146 0, 0, 0, 0, 0, 916, 917, 59, 59, 0, 2147 922, 363, 363, 0, 0, 166, 0, 0, 0, 273, 2148 286, 0, 0, 928, 0, 0, 287, 0, 932, 59, 2149 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2150 44, 0, 295, 296, 0, 0, 0, 59, 166, 0, 2151 0, 356, 0, 0, 0, 594, 0, 0, 369, 0, 2152 0, 374, 0, 0, 0, 297, 0, 378, 0, 0, 2153 1286, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2154 0, 0, 363, 0, 0, 0, 779, 0, 0, 0, 2155 0, 0, 0, 0, 0, 0, 348, 348, 0, 81, 2156 0, 0, 0, 0, 59, 0, 81, 0, 0, 59, 2157 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158 0, 0, 219, 0, 226, 0, 0, 0, 0, 0, 2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2160 166, 0, 59, 0, 0, 88, 0, 0, 1006, 0, 2161 1007, 1008, 1009, 0, 0, 0, 0, 363, 81, 363, 2162 0, 0, 0, 0, 0, 374, 0, 0, 0, 1053, 2163 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 2164 0, 0, 0, 1059, 0, 0, 0, 0, 0, 0, 2165 0, 0, 0, 0, 363, 0, 0, 522, 0, 0, 2166 0, 363, 363, 363, 0, 0, 0, 0, 128, 128, 2167 166, 0, 363, 363, 0, 0, 0, 348, 0, 0, 2168 0, 0, 1079, 0, 0, 88, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 128, 0, 0, 128, 128, 2170 0, 128, 59, 128, 128, 592, 0, 0, 128, 128, 2171 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2172 0, 0, 0, 0, 363, 59, 1109, 0, 0, 0, 2173 0, 1119, 59, 0, 0, 0, 1122, 0, 0, 0, 2174 0, 1126, 0, 0, 0, 0, 1128, 0, 1129, 1130, 2175 0, 0, 1133, 0, 0, 0, 0, 0, 0, 0, 2176 0, 1145, 0, 0, 0, 0, 0, 0, 0, 0, 2177 0, 0, 0, 0, 0, 0, 0, 1159, 1160, 0, 2178 0, 0, 0, 0, 59, 166, 166, 0, 0, 0, 2179 0, 369, 0, 363, 0, 0, 0, 0, 0, 0, 2180 0, 0, 0, 1189, 0, 0, 1191, 0, 0, 0, 2181 0, 0, 522, 0, 0, 0, 8, 9, 10, 11, 2182 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2183 22, 23, 24, 25, 26, 27, -298, 0, 0, 0, 2184 708, 88, 0, 0, 128, 128, 0, 33, 88, 1205, 2185 0, 0, 166, 0, 0, 1209, 1210, 0, 0, 0, 2186 0, 0, 0, 0, 522, 0, 522, 0, 0, 522, 2187 0, 166, 522, 0, 1226, 36, 0, 0, 0, 1233, 2188 0, 0, 0, 369, 1237, 0, -298, 0, 0, 0, 2189 0, 0, 0, 0, 0, 1244, 0, 0, 0, 0, 2190 88, 0, 0, 0, 0, 0, 0, 0, 1251, 0, 2191 1253, 1254, 1255, 1256, 0, 0, 0, 212, 0, 0, 2192 0, 0, 0, 0, 0, 1263, 232, 1159, 236, 0, 2193 238, 173, 0, 0, 0, 166, 0, 247, 0, 0, 2194 0, 0, 0, 0, 0, 0, 369, 0, 0, 799, 2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 1291, 2196 1292, 0, 0, 0, 0, 0, 0, 0, 212, 0, 2197 236, 238, 247, 0, 0, 592, 0, 0, 0, 0, 2198 592, 0, 0, 0, 0, 0, 0, 0, 0, 369, 2199 369, 0, 0, 0, 0, 128, 0, 0, 0, 0, 2200 128, 0, 0, 0, 0, 369, 0, 0, 0, 0, 2201 212, 0, 0, 1326, 1327, 0, 0, 0, 0, 0, 2202 0, 0, 0, 1337, 0, 0, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 0, 0, 522, 8, 9, 2204 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2205 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2206 28, 29, 30, 369, 0, 921, 0, 0, 0, 33, 2207 0, 212, 0, 236, 238, 247, 0, 158, 0, 0, 2208 0, 0, 0, 0, 0, 1372, 0, 1373, 1374, 1375, 2209 0, 0, 0, 0, 0, 0, 0, 36, 708, 1379, 2210 0, 0, 39, 0, 40, 41, 42, 1390, 0, 212, 2211 0, 0, 0, 0, 212, 43, 44, 0, 0, 0, 2212 0, 0, 0, 0, 252, 0, 0, 0, 0, 495, 2213 0, 0, 1411, 1412, 257, 0, 0, 0, 0, 0, 2214 0, 45, 0, 46, 0, 0, 0, 0, 0, 47, 2215 48, 324, 0, 0, 0, 128, 616, 0, 0, 0, 2216 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 2217 0, 0, 381, 381, 0, 0, 0, 1451, 1452, 0, 2218 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2219 1457, 0, 0, 0, 0, 0, 0, 1457, 0, 212, 2220 0, 0, 0, 385, 236, 238, 0, 0, 0, 0, 2221 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 2223 1490, 0, 0, 0, 1496, 0, 0, 0, 0, 0, 2224 431, 0, 0, 324, 369, 0, 0, 0, 0, 436, 2225 0, 708, 0, 0, 212, 0, 0, 0, 0, 444, 2226 0, 0, 1518, 0, 1519, 0, 522, 476, 0, 0, 2227 0, 0, 212, 0, 0, 0, 0, 212, 0, 212, 2228 0, 0, 0, 128, 462, 0, 0, 0, 0, 472, 2229 0, 166, 1534, 1535, 0, 212, 0, 0, 212, 212, 2230 1538, 1539, 480, 0, 0, 0, 212, 0, 490, 0, 2231 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2232 212, 0, 0, 0, 0, 0, 0, 212, 0, 523, 2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2234 0, 0, 0, 592, 8, 9, 10, 11, 12, 13, 2235 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2236 24, 25, 26, 27, 369, 369, 28, 29, 30, 0, 2237 582, 0, 0, 0, 586, 33, 0, 0, 0, 0, 2238 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2240 0, 0, 629, 36, 0, 0, 630, 631, 0, 632, 2241 208, 41, 0, 0, 0, 0, 643, 644, 0, 645, 2242 646, 522, 647, 0, 648, 0, 0, 0, 0, 0, 2243 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 2244 0, 582, 0, 0, 0, 0, 0, 0, 0, 663, 2245 0, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2246 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2247 0, 212, 0, 674, 0, 702, 0, 0, 0, 0, 2248 0, 0, 0, 0, 0, 0, 0, 708, 0, 0, 2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 700, 2250 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 2251 462, 0, 0, 0, 735, 0, 0, 0, 0, 0, 2252 0, 0, 0, 0, 0, 0, 751, 0, 219, 0, 2253 0, 0, 735, 0, 0, 735, 341, 364, 0, 0, 2254 212, 0, 0, 0, 0, 0, 738, 0, 760, 0, 2255 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 2256 0, 756, 0, 0, 708, 0, 0, 0, 0, 413, 2257 0, 0, 0, 0, 0, 495, 413, 0, 789, 0, 2258 0, 0, 0, 0, 0, 346, 0, 0, 0, 751, 2259 0, 0, 0, 0, 0, 0, 0, 0, 781, 0, 2260 0, 0, 0, 0, 0, 0, 0, 791, 0, 0, 2261 0, 0, 0, 0, 0, 0, 0, 369, 369, 0, 2262 0, 0, 0, 0, 0, 219, 0, 812, 0, 0, 2263 0, 0, 0, 0, 212, 850, 0, 0, 0, 0, 2264 0, 0, 0, 381, 0, 212, 0, 0, 413, 0, 2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2266 0, 0, 212, 0, 0, 851, 0, 8, 9, 10, 2270 0, 0, 0, 0, 0, 0, 0, 0, 45, 413, 2271 271, 0, 364, 0, 0, 0, 47, 48, 0, 0, 2272 965, 0, 0, 0, 0, 969, 0, 8, 9, 10, 2267 2273 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2268 2274 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2269 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2270 0, 884, 0, 0, 0, 413, 0, 0, 0, 891, 2271 0, 0, 0, 413, 578, 0, 413, 581, 0, 926, 2272 0, 0, 0, 0, 364, 0, 36, 0, 608, 0, 2273 0, 39, 0, 208, 41, 42, 0, 0, 369, 0, 2274 252, 751, 0, 950, 43, 44, 0, 626, 0, 0, 2275 0, 929, 930, 960, 0, 0, 0, 0, 0, 967, 2275 29, 30, 413, 0, 0, 0, 364, 0, 0, 33, 2276 2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2277 45, 0, 271, 212, 0, 0, 413, 0, 47, 48, 2278 413, 0, 0, 964, 0, 0, 0, 0, 968, 0, 2279 0, 0, 0, 0, 0, 522, 0, 522, 0, 984, 2280 985, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2281 364, 0, 0, 0, 0, 346, 0, 0, 0, 0, 2277 369, 0, 212, 0, 0, 0, 0, 0, 0, 0, 2278 0, 0, 0, 0, 0, 1002, 0, 36, 0, 0, 2279 0, 0, 1003, 0, 40, 41, 0, 0, 0, 0, 2280 413, 413, 0, 0, 0, 1005, 0, 1006, 0, 0, 2281 0, 0, 0, 0, 0, 0, 0, 0, 795, 364, 2282 1016, 0, 0, 0, 0, 0, 1020, 523, 609, 523, 2283 609, 609, 0, 258, 0, 324, 0, 609, 1057, 47, 2284 48, 1058, 0, 0, 0, 346, 0, 832, 364, 0, 2285 0, 0, 0, 364, 0, 0, 381, 381, 0, 0, 2286 0, 0, 364, 364, 523, 0, 523, 0, 0, 0, 2287 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 2288 0, 0, 0, 413, 873, 0, 0, 413, 876, 0, 2289 0, 0, 0, 166, 878, 0, 506, 0, 508, 511, 2290 0, 0, 0, 0, 0, 0, 0, 0, 514, 515, 2291 0, 0, 0, 413, 0, 0, 0, 0, 283, 284, 2292 0, 285, 0, 508, 508, 0, 0, 324, 0, 0, 2293 0, 0, 0, 0, 0, 0, 364, 609, 0, 0, 2294 0, 0, 0, 0, 0, 0, 0, 286, 0, 1128, 2295 0, 476, 0, 634, 0, 141, 142, 288, 508, 0, 2296 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2297 296, 364, 0, 0, 0, 413, 413, 0, 0, 0, 2282 2298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2283 0, 0, 522, 0, 522, 212, 0, 0, 0, 0, 2284 0, 0, 0, 0, 0, 0, 212, 0, 1001, 0, 2285 0, 0, 0, 0, 1013, 1002, 413, 0, 381, 364, 2286 0, 166, 0, 0, 0, 0, 0, 0, 1004, 0, 2287 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2288 0, 0, 0, 1015, 0, 0, 0, 346, 0, 1019, 2289 0, 0, 0, 0, 346, 0, 0, 0, 413, 0, 2290 0, 1056, 364, 0, 1057, 0, 0, 0, 0, 0, 2291 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 2293 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, 2294 0, 0, 0, 0, 0, 0, 413, 413, 0, 0, 2299 0, 0, 297, 508, 635, 0, 636, 379, 0, 0, 2300 47, 48, 299, 300, 301, 302, 0, 0, 0, 0, 2301 1191, 0, 0, 0, 0, 0, 0, 0, 413, 0, 2302 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2303 0, 0, 0, 0, 609, 0, 609, 0, 0, 0, 2304 0, 0, 0, 0, 1203, 0, 609, 0, 0, 1205, 2305 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 2306 0, 0, 0, 0, 0, 0, 381, 0, 8, 9, 2307 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2308 20, 21, 22, 23, 24, 25, 26, 27, -299, 0, 2309 0, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 2310 33, 0, 1247, 0, 0, 1248, 0, 1249, 0, 0, 2311 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2312 0, 0, 1258, 1259, 364, 413, 0, 413, 36, 0, 2313 0, 413, 0, 0, 0, 0, 0, 0, 0, -299, 2314 0, 0, 1271, 0, 0, 0, 0, 0, 0, 0, 2315 0, 0, 609, 609, 0, 0, 0, 0, 0, 703, 2316 0, 0, 508, 508, 508, 508, 508, 508, 508, 508, 2317 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 2318 0, 0, 0, 0, 0, 0, 0, 413, 1310, 0, 2319 0, 0, 0, 0, 0, 0, 1314, 0, 0, 736, 2320 0, 0, 0, 0, 0, 0, 413, 1126, 0, 0, 2321 0, 752, 0, 0, 0, 0, 364, 736, 0, 0, 2322 736, 0, 413, 1137, 0, 609, 609, 1142, 0, 0, 2323 0, 0, 0, 761, 0, 0, 0, 364, 364, 0, 2324 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2325 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2326 0, 0, 0, 790, 0, 0, 1361, 0, 1362, 0, 2327 346, 0, 33, 0, 752, 0, 0, 0, 0, 0, 2328 0, 0, 0, 0, 1371, 0, 1372, 0, 0, 0, 2329 0, 0, 0, 0, 0, 0, 0, 413, 0, 413, 2330 36, 1379, 508, 0, 413, 0, 0, 0, 0, 0, 2331 0, 0, 0, 609, 0, 0, 1397, 1399, 0, 0, 2332 851, 0, 0, 0, 0, 0, 0, 1404, 381, 0, 2333 1209, 0, 0, 0, 0, 0, 413, 1223, 0, 0, 2295 2334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 381, 0, 0, 794, 364, 960, 0, 0, 735, 2297 0, 0, 0, 0, 608, 0, 608, 608, 0, 0, 2298 0, 0, 0, 608, 0, 0, 0, 0, 0, 1131, 2299 0, 0, 0, 831, 364, 0, 0, 0, 0, 364, 2300 1146, 0, 0, 0, 0, 0, 0, 0, 364, 364, 2301 0, 0, 1127, 0, 0, 0, 0, 212, 0, 0, 2302 381, 0, 1163, 0, 364, 0, 0, 0, 0, 413, 2303 872, 0, 0, 413, 875, 0, 0, 960, 960, 505, 2304 877, 507, 510, 0, 0, 0, 0, 0, 0, 0, 2305 0, 513, 514, 0, 0, 0, 0, 1194, 0, 413, 2306 0, 0, 0, 0, 0, 0, 507, 507, 0, 0, 2307 0, 0, 0, 1190, 0, 0, 0, 0, 0, 0, 2308 0, 0, 364, 608, 0, 0, 0, 0, 0, 0, 2309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310 0, 507, 0, 0, 0, 0, 0, 1202, 0, 0, 2311 0, 960, 1204, 0, 212, 0, 0, 364, 0, 0, 2312 1208, 413, 413, 0, 0, 0, 0, 0, 0, 0, 2313 850, 0, 0, 0, 0, 0, 507, 0, 0, 0, 2314 0, 0, 0, 0, 0, 1249, 1250, 0, 0, 0, 2315 0, 0, 0, 0, 1239, 0, 0, 0, 0, 0, 2316 0, 0, 0, 0, 413, 1246, 0, 0, 1247, 0, 2317 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2318 608, 0, 608, 0, 0, 1257, 1258, 0, 0, 0, 2319 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 2320 0, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, -523, 0, 0, 1, 2, 2322 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2323 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2324 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2325 31, 1309, 0, 32, 0, 0, 33, 34, 0, 1313, 2326 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 2327 364, 413, 0, 413, 0, 0, 0, 413, 0, 0, 2328 0, 35, 0, 0, 36, 0, 37, 1354, 38, 39, 2329 735, 40, 41, 42, 0, 0, 0, 0, 608, 608, 2330 0, 0, 43, 44, 507, 507, 507, 507, 507, 507, 2331 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 2332 507, 507, 0, 0, 0, 0, 0, 0, 45, 1360, 2333 46, 1361, 0, 413, 0, 0, 47, 48, 0, 0, 2334 0, 0, 0, 0, 0, 0, 0, 1370, 0, 1371, 2335 0, 0, 413, 1125, 0, 0, 0, 0, 0, 0, 2336 0, 0, 364, 0, 1378, 212, 0, 0, 413, 1136, 2337 0, 608, 608, 1141, 0, 0, 0, 0, 0, 1396, 2338 1398, 0, 0, 364, 364, 0, 0, 0, 0, 0, 2339 1403, 0, 0, 1208, 8, 9, 10, 11, 12, 13, 2340 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2341 24, 25, 26, 27, -299, 1426, 0, 0, 0, 0, 2342 0, 0, 0, 0, 1433, 33, 0, 1435, 0, 1437, 2343 1439, 1441, 0, 0, 0, 0, 0, 0, 0, 0, 2344 0, 0, 0, 413, 507, 413, 0, 0, 0, 0, 2345 413, 0, 0, 36, 0, 0, 0, 0, 0, 608, 2346 0, 0, 0, 0, -299, 0, 0, 0, 0, 0, 2347 1472, 0, 1474, 0, 1208, 0, 0, 0, 0, 0, 2348 0, 0, 413, 1222, 0, 0, 0, 0, 0, 0, 2349 1485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350 0, 0, 0, 0, 324, 507, 364, 1, 2, 207, 2335 0, 0, 1427, 0, 0, 0, 0, 0, 0, 0, 2336 364, 1434, 0, 508, 1436, 0, 1438, 1440, 1442, 0, 2337 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2338 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2339 25, 26, 27, 508, 0, 28, 29, 30, 483, 484, 2340 485, 486, 0, 0, 927, 33, 0, 1473, 0, 1475, 2341 0, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 0, 752, 1486, 951, 0, 2343 0, 0, 0, 36, 0, 0, 0, 364, 961, 0, 2344 40, 41, 0, 0, 968, 0, 0, 1, 2, 3, 2351 2345 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2352 2346 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2353 24, 25, 26, 27, 0, 507, 28, 29, 30, 31, 2354 0, 0, 32, 283, 284, 33, 1022, 1023, 0, 1024, 2355 0, 0, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 2356 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 0, 2357 35, 0, 286, 36, 0, 37, 0, 38, 1036, 0, 2358 40, 41, 288, 364, 0, 289, 290, 291, 292, 293, 2359 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2347 24, 25, 26, 27, 0, 0, 28, 29, 30, 31, 2348 0, 0, 0, 32, 985, 986, 33, 34, 0, 0, 2349 364, 364, 0, 0, 0, 0, 0, 0, 0, 0, 2350 346, 0, 0, 0, 0, 0, 0, 508, 0, 0, 2351 0, 35, 0, 0, 36, 0, 37, 0, 38, 39, 2352 0, 40, 41, 42, 0, 0, 0, 0, 0, 0, 2353 0, 0, 43, 44, 0, 0, 0, 0, 0, 1014, 2354 0, 0, 0, 381, 0, 0, 0, 283, 284, 0, 2355 285, 0, 0, 508, 0, 0, 0, 0, 45, 0, 2356 46, 0, 0, 0, -528, 0, 47, 48, 0, 0, 2357 0, 0, 346, 0, 0, 0, 286, 0, 0, 346, 2358 0, 0, 287, 0, 0, 508, 288, 0, 0, 289, 2359 290, 291, 292, 293, 294, 43, 44, 508, 295, 296, 2360 2360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2361 0, 0, 0, 0, 0, 0, 0, 297, 0, 298, 2362 0, 0, 172, 0, 0, 47, 48, 299, 300, 301, 2363 302, 0, 0, 0, 0, 1037, 364, 364, 0, 0, 2364 -134, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2365 1, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2366 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2367 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2368 29, 30, 31, 0, 0, 32, 283, 284, 33, 285, 2369 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 2361 0, 364, 0, 0, 0, 0, 0, 0, 0, 324, 2362 0, 297, 0, 378, 0, 0, 379, 0, 0, 47, 2363 48, 299, 300, 301, 302, 0, 508, 0, 0, 0, 2364 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 2365 0, 961, 0, 0, 736, 0, 0, 0, 0, 0, 2370 2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2371 0, 0, 0, 0, 0, 286, 36, 0, 37, 0, 2372 38, 287, 0, 40, 41, 288, 0, 507, 289, 290, 2373 291, 292, 293, 294, 43, 44, 0, 295, 296, 507, 2367 0, 0, 0, 0, 1132, 0, 0, 0, 0, 0, 2368 0, 0, 0, 0, 0, 1147, 0, 0, 0, 0, 2369 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2370 413, 0, 0, 0, 0, 381, 0, 1164, 0, 0, 2371 0, 0, 508, 0, 0, 0, 0, 0, 0, 0, 2372 0, 286, 961, 961, 413, 413, 0, 287, 0, 0, 2373 0, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2374 43, 44, 1195, 295, 296, 0, 0, 0, 0, 413, 2374 2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2376 297, 0, 298, 0, 0, 0, 0, 0, 47, 48, 2377 299, 300, 301, 302, 0, 0, 0, 0, 507, 0, 2378 0, 0, 0, -134, 0, 0, 0, 0, 0, 1, 2379 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2380 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2381 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2382 30, 31, 0, 0, 32, 0, 0, 33, 34, 0, 2376 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2377 0, 508, 508, 751, 47, 48, 299, 300, 301, 302, 2383 2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 2385 0, 0, 35, 0, 507, 36, 0, 37, 0, 38, 2386 39, 0, 40, 41, 42, 0, 0, 0, 0, 0, 2387 413, 413, 0, 43, 44, 0, 0, 0, 0, 0, 2379 0, 0, 0, 0, 0, 0, 961, 0, 0, 0, 2388 2380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2389 0, 0, 0, 0, 0, 413, 0, 0, 0, 45, 2390 0, 46, 0, 0, 0, -527, 0, 47, 48, 0, 2391 0, 0, 0, 507, 507, 1, 2, 207, 4, 5, 2392 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2393 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2394 26, 27, 0, 0, 28, 29, 30, 31, 0, 0, 2381 0, 0, 0, 0, 0, 851, 0, 0, 0, 0, 2382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2383 1250, 1251, 1, 2, 207, 4, 5, 6, 7, 8, 2384 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2385 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2386 0, 28, 29, 30, 31, 0, 0, 0, 32, 283, 2387 284, 33, 1023, 1024, 0, 1025, 0, 0, 1026, 1027, 2388 1028, 1029, 1030, 1031, 1032, 1033, 0, 0, 0, 1034, 2389 0, 0, 0, 1035, 1036, 0, 35, 0, 286, 36, 2390 0, 37, 0, 38, 1037, 0, 40, 41, 288, 0, 2391 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2392 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2394 0, 0, 0, 297, 0, 298, 0, 0, 172, 0, 2395 0, 47, 48, 299, 300, 301, 302, 0, 0, 0, 2396 0, 1038, 0, 0, 0, 0, -134, 0, 0, 0, 2397 0, 0, 1355, 0, 0, 736, 0, 0, 0, 508, 2398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2399 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 2400 0, 0, 0, 0, 1, 2, 207, 4, 5, 6, 2401 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2402 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2403 27, 0, 0, 28, 29, 30, 31, 0, 0, 0, 2395 2404 32, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2396 2405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2406 0, 0, 0, 0, 0, 0, 0, 0, 508, 508, 2398 2407 286, 36, 0, 37, 0, 38, 287, 0, 40, 41, 2399 2408 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, … … 2402 2411 0, 0, 0, 0, 0, 297, 0, 298, 0, 0, 2403 2412 0, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2404 0, 0, 0, 0, 0, 2, 207, 4, 5, 6, 2405 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2406 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2407 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2408 283, 284, 33, 285, 0, 0, 0, 0, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2410 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 2411 36, 0, 37, 0, 38, 287, 0, 40, 41, 288, 2412 0, 507, 289, 290, 291, 292, 293, 294, 43, 44, 2413 0, 295, 296, 0, 0, 0, 0, 0, 507, 0, 2414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2415 0, 0, 0, 0, 297, 0, 343, 0, 0, 0, 2416 0, 750, 344, 48, 299, 300, 301, 302, 2, 207, 2417 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2418 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2419 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2420 0, 0, 0, 283, 284, 33, 285, 0, 0, 0, 2421 507, 507, 0, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2423 0, 0, 286, 36, 0, 37, 0, 38, 287, 0, 2424 40, 41, 288, 0, 0, 289, 290, 291, 292, 293, 2425 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 0, 0, 0, 297, 0, 343, 2428 0, 0, 0, 0, 750, 47, 48, 299, 300, 301, 2429 302, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2430 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2431 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2432 29, 30, 0, 0, 0, 0, 283, 284, 33, 285, 2433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2413 0, 0, 0, 0, 0, 0, 0, 0, -134, 1, 2414 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2415 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2416 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2417 30, 31, 0, 0, 0, 32, 283, 284, 33, 285, 2418 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 2434 2419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2435 2420 0, 0, 0, 0, 0, 286, 36, 0, 37, 0, … … 2438 2423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2439 2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2440 297, 0, 343, 0, 0, 0, 0, 0, 344, 48,2425 297, 0, 298, 0, 0, 0, 0, 0, 47, 48, 2441 2426 299, 300, 301, 302, 2, 207, 4, 5, 6, 7, 2442 2427 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2443 2428 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2444 0, 0, 28, 29, 30, 0, 0, 0, 0, 283, 2445 284, 33, 285, 0, 0, 0, 0, 0, 0, 0, 2429 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 2430 283, 284, 33, 285, 8, 9, 10, 11, 12, 13, 2431 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2432 24, 25, 26, 27, 0, 0, 28, 29, 30, 286, 2433 36, 0, 37, 0, 38, 287, 33, 40, 41, 288, 2434 0, 0, 289, 290, 291, 292, 293, 294, 43, 44, 2435 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 2436 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 2437 0, 40, 41, 0, 297, 0, 343, 0, 0, 0, 2438 0, 751, 344, 48, 299, 300, 301, 302, 2, 207, 2439 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2440 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2441 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2442 0, 0, 0, 0, 283, 284, 33, 285, 8, 9, 2443 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2444 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2445 28, 29, 30, 286, 36, 0, 37, 0, 38, 287, 2446 33, 40, 41, 288, 0, 0, 289, 290, 291, 292, 2447 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2448 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2449 0, 0, 0, 0, 0, 208, 41, 0, 297, 0, 2450 343, 0, 0, 0, 0, 751, 47, 48, 299, 300, 2451 301, 302, 2, 207, 4, 5, 6, 7, 8, 9, 2452 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2453 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2454 28, 29, 30, 0, 0, 0, 0, 0, 283, 284, 2455 33, 285, 0, 0, 0, 0, 0, 0, 0, 0, 2446 2456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447 0, 0, 0, 0, 0, 0, 0, 0, 286, 36,2448 0, 37, 0, 38, 287, 0, 208, 41, 288, 0,2449 0, 289, 290, 291, 292, 293, 294, 43, 44, 0,2450 29 5, 296, 0, 0, 0, 0, 0, 0, 0, 0,2457 0, 0, 0, 0, 0, 0, 0, 286, 36, 0, 2458 37, 0, 38, 287, 0, 40, 41, 288, 0, 0, 2459 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2460 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2451 2461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2452 0, 0, 0, 297, 0, 981, 0, 0, 0, 0,2453 0, 982, 48, 299, 300, 301, 302, 2, 207, 4,2454 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,2455 1 5, 16, 17, 18, 19, 20, 21, 22, 23, 24,2456 2 5, 26, 27, 0, 0, 28, 29, 30, 0, 0,2462 0, 0, 297, 0, 343, 0, 0, 0, 0, 0, 2463 344, 48, 299, 300, 301, 302, 2, 207, 4, 5, 2464 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2465 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2466 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2457 2467 0, 0, 283, 284, 33, 285, 0, 0, 0, 0, 2458 2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 2462 2472 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2463 2473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2464 0, 0, 0, 0, 0, 0, 297, 0, 378, 0,2465 0, 0, 0, 0, 47, 48, 299, 300, 301, 302,2466 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,2467 1 1, 12, 13, 14, 15, 16, 17, 18, 19, 20,2468 2 1, 22, 23, 24, 25, 26, 27, 0, 0, 28,2469 29, 30, 31, 0, 0, 32, 0, 0, 33, 34,2474 0, 0, 0, 0, 0, 0, 297, 0, 982, 0, 2475 0, 0, 0, 0, 983, 48, 299, 300, 301, 302, 2476 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2477 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2478 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2479 30, 0, 0, 0, 0, 0, 283, 284, 33, 285, 2470 2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2471 2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2472 0, 0, 0, 35, 0, 0, 36, 0, 37, 0, 2473 38, 39, 0, 40, 41, 42, 0, 0, 0, 0, 2482 0, 0, 0, 0, 0, 286, 36, 0, 37, 0, 2483 38, 287, 0, 208, 41, 288, 0, 0, 289, 290, 2484 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2487 297, 0, 378, 0, 0, 0, 0, 0, 47, 48, 2488 299, 300, 301, 302, -524, 0, 0, 1, 2, 3, 2489 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2490 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2491 24, 25, 26, 27, 0, 0, 28, 29, 30, 31, 2492 0, 0, 0, 32, 0, 0, 33, 34, 0, 0, 2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2495 0, 35, 0, 0, 36, 0, 37, 0, 38, 39, 2496 0, 40, 41, 42, 0, 0, 0, 0, 0, 0, 2497 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 2498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2499 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 2500 46, 0, 0, 0, 0, 0, 47, 48, 1, 2, 2501 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2502 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2503 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2504 31, 0, 0, 0, 32, 0, 0, 33, 34, 0, 2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507 0, 0, 35, 0, 0, 36, 0, 37, 0, 38, 2508 39, 0, 40, 41, 42, 0, 0, 0, 0, 0, 2509 0, 0, 0, 43, 44, 0, 0, 0, 0, 0, 2510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 2512 0, 46, 0, 0, 0, 0, 0, 47, 48, 206, 2513 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2514 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2515 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2516 30, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2520 38, 39, 0, 208, 41, 42, 0, 0, 0, 0, 2474 2521 0, 0, 0, 0, 43, 44, 0, 0, 0, 0, 2475 2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2476 2523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477 45, 0, 46, 0, 0, 0, 0, 0, 47, 48,2478 206, 2, 207, 4, 5, 6, 7, 8, 9, 10,2479 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,2480 21, 22, 23, 24, 25, 26, 27, 0, 0, 28,2481 29, 30, 0, 0, 0, 0, 0, 0, 33, 0,2482 0, 8, 9, 10, 11, 12, 13, 14, 15, 16,2483 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,2484 27, 0, 0, 28, 29, 30, 36, 0, 37, 0,2485 38, 39, 33, 208, 41, 42, 0, 0, 0, 0,2486 0, 0, 0, 0, 43, 44, 0, 0, 0, 0,2487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2488 36, 0, 0, 0, 0, 0, 0, 40, 41, 0,2489 2524 45, 0, 209, 0, 0, 0, 0, 0, 47, 48, 2490 2525 1, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2491 2526 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2492 2527 21, 22, 23, 24, 25, 26, 27, -298, 0, 28, 2493 29, 30, 31, 0, 0, 32, 0, 0, 33, 0,2528 29, 30, 31, 0, 0, 0, 32, 0, 0, 33, 2494 2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2495 2530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2497 38, 0, 0, 40, 41, 0, 0, -298, 1, 2, 2498 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2499 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2500 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2501 31, 0, 46, 32, 0, 0, 33, 0, 47, 48, 2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504 0, 0, 0, 0, 36, 0, 37, 0, 38, 0, 2505 0, 40, 41, 206, 2, 207, 4, 5, 6, 7, 2506 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2507 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2508 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 2509 46, 33, 0, 0, 0, 0, 47, 48, 0, 1143, 2510 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2512 0, 37, 0, 38, 0, 0, 208, 41, 0, 0, 2513 0, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2516 286, 36, 0, 0, 0, 209, 287, 0, 0, 0, 2517 288, 47, 48, 289, 290, 291, 292, 293, 294, 43, 2518 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520 0, 0, 0, 0, 0, 297, 0, 378, 0, 0, 2521 0, 0, 0, 1144, 48, 299, 300, 301, 302, 2, 2522 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2523 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2524 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2525 0, 0, 0, 0, 0, 0, 33, 0, 0, 8, 2526 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2527 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2528 0, 28, 29, 30, 36, 0, 37, 0, 38, 39, 2529 33, 208, 41, 42, 0, 0, 0, 0, 0, 0, 2530 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 2531 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2532 0, 0, 0, 0, 0, 40, 41, 0, 45, 0, 2533 209, 0, 0, 0, 0, 0, 47, 48, 2, 207, 2534 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2535 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2536 24, 25, 26, 27, 258, 0, 28, 29, 30, 0, 2537 47, 48, 0, 0, 0, 33, 0, 0, 0, 0, 2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2540 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2541 40, 41, 0, 2, 207, 4, 5, 6, 7, 8, 2542 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2543 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2544 0, 28, 29, 30, 0, 0, 0, 0, -407, 670, 2545 33, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2547 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2548 37, 0, 38, 0, 0, 40, 41, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 1334, 2551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 0, 670, 0, 0, 0, 0, 0, 2553 47, 48, 2, 207, 4, 5, 6, 7, 8, 9, 2554 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2555 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2556 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 2557 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2558 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2559 26, 27, 0, 0, 28, 29, 30, 36, 0, 37, 2560 0, 38, 0, 33, 40, 41, 0, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 2563 0, 36, 0, 0, 0, 0, 0, 0, 40, 41, 2564 0, 0, 0, 670, 0, 0, 0, 0, 0, 47, 2565 48, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2566 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2567 21, 22, 23, 24, 25, 26, 27, 46, 0, 28, 2568 29, 30, 0, 47, 48, 0, 0, 0, 33, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2531 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2532 0, 38, 0, 0, 40, 41, 0, 0, -298, 1, 2533 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2534 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2535 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2536 30, 31, 0, 46, 0, 32, 0, 0, 33, 47, 2537 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2571 2539 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2572 38, 0, 0, 208, 41, 0, 2, 207, 4, 5,2540 38, 0, 0, 40, 41, 206, 2, 207, 4, 5, 2573 2541 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2574 2542 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2575 2543 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2576 0, 0, 271, 33, 0, 0, 0, 0, 47, 48,2544 0, 0, 46, 0, 33, 0, 0, 0, 47, 48, 2577 2545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2578 2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2579 0, 36, 0, 37, 0, 38, 0, 0, 40, 41,2580 0, 2, 207, 4, 5, 6, 7, 8, 9, 10,2547 0, 0, 36, 0, 37, 0, 38, 0, 0, 208, 2548 41, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2581 2549 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2582 2550 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2583 29, 30, 0, 0, 0, 0, 0, 670, 33, 0,2584 0, 0, 0, 47, 48, 0, 0, 0, 0, 0,2551 29, 30, 0, 0, 0, 0, 0, 0, 209, 33, 2552 0, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2585 2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2587 38, 0, 0, 208, 41, 8, 9, 10, 11, 12, 2588 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2589 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2590 0, 0, 0, 0, 283, 284, 33, 285, 0, 0, 2591 0, 0, 209, 0, 0, 0, 0, 0, 47, 48, 2554 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2555 0, 38, 39, 0, 208, 41, 42, 0, 0, 0, 2556 0, 0, 0, 0, 0, 43, 44, 0, 0, 0, 2592 2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 0, 0, 286, 36, 0, 0, 0, 0, 287,2594 0, 40, 41, 288, 0, 0, 289, 290, 291, 292,2595 293, 294, 43, 44, 0, 295, 296, 0, 0, 0,2596 2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2598 515, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2599 301, 302, 8, 9, 10, 11, 12, 13, 14, 15, 2559 0, 45, 0, 209, 0, 0, 0, 0, 0, 47, 2560 48, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2561 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2562 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2563 29, 30, 0, 0, 0, 0, 0, 0, 0, 33, 2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2566 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2567 0, 38, 0, 0, 40, 41, 2, 207, 4, 5, 2568 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2600 2569 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2601 2570 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2602 0, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2571 0, 0, -407, 671, 33, 0, 0, 0, 0, 47, 2572 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2603 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 0, 36, 0, 37, 0, 38, 0, 0, 40, 2575 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2577 0, 0, 0, 1335, 0, 0, 0, 0, 0, 0, 2578 0, 0, 0, 0, 0, 0, 0, 0, 671, 0, 2579 0, 0, 0, 0, 47, 48, 2, 207, 4, 5, 2580 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2581 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2582 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2583 0, 0, 0, 0, 33, 0, 8, 9, 10, 11, 2584 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2585 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2586 30, 0, 36, 0, 37, 0, 38, 0, 33, 40, 2587 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 0, 0, 1337, 0, 0, 36, 0, 0, 0, 2590 0, 0, 0, 40, 41, 0, 0, 0, 671, 0, 2591 0, 0, 0, 0, 47, 48, 2, 207, 4, 5, 2592 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2593 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2594 26, 27, 46, 0, 28, 29, 30, 0, 47, 48, 2595 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598 0, 0, 36, 0, 37, 0, 38, 0, 0, 208, 2599 41, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2600 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2601 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2602 29, 30, 0, 0, 0, 0, 0, 0, 271, 33, 2603 0, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2605 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2606 0, 38, 0, 0, 40, 41, 2, 207, 4, 5, 2607 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2608 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2609 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2610 0, 0, 0, 671, 33, 0, 0, 0, 0, 47, 2611 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2613 0, 0, 36, 0, 37, 0, 38, 0, 0, 208, 2614 41, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2615 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2616 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2617 0, 283, 284, 33, 285, 0, 0, 0, 209, 0, 2618 0, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2604 2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2605 2620 286, 36, 0, 0, 0, 0, 287, 0, 40, 41, … … 2607 2622 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2608 2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2609 0, 0, 0, 0, 0, 297, -40, 298, 0, 0,2610 0, 0, 0, 47, 48, 299, 300, 301, 302, 8,2624 0, 0, 0, 0, 0, 297, 0, 516, 0, 0, 2625 172, 0, 0, 47, 48, 299, 300, 301, 302, 8, 2611 2626 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2612 2627 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2613 0, 28, 29, 30, 0, 0, 0, 0, 283, 284, 2614 33, 285, 0, 0, 0, 0, 0, 0, 0, 0, 2628 0, 28, 29, 30, 0, 0, 0, 0, 0, 283, 2629 284, 33, 285, 8, 9, 10, 11, 12, 13, 14, 2630 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2631 25, 26, 27, 0, 0, 28, 29, 30, 286, 36, 2632 0, 0, 0, 0, 287, 33, 40, 41, 288, 0, 2633 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2634 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2635 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 2636 208, 41, 0, 297, -40, 298, 0, 0, 0, 0, 2637 0, 47, 48, 299, 300, 301, 302, 8, 9, 10, 2638 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2639 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2640 29, 30, 0, 0, 0, 47, 48, 283, 284, 33, 2641 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2615 2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2616 0, 0, 0, 0, 0, 0, 0, 286, 36, 0, 2617 0, 0, 0, 287, 0, 40, 41, 288, 0, 0, 2618 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2619 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2643 0, 0, 0, 0, 0, 0, 286, 36, 0, 0, 2644 0, 0, 287, 0, 40, 41, 288, 0, 0, 289, 2645 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2620 2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2621 0, 0, 297, 0, 298, 0, 0, 0, 0, 0, 2622 47, 48, 299, 300, 301, 302, 8, 9, 10, 11, 2623 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2624 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2625 30, 0, 0, 0, 0, 283, 284, 33, 285, 0, 2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648 0, 297, 0, 298, 0, 0, 0, 0, 0, 47, 2649 48, 299, 300, 301, 302, 8, 9, 10, 11, 12, 2650 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2651 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2652 0, 0, 0, 0, 0, 283, 284, 33, 285, 0, 2626 2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2627 2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 2635 2662 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2636 2663 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2637 0, 0, 283, 284, 33, 285, 0, 0, 0, 0,2664 0, 0, 0, 283, 284, 33, 285, 0, 0, 0, 2638 2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639 2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 286, 36, 0, 0, 0, 0, 287, 0, 40,2641 4 1, 288, 0, 0, 289, 290, 291, 292, 293, 294,2642 43, 44, 0, 295, 296, 0, 0, 0, 0, 0,2667 0, 0, 286, 36, 0, 0, 0, 0, 287, 0, 2668 40, 41, 288, 0, 0, 289, 290, 291, 292, 293, 2669 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2643 2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2645 0, 0, 0, 0, 47, 48, 299, 300, 301, 302, 2646 465, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2647 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2648 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2649 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2650 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2651 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2652 0, 0, 28, 29, 30, 0, 36, 0, 37, 0, 2653 38, 33, 0, 40, 41, 0, 0, 0, 0, 0, 2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2656 0, 0, 0, 0, 112, 0, 40, 41, 0, 0, 2657 0, 0, 0, 0, 0, -3, 0, 43, 44, 0, 2658 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2659 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2660 24, 25, 26, 27, 0, 46, 28, 29, 30, 0, 2661 0, 47, 48, 0, 0, 33, 677, 8, 9, 10, 2662 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2663 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2664 29, 30, 0, 36, 0, 0, 0, 0, 33, 677, 2665 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2667 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 2668 0, 0, 0, 40, 41, 0, 0, 0, 0, 678, 2669 0, 0, 0, 679, 0, 47, 48, 0, 0, 0, 2671 0, 0, 0, 0, 0, 0, 0, 297, 0, 378, 2672 0, 0, 0, 0, 0, 47, 48, 299, 300, 301, 2673 302, 465, 2, 207, 4, 5, 6, 7, 8, 9, 2674 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2675 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2676 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, 2677 33, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2678 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2679 27, 0, 0, 28, 29, 30, 0, 0, 36, 0, 2680 37, 0, 38, 33, 678, 40, 41, 0, 0, 0, 2670 2681 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2671 2682 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2672 27, 0, 678, 28, 29, 30, 1072, 0, 47, 48, 2673 0, 0, 33, 677, 8, 9, 10, 11, 12, 13, 2674 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2675 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2676 36, 0, 0, 0, 0, 33, 0, 40, 41, 0, 2683 27, 36, 0, 28, 29, 30, 0, 0, 40, 41, 2684 0, 0, 0, 33, 678, 0, 0, -3, 0, 0, 2677 2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2678 2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2679 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 2680 208, 41, 0, 0, 0, 0, 678, 0, 0, 0, 2681 1199, 0, 47, 48, 0, 0, 0, 0, 8, 9, 2682 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2683 20, 21, 22, 23, 24, 25, 26, 27, 0, 271, 2684 28, 29, 30, 0, 0, 47, 48, 0, 0, 33, 2685 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2686 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2687 0, 0, 28, 29, 30, 0, 0, 36, 0, 0, 2688 0, 33, 0, 0, 40, 41, 0, 0, 0, 0, 2687 0, 36, 0, 0, 0, 0, 0, 679, 40, 41, 2688 0, 680, 0, 47, 48, 0, 8, 9, 10, 11, 2689 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2690 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2691 30, 0, 0, 0, 0, 0, 0, 679, 33, 678, 2692 0, 1073, 0, 47, 48, 0, 8, 9, 10, 11, 2693 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2694 22, 23, 24, 25, 26, 27, 36, 0, 28, 29, 2695 30, 0, 0, 40, 41, 0, 0, 0, 33, 8, 2696 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2697 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2698 0, 28, 29, 30, 0, 0, 36, 0, 0, 0, 2699 0, 33, 679, 208, 41, 0, 1200, 0, 47, 48, 2689 2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2690 2701 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2691 2702 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, 2692 0, 0, 0, 339, 0, 0, 0, 0, 0, 47,2693 48, 0, 0, 0, 8, 9, 10, 11, 12, 13,2703 0, 0, 271, 0, 0, 0, 0, 0, 47, 48, 2704 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2694 2705 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2695 24, 25, 26, 27, 0, 678, 28, 29, 30, 0, 2696 0, 47, 48, 0, 0, 33, 0, 0, 0, 0, 2706 24, 25, 26, 27, 0, 339, 28, 29, 30, 0, 2707 0, 47, 48, 0, 0, 0, 33, 8, 9, 10, 2708 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2709 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2710 29, 30, 0, 0, 36, 0, 0, 0, 0, 33, 2711 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2713 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 2714 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, 2715 679, 0, 0, 0, 0, 0, 47, 48, 0, 0, 2697 2716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2698 2717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2699 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 2700 40, 41, 0, 2, 207, 4, 5, 6, 7, 8, 2701 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2702 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2703 0, 28, 29, 30, 0, 0, 0, 0, 0, 670, 2704 33, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2706 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2707 37, 0, 38, 0, 0, 40, 41, 283, 284, 0, 2708 285, 1023, 0, 1024, 0, 0, 1025, 1026, 1027, 1028, 2709 1029, 1030, 1031, 1032, 0, 0, 1510, 1033, 0, 0, 2710 0, 1034, 1035, 0, 35, 0, 286, 0, 0, 0, 2711 0, 0, 1036, -420, 0, 0, 288, 0, 0, 289, 2712 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2715 0, 297, 0, 378, 0, 0, 172, 0, 0, 47, 2716 48, 299, 300, 301, 302, 0, 0, 283, 284, 1037, 2717 285, 1023, 0, 1024, -134, 0, 1025, 1026, 1027, 1028, 2718 1029, 1030, 1031, 1032, 0, 0, 0, 1033, 0, 0, 2719 0, 1034, 1035, 0, 35, 0, 286, 0, 0, 0, 2720 0, 0, 1036, 0, 0, 0, 288, 0, 0, 289, 2721 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2724 0, 297, 0, 378, 0, 0, 172, 0, 0, 47, 2725 48, 299, 300, 301, 302, 0, 0, 0, 0, 1037, 2726 0, 0, 0, 0, -134, 2, 207, 4, 5, 6, 2727 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2728 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2729 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2730 0, 0, 33, 0, 283, 284, 0, 285, 1023, 0, 2731 1024, 1382, 1383, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 2732 1032, 0, 0, 1510, 1033, 0, 0, 0, 1034, 1035, 2733 36, 35, 37, 286, 38, 0, 0, 40, 41, 1036, 2734 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2735 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2736 0, 1293, 0, 0, 0, 0, 0, 0, 0, 0, 2737 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2738 378, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2739 301, 302, 0, 0, 283, 284, 1037, 285, 1023, 0, 2740 1024, 1382, 1383, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 2741 1032, 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 2742 0, 35, 0, 286, 0, 0, 0, 0, 0, 1036, 2743 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2744 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2746 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2747 378, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2748 301, 302, 0, 0, 283, 284, 1037, 285, 1023, 0, 2749 1024, 0, 0, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 2750 1032, 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 2751 0, 35, 0, 286, 0, 0, 0, 0, 0, 1036, 2752 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2753 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2754 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2756 378, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2757 301, 302, 286, 0, 0, 0, 1037, 0, 633, 0, 2758 141, 142, 288, 0, 0, 289, 290, 291, 292, 293, 2759 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2760 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2761 0, 0, 0, 0, 0, 0, 0, 297, 0, 634, 2762 0, 635, 379, 0, 0, 47, 48, 299, 300, 301, 2763 302, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2764 0, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2765 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2766 0, 283, 284, 0, 285, 0, 0, 0, 0, 0, 2767 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2768 0, 379, 0, 0, 47, 48, 299, 300, 301, 302, 2769 286, 0, 0, 0, 0, 0, 287, 0, 0, 0, 2718 0, 0, 0, 671, 0, 0, 0, 0, 0, 47, 2719 48, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2720 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2721 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2722 29, 30, 0, 0, 0, 0, 0, 0, 0, 33, 2723 0, 283, 284, 0, 285, 1024, 0, 1025, 0, 0, 2724 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 0, 0, 2725 1511, 1034, 0, 0, 0, 1035, 1036, 36, 35, 37, 2726 286, 38, 0, 0, 40, 41, 1037, 0, 0, 0, 2770 2727 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2771 2728 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2772 283, 284, 0, 285, 0, 0, 0, 0, 0, 0, 2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2730 0, 0, -420, 0, 0, 297, 0, 378, 0, 0, 2731 172, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2732 0, 283, 284, 1038, 285, 1024, 0, 1025, -134, 0, 2733 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 0, 0, 2734 0, 1034, 0, 0, 0, 1035, 1036, 0, 35, 0, 2735 286, 0, 0, 0, 0, 0, 1037, 0, 0, 0, 2736 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2737 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 2739 0, 0, 0, 0, 0, 297, 0, 378, 0, 0, 2774 0, 0, 750, 47, 48, 299, 300, 301, 302, 286, 2775 0, 0, 0, 0, 0, 287, 0, 0, 0, 288, 2776 0, 0, 289, 290, 291, 292, 293, 294, 43, 44, 2777 0, 295, 296, 0, 0, 0, 0, 0, 0, 283, 2778 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 2779 0, 0, 0, 0, 297, 0, 378, 0, 0, 958, 2780 0, 0, 47, 48, 299, 300, 301, 302, 286, 0, 2781 0, 0, 0, 0, 287, 0, 0, 0, 288, 0, 2740 172, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2741 0, 0, 0, 1038, 0, 0, 0, 0, -134, 2, 2742 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2743 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2744 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2745 0, 0, 0, 0, 0, 0, 0, 33, 0, 283, 2746 284, 0, 285, 1024, 0, 1025, 1383, 1384, 1026, 1027, 2747 1028, 1029, 1030, 1031, 1032, 1033, 0, 0, 1511, 1034, 2748 0, 0, 0, 1035, 1036, 36, 35, 37, 286, 38, 2749 0, 0, 40, 41, 1037, 0, 0, 0, 288, 0, 2750 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2751 295, 296, 0, 0, 0, 0, 1294, 0, 0, 0, 2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2753 0, 0, 0, 297, 0, 378, 0, 0, 172, 0, 2754 0, 47, 48, 299, 300, 301, 302, 0, 0, 283, 2755 284, 1038, 285, 1024, 0, 1025, 1383, 1384, 1026, 1027, 2756 1028, 1029, 1030, 1031, 1032, 1033, 0, 0, 0, 1034, 2757 0, 0, 0, 1035, 1036, 0, 35, 0, 286, 0, 2758 0, 0, 0, 0, 1037, 0, 0, 0, 288, 0, 2759 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2760 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2762 0, 0, 0, 297, 0, 378, 0, 0, 172, 0, 2763 0, 47, 48, 299, 300, 301, 302, 0, 0, 283, 2764 284, 1038, 285, 1024, 0, 1025, 0, 0, 1026, 1027, 2765 1028, 1029, 1030, 1031, 1032, 1033, 0, 0, 0, 1034, 2766 0, 0, 0, 1035, 1036, 0, 35, 0, 286, 0, 2767 0, 0, 0, 0, 1037, 0, 0, 0, 288, 0, 2782 2768 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2783 2769 295, 296, 0, 0, 0, 0, 0, 0, 283, 284, 2784 2770 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 2785 0, 0, 0, 297, 0, 378, 0, 0, 0, 0,2771 0, 0, 0, 297, 0, 378, 0, 0, 172, 0, 2786 2772 0, 47, 48, 299, 300, 301, 302, 286, 0, 0, 2787 0, 0, 0, 287, 0, 0, 0, 288, 0, 0,2773 0, 1038, 0, 287, 0, 0, 0, 288, 0, 0, 2788 2774 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2789 2775 296, 0, 0, 0, 0, 0, 0, 283, 284, 0, 2790 2776 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2791 0, 0, 504, 0, 378, 0, 0, 0, 0, 0,2777 0, 0, 297, 0, 378, 0, 0, 959, 0, 0, 2792 2778 47, 48, 299, 300, 301, 302, 286, 0, 0, 0, 2793 2779 0, 0, 287, 0, 0, 0, 288, 0, 0, 289, … … 2795 2781 0, 0, 0, 0, 0, 0, 283, 284, 0, 285, 2796 2782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2797 0, 509, 0, 378, 0, 0, 0, 0, 0, 47,2783 0, 297, 0, 378, 0, 0, 0, 0, 0, 47, 2798 2784 48, 299, 300, 301, 302, 286, 0, 0, 0, 0, 2799 2785 0, 287, 0, 0, 0, 288, 0, 0, 289, 290, … … 2801 2787 0, 0, 0, 0, 0, 283, 284, 0, 285, 0, 2802 2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2803 5 12, 0, 378, 0, 0, 0, 0, 0, 47, 48,2789 505, 0, 378, 0, 0, 0, 0, 0, 47, 48, 2804 2790 299, 300, 301, 302, 286, 0, 0, 0, 0, 0, 2805 2791 287, 0, 0, 0, 288, 0, 0, 289, 290, 291, 2806 2792 292, 293, 294, 43, 44, 0, 295, 296, 0, 0, 2807 2793 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,2809 0, 378, 0, 0, 0, 0, 0, 701, 48, 299,2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, 2795 0, 378, 0, 0, 0, 0, 0, 47, 48, 299, 2810 2796 300, 301, 302, 286, 0, 0, 0, 0, 0, 287, 2811 2797 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2812 2798 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2799 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2800 0, 0, 0, 0, 0, 0, 0, 0, 513, 0, 2801 378, 0, 0, 0, 0, 0, 47, 48, 299, 300, 2802 301, 302, 286, 0, 0, 0, 0, 0, 287, 0, 2803 0, 0, 288, 0, 0, 289, 290, 291, 292, 293, 2804 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2805 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2806 0, 0, 0, 0, 0, 0, 0, 297, 0, 378, 2807 0, 0, 0, 0, 0, 702, 48, 299, 300, 301, 2808 302, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2809 0, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2810 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2813 2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2814 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,2815 378, 0, 0, 0, 0, 0, 344, 48, 299, 300,2816 301, 302, 2, 207, 4, 5, 6, 7, 8, 9,2817 1 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,2818 2 0, 21, 22, 23, 24, 25, 26, 27, 0, 0,2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,2820 0, 0, 8, 9, 10, 11, 12, 13, 14, 15,2821 1 6, 17, 18, 19, 20, 21, 22, 23, 24, 25,2822 26, 27, 0, 0, 28, 29, 30, 36, 0, 37,2823 0, 38, 39, 33, 175, 176, 42, 0, 0, 0,2824 0, 0, 0, 0, 0, 43, 44, 0, 0, 0,2812 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2813 0, 0, 0, 0, 344, 48, 299, 300, 301, 302, 2814 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2815 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2816 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 2817 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2818 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2819 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2820 0, 0, 28, 29, 30, 0, 36, 0, 37, 0, 2821 38, 39, 33, 175, 176, 42, 0, 0, 0, 0, 2822 0, 0, 0, 0, 43, 44, 0, 0, 0, 0, 2825 2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2826 0, 36, 0, 0, 0, 0, 112, 0, 40, 41,2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,2828 44, 206, 2, 207, 4, 5, 6, 7, 8, 9,2829 1 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,2830 2 0, 21, 22, 23, 24, 25, 26, 27, 0, 0,2831 2 8, 29, 30, 0, 0, 0, 0, 0, 0, 33,2824 36, 0, 0, 0, 0, 112, 0, 40, 41, 0, 2825 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 2826 206, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2827 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2828 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2829 29, 30, 0, 0, 0, 0, 0, 0, 0, 33, 2832 2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2833 2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 2837 2835 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2838 2836 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2839 0, 0, 0, 0, 33, 0, 0, 0, 0, 0,2837 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2840 2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841 2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 36, 0, 37, 0, 38, 0, 0, 40, 2843 41, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2844 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2845 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2846 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2840 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2841 40, 41, 2, 207, 4, 5, 6, 7, 8, 9, 2842 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2843 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2844 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, 2845 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2847 2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2849 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2850 38, 0, 0, 208, 41, 8, 9, 10, 11, 12, 2851 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2852 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2853 483, 484, 485, 0, 0, 0, 33, 8, 9, 10, 2854 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2855 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2856 29, 30, 0, 0, 36, 0, 0, 0, 33, 0, 2857 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 2860 0, 0, 0, 208, 41 2847 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2848 37, 0, 38, 0, 0, 208, 41 2861 2849 }; 2862 2850 2863 2851 #define yypact_value_is_default(yystate) \ 2864 ((yystate) == (-126 7))2852 ((yystate) == (-1263)) 2865 2853 2866 2854 #define yytable_value_is_error(yytable_value) \ … … 2869 2857 static const yytype_int16 yycheck[] = 2870 2858 { 2871 0, 1, 186, 186, 532, 45, 45, 0, 186, 45, 2872 1, 519, 0, 186, 186, 240, 186, 205, 186, 742, 2873 742, 0, 511, 0, 118, 742, 188, 490, 639, 595, 2874 862, 494, 1022, 615, 34, 220, 349, 1, 597, 595, 2875 1303, 34, 282, 349, 685, 45, 34, 169, 170, 45, 2876 598, 51, 595, 727, 568, 34, 604, 34, 51, 425, 2877 426, 0, 417, 480, 1005, 65, 74, 30, 68, 83, 2878 297, 71, 65, 597, 66, 68, 34, 45, 71, 41, 2879 71, 436, 266, 266, 187, 595, 113, 51, 266, 444, 2880 1004, 1005, 595, 266, 266, 34, 266, 595, 266, 595, 2881 262, 263, 0, 1, 688, 46, 47, 107, 202, 630, 2882 0, 1112, 65, 107, 74, 115, 45, 80, 118, 119, 2883 0, 113, 629, 630, 645, 41, 492, 108, 136, 68, 2884 111, 41, 41, 257, 968, 364, 34, 599, 645, 368, 2885 1403, 603, 41, 107, 34, 511, 186, 186, 148, 149, 2886 186, 115, 1382, 115, 34, 99, 149, 157, 158, 51, 2887 74, 161, 624, 157, 267, 45, 628, 89, 161, 892, 2888 892, 51, 680, 71, 11, 892, 136, 41, 119, 345, 2889 486, 1015, 703, 136, 148, 65, 186, 187, 68, 133, 2890 186, 71, 59, 157, 187, 117, 703, 116, 425, 426, 2891 83, 711, 202, 113, 113, 115, 115, 121, 711, 575, 2892 210, 100, 629, 630, 113, 711, 115, 210, 186, 0, 2893 1, 1487, 222, 115, 409, 1455, 266, 266, 645, 222, 2894 266, 1232, 115, 1234, 1235, 801, 113, 126, 219, 113, 2895 240, 108, 206, 663, 111, 801, 210, 888, 1514, 113, 2896 862, 115, 252, 34, 813, 803, 148, 186, 801, 252, 2897 260, 135, 502, 1204, 252, 265, 266, 267, 114, 149, 2898 113, 785, 272, 252, 267, 252, 240, 504, 257, 187, 2899 1270, 161, 509, 222, 597, 512, 703, 68, 134, 813, 2900 71, 801, 273, 417, 252, 1034, 1035, 297, 801, 280, 2901 911, 395, 405, 801, 114, 801, 186, 187, 272, 893, 2902 310, 275, 436, 252, 480, 462, 118, 1258, 210, 674, 2903 444, 738, 46, 47, 134, 53, 326, 46, 47, 423, 2904 210, 331, 229, 297, 51, 429, 111, 120, 331, 566, 2905 100, 341, 222, 1257, 1258, 345, 310, 341, 240, 349, 2906 350, 248, 219, 919, 252, 939, 585, 1031, 1190, 267, 2907 135, 781, 252, 919, 364, 74, 126, 257, 368, 1108, 2908 114, 791, 252, 835, 3, 478, 919, 341, 87, 88, 2909 272, 345, 802, 3, 365, 113, 266, 1437, 369, 74, 2910 134, 120, 57, 120, 118, 395, 920, 626, 115, 118, 2911 364, 983, 87, 88, 368, 405, 273, 136, 462, 1458, 2912 1022, 350, 405, 280, 74, 1464, 76, 77, 310, 659, 2913 113, 114, 1472, 423, 1474, 425, 426, 87, 88, 429, 2914 115, 431, 94, 95, 99, 1484, 1426, 1378, 417, 0, 2915 1489, 222, 74, 1433, 992, 993, 954, 0, 41, 615, 2916 113, 331, 452, 345, 620, 87, 88, 436, 118, 120, 2917 135, 425, 426, 925, 1378, 444, 929, 129, 130, 349, 2918 470, 252, 116, 113, 891, 136, 120, 966, 478, 1313, 2919 480, 348, 482, 115, 114, 478, 486, 649, 452, 482, 2920 730, 114, 492, 210, 482, 1485, 1107, 405, 365, 120, 2921 813, 465, 369, 482, 504, 482, 506, 813, 113, 509, 2922 132, 511, 512, 135, 1098, 136, 663, 120, 640, 519, 2923 113, 120, 115, 523, 1487, 405, 490, 417, 492, 194, 2924 494, 134, 471, 425, 426, 134, 1370, 1371, 123, 124, 2925 504, 120, 506, 482, 1507, 509, 436, 511, 512, 113, 2926 674, 1514, 217, 647, 444, 272, 1080, 136, 1066, 113, 2927 114, 115, 227, 1071, 115, 794, 117, 567, 568, 113, 2928 478, 115, 738, 1157, 1158, 575, 700, 680, 1190, 113, 2929 297, 1001, 1002, 134, 482, 585, 586, 1004, 120, 589, 2930 480, 120, 482, 310, 120, 595, 1270, 597, 586, 862, 2931 492, 120, 482, 113, 136, 115, 486, 136, 134, 663, 2932 74, 575, 76, 77, 78, 615, 113, 136, 924, 511, 2933 620, 585, 622, 87, 88, 120, 626, 120, 113, 629, 2934 630, 113, 297, 115, 781, 616, 1056, 1057, 114, 121, 2935 122, 136, 114, 136, 791, 645, 121, 647, 120, 113, 2936 631, 615, 127, 128, 1386, 802, 620, 116, 1270, 74, 2937 120, 120, 626, 644, 849, 4, 5, 6, 7, 8, 2938 9, 1345, 87, 88, 120, 120, 136, 677, 617, 114, 2939 680, 120, 114, 575, 869, 10, 11, 12, 13, 14, 2940 136, 136, 116, 114, 114, 674, 120, 136, 113, 120, 2941 115, 482, 120, 703, 704, 705, 931, 113, 892, 892, 2942 1127, 711, 712, 677, 892, 595, 41, 597, 136, 892, 2943 892, 700, 892, 615, 892, 891, 113, 781, 620, 119, 2944 114, 113, 71, 855, 73, 452, 120, 791, 738, 136, 2945 114, 114, 742, 743, 69, 726, 120, 120, 802, 616, 2946 1482, 715, 691, 66, 114, 1487, 1430, 114, 1432, 1287, 2947 120, 114, 1025, 120, 631, 113, 705, 120, 1491, 1491, 2948 113, 113, 680, 115, 1491, 1507, 441, 644, 136, 121, 2949 122, 1365, 1514, 118, 674, 785, 116, 504, 83, 506, 2950 120, 894, 509, 114, 794, 512, 796, 136, 1382, 120, 2951 680, 801, 467, 118, 897, 114, 899, 113, 996, 115, 2952 700, 120, 1486, 813, 1426, 121, 122, 983, 114, 1239, 2953 113, 1433, 115, 114, 120, 136, 1246, 1247, 1248, 120, 2954 794, 711, 712, 4, 5, 6, 7, 8, 9, 504, 2955 1257, 116, 3, 113, 509, 120, 136, 512, 738, 10, 2956 11, 12, 13, 14, 1001, 1002, 1096, 796, 118, 726, 2957 1100, 1101, 862, 74, 35, 76, 77, 0, 1, 114, 2958 1454, 1455, 114, 1485, 862, 120, 87, 88, 120, 113, 2959 41, 115, 114, 862, 884, 504, 113, 506, 120, 1309, 2960 509, 891, 892, 512, 894, 1017, 884, 114, 31, 32, 2961 71, 34, 73, 120, 115, 114, 906, 113, 69, 1056, 2962 1057, 120, 45, 113, 114, 115, 114, 83, 51, 919, 2963 920, 801, 120, 862, 924, 1096, 59, 1190, 114, 1100, 2964 930, 931, 65, 813, 120, 68, 92, 93, 71, 930, 2965 119, 120, 906, 1170, 1171, 122, 1173, 1001, 1002, 96, 2966 97, 84, 85, 1180, 954, 1182, 113, 114, 115, 1467, 2967 677, 1127, 131, 1066, 862, 929, 930, 931, 1071, 113, 2968 114, 115, 862, 132, 1214, 108, 114, 115, 111, 74, 2969 3, 76, 77, 983, 98, 118, 894, 10, 11, 12, 2970 13, 14, 87, 88, 1088, 60, 61, 662, 60, 61, 2971 62, 891, 1056, 1057, 1004, 1005, 671, 113, 1516, 115, 2972 675, 113, 892, 115, 894, 115, 149, 74, 41, 983, 2973 119, 120, 1022, 1286, 81, 46, 47, 84, 161, 86, 2974 87, 88, 930, 113, 1022, 115, 1113, 1114, 1204, 931, 2975 551, 552, 72, 1022, 924, 75, 69, 986, 78, 113, 2976 80, 115, 113, 186, 187, 1202, 116, 87, 115, 114, 2977 74, 1061, 116, 113, 1304, 115, 1066, 81, 1308, 202, 2978 84, 1071, 86, 87, 88, 114, 1339, 210, 285, 1342, 2979 1080, 862, 114, 1022, 553, 554, 219, 114, 1088, 222, 2980 114, 983, 1239, 559, 560, 114, 229, 1061, 116, 1246, 2981 1247, 1248, 115, 310, 311, 4, 5, 6, 7, 8, 2982 9, 244, 118, 120, 1341, 248, 118, 74, 135, 252, 2983 253, 78, 118, 1386, 1022, 135, 113, 1127, 1391, 114, 2984 87, 88, 1022, 266, 267, 114, 116, 134, 345, 116, 2985 273, 116, 134, 3, 134, 31, 120, 280, 1202, 930, 2986 10, 11, 12, 13, 14, 114, 113, 1420, 1066, 114, 2987 118, 113, 1309, 1071, 121, 122, 119, 1407, 1168, 1169, 2988 114, 119, 71, 380, 73, 120, 119, 114, 1169, 114, 2989 134, 41, 120, 213, 114, 1239, 1066, 136, 114, 906, 2990 1190, 1071, 1246, 1247, 1248, 114, 114, 120, 331, 114, 2991 114, 114, 1190, 114, 1204, 114, 114, 114, 1208, 69, 2992 114, 1190, 114, 0, 1, 348, 349, 1208, 114, 114, 2993 114, 886, 10, 11, 12, 13, 14, 119, 31, 1168, 2994 135, 114, 365, 134, 114, 120, 369, 1127, 116, 116, 2995 114, 1022, 1505, 114, 1208, 120, 379, 34, 1511, 114, 2996 280, 1190, 134, 41, 113, 1309, 120, 1257, 1258, 1522, 2997 118, 114, 395, 1526, 51, 1265, 114, 1361, 114, 85, 2998 1270, 1169, 405, 89, 90, 91, 1501, 555, 556, 557, 2999 558, 69, 1270, 120, 71, 114, 114, 120, 120, 114, 3000 423, 1270, 1190, 113, 113, 113, 429, 113, 113, 115, 3001 1190, 117, 118, 1303, 113, 136, 119, 1491, 1491, 114, 3002 1208, 134, 1303, 1491, 1204, 114, 114, 119, 1491, 1491, 3003 107, 1491, 352, 1491, 354, 113, 1265, 115, 132, 119, 3004 116, 1270, 465, 121, 122, 118, 136, 470, 114, 1303, 3005 120, 548, 549, 550, 1061, 478, 116, 116, 114, 482, 3006 114, 116, 114, 486, 1, 116, 489, 116, 491, 116, 3007 116, 1361, 149, 74, 116, 76, 77, 49, 1033, 136, 3008 157, 158, 1270, 1467, 114, 119, 87, 88, 1378, 1360, 3009 1270, 74, 136, 76, 77, 78, 136, 1168, 1169, 1492, 3010 136, 136, 119, 526, 87, 88, 134, 114, 531, 688, 3011 187, 119, 113, 1403, 116, 1303, 85, 118, 116, 1190, 3012 440, 116, 1403, 1516, 116, 202, 116, 116, 205, 206, 3013 113, 116, 115, 210, 114, 114, 1426, 1208, 121, 122, 3014 113, 62, 113, 1433, 114, 1435, 113, 1437, 1426, 1403, 3015 114, 134, 118, 113, 231, 1433, 579, 1426, 235, 136, 3016 237, 1491, 1491, 116, 1433, 1491, 116, 114, 116, 246, 3017 114, 100, 595, 100, 597, 252, 119, 1467, 113, 113, 3018 257, 1435, 1472, 1437, 1474, 136, 114, 120, 114, 114, 3019 267, 114, 44, 616, 1265, 1485, 134, 1426, 275, 1270, 3020 779, 1491, 1492, 1360, 1433, 0, 136, 1485, 631, 1492, 3021 114, 1501, 635, 114, 136, 1403, 1485, 100, 1472, 100, 3022 1474, 644, 136, 646, 647, 648, 1516, 114, 136, 114, 3023 116, 136, 1303, 1516, 114, 114, 136, 119, 1426, 34, 3024 10, 11, 12, 13, 14, 1433, 1426, 1501, 116, 116, 3025 113, 1037, 749, 1433, 119, 119, 1485, 680, 136, 114, 3026 114, 684, 136, 686, 341, 114, 51, 690, 345, 114, 3027 561, 41, 851, 562, 351, 698, 71, 565, 563, 963, 3028 65, 564, 1190, 68, 1455, 1347, 71, 364, 711, 712, 3029 1526, 368, 1280, 1101, 1492, 1308, 1433, 1485, 677, 69, 3030 1052, 677, 1071, 726, 899, 1485, 690, 907, 579, 74, 3031 855, 76, 77, 78, 893, 641, 253, 958, 1516, 1501, 3032 715, 1491, 87, 88, 1279, 74, 1208, 76, 77, 78, 3033 927, 482, 1403, 74, -1, 76, 77, 78, 87, 88, 3034 417, 567, -1, 113, 726, 115, 87, 88, 113, 567, 3035 115, 121, 122, 567, 431, 1426, 121, 122, -1, 436, 3036 939, -1, 1433, 158, 149, -1, -1, 444, -1, -1, 3037 -1, -1, 113, -1, 115, -1, 161, -1, 801, -1, 3038 121, 122, -1, -1, -1, 462, -1, -1, 465, -1, 3039 813, -1, 971, -1, -1, 10, 11, 12, 13, 14, 3040 -1, 68, 187, 480, -1, 482, 726, -1, -1, -1, 3041 77, -1, -1, 490, 1485, -1, -1, 494, 10, 11, 3042 12, 13, 14, -1, -1, 210, 41, -1, 1435, -1, 3043 1437, 74, 855, 76, 77, -1, 231, 222, 861, -1, 3044 1019, -1, -1, -1, 87, 88, 523, -1, -1, 41, 3045 -1, -1, 119, -1, 69, -1, -1, 252, -1, 74, 3046 -1, -1, 257, 78, -1, 1472, -1, 1474, -1, 892, 3047 113, 894, 87, 88, -1, 118, -1, 69, 901, 1434, 3048 -1, 1436, -1, 74, -1, -1, 983, -1, -1, -1, 3049 81, 568, -1, 84, 161, 86, 87, 88, 113, -1, 3050 74, 924, 76, 77, 78, -1, 121, 122, 585, 586, 3051 -1, -1, -1, 87, 88, -1, 1471, -1, 1473, 1098, 3052 597, 113, 945, 115, 115, 1022, -1, -1, 465, 121, 3053 122, -1, -1, -1, -1, 958, -1, 0, 615, 113, 3054 -1, 964, -1, 620, -1, 968, 331, 121, 122, 626, 3055 -1, -1, 629, 630, -1, 222, 351, -1, -1, -1, 3056 1515, -1, 1517, -1, -1, -1, -1, -1, 645, -1, 3057 74, 34, 76, 77, 78, 1530, 1531, 74, 1157, 1158, 3058 -1, 78, -1, 87, 88, -1, 663, -1, -1, 526, 3059 87, 88, 1015, 260, 531, -1, -1, 674, 265, -1, 3060 85, 68, -1, -1, 89, 90, 91, -1, 71, 113, 3061 -1, -1, -1, 280, -1, -1, 113, 84, 115, -1, 3062 405, -1, 417, 700, 121, 122, 703, -1, 113, 1052, 3063 115, -1, 117, 118, -1, 712, 431, -1, 715, -1, 3064 -1, 436, 579, 1066, -1, -1, -1, -1, 1071, 444, 3065 74, -1, 119, -1, -1, -1, -1, 81, -1, -1, 3066 84, 738, 86, 87, 88, 1088, 743, 462, -1, -1, 3067 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 3068 -1, -1, -1, 350, 74, 480, -1, 482, 78, 1112, 3069 -1, 115, -1, -1, 161, 158, -1, 87, 88, -1, 3070 -1, 41, -1, -1, 781, -1, -1, -1, -1, 646, 3071 -1, 648, -1, -1, 791, 68, -1, 794, -1, -1, 3072 797, -1, -1, 113, -1, 802, -1, -1, 523, 69, 3073 -1, 121, 122, -1, 74, 812, 76, 77, 78, -1, 3074 74, 1164, 76, 77, 78, -1, -1, 87, 88, -1, 3075 -1, -1, -1, 87, 88, 222, -1, -1, -1, -1, 3076 -1, 698, -1, 430, -1, -1, 119, -1, -1, -1, 3077 -1, -1, -1, 113, -1, 115, -1, -1, -1, 446, 3078 -1, 121, 122, -1, -1, 862, 1365, -1, -1, 252, 3079 -1, 586, -1, 260, 257, -1, -1, -1, 265, -1, 3080 -1, -1, -1, 1382, 471, -1, -1, 884, 161, 1232, 3081 -1, 1234, 1235, -1, 891, -1, -1, 894, 10, 11, 3082 12, 13, 14, -1, -1, 190, 74, -1, 76, 77, 3083 78, -1, 197, -1, 629, 630, -1, -1, -1, 87, 3084 88, -1, -1, 920, -1, -1, -1, -1, -1, 41, 3085 645, -1, 929, 930, -1, -1, -1, -1, -1, -1, 3086 -1, -1, -1, 0, -1, 113, -1, 115, 663, 222, 3087 -1, -1, -1, 121, 122, 1454, 1455, 69, -1, 674, 3088 -1, -1, 74, 350, 76, 77, 78, -1, 351, -1, 3089 1313, -1, -1, -1, -1, 87, 88, 34, -1, -1, 3090 -1, -1, -1, -1, 269, 700, 983, 260, 703, -1, 3091 -1, -1, 265, -1, -1, -1, -1, -1, -1, 996, 3092 -1, 113, 589, 115, 1001, 1002, -1, 1004, 1005, 121, 3093 122, -1, -1, -1, 71, -1, -1, 1360, 1361, -1, 3094 -1, -1, -1, 738, -1, 1022, -1, 1370, 1371, -1, 3095 617, -1, -1, -1, 417, 622, -1, -1, -1, -1, 3096 -1, 326, 74, 430, 76, 77, 78, -1, 431, 334, 3097 -1, -1, 337, 436, -1, 87, 88, -1, -1, 1056, 3098 1057, 444, -1, -1, -1, 1408, 781, 10, 11, 12, 3099 13, 14, -1, -1, -1, -1, 791, 350, -1, 462, 3100 -1, 113, 797, -1, 471, -1, -1, 802, 945, 121, 3101 122, -1, -1, -1, -1, -1, -1, 480, 41, 482, 3102 -1, 158, -1, -1, 691, -1, -1, 964, -1, 0, 3103 1, 968, 397, -1, -1, -1, 401, -1, 705, -1, 3104 -1, -1, -1, -1, 1467, 1468, 69, -1, -1, -1, 3105 1127, 74, -1, 32, 1477, 78, -1, -1, -1, 726, 3106 523, -1, -1, 34, 87, 88, -1, 862, 1491, 1492, 3107 -1, -1, -1, -1, -1, -1, -1, 430, 1015, -1, 3108 10, 11, 12, 13, 14, -1, -1, -1, -1, 884, 3109 113, -1, 1169, 1516, -1, -1, 891, 68, 121, 122, 3110 71, -1, 28, 29, 30, 84, 85, -1, -1, -1, 3111 -1, 41, 477, 1190, -1, 252, -1, -1, 471, -1, 3112 257, -1, 589, 586, -1, 1202, -1, 1204, -1, 796, 3113 -1, 1208, -1, -1, -1, -1, -1, -1, -1, 69, 3114 -1, -1, -1, -1, 74, 0, 76, 77, 78, -1, 3115 617, -1, -1, -1, -1, 622, -1, 87, 88, -1, 3116 -1, -1, 1239, -1, -1, -1, 629, 630, -1, 1246, 3117 1247, 1248, -1, -1, 100, 1112, 102, -1, -1, 34, 3118 1257, 1258, 645, 113, -1, 115, -1, 158, -1, -1, 3119 -1, 121, 122, 1270, -1, -1, -1, -1, -1, -1, 3120 663, -1, 567, 568, -1, -1, 1001, 1002, -1, 1004, 3121 1005, 674, -1, -1, 351, -1, 71, -1, -1, -1, 3122 -1, -1, -1, -1, 691, -1, 1303, 1022, -1, -1, 3123 -1, -1, 1309, -1, -1, -1, 589, 700, 705, -1, 3124 703, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3125 -1, 222, -1, -1, -1, -1, 182, -1, -1, -1, 3126 -1, 1056, 1057, -1, 617, 244, 192, 193, -1, 622, 3127 -1, 197, -1, 199, 200, 738, -1, -1, -1, -1, 3128 417, 252, -1, -1, -1, 650, -1, -1, -1, 654, 3129 -1, -1, -1, -1, 431, 1232, -1, 1234, 1235, 436, 3130 -1, 1378, -1, 158, -1, -1, -1, 444, -1, -1, 3131 -1, 10, 11, 12, 13, 14, -1, -1, 781, 986, 3132 -1, -1, -1, -1, -1, 462, 1403, -1, 791, 796, 3133 -1, -1, 1127, -1, 797, -1, -1, -1, 691, 802, 3134 -1, -1, 41, 480, -1, 482, -1, -1, -1, 1426, 3135 -1, -1, 705, -1, -1, -1, 1433, 101, 102, 103, 3136 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, 3137 69, -1, -1, -1, 1169, 74, 1313, 76, 77, 78, 3138 -1, -1, -1, -1, -1, -1, 523, -1, 87, 88, 3139 -1, 135, -1, -1, -1, 1190, -1, 252, -1, 862, 3140 379, -1, 257, -1, -1, -1, -1, 1202, 1485, 1204, 3141 -1, -1, -1, -1, 113, 1492, -1, -1, -1, -1, 3142 785, 884, 121, 122, -1, -1, -1, -1, 891, -1, 3143 -1, -1, -1, 1370, 1371, -1, -1, -1, -1, -1, 3144 -1, -1, -1, 796, 1239, -1, -1, -1, -1, 586, 3145 -1, 1246, 1247, 1248, -1, -1, -1, -1, -1, -1, 3146 431, -1, 1257, 1258, -1, -1, -1, -1, -1, -1, 3147 -1, 1408, -1, -1, -1, 1270, -1, -1, -1, -1, 2859 0, 1, 45, 118, 45, 240, 520, 0, 186, 45, 2860 533, 512, 186, 186, 863, 205, 640, 220, 186, 107, 2861 1, 743, 569, 743, 186, 743, 186, 0, 863, 169, 2862 170, 616, 349, 0, 34, 598, 34, 257, 188, 596, 2863 0, 34, 186, 1023, 491, 45, 1005, 1006, 495, 349, 2864 282, 51, 596, 598, 686, 0, 1, 45, 51, 1304, 2865 187, 34, 1006, 45, 596, 65, 45, 34, 68, 157, 2866 728, 71, 65, 364, 34, 68, 596, 368, 71, 114, 2867 1035, 1036, 689, 596, 121, 45, 187, 202, 266, 34, 2868 71, 51, 266, 266, 84, 42, 0, 417, 266, 596, 2869 137, 136, 114, 59, 266, 65, 266, 107, 68, 42, 2870 596, 71, 262, 263, 297, 115, 436, 600, 118, 119, 2871 631, 604, 266, 68, 444, 66, 71, 969, 30, 0, 2872 34, 54, 47, 48, 114, 646, 47, 48, 0, 1, 2873 267, 599, 625, 186, 0, 186, 629, 605, 148, 149, 2874 186, 345, 108, 1113, 1109, 111, 149, 157, 158, 1404, 2875 1383, 161, 42, 34, 630, 631, 267, 681, 161, 116, 2876 487, 893, 34, 893, 1016, 893, 1438, 11, 34, 81, 2877 646, 425, 426, 47, 48, 114, 186, 187, 1023, 149, 2878 67, 114, 712, 704, 187, 112, 137, 417, 186, 712, 2879 108, 161, 202, 111, 186, 120, 409, 186, 119, 71, 2880 210, 1473, 68, 1475, 100, 712, 436, 210, 114, 136, 2881 116, 75, 222, 266, 444, 266, 186, 187, 117, 222, 2882 266, 1097, 480, 1456, 114, 1101, 116, 114, 704, 786, 2883 240, 32, 425, 426, 462, 802, 42, 42, 134, 493, 2884 210, 814, 252, 341, 252, 119, 75, 889, 802, 252, 2885 260, 1205, 222, 219, 84, 265, 266, 267, 512, 814, 2886 802, 503, 272, 1233, 267, 1235, 1236, 222, 405, 252, 2887 395, 75, 802, 137, 257, 252, 480, 894, 912, 802, 2888 51, 1271, 252, 84, 85, 586, 116, 297, 598, 1258, 2889 1259, 42, 1488, 122, 405, 802, 266, 252, 423, 90, 2890 310, 219, 119, 101, 429, 1259, 802, 273, 114, 114, 2891 116, 116, 505, 898, 280, 900, 326, 510, 42, 1515, 2892 513, 331, 576, 940, 121, 101, 627, 118, 331, 127, 2893 1488, 341, 1191, 137, 133, 345, 804, 136, 252, 349, 2894 350, 478, 3, 836, 115, 675, 1191, 121, 921, 115, 2895 1508, 127, 121, 920, 364, 273, 222, 1515, 368, 114, 2896 115, 331, 280, 114, 1032, 116, 920, 478, 137, 135, 2897 75, 252, 630, 631, 567, 1459, 257, 148, 920, 349, 2898 252, 1465, 348, 88, 89, 395, 252, 115, 646, 984, 2899 114, 75, 116, 77, 78, 405, 0, 285, 121, 365, 2900 115, 1485, 405, 369, 88, 89, 1490, 135, 229, 114, 2901 1379, 116, 616, 423, 137, 425, 426, 621, 660, 429, 2902 135, 431, 310, 311, 121, 1379, 1271, 248, 1387, 124, 2903 125, 955, 116, 926, 417, 405, 664, 1427, 121, 210, 2904 137, 121, 452, 244, 1434, 675, 704, 365, 116, 121, 2905 118, 369, 75, 436, 137, 135, 967, 345, 93, 94, 2906 470, 444, 1314, 135, 121, 88, 89, 135, 478, 240, 2907 480, 701, 482, 930, 1108, 478, 114, 487, 116, 482, 2908 137, 739, 1099, 493, 350, 3, 114, 814, 116, 731, 2909 650, 641, 380, 116, 795, 505, 1486, 507, 0, 482, 2910 510, 272, 512, 513, 814, 482, 121, 115, 1081, 114, 2911 520, 116, 482, 121, 524, 95, 96, 487, 121, 1371, 2912 1372, 121, 137, 648, 1483, 993, 994, 482, 114, 1488, 2913 116, 121, 75, 114, 137, 739, 417, 137, 121, 310, 2914 114, 1158, 1159, 1067, 681, 88, 89, 137, 1072, 1508, 2915 130, 131, 135, 121, 782, 436, 1515, 117, 568, 569, 2916 136, 121, 114, 444, 792, 121, 576, 121, 482, 137, 2917 681, 121, 114, 116, 345, 803, 586, 587, 379, 115, 2918 590, 137, 1427, 137, 114, 121, 596, 137, 598, 1434, 2919 4, 5, 6, 7, 8, 9, 0, 1, 925, 480, 2920 117, 482, 114, 1271, 121, 471, 616, 114, 122, 75, 2921 482, 621, 115, 623, 128, 129, 482, 627, 121, 115, 2922 630, 631, 88, 89, 115, 121, 596, 115, 598, 75, 2923 34, 77, 78, 79, 892, 117, 646, 850, 648, 121, 2924 115, 1486, 88, 89, 10, 11, 12, 13, 14, 120, 2925 115, 617, 115, 115, 425, 426, 121, 870, 72, 121, 2926 74, 549, 550, 551, 68, 117, 632, 71, 678, 121, 2927 75, 681, 114, 587, 116, 115, 42, 82, 1346, 645, 2928 85, 121, 87, 88, 89, 0, 1, 932, 892, 490, 2929 115, 492, 675, 117, 704, 705, 706, 121, 114, 617, 2930 116, 114, 712, 713, 70, 893, 856, 115, 115, 893, 2931 893, 681, 114, 121, 632, 893, 31, 32, 701, 34, 2932 115, 893, 493, 893, 84, 115, 121, 645, 114, 739, 2933 45, 121, 115, 743, 744, 114, 51, 116, 121, 893, 2934 115, 512, 712, 713, 59, 115, 121, 1005, 137, 1366, 2935 65, 121, 618, 68, 158, 1288, 71, 114, 895, 116, 2936 1492, 727, 1492, 1431, 1492, 1433, 1383, 115, 114, 84, 2937 85, 115, 115, 121, 1002, 1003, 786, 121, 121, 114, 2938 984, 114, 115, 116, 895, 795, 75, 797, 77, 78, 2939 79, 67, 802, 108, 675, 115, 111, 997, 137, 88, 2940 89, 121, 115, 118, 814, 576, 97, 98, 121, 727, 2941 51, 4, 5, 6, 7, 8, 9, 115, 222, 1487, 2942 701, 120, 121, 121, 119, 114, 692, 115, 116, 1057, 2943 1058, 137, 802, 119, 149, 636, 61, 62, 1455, 1456, 2944 706, 137, 35, 114, 814, 616, 161, 119, 252, 505, 2945 621, 507, 75, 863, 510, 1097, 79, 513, 739, 1101, 2946 1102, 114, 750, 120, 121, 88, 89, 114, 1018, 84, 2947 1128, 186, 187, 123, 115, 885, 47, 48, 1, 72, 2948 863, 74, 892, 893, 685, 895, 687, 202, 1114, 1115, 2949 691, 114, 132, 116, 133, 210, 99, 907, 116, 122, 2950 123, 552, 553, 75, 219, 77, 78, 222, 863, 117, 2951 920, 921, 554, 555, 229, 925, 88, 89, 114, 117, 2952 116, 931, 932, 893, 1128, 895, 122, 123, 115, 244, 2953 1067, 797, 115, 248, 115, 1072, 115, 252, 253, 115, 2954 931, 115, 114, 116, 1468, 955, 114, 119, 117, 863, 2955 136, 266, 267, 560, 561, 925, 1067, 119, 273, 119, 2956 121, 1072, 119, 114, 1089, 280, 114, 115, 116, 210, 2957 136, 885, 115, 1215, 984, 1203, 931, 115, 1171, 1172, 2958 117, 1174, 863, 556, 557, 558, 559, 117, 1181, 117, 2959 1183, 863, 121, 1517, 135, 1005, 1006, 863, 31, 135, 2960 1258, 1205, 114, 115, 116, 4, 5, 6, 7, 8, 2961 9, 892, 1240, 1023, 135, 75, 331, 77, 78, 1247, 2962 1248, 1249, 75, 115, 77, 78, 115, 431, 88, 89, 2963 114, 272, 116, 348, 349, 88, 89, 3, 122, 123, 2964 1023, 114, 115, 116, 10, 11, 12, 13, 14, 119, 2965 365, 120, 1062, 115, 369, 856, 297, 1067, 121, 931, 2966 114, 862, 1072, 1305, 379, 120, 119, 1309, 1023, 310, 2967 120, 1081, 115, 72, 135, 74, 42, 115, 482, 1089, 2968 395, 137, 1310, 61, 62, 63, 121, 1, 462, 115, 2969 405, 114, 75, 116, 77, 78, 984, 1067, 115, 122, 2970 123, 902, 1072, 121, 70, 88, 89, 115, 423, 1023, 2971 115, 115, 115, 115, 429, 3, 31, 115, 1128, 115, 2972 524, 987, 10, 11, 12, 13, 14, 115, 115, 115, 2973 253, 114, 121, 75, 115, 1023, 119, 51, 137, 68, 2974 82, 115, 1023, 85, 115, 87, 88, 89, 115, 1342, 2975 465, 1023, 120, 115, 42, 470, 136, 1023, 959, 1169, 2976 1170, 932, 135, 478, 115, 72, 1408, 482, 75, 117, 2977 117, 78, 487, 80, 116, 490, 115, 492, 115, 1170, 2978 87, 1191, 70, 587, 75, 121, 77, 78, 79, 115, 2979 119, 135, 114, 107, 121, 1205, 3, 88, 89, 1209, 2980 119, 115, 115, 10, 11, 12, 13, 14, 1191, 75, 2981 115, 452, 527, 984, 1169, 1170, 82, 532, 1209, 85, 2982 115, 87, 88, 89, 121, 115, 630, 631, 115, 121, 2983 115, 135, 161, 114, 148, 42, 1191, 1362, 121, 114, 2984 114, 114, 646, 157, 114, 117, 115, 1128, 1258, 1259, 2985 116, 137, 1053, 120, 1209, 115, 1266, 1502, 120, 115, 2986 119, 1271, 133, 70, 505, 580, 507, 863, 120, 510, 2987 115, 117, 513, 137, 121, 117, 115, 1191, 115, 117, 2988 50, 596, 117, 598, 117, 115, 117, 137, 1271, 117, 2989 664, 117, 206, 222, 1304, 115, 210, 137, 1170, 120, 2990 704, 137, 617, 1169, 1492, 137, 213, 120, 1492, 1492, 2991 1191, 1266, 137, 1304, 1492, 115, 1271, 632, 135, 1191, 2992 1492, 636, 1492, 120, 1205, 1191, 240, 117, 86, 117, 2993 645, 260, 647, 648, 649, 86, 265, 1209, 1492, 90, 2994 91, 92, 465, 1468, 117, 117, 117, 115, 117, 1304, 2995 115, 117, 1362, 114, 114, 114, 1493, 1271, 272, 63, 2996 115, 275, 115, 114, 1165, 116, 681, 118, 119, 1379, 2997 685, 119, 687, 280, 114, 75, 691, 77, 78, 79, 2998 1517, 137, 1493, 297, 699, 117, 117, 115, 88, 89, 2999 1271, 117, 115, 101, 1404, 1361, 310, 712, 713, 1271, 3000 1266, 114, 101, 114, 527, 1271, 1517, 137, 782, 532, 3001 120, 45, 727, 1404, 114, 121, 116, 1427, 792, 115, 3002 115, 350, 122, 123, 1434, 115, 1436, 341, 1438, 803, 3003 1026, 345, 1304, 115, 135, 135, 115, 678, 115, 1492, 3004 137, 1492, 101, 1361, 1427, 352, 1492, 354, 137, 1404, 3005 364, 1434, 101, 57, 368, 664, 86, 580, 1468, 863, 3006 90, 91, 92, 1473, 137, 1475, 137, 115, 0, 1, 3007 115, 117, 1427, 137, 115, 115, 1486, 120, 117, 1434, 3008 117, 885, 1492, 1493, 114, 137, 116, 802, 118, 119, 3009 1493, 114, 1502, 137, 120, 99, 75, 115, 120, 814, 3010 79, 430, 34, 1486, 115, 137, 115, 1517, 115, 88, 3011 89, 425, 426, 1427, 1517, 1038, 562, 564, 563, 51, 3012 1434, 565, 1492, 964, 647, 566, 649, 931, 1191, 1348, 3013 1456, 1486, 1404, 440, 1527, 114, 1281, 1102, 452, 71, 3014 0, 856, 471, 122, 123, 1309, 1427, 862, 1434, 1053, 3015 1072, 465, 678, 1434, 678, 1427, 691, 908, 900, 580, 3016 959, 1427, 1434, 856, 642, 928, 716, 568, 1434, 1209, 3017 482, 727, 1486, 782, 34, 107, 699, 491, 893, 493, 3018 895, 495, -1, 792, 568, -1, 568, 902, -1, -1, 3019 194, 505, -1, 507, 803, 1191, 510, -1, 512, 513, 3020 -1, 1005, 1006, -1, -1, 1486, -1, -1, -1, -1, 3021 925, 71, -1, 217, 1486, -1, -1, 149, -1, 1023, 3022 1486, -1, -1, 227, -1, 157, 158, -1, 1002, 1003, 3023 -1, 946, -1, -1, -1, 75, 10, 11, 12, 13, 3024 14, -1, 82, -1, 959, 85, -1, 87, 88, 89, 3025 965, -1, -1, -1, 969, 187, -1, -1, -1, -1, 3026 -1, 590, 576, -1, -1, -1, 907, -1, 42, -1, 3027 202, -1, 586, 205, 206, -1, 116, 689, 210, -1, 3028 -1, -1, -1, 1057, 1058, -1, -1, -1, -1, 618, 3029 -1, 1287, -1, 297, 623, -1, 70, -1, 158, 231, 3030 -1, 1016, 616, 235, -1, 237, -1, 621, -1, -1, 3031 -1, -1, -1, 627, 246, -1, -1, -1, -1, -1, 3032 252, -1, -1, -1, -1, 257, -1, -1, -1, -1, 3033 -1, 1502, -1, -1, -1, 267, -1, -1, 1053, -1, 3034 114, 75, 116, 275, 1340, 79, -1, 1343, 122, 123, 3035 -1, -1, 1067, -1, 88, 89, 75, 1072, 77, 78, 3036 79, -1, -1, 692, 678, 1169, 1170, -1, 780, 88, 3037 89, 231, -1, -1, 1089, -1, -1, 706, 190, -1, 3038 114, -1, -1, -1, -1, 197, -1, 1191, 122, 123, 3039 -1, 1387, 252, 1002, 1003, 114, 1392, 257, 1113, -1, 3040 -1, -1, 716, 122, 123, 1209, -1, -1, -1, 341, 3041 -1, -1, -1, 345, 75, -1, 77, 78, 79, 351, 3042 727, 1062, -1, 946, -1, 1421, -1, 88, 89, 1203, 3043 -1, -1, 364, -1, -1, -1, 368, 441, -1, -1, 3044 852, -1, 965, -1, 51, -1, 969, -1, 1057, 1058, 3045 1165, 68, -1, 114, 1258, 1259, -1, 269, 65, -1, 3046 77, 68, 1266, 467, 71, -1, 1240, 1271, 797, -1, 3047 -1, -1, -1, 1247, 1248, 1249, 75, -1, 77, 78, 3048 79, 795, 894, -1, -1, 417, -1, -1, -1, 88, 3049 89, 351, -1, 1016, -1, -1, -1, -1, -1, 431, 3050 1304, 505, 119, -1, 436, -1, 510, -1, -1, 513, 3051 1506, -1, 444, -1, 326, 114, 1512, 116, 1233, -1, 3052 1235, 1236, 334, 122, 123, 337, -1, 1523, 940, -1, 3053 462, 1527, -1, 465, -1, -1, 1310, -1, -1, -1, 3054 -1, -1, 149, -1, 161, -1, -1, -1, 480, -1, 3055 482, -1, -1, -1, 161, -1, -1, 417, -1, 491, 3056 972, -1, -1, 495, -1, 10, 11, 12, 13, 14, 3057 -1, 431, -1, -1, -1, 1379, 436, -1, -1, 0, 3058 187, -1, 68, -1, 444, 397, -1, -1, -1, 401, 3059 1113, -1, 524, 907, -1, -1, -1, 42, 84, 1314, 3060 1404, -1, 462, 210, -1, 222, -1, -1, 1020, -1, 3061 -1, -1, -1, 34, -1, 222, 930, 931, 932, -1, 3062 480, -1, 482, 1427, -1, 70, -1, -1, -1, -1, 3063 1434, 1240, -1, 119, -1, -1, -1, 569, 1247, 1248, 3064 1249, -1, -1, 260, -1, -1, 1361, 1362, 265, -1, 3065 71, -1, -1, -1, 586, 587, 1371, 1372, 987, 663, 3066 -1, -1, -1, 280, 524, 477, 598, -1, 672, 114, 3067 984, 116, 676, -1, -1, 161, -1, 122, 123, -1, 3068 -1, -1, 1486, -1, 616, -1, -1, 1099, -1, 621, 3069 -1, -1, -1, -1, 1409, 627, -1, -1, 630, 631, 3070 -1, 1310, -1, 75, -1, 77, 78, 79, -1, -1, 3071 1233, -1, 1235, 1236, 646, -1, 88, 89, -1, -1, 3072 -1, -1, -1, -1, 331, -1, -1, 587, -1, -1, 3073 -1, -1, 664, 350, -1, -1, 222, 158, -1, -1, 3074 -1, -1, 114, 675, 116, -1, 1158, 1159, 1062, -1, 3075 122, 123, -1, 1468, 1469, -1, 568, 569, -1, -1, 3076 -1, -1, 75, 1478, 77, 78, 79, -1, -1, 701, 3077 630, 631, 704, -1, 260, 88, 89, 1492, 1493, 265, 3078 -1, 713, -1, -1, 716, -1, 646, -1, -1, -1, 3079 -1, 1314, -1, -1, -1, 1436, -1, 1438, 405, -1, 3080 -1, 114, 1517, 116, 664, -1, -1, 739, -1, 122, 3081 123, -1, 744, 430, 75, 675, 77, 78, 79, -1, 3082 -1, -1, -1, -1, -1, -1, -1, 88, 89, 446, 3083 -1, 252, 1473, -1, 1475, -1, 257, -1, -1, 651, 3084 1169, 701, -1, 655, 704, -1, -1, -1, 1371, 1372, 3085 782, -1, -1, 114, 471, -1, -1, -1, -1, -1, 3086 792, 122, 123, 795, 350, -1, 798, -1, -1, -1, 3087 -1, 803, -1, -1, -1, -1, 0, -1, -1, 739, 3088 -1, 813, -1, 887, -1, -1, 1409, -1, -1, -1, 3089 -1, -1, -1, -1, -1, 1209, 10, 11, 12, 13, 3090 14, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3091 34, 102, 103, 104, 105, 106, 107, 108, 109, 110, 3092 111, 112, 782, -1, -1, -1, -1, -1, 42, -1, 3093 351, 863, 792, 42, -1, -1, -1, 1266, 798, -1, 3094 -1, -1, -1, 803, 430, 136, 1469, 71, -1, -1, 3095 -1, -1, -1, 885, 1366, 1478, 70, -1, -1, -1, 3096 892, 70, -1, 895, -1, -1, 75, -1, 77, 78, 3097 79, 1383, -1, 590, 786, -1, -1, -1, -1, 88, 3098 89, -1, -1, -1, -1, 471, -1, -1, -1, 921, 3099 1304, -1, -1, -1, -1, -1, 417, -1, 930, 931, 3100 114, 618, 116, 863, -1, 114, 623, 116, 122, 123, 3101 431, -1, -1, 122, 123, 436, -1, 0, -1, -1, 3102 -1, -1, -1, 444, -1, 885, -1, -1, -1, -1, 3103 1034, -1, 892, -1, 158, -1, 10, 11, 12, 13, 3104 14, 462, -1, 1455, 1456, -1, -1, -1, -1, -1, 3105 -1, 34, 984, -1, -1, -1, -1, -1, -1, 480, 3106 -1, 482, -1, -1, -1, 997, -1, -1, 42, -1, 3107 1002, 1003, -1, 1005, 1006, 692, -1, -1, -1, -1, 3108 28, 29, 30, -1, -1, -1, -1, 899, 71, 706, 3109 1404, 1023, -1, -1, -1, -1, 70, -1, -1, -1, 3110 -1, 75, -1, 524, 590, 79, -1, -1, -1, -1, 3111 727, -1, -1, -1, 88, 89, -1, -1, -1, -1, 3112 -1, -1, 1436, -1, 1438, 1057, 1058, -1, 252, -1, 3113 -1, -1, 618, 257, -1, -1, -1, 623, -1, -1, 3114 114, -1, 1002, 1003, -1, 1005, 1006, -1, 122, 123, 3115 -1, -1, 100, -1, 102, -1, -1, -1, -1, 1473, 3116 -1, 1475, 974, 1023, -1, -1, 587, -1, -1, -1, 3117 -1, -1, -1, -1, -1, 158, -1, -1, 990, 127, 3118 797, -1, -1, -1, -1, -1, -1, -1, 1502, -1, 3119 -1, -1, -1, -1, -1, -1, 1128, 1057, 1058, -1, 3120 -1, -1, -1, -1, -1, -1, 692, -1, -1, 630, 3121 631, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3122 706, -1, -1, -1, -1, 646, -1, 351, -1, -1, 3123 -1, -1, -1, -1, 182, -1, -1, -1, 1170, -1, 3124 -1, -1, 190, 664, 192, 193, -1, -1, -1, 197, 3125 -1, 199, 200, 1065, 675, -1, -1, -1, -1, 1191, 3126 -1, -1, -1, -1, -1, -1, -1, -1, 1128, 252, 3127 -1, 1203, -1, 1205, 257, -1, 1280, 1209, -1, -1, 3128 701, -1, -1, 704, -1, -1, -1, -1, -1, -1, 3129 -1, -1, 1104, 417, -1, -1, -1, 10, 11, 12, 3130 13, 14, -1, -1, -1, -1, -1, 431, 1240, -1, 3131 1170, 797, 436, -1, -1, 1247, 1248, 1249, 739, -1, 3132 444, 269, -1, -1, -1, -1, 1258, 1259, -1, 42, 3133 -1, 1191, -1, -1, -1, -1, -1, -1, 462, 1271, 3134 -1, -1, -1, 1203, -1, 1205, -1, -1, -1, -1, 3135 -1, -1, -1, -1, -1, -1, 480, 70, 482, -1, 3136 -1, 782, 75, -1, 77, 78, 79, -1, 351, -1, 3137 987, 792, 1304, -1, -1, 88, 89, 798, 1310, -1, 3138 1240, -1, 803, -1, -1, -1, -1, 1247, 1248, 1249, 3139 -1, -1, -1, 28, 29, 30, -1, -1, 1258, 1259, 3140 524, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3141 123, 1271, -1, 10, 11, 12, 13, 14, -1, -1, 3142 -1, 55, -1, 57, -1, -1, 60, 61, 62, -1, 3143 64, 1435, -1, 1437, 417, -1, -1, -1, -1, -1, 3144 -1, -1, 863, -1, 78, 42, -1, 1379, 431, -1, 3145 1310, -1, -1, 436, -1, -1, 90, 91, -1, -1, 3146 -1, 444, -1, 587, 885, 100, -1, 102, 1472, -1, 3147 1474, 892, 1404, 70, -1, -1, -1, -1, 75, 462, 3148 77, 78, 79, -1, -1, -1, -1, -1, -1, -1, 3149 -1, 88, 89, -1, -1, 1427, -1, 480, -1, 482, 3150 -1, 987, 1434, -1, -1, -1, 630, 631, -1, -1, 3151 -1, -1, 1516, -1, 1518, -1, -1, 114, -1, 1379, 3152 -1, -1, 646, -1, -1, 122, 123, 1531, 1532, -1, 3153 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3154 664, 524, -1, -1, -1, -1, -1, 182, -1, -1, 3155 -1, 675, 1169, -1, 1486, -1, -1, 192, 193, -1, 3156 -1, 1493, 197, 42, 199, 200, -1, 1427, -1, -1, 3157 -1, -1, -1, -1, 1434, -1, -1, 701, -1, -1, 3158 704, 1002, 1003, -1, 1005, 1006, -1, -1, -1, -1, 3159 -1, 70, -1, -1, -1, -1, 75, -1, 77, 78, 3160 79, -1, 1023, -1, 587, -1, -1, -1, -1, 88, 3161 89, -1, -1, -1, -1, 739, -1, -1, -1, -1, 3162 -1, -1, -1, -1, 572, 573, 1486, -1, -1, -1, 3163 10, 11, 12, 13, 14, 114, 1057, 1058, -1, -1, 3164 -1, -1, -1, 122, 123, -1, -1, 630, 631, 1266, 3165 -1, 599, -1, -1, 602, 603, -1, 605, 782, 607, 3166 608, -1, 42, 646, 612, 613, -1, -1, 792, -1, 3167 -1, -1, -1, -1, 798, -1, -1, -1, -1, 803, 3168 -1, 664, -1, 1169, -1, 10, 11, 12, 13, 14, 3169 70, -1, 675, -1, -1, 75, -1, 77, 78, 79, 3170 -1, -1, -1, -1, -1, -1, -1, 1128, 88, 89, 3171 344, -1, 346, -1, -1, -1, -1, 42, 701, -1, 3172 -1, 704, -1, 357, 358, -1, -1, -1, -1, -1, 3173 -1, -1, -1, -1, 114, -1, 116, -1, -1, 863, 3174 -1, -1, 122, 123, -1, 70, -1, -1, -1, 1170, 3175 75, -1, -1, -1, 79, -1, 739, -1, -1, -1, 3176 -1, 885, -1, 88, 89, -1, -1, -1, 892, -1, 3177 1191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3178 1266, -1, 1203, -1, 1205, -1, -1, -1, -1, 114, 3179 -1, -1, -1, -1, -1, -1, -1, 122, 123, 782, 3180 748, 749, -1, -1, -1, -1, -1, -1, -1, 792, 3181 -1, -1, -1, -1, -1, 798, -1, -1, -1, 1240, 3182 803, -1, -1, -1, -1, -1, 1247, 1248, 1249, -1, 3183 -1, -1, -1, -1, -1, -1, -1, 1258, 1259, -1, 3148 3184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3149 -1, -1, 629, 630, -1, -1, 351, -1, -1, -1, 3150 -1, 1168, -1, -1, -1, -1, -1, -1, 645, -1, 3151 489, 482, 491, -1, 1309, -1, -1, -1, -1, 986, 3152 -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, 3153 -1, 1468, -1, 898, -1, -1, -1, 674, 1001, 1002, 3154 1477, 1004, 1005, -1, -1, -1, -1, -1, -1, 55, 3155 -1, 57, 523, -1, 60, 61, 62, -1, 64, 1022, 3156 -1, -1, 417, 700, -1, -1, 703, -1, -1, -1, 3157 -1, -1, 78, -1, -1, -1, 431, -1, -1, -1, 3158 -1, 436, -1, 1378, 90, 91, -1, -1, -1, 444, 3159 -1, -1, -1, 1056, 1057, -1, -1, -1, 1265, -1, 3160 -1, 738, -1, -1, -1, -1, -1, 462, 973, -1, 3161 -1, -1, -1, -1, -1, 586, -1, -1, -1, -1, 3162 -1, -1, -1, -1, 989, 480, -1, 482, -1, -1, 3163 -1, 1426, -1, 986, -1, -1, -1, -1, 1433, -1, 3164 -1, -1, -1, -1, 781, 571, 572, -1, -1, -1, 3165 -1, -1, -1, -1, 791, -1, 635, -1, 629, 630, 3166 797, -1, -1, -1, 1127, 802, -1, -1, 523, -1, 3167 -1, -1, 598, -1, 645, 601, 602, -1, 604, -1, 3168 606, 607, -1, -1, -1, 611, 612, -1, -1, -1, 3169 1485, -1, -1, 10, 11, 12, 13, 14, -1, 1064, 3170 -1, 1168, -1, -1, -1, 684, 1169, 686, -1, -1, 3171 -1, 690, -1, -1, -1, -1, -1, -1, -1, -1, 3172 -1, -1, -1, -1, 41, 862, -1, 1190, -1, -1, 3173 -1, 586, 703, -1, -1, -1, -1, -1, 1103, 1202, 3174 -1, 1204, -1, -1, -1, -1, -1, 884, -1, -1, 3175 -1, -1, 69, -1, 891, -1, -1, 74, -1, 76, 3176 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, 3177 87, 88, -1, -1, 629, 630, 1239, -1, -1, -1, 3178 -1, -1, -1, 1246, 1247, 1248, -1, -1, -1, -1, 3179 645, -1, -1, -1, 1257, 1258, 113, -1, 1265, -1, 3180 -1, -1, -1, -1, 121, 122, -1, 1270, 663, -1, 3181 -1, -1, -1, -1, -1, 1168, -1, -1, -1, 674, 3182 -1, 747, 748, -1, -1, -1, -1, -1, -1, -1, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 3184 346, -1, -1, -1, -1, 700, 1309, -1, 703, -1, 3185 -1, 357, 358, -1, -1, 28, 29, 30, -1, -1, 3186 -1, -1, -1, -1, 1001, 1002, -1, 1004, 1005, -1, 3187 -1, -1, -1, -1, -1, -1, 855, -1, -1, -1, 3188 -1, -1, 861, 738, -1, 1022, -1, -1, -1, -1, 3189 -1, 862, 10, 11, 12, 13, 14, 15, 16, 17, 3185 1271, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3186 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3187 27, 28, 29, -1, -1, 32, 33, 34, 1002, 1003, 3188 863, 1005, 1006, -1, -1, 42, -1, -1, -1, 1310, 3189 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1023, 3190 -1, -1, 885, -1, -1, -1, -1, -1, -1, 892, 3191 -1, -1, -1, 70, -1, -1, -1, -1, 75, -1, 3192 77, 78, 79, -1, -1, -1, -1, -1, -1, -1, 3193 -1, 88, 89, 1057, 1058, -1, -1, 572, 573, -1, 3194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3195 -1, 899, -1, -1, -1, -1, 904, 114, 1379, 116, 3196 -1, -1, -1, -1, 599, 122, 123, 602, 603, -1, 3197 605, -1, 607, 608, -1, -1, -1, 612, 613, 10, 3198 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3199 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 3200 -1, -1, -1, -1, 1128, -1, 1427, -1, -1, -1, 3201 -1, 42, 51, 1434, -1, -1, -1, -1, -1, 1002, 3202 1003, 7, 1005, 1006, 10, 11, 12, 13, 14, 68, 3203 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 3204 1023, -1, -1, -1, -1, -1, 1170, -1, -1, -1, 3205 81, -1, -1, -1, 40, 41, 42, 43, -1, 693, 3206 -1, 695, -1, -1, -1, 1486, -1, 1191, 702, 703, 3207 -1, -1, -1, 707, 1057, 1058, 115, -1, -1, 1203, 3208 119, 1205, -1, 69, 70, -1, 720, -1, -1, 75, 3209 -1, 725, -1, 79, -1, -1, 82, 83, 84, 85, 3210 86, 87, 88, 89, -1, 91, 92, -1, -1, 148, 3211 -1, 1059, -1, 748, 749, -1, 1240, -1, 752, 158, 3212 -1, -1, 161, 1247, 1248, 1249, -1, -1, 114, -1, 3213 116, -1, -1, -1, 1258, 1259, 122, 123, 124, 125, 3214 126, 127, -1, -1, 68, 1128, -1, 1271, -1, -1, 3215 -1, -1, -1, 77, -1, 79, -1, 81, -1, -1, 3216 -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, 3217 -1, 210, -1, -1, -1, -1, -1, -1, -1, -1, 3218 -1, -1, -1, 222, -1, -1, 1310, 1170, -1, -1, 3219 -1, -1, -1, -1, -1, 119, -1, 121, 122, 123, 3220 -1, 240, -1, -1, -1, -1, -1, -1, 1191, -1, 3221 -1, 845, -1, 847, 848, 849, -1, -1, -1, -1, 3222 1203, -1, 1205, -1, -1, -1, 265, -1, -1, -1, 3223 -1, -1, 866, 272, -1, -1, -1, 161, -1, 1187, 3224 -1, -1, -1, -1, -1, -1, 880, -1, -1, -1, 3225 -1, -1, -1, -1, -1, 1379, -1, 1240, 297, -1, 3226 -1, -1, -1, -1, 1247, 1248, 1249, -1, -1, 904, 3227 -1, 310, -1, -1, -1, 1258, 1259, -1, -1, -1, 3228 -1, -1, -1, -1, -1, 919, -1, -1, 1271, -1, 3229 -1, -1, -1, -1, -1, -1, -1, -1, 222, -1, 3230 224, 225, 226, 1427, -1, -1, 345, -1, -1, -1, 3231 1434, 350, -1, -1, -1, -1, -1, -1, -1, -1, 3232 -1, -1, -1, -1, -1, -1, -1, 1310, -1, 963, 3233 -1, -1, -1, -1, 968, -1, 260, -1, -1, 973, 3234 -1, 265, -1, -1, 978, -1, -1, -1, -1, 983, 3235 -1, 985, 986, -1, -1, 989, 280, -1, -1, -1, 3236 -1, -1, 1486, -1, 998, -1, -1, -1, -1, -1, 3237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3238 1014, 1015, -1, -1, -1, -1, 425, 426, -1, -1, 3239 -1, -1, 431, -1, -1, -1, 1379, -1, -1, -1, 3240 -1, -1, -1, -1, -1, -1, 1040, 331, -1, 1043, 3241 -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, 3242 -1, -1, -1, -1, 1059, -1, 350, -1, -1, -1, 3243 -1, 355, 356, -1, -1, -1, -1, -1, -1, 363, 3244 -1, 480, -1, -1, 1427, -1, -1, -1, -1, -1, 3245 -1, 1434, 1086, -1, 493, -1, -1, -1, 1092, 1093, 3246 -1, -1, -1, -1, -1, -1, 505, -1, 507, -1, 3247 -1, 510, -1, 512, 513, -1, -1, 1111, -1, -1, 3248 -1, 405, 1116, -1, -1, 524, -1, 1121, -1, -1, 3249 -1, -1, -1, -1, -1, -1, -1, -1, 1132, 423, 3250 -1, -1, -1, 1486, 428, -1, 430, -1, -1, -1, 3251 -1, 1145, -1, 1147, 1148, 1149, 1150, -1, -1, -1, 3252 -1, -1, 446, -1, -1, 449, 450, -1, 1162, -1, 3253 1164, -1, -1, 457, 1168, -1, -1, 576, -1, -1, 3254 -1, -1, -1, -1, -1, -1, -1, 471, 587, -1, 3255 -1, 590, 1187, -1, 478, -1, -1, -1, -1, -1, 3256 -1, -1, 1196, 1197, -1, -1, 7, -1, -1, 10, 3257 11, 12, 13, 14, -1, -1, -1, 616, -1, -1, 3258 -1, -1, 621, 46, -1, -1, -1, -1, -1, -1, 3259 -1, 630, 631, -1, -1, -1, -1, -1, -1, 40, 3260 41, 42, 43, -1, -1, -1, -1, 646, -1, -1, 3261 -1, -1, -1, -1, -1, -1, 1250, 1251, -1, -1, 3262 -1, -1, -1, -1, -1, -1, 1260, -1, 69, 70, 3263 93, -1, -1, -1, 75, -1, -1, -1, 79, 678, 3264 103, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3265 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3266 -1, -1, -1, -1, -1, 704, 590, 706, -1, -1, 3267 -1, -1, -1, 114, -1, 116, -1, 40, 41, -1, 3268 43, 122, 123, 124, 125, 126, 127, -1, 1322, -1, 3269 1324, 1325, 1326, -1, 618, -1, -1, -1, -1, 623, 3270 739, -1, 1336, -1, -1, -1, 69, -1, -1, 172, 3271 1344, -1, 75, -1, -1, -1, 79, -1, -1, 82, 3272 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 3273 -1, -1, 195, -1, -1, 1369, 1370, -1, -1, -1, 3274 -1, -1, -1, -1, -1, -1, 209, -1, -1, -1, 3275 -1, 114, -1, 116, -1, 218, -1, -1, 797, 122, 3276 123, 124, 125, 126, 127, 228, -1, -1, 692, -1, 3277 -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, 3278 1414, 1415, 706, -1, -1, -1, -1, -1, -1, -1, 3279 253, -1, -1, 1427, -1, 258, -1, -1, -1, -1, 3280 1434, -1, -1, 727, -1, -1, -1, -1, 271, -1, 3281 -1, -1, -1, -1, 277, -1, 279, -1, -1, -1, 3282 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3283 -1, -1, -1, 1467, -1, 298, -1, 1471, -1, -1, 3284 -1, -1, -1, -1, -1, -1, 885, -1, -1, -1, 3285 -1, -1, -1, 892, -1, -1, -1, -1, -1, -1, 3286 -1, -1, 786, -1, -1, 1499, -1, 1501, 907, -1, 3287 -1, -1, -1, 797, -1, -1, 339, -1, -1, -1, 3288 343, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3289 814, -1, -1, 932, -1, 1529, 1530, -1, -1, -1, 3290 -1, -1, -1, 1537, 1538, -1, -1, -1, 371, -1, 3291 -1, -1, 375, 376, -1, 378, -1, -1, -1, -1, 3292 -1, -1, 385, 386, -1, 388, 389, -1, 391, -1, 3293 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3294 -1, -1, -1, -1, -1, 984, -1, 410, -1, -1, 3295 -1, -1, -1, -1, -1, 418, -1, -1, -1, 157, 3296 158, -1, -1, -1, -1, -1, 1005, 1006, -1, -1, 3297 -1, -1, -1, -1, -1, -1, -1, -1, -1, 442, 3298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3299 -1, -1, 190, -1, -1, -1, -1, -1, -1, 197, 3300 -1, 925, -1, -1, -1, 468, -1, -1, -1, -1, 3301 -1, 474, -1, -1, -1, -1, 479, -1, -1, -1, 3302 -1, -1, -1, 1062, -1, -1, -1, -1, -1, -1, 3303 -1, 955, 10, 11, 12, 13, 14, 15, 16, 17, 3190 3304 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3191 28, 29, 1265, 884, -1, 1378, -1, -1, -1, 1056, 3192 1057, -1, 901, 41, -1, -1, 781, 100, -1, 102, 3193 -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, 3194 -1, -1, 797, -1, -1, -1, -1, 802, -1, -1, 3195 -1, 69, -1, -1, 127, -1, -1, -1, -1, 930, 3196 -1, -1, -1, 1426, -1, -1, -1, -1, -1, -1, 3197 1433, -1, -1, -1, -1, -1, -1, 903, -1, 958, 3305 28, 29, -1, 516, 32, 33, 34, -1, -1, -1, 3306 -1, -1, -1, 987, 42, -1, -1, -1, 531, -1, 3307 -1, 269, -1, -1, 998, -1, -1, -1, -1, -1, 3308 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1128, 3309 -1, -1, 70, -1, -1, -1, -1, 75, -1, 77, 3310 78, -1, -1, -1, -1, 568, -1, -1, -1, -1, 3311 88, 89, -1, -1, 577, -1, -1, -1, -1, -1, 3312 -1, -1, -1, -1, -1, -1, -1, -1, 326, -1, 3313 1169, -1, -1, -1, 597, -1, 334, 335, 116, 337, 3314 338, -1, -1, 1067, 122, 123, -1, 345, -1, -1, 3315 -1, 349, -1, -1, -1, -1, -1, 1081, -1, -1, 3316 -1, -1, -1, -1, -1, -1, 1205, -1, -1, -1, 3317 368, -1, 635, -1, 10, 11, 12, 13, 14, 15, 3318 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3319 26, 27, 28, 29, -1, -1, 32, 33, 34, 397, 3320 -1, -1, -1, 401, -1, -1, 42, -1, 671, -1, 3321 -1, -1, -1, -1, -1, -1, 679, -1, -1, 1258, 3322 1259, -1, -1, -1, -1, -1, -1, 1266, -1, -1, 3323 -1, -1, -1, 431, 70, -1, -1, -1, -1, 75, 3324 -1, 77, 78, 79, -1, 1169, -1, 710, -1, -1, 3325 -1, -1, 88, 89, -1, -1, -1, -1, 721, 722, 3198 3326 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3199 1127, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3200 -1, -1, -1, -1, -1, -1, -1, 862, 7, 182, 3201 -1, 10, 11, 12, 13, 14, -1, 190, -1, 192, 3202 193, -1, 1485, -1, 197, -1, 199, 200, -1, 884, 3203 -1, -1, 1169, 1004, 1005, -1, 891, -1, -1, -1, 3204 39, 40, 41, 42, -1, -1, -1, -1, -1, -1, 3205 -1, 1022, -1, 1190, -1, -1, -1, -1, -1, -1, 3206 -1, -1, -1, -1, -1, 1202, -1, 1204, -1, 68, 3207 69, -1, -1, 1052, -1, 74, -1, -1, -1, 78, 3208 -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, 3209 -1, 90, 91, -1, -1, -1, 269, -1, -1, -1, 3210 -1, -1, 1239, -1, -1, -1, -1, -1, -1, 1246, 3211 1247, 1248, -1, -1, 113, -1, 115, -1, -1, -1, 3212 1257, 1258, 121, 122, 123, 124, 125, 126, -1, -1, 3213 -1, -1, 1058, 1270, -1, -1, -1, -1, -1, -1, 3214 -1, 51, -1, -1, -1, -1, 1001, 1002, -1, 1004, 3215 1005, -1, -1, -1, -1, -1, -1, -1, 68, -1, 3216 -1, -1, -1, -1, -1, -1, -1, 1022, -1, -1, 3217 -1, -1, 1309, -1, -1, -1, -1, -1, -1, -1, 3218 -1, 39, 40, -1, 42, 1164, 692, -1, 694, -1, 3219 -1, -1, -1, -1, -1, 701, 702, 1168, 1169, -1, 3220 706, 1056, 1057, -1, -1, 115, -1, -1, -1, 119, 3221 68, -1, -1, 719, -1, -1, 74, -1, 724, 1190, 3222 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3223 88, -1, 90, 91, -1, -1, -1, 1208, 148, -1, 3224 -1, 1378, -1, -1, -1, 751, -1, -1, 158, -1, 3225 -1, 161, -1, -1, -1, 113, -1, 115, -1, -1, 3226 1186, -1, -1, 121, 122, 123, 124, 125, 126, -1, 3227 -1, -1, 1127, -1, -1, -1, 134, -1, -1, -1, 3228 -1, -1, -1, -1, -1, -1, 1257, 1258, -1, 1426, 3229 -1, -1, -1, -1, 1265, -1, 1433, -1, -1, 1270, 3230 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3231 -1, -1, 222, -1, 1169, -1, -1, -1, -1, -1, 3327 -1, -1, -1, -1, -1, -1, -1, -1, 114, 477, 3328 116, -1, 480, -1, -1, -1, 122, 123, -1, -1, 3329 753, -1, -1, -1, -1, 758, -1, 10, 11, 12, 3330 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3331 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3332 33, 34, 520, -1, -1, -1, 524, -1, -1, 42, 3232 3333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3233 240, -1, 1303, -1, -1, 1190, -1, -1, 844, -1, 3234 846, 847, 848, -1, -1, -1, -1, 1202, 1485, 1204, 3235 -1, -1, -1, -1, -1, 265, -1, -1, -1, 865, 3236 -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, 3237 -1, -1, -1, 879, -1, -1, -1, -1, -1, -1, 3238 -1, -1, -1, -1, 1239, -1, -1, 297, -1, -1, 3239 -1, 1246, 1247, 1248, -1, -1, -1, -1, 571, 572, 3240 310, -1, 1257, 1258, -1, -1, -1, 1378, -1, -1, 3241 -1, -1, 918, -1, -1, 1270, -1, -1, -1, -1, 3242 -1, -1, -1, -1, -1, 598, -1, -1, 601, 602, 3243 -1, 604, 1403, 606, 607, 345, -1, -1, 611, 612, 3244 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3245 -1, -1, -1, -1, 1309, 1426, 962, -1, -1, -1, 3246 -1, 967, 1433, -1, -1, -1, 972, -1, -1, -1, 3247 -1, 977, -1, -1, -1, -1, 982, -1, 984, 985, 3248 -1, -1, 988, -1, -1, -1, -1, -1, -1, -1, 3249 -1, 997, -1, -1, -1, -1, -1, -1, -1, -1, 3250 -1, -1, -1, -1, -1, -1, -1, 1013, 1014, -1, 3251 -1, -1, -1, -1, 1485, 425, 426, -1, -1, -1, 3252 -1, 431, -1, 1378, -1, -1, -1, -1, -1, -1, 3253 -1, -1, -1, 1039, -1, -1, 1042, -1, -1, -1, 3254 -1, -1, 452, -1, -1, -1, 10, 11, 12, 13, 3334 1379, -1, 1266, -1, -1, -1, -1, -1, -1, -1, 3335 -1, -1, -1, -1, -1, 818, -1, 70, -1, -1, 3336 -1, -1, 825, -1, 77, 78, -1, -1, -1, -1, 3337 568, 569, -1, -1, -1, 838, -1, 840, -1, -1, 3338 -1, -1, -1, -1, -1, -1, -1, -1, 586, 587, 3339 853, -1, -1, -1, -1, -1, 859, 1436, 596, 1438, 3340 598, 599, -1, 116, -1, 148, -1, 605, 871, 122, 3341 123, 874, -1, -1, -1, 158, -1, 615, 616, -1, 3342 -1, -1, -1, 621, -1, -1, 169, 170, -1, -1, 3343 -1, -1, 630, 631, 1473, -1, 1475, -1, -1, -1, 3344 -1, -1, -1, -1, -1, -1, -1, -1, 646, -1, 3345 -1, -1, -1, 651, 652, -1, -1, 655, 656, -1, 3346 -1, -1, -1, 1502, 662, -1, 283, -1, 285, 286, 3347 -1, -1, -1, -1, -1, -1, -1, -1, 295, 296, 3348 -1, -1, -1, 681, -1, -1, -1, -1, 40, 41, 3349 -1, 43, -1, 310, 311, -1, -1, 240, -1, -1, 3350 -1, -1, -1, -1, -1, -1, 704, 705, -1, -1, 3351 -1, -1, -1, -1, -1, -1, -1, 69, -1, 982, 3352 -1, 264, -1, 75, -1, 77, 78, 79, 345, -1, 3353 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3354 92, 739, -1, -1, -1, 743, 744, -1, -1, -1, 3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3356 -1, -1, 114, 380, 116, -1, 118, 119, -1, -1, 3357 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, 3358 1043, -1, -1, -1, -1, -1, -1, -1, 786, -1, 3359 -1, -1, -1, 1517, -1, -1, -1, -1, -1, -1, 3360 -1, -1, -1, -1, 802, -1, 804, -1, -1, -1, 3361 -1, -1, -1, -1, 1077, -1, 814, -1, -1, 1082, 3362 -1, -1, -1, -1, -1, -1, -1, 1090, -1, -1, 3363 -1, -1, -1, -1, -1, -1, 379, -1, 10, 11, 3364 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3365 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 3366 -1, 1124, -1, -1, -1, -1, -1, -1, -1, -1, 3367 42, -1, 1135, -1, -1, 1138, -1, 1140, -1, -1, 3368 -1, -1, -1, -1, -1, -1, -1, 885, -1, -1, 3369 -1, -1, 1155, 1156, 892, 893, -1, 895, 70, -1, 3370 -1, 899, -1, -1, -1, -1, -1, -1, -1, 81, 3371 -1, -1, 1175, -1, -1, -1, -1, -1, -1, -1, 3372 -1, -1, 920, 921, -1, -1, -1, -1, -1, 472, 3373 -1, -1, 549, 550, 551, 552, 553, 554, 555, 556, 3374 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 3375 -1, -1, -1, -1, -1, -1, -1, 955, 1221, -1, 3376 -1, -1, -1, -1, -1, -1, 1229, -1, -1, 512, 3377 -1, -1, -1, -1, -1, -1, 974, 975, -1, -1, 3378 -1, 524, -1, -1, -1, -1, 984, 530, -1, -1, 3379 533, -1, 990, 991, -1, 993, 994, 995, -1, -1, 3380 -1, -1, -1, 546, -1, -1, -1, 1005, 1006, -1, 3381 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3382 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3383 -1, -1, -1, 576, -1, -1, 1299, -1, 1301, -1, 3384 583, -1, 42, -1, 587, -1, -1, -1, -1, -1, 3385 -1, -1, -1, -1, 1317, -1, 1319, -1, -1, -1, 3386 -1, -1, -1, -1, -1, -1, -1, 1065, -1, 1067, 3387 70, 1334, 689, -1, 1072, -1, -1, -1, -1, -1, 3388 -1, -1, -1, 1081, -1, -1, 1349, 1350, -1, -1, 3389 633, -1, -1, -1, -1, -1, -1, 1360, 641, -1, 3390 1363, -1, -1, -1, -1, -1, 1104, 1105, -1, -1, 3391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3392 -1, -1, 1385, -1, -1, -1, -1, -1, -1, -1, 3393 1128, 1394, -1, 750, 1397, -1, 1399, 1400, 1401, -1, 3394 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3395 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3396 27, 28, 29, 780, -1, 32, 33, 34, 35, 36, 3397 37, 38, -1, -1, 717, 42, -1, 1440, -1, 1442, 3398 -1, 1444, -1, -1, -1, -1, -1, -1, -1, -1, 3399 -1, -1, -1, -1, -1, -1, 739, 1460, 741, -1, 3400 -1, -1, -1, 70, -1, -1, -1, 1205, 751, -1, 3401 77, 78, -1, -1, 757, -1, -1, 3, 4, 5, 3402 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3403 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3404 26, 27, 28, 29, -1, -1, 32, 33, 34, 35, 3405 -1, -1, -1, 39, 797, 798, 42, 43, -1, -1, 3406 1258, 1259, -1, -1, -1, -1, -1, -1, -1, -1, 3407 813, -1, -1, -1, -1, -1, -1, 894, -1, -1, 3408 -1, 67, -1, -1, 70, -1, 72, -1, 74, 75, 3409 -1, 77, 78, 79, -1, -1, -1, -1, -1, -1, 3410 -1, -1, 88, 89, -1, -1, -1, -1, -1, 852, 3411 -1, -1, -1, 856, -1, -1, -1, 40, 41, -1, 3412 43, -1, -1, 940, -1, -1, -1, -1, 114, -1, 3413 116, -1, -1, -1, 120, -1, 122, 123, -1, -1, 3414 -1, -1, 885, -1, -1, -1, 69, -1, -1, 892, 3415 -1, -1, 75, -1, -1, 972, 79, -1, -1, 82, 3416 83, 84, 85, 86, 87, 88, 89, 984, 91, 92, 3417 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3418 -1, 1379, -1, -1, -1, -1, -1, -1, -1, 932, 3419 -1, 114, -1, 116, -1, -1, 119, -1, -1, 122, 3420 123, 124, 125, 126, 127, -1, 1023, -1, -1, -1, 3421 -1, -1, -1, -1, -1, -1, 959, -1, -1, -1, 3422 -1, 964, -1, -1, 967, -1, -1, -1, -1, -1, 3423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3424 -1, -1, -1, -1, 987, -1, -1, -1, -1, -1, 3425 -1, -1, -1, -1, -1, 998, -1, -1, -1, -1, 3426 -1, -1, 40, 41, -1, 43, -1, -1, -1, -1, 3427 1468, -1, -1, -1, -1, 1018, -1, 1020, -1, -1, 3428 -1, -1, 1099, -1, -1, -1, -1, -1, -1, -1, 3429 -1, 69, 1035, 1036, 1492, 1493, -1, 75, -1, -1, 3430 -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3431 88, 89, 1055, 91, 92, -1, -1, -1, -1, 1517, 3432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3433 -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, 3434 -1, 1158, 1159, 121, 122, 123, 124, 125, 126, 127, 3435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3436 -1, -1, -1, -1, -1, -1, 1109, -1, -1, -1, 3437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3438 -1, -1, -1, -1, -1, 1128, -1, -1, -1, -1, 3439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3440 1143, 1144, 3, 4, 5, 6, 7, 8, 9, 10, 3441 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3442 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3443 -1, 32, 33, 34, 35, -1, -1, -1, 39, 40, 3444 41, 42, 43, 44, -1, 46, -1, -1, 49, 50, 3445 51, 52, 53, 54, 55, 56, -1, -1, -1, 60, 3446 -1, -1, -1, 64, 65, -1, 67, -1, 69, 70, 3447 -1, 72, -1, 74, 75, -1, 77, 78, 79, -1, 3448 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3449 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3451 -1, -1, -1, 114, -1, 116, -1, -1, 119, -1, 3452 -1, 122, 123, 124, 125, 126, 127, -1, -1, -1, 3453 -1, 132, -1, -1, -1, -1, 137, -1, -1, -1, 3454 -1, -1, 1285, -1, -1, 1288, -1, -1, -1, 1366, 3455 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3456 -1, -1, -1, -1, -1, -1, 1383, -1, -1, -1, 3457 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3458 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3459 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3460 29, -1, -1, 32, 33, 34, 35, -1, -1, -1, 3461 39, 40, 41, 42, 43, -1, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3463 -1, -1, -1, -1, -1, -1, -1, -1, 1455, 1456, 3464 69, 70, -1, 72, -1, 74, 75, -1, 77, 78, 3465 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3466 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3468 -1, -1, -1, -1, -1, 114, -1, 116, -1, -1, 3469 -1, -1, -1, 122, 123, 124, 125, 126, 127, -1, 3470 -1, -1, -1, -1, -1, -1, -1, -1, 137, 3, 3471 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3255 3472 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3256 24, 25, 26, 27, 28, 29, 30, -1, -1, -1, 3257 480, 1426, -1, -1, 747, 748, -1, 41, 1433, 1085, 3258 -1, -1, 492, -1, -1, 1091, 1092, -1, -1, -1, 3259 -1, -1, -1, -1, 504, -1, 506, -1, -1, 509, 3260 -1, 511, 512, -1, 1110, 69, -1, -1, -1, 1115, 3261 -1, -1, -1, 523, 1120, -1, 80, -1, -1, -1, 3262 -1, -1, -1, -1, -1, 1131, -1, -1, -1, -1, 3263 1485, -1, -1, -1, -1, -1, -1, -1, 1144, -1, 3264 1146, 1147, 1148, 1149, -1, -1, -1, 68, -1, -1, 3265 -1, -1, -1, -1, -1, 1161, 77, 1163, 79, -1, 3266 81, 1167, -1, -1, -1, 575, -1, 88, -1, -1, 3267 -1, -1, -1, -1, -1, -1, 586, -1, -1, 589, 3268 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1195, 3269 1196, -1, -1, -1, -1, -1, -1, -1, 119, -1, 3270 121, 122, 123, -1, -1, 615, -1, -1, -1, -1, 3271 620, -1, -1, -1, -1, -1, -1, -1, -1, 629, 3272 630, -1, -1, -1, -1, 898, -1, -1, -1, -1, 3273 903, -1, -1, -1, -1, 645, -1, -1, -1, -1, 3274 161, -1, -1, 1249, 1250, -1, -1, -1, -1, -1, 3275 -1, -1, -1, 1259, -1, -1, -1, -1, -1, -1, 3276 -1, -1, -1, -1, -1, -1, -1, 677, 10, 11, 3473 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3474 34, 35, -1, -1, -1, 39, 40, 41, 42, 43, 3475 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, 3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3477 -1, -1, -1, -1, -1, 69, 70, -1, 72, -1, 3478 74, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3479 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3482 114, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3483 124, 125, 126, 127, 4, 5, 6, 7, 8, 9, 3484 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3485 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3486 -1, -1, 32, 33, 34, -1, -1, -1, -1, -1, 3487 40, 41, 42, 43, 10, 11, 12, 13, 14, 15, 3488 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3489 26, 27, 28, 29, -1, -1, 32, 33, 34, 69, 3490 70, -1, 72, -1, 74, 75, 42, 77, 78, 79, 3491 -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, 3492 -1, 91, 92, -1, -1, -1, -1, -1, -1, -1, 3493 -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, 3494 -1, 77, 78, -1, 114, -1, 116, -1, -1, -1, 3495 -1, 121, 122, 123, 124, 125, 126, 127, 4, 5, 3496 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3497 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3498 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3499 -1, -1, -1, -1, 40, 41, 42, 43, 10, 11, 3277 3500 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3278 3501 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3279 32, 33, 34, 703, -1, 705, -1, -1, -1, 41, 3280 -1, 222, -1, 224, 225, 226, -1, 46, -1, -1, 3281 -1, -1, -1, -1, -1, 1321, -1, 1323, 1324, 1325, 3282 -1, -1, -1, -1, -1, -1, -1, 69, 738, 1335, 3283 -1, -1, 74, -1, 76, 77, 78, 1343, -1, 260, 3284 -1, -1, -1, -1, 265, 87, 88, -1, -1, -1, 3285 -1, -1, -1, -1, 93, -1, -1, -1, -1, 280, 3286 -1, -1, 1368, 1369, 103, -1, -1, -1, -1, -1, 3287 -1, 113, -1, 115, -1, -1, -1, -1, -1, 121, 3288 122, 148, -1, -1, -1, 1058, 796, -1, -1, -1, 3289 -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, 3290 -1, -1, 169, 170, -1, -1, -1, 1413, 1414, -1, 3291 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 1426, -1, -1, -1, -1, -1, -1, 1433, -1, 350, 3293 -1, -1, -1, 172, 355, 356, -1, -1, -1, -1, 3294 -1, -1, 363, -1, -1, -1, -1, -1, -1, -1, 3295 -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, 3296 1466, -1, -1, -1, 1470, -1, -1, -1, -1, -1, 3297 209, -1, -1, 240, 884, -1, -1, -1, -1, 218, 3298 -1, 891, -1, -1, 405, -1, -1, -1, -1, 228, 3299 -1, -1, 1498, -1, 1500, -1, 906, 264, -1, -1, 3300 -1, -1, 423, -1, -1, -1, -1, 428, -1, 430, 3301 -1, -1, -1, 1186, 253, -1, -1, -1, -1, 258, 3302 -1, 931, 1528, 1529, -1, 446, -1, -1, 449, 450, 3303 1536, 1537, 271, -1, -1, -1, 457, -1, 277, -1, 3304 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3305 471, -1, -1, -1, -1, -1, -1, 478, -1, 298, 3502 32, 33, 34, 69, 70, -1, 72, -1, 74, 75, 3503 42, 77, 78, 79, -1, -1, 82, 83, 84, 85, 3504 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3505 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 3506 -1, -1, -1, -1, -1, 77, 78, -1, 114, -1, 3507 116, -1, -1, -1, -1, 121, 122, 123, 124, 125, 3508 126, 127, 4, 5, 6, 7, 8, 9, 10, 11, 3509 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3510 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3511 32, 33, 34, -1, -1, -1, -1, -1, 40, 41, 3512 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, 3306 3513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3307 -1, -1, -1, 983, 10, 11, 12, 13, 14, 15, 3514 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1, 3515 72, -1, 74, 75, -1, 77, 78, 79, -1, -1, 3516 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3517 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3519 -1, -1, 114, -1, 116, -1, -1, -1, -1, -1, 3520 122, 123, 124, 125, 126, 127, 4, 5, 6, 7, 3521 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3522 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3523 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3524 -1, -1, 40, 41, 42, 43, -1, -1, -1, -1, 3525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3526 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3527 -1, 69, 70, -1, 72, -1, 74, 75, -1, 77, 3528 78, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3529 88, 89, -1, 91, 92, -1, -1, -1, -1, -1, 3530 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3531 -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, 3532 -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 3533 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3534 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3535 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3536 34, -1, -1, -1, -1, -1, 40, 41, 42, 43, 3537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3539 -1, -1, -1, -1, -1, 69, 70, -1, 72, -1, 3540 74, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3541 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3544 114, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3545 124, 125, 126, 127, 0, -1, -1, 3, 4, 5, 3546 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3308 3547 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3309 26, 27, 28, 29, 1004, 1005, 32, 33, 34, -1, 3310 339, -1, -1, -1, 343, 41, -1, -1, -1, -1, 3311 -1, -1, 379, -1, -1, -1, -1, -1, -1, -1, 3548 26, 27, 28, 29, -1, -1, 32, 33, 34, 35, 3549 -1, -1, -1, 39, -1, -1, 42, 43, -1, -1, 3312 3550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3313 -1, -1, 371, 69, -1, -1, 375, 376, -1, 378,3314 76, 77, -1, -1, -1, -1, 385, 386, -1, 388,3315 389, 1061, 391, -1, 393, -1, -1, -1, -1, -1,3316 -1, -1, -1, -1, -1, -1, -1, -1, 589, -1,3317 -1, 410, -1, -1, -1, -1, -1, -1, -1, 418,3318 -1, -1, -1, -1, -1, 121, 122, -1, -1, -1,3319 -1, -1, -1, -1, -1, -1, 617, -1, -1, -1,3320 -1, 622, -1, 442, -1, 472, -1, -1, -1, -1,3321 -1, -1, -1, -1, -1, -1, -1, 1127, -1, -1,3322 -1, -1, -1, -1, -1, -1, -1, -1, -1, 468,3323 -1, -1, -1, -1, -1, 474, -1, -1, -1, -1,3324 479, -1, -1, -1, 511, -1, -1, -1, -1, -1,3325 -1, -1, -1, -1, -1, -1, 523, -1, 1168, -1,3326 -1, -1, 529, -1, -1, 532, 157, 158, -1, -1,3327 691, -1, -1, -1, -1, -1, 515, -1, 545, -1,3328 -1, -1, -1, -1, 705, -1, -1, -1, -1, -1,3329 -1, 530, -1, -1, 1204, -1, -1, -1, -1, 190,3330 -1, -1, -1, -1, -1, 726, 197, -1, 575, -1,3331 -1, -1, -1, -1, -1, 582, -1, -1, -1, 586,3332 -1, -1, -1, -1, -1, -1, -1, -1, 567, -1,3333 -1, -1, -1, -1, -1, -1, -1, 576, -1, -1,3334 -1, -1, -1, -1, -1, -1, -1, 1257, 1258, -1,3335 -1, -1, -1, -1, -1, 1265, -1, 596, -1, -1,3336 -1, -1, -1, -1, 785, 632, -1, -1, -1, -1,3337 -1, -1, -1, 640, -1, 796, -1, -1, 269, -1,3338 3551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3339 -1, -1, 813, -1, -1, 634, -1, 10, 11, 12, 3340 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3341 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3342 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3343 -1, 670, -1, -1, -1, 326, -1, -1, -1, 678, 3344 -1, -1, -1, 334, 335, -1, 337, 338, -1, 716, 3345 -1, -1, -1, -1, 345, -1, 69, -1, 349, -1, 3346 -1, 74, -1, 76, 77, 78, -1, -1, 1378, -1, 3347 709, 738, -1, 740, 87, 88, -1, 368, -1, -1, 3348 -1, 720, 721, 750, -1, -1, -1, -1, -1, 756, 3552 -1, 67, -1, -1, 70, -1, 72, -1, 74, 75, 3553 -1, 77, 78, 79, -1, -1, -1, -1, -1, -1, 3554 -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, 3349 3555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3350 113, -1, 115, 924, -1, -1, 397, -1, 121, 122, 3351 401, -1, -1, 752, -1, -1, -1, -1, 757, -1, 3352 -1, -1, -1, -1, -1, 1435, -1, 1437, -1, 796, 3353 797, -1, -1, 954, -1, -1, -1, -1, -1, -1, 3354 431, -1, -1, -1, -1, 812, -1, -1, -1, -1, 3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3356 -1, -1, 1472, -1, 1474, 986, -1, -1, -1, -1, 3357 -1, -1, -1, -1, -1, -1, 997, -1, 817, -1, 3358 -1, -1, -1, -1, 851, 824, 477, -1, 855, 480, 3359 -1, 1501, -1, -1, -1, -1, -1, -1, 837, -1, 3360 839, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 -1, -1, -1, 852, -1, -1, -1, 884, -1, 858, 3362 -1, -1, -1, -1, 891, -1, -1, -1, 519, -1, 3363 -1, 870, 523, -1, 873, -1, -1, -1, -1, -1, 3364 -1, -1, -1, -1, -1, 1066, -1, -1, -1, -1, 3365 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1080, 3366 -1, -1, -1, -1, 931, -1, -1, -1, -1, -1, 3367 -1, -1, -1, -1, -1, -1, 567, 568, -1, -1, 3368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3369 -1, 958, -1, -1, 585, 586, 963, -1, -1, 966, 3370 -1, -1, -1, -1, 595, -1, 597, 598, -1, -1, 3371 -1, -1, -1, 604, -1, -1, -1, -1, -1, 986, 3372 -1, -1, -1, 614, 615, -1, -1, -1, -1, 620, 3373 997, -1, -1, -1, -1, -1, -1, -1, 629, 630, 3374 -1, -1, 981, -1, -1, -1, -1, 1168, -1, -1, 3375 1017, -1, 1019, -1, 645, -1, -1, -1, -1, 650, 3376 651, -1, -1, 654, 655, -1, -1, 1034, 1035, 283, 3377 661, 285, 286, -1, -1, -1, -1, -1, -1, -1, 3378 -1, 295, 296, -1, -1, -1, -1, 1054, -1, 680, 3379 -1, -1, -1, -1, -1, -1, 310, 311, -1, -1, 3380 -1, -1, -1, 1042, -1, -1, -1, -1, -1, -1, 3381 -1, -1, 703, 704, -1, -1, -1, -1, -1, -1, 3382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3383 -1, 345, -1, -1, -1, -1, -1, 1076, -1, -1, 3384 -1, 1108, 1081, -1, 1265, -1, -1, 738, -1, -1, 3385 1089, 742, 743, -1, -1, -1, -1, -1, -1, -1, 3386 1127, -1, -1, -1, -1, -1, 380, -1, -1, -1, 3387 -1, -1, -1, -1, -1, 1142, 1143, -1, -1, -1, 3388 -1, -1, -1, -1, 1123, -1, -1, -1, -1, -1, 3389 -1, -1, -1, -1, 785, 1134, -1, -1, 1137, -1, 3390 1139, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3391 801, -1, 803, -1, -1, 1154, 1155, -1, -1, -1, 3392 -1, -1, 813, -1, -1, -1, -1, -1, -1, -1, 3393 -1, -1, -1, -1, -1, 1174, -1, -1, -1, -1, 3394 -1, -1, -1, -1, -1, 0, -1, -1, 3, 4, 3556 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, 3557 116, -1, -1, -1, -1, -1, 122, 123, 3, 4, 3395 3558 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3396 3559 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3397 3560 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3398 35, 1220, -1, 38, -1, -1, 41, 42, -1, 1228, 3399 -1, -1, -1, 884, -1, -1, -1, -1, -1, -1, 3400 891, 892, -1, 894, -1, -1, -1, 898, -1, -1, 3401 -1, 66, -1, -1, 69, -1, 71, 1284, 73, 74, 3402 1287, 76, 77, 78, -1, -1, -1, -1, 919, 920, 3403 -1, -1, 87, 88, 548, 549, 550, 551, 552, 553, 3404 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3405 564, 565, -1, -1, -1, -1, -1, -1, 113, 1298, 3406 115, 1300, -1, 954, -1, -1, 121, 122, -1, -1, 3407 -1, -1, -1, -1, -1, -1, -1, 1316, -1, 1318, 3408 -1, -1, 973, 974, -1, -1, -1, -1, -1, -1, 3409 -1, -1, 983, -1, 1333, 1516, -1, -1, 989, 990, 3410 -1, 992, 993, 994, -1, -1, -1, -1, -1, 1348, 3411 1349, -1, -1, 1004, 1005, -1, -1, -1, -1, -1, 3412 1359, -1, -1, 1362, 10, 11, 12, 13, 14, 15, 3561 35, -1, -1, -1, 39, -1, -1, 42, 43, -1, 3562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3564 -1, -1, 67, -1, -1, 70, -1, 72, -1, 74, 3565 75, -1, 77, 78, 79, -1, -1, -1, -1, -1, 3566 -1, -1, -1, 88, 89, -1, -1, -1, -1, -1, 3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3569 -1, 116, -1, -1, -1, -1, -1, 122, 123, 3, 3570 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3571 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3572 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3573 34, -1, -1, -1, -1, -1, -1, -1, 42, -1, 3574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3576 -1, -1, -1, -1, -1, -1, 70, -1, 72, -1, 3577 74, 75, -1, 77, 78, 79, -1, -1, -1, -1, 3578 -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, 3579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581 114, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3582 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3583 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3584 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 3585 33, 34, 35, -1, -1, -1, 39, -1, -1, 42, 3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3588 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3589 -1, 74, -1, -1, 77, 78, -1, -1, 81, 3, 3590 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3591 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3592 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3593 34, 35, -1, 116, -1, 39, -1, -1, 42, 122, 3594 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3596 -1, -1, -1, -1, -1, -1, 70, -1, 72, -1, 3597 74, -1, -1, 77, 78, 3, 4, 5, 6, 7, 3598 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3599 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3600 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3601 -1, -1, 116, -1, 42, -1, -1, -1, 122, 123, 3602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3603 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3604 -1, -1, 70, -1, 72, -1, 74, -1, -1, 77, 3605 78, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3606 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3607 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3608 33, 34, -1, -1, -1, -1, -1, -1, 116, 42, 3609 -1, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3610 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3611 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3612 -1, 74, 75, -1, 77, 78, 79, -1, -1, -1, 3613 -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, 3614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3615 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3616 -1, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3617 123, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3618 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3619 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3620 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 3621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3623 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3624 -1, 74, -1, -1, 77, 78, 4, 5, 6, 7, 3625 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3626 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3627 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3628 -1, -1, 115, 116, 42, -1, -1, -1, -1, 122, 3629 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 -1, -1, 70, -1, 72, -1, 74, -1, -1, 77, 3632 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3634 -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, 3636 -1, -1, -1, -1, 122, 123, 4, 5, 6, 7, 3637 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3638 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3639 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3640 -1, -1, -1, -1, 42, -1, 10, 11, 12, 13, 3641 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3642 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3643 34, -1, 70, -1, 72, -1, 74, -1, 42, 77, 3644 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, 101, -1, -1, 70, -1, -1, -1, 3647 -1, -1, -1, 77, 78, -1, -1, -1, 116, -1, 3648 -1, -1, -1, -1, 122, 123, 4, 5, 6, 7, 3649 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3650 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3651 28, 29, 116, -1, 32, 33, 34, -1, 122, 123, 3652 -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, 3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 -1, -1, 70, -1, 72, -1, 74, -1, -1, 77, 3656 78, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3657 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3658 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3659 33, 34, -1, -1, -1, -1, -1, -1, 116, 42, 3660 -1, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3662 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3663 -1, 74, -1, -1, 77, 78, 4, 5, 6, 7, 3664 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3665 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3666 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3667 -1, -1, -1, 116, 42, -1, -1, -1, -1, 122, 3668 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3670 -1, -1, 70, -1, 72, -1, 74, -1, -1, 77, 3671 78, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3672 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3673 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3674 -1, 40, 41, 42, 43, -1, -1, -1, 116, -1, 3675 -1, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3676 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3677 69, 70, -1, -1, -1, -1, 75, -1, 77, 78, 3678 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3679 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, -1, -1, -1, 114, -1, 116, -1, -1, 3682 119, -1, -1, 122, 123, 124, 125, 126, 127, 10, 3683 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3684 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3685 -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, 3686 41, 42, 43, 10, 11, 12, 13, 14, 15, 16, 3687 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3688 27, 28, 29, -1, -1, 32, 33, 34, 69, 70, 3689 -1, -1, -1, -1, 75, 42, 77, 78, 79, -1, 3690 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3691 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3692 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, 3693 77, 78, -1, 114, 115, 116, -1, -1, -1, -1, 3694 -1, 122, 123, 124, 125, 126, 127, 10, 11, 12, 3695 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3696 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3697 33, 34, -1, -1, -1, 122, 123, 40, 41, 42, 3698 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, 69, 70, -1, -1, 3701 -1, -1, 75, -1, 77, 78, 79, -1, -1, 82, 3702 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 3703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3705 -1, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3706 123, 124, 125, 126, 127, 10, 11, 12, 13, 14, 3707 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3708 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3709 -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, 3710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, -1, 69, 70, -1, -1, -1, -1, 3713 75, -1, 77, 78, 79, -1, -1, 82, 83, 84, 3714 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3715 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3717 -1, 116, -1, -1, -1, -1, -1, 122, 123, 124, 3718 125, 126, 127, 10, 11, 12, 13, 14, 15, 16, 3719 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3720 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3721 -1, -1, -1, 40, 41, 42, 43, -1, -1, -1, 3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3724 -1, -1, 69, 70, -1, -1, -1, -1, 75, -1, 3725 77, 78, 79, -1, -1, 82, 83, 84, 85, 86, 3726 87, 88, 89, -1, 91, 92, -1, -1, -1, -1, 3727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, 3729 -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 3730 127, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3731 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3732 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3733 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 3734 42, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3735 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3736 29, -1, -1, 32, 33, 34, -1, -1, 70, -1, 3737 72, -1, 74, 42, 43, 77, 78, -1, -1, -1, 3738 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3739 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3740 29, 70, -1, 32, 33, 34, -1, -1, 77, 78, 3741 -1, -1, -1, 42, 43, -1, -1, 119, -1, -1, 3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3744 -1, 70, -1, -1, -1, -1, -1, 116, 77, 78, 3745 -1, 120, -1, 122, 123, -1, 10, 11, 12, 13, 3746 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3747 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3748 34, -1, -1, -1, -1, -1, -1, 116, 42, 43, 3749 -1, 120, -1, 122, 123, -1, 10, 11, 12, 13, 3750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3751 24, 25, 26, 27, 28, 29, 70, -1, 32, 33, 3752 34, -1, -1, 77, 78, -1, -1, -1, 42, 10, 3753 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3754 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3755 -1, 32, 33, 34, -1, -1, 70, -1, -1, -1, 3756 -1, 42, 116, 77, 78, -1, 120, -1, 122, 123, 3757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 3759 -1, -1, -1, -1, -1, -1, 77, 78, -1, -1, 3760 -1, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3761 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3413 3762 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3414 26, 27, 28, 29, 30, 1384, -1, -1, -1, -1, 3415 -1, -1, -1, -1, 1393, 41, -1, 1396, -1, 1398, 3416 1399, 1400, -1, -1, -1, -1, -1, -1, -1, -1, 3417 -1, -1, -1, 1064, 688, 1066, -1, -1, -1, -1, 3418 1071, -1, -1, 69, -1, -1, -1, -1, -1, 1080, 3419 -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 3420 1439, -1, 1441, -1, 1443, -1, -1, -1, -1, -1, 3421 -1, -1, 1103, 1104, -1, -1, -1, -1, -1, -1, 3422 1459, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3423 -1, -1, -1, -1, 1501, 749, 1127, 3, 4, 5, 3424 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3425 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3426 26, 27, 28, 29, -1, 779, 32, 33, 34, 35, 3427 -1, -1, 38, 39, 40, 41, 42, 43, -1, 45, 3428 -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 3429 -1, -1, -1, 59, -1, -1, -1, 63, 64, -1, 3430 66, -1, 68, 69, -1, 71, -1, 73, 74, -1, 3431 76, 77, 78, 1204, -1, 81, 82, 83, 84, 85, 3432 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, 3763 26, 27, 28, 29, -1, 116, 32, 33, 34, -1, 3764 -1, 122, 123, -1, -1, -1, 42, 10, 11, 12, 3765 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3766 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3767 33, 34, -1, -1, 70, -1, -1, -1, -1, 42, 3768 -1, 77, 78, -1, -1, -1, -1, -1, -1, -1, 3433 3769 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3434 -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, 3435 -1, -1, 118, -1, -1, 121, 122, 123, 124, 125, 3436 126, -1, -1, -1, -1, 131, 1257, 1258, -1, -1, 3437 136, -1, -1, -1, -1, -1, -1, -1, -1, 893, 3770 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 3771 -1, -1, -1, -1, 77, 78, -1, -1, -1, -1, 3772 116, -1, -1, -1, -1, -1, 122, 123, -1, -1, 3773 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3775 -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, 3776 123, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3777 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3778 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3779 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 3780 -1, 40, 41, -1, 43, 44, -1, 46, -1, -1, 3781 49, 50, 51, 52, 53, 54, 55, 56, -1, -1, 3782 59, 60, -1, -1, -1, 64, 65, 70, 67, 72, 3783 69, 74, -1, -1, 77, 78, 75, -1, -1, -1, 3784 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3785 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3787 -1, -1, 115, -1, -1, 114, -1, 116, -1, -1, 3788 119, -1, -1, 122, 123, 124, 125, 126, 127, -1, 3789 -1, 40, 41, 132, 43, 44, -1, 46, 137, -1, 3790 49, 50, 51, 52, 53, 54, 55, 56, -1, -1, 3791 -1, 60, -1, -1, -1, 64, 65, -1, 67, -1, 3792 69, -1, -1, -1, -1, -1, 75, -1, -1, -1, 3793 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3794 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3796 -1, -1, -1, -1, -1, 114, -1, 116, -1, -1, 3797 119, -1, -1, 122, 123, 124, 125, 126, 127, -1, 3798 -1, -1, -1, 132, -1, -1, -1, -1, 137, 4, 3799 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3800 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3801 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3802 -1, -1, -1, -1, -1, -1, -1, 42, -1, 40, 3803 41, -1, 43, 44, -1, 46, 47, 48, 49, 50, 3804 51, 52, 53, 54, 55, 56, -1, -1, 59, 60, 3805 -1, -1, -1, 64, 65, 70, 67, 72, 69, 74, 3806 -1, -1, 77, 78, 75, -1, -1, -1, 79, -1, 3807 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3808 91, 92, -1, -1, -1, -1, 101, -1, -1, -1, 3809 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3810 -1, -1, -1, 114, -1, 116, -1, -1, 119, -1, 3811 -1, 122, 123, 124, 125, 126, 127, -1, -1, 40, 3812 41, 132, 43, 44, -1, 46, 47, 48, 49, 50, 3813 51, 52, 53, 54, 55, 56, -1, -1, -1, 60, 3814 -1, -1, -1, 64, 65, -1, 67, -1, 69, -1, 3815 -1, -1, -1, -1, 75, -1, -1, -1, 79, -1, 3816 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3817 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, -1, -1, 114, -1, 116, -1, -1, 119, -1, 3820 -1, 122, 123, 124, 125, 126, 127, -1, -1, 40, 3821 41, 132, 43, 44, -1, 46, -1, -1, 49, 50, 3822 51, 52, 53, 54, 55, 56, -1, -1, -1, 60, 3823 -1, -1, -1, 64, 65, -1, 67, -1, 69, -1, 3824 -1, -1, -1, -1, 75, -1, -1, -1, 79, -1, 3825 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3826 91, 92, -1, -1, -1, -1, -1, -1, 40, 41, 3827 -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, 3828 -1, -1, -1, 114, -1, 116, -1, -1, 119, -1, 3829 -1, 122, 123, 124, 125, 126, 127, 69, -1, -1, 3830 -1, 132, -1, 75, -1, -1, -1, 79, -1, -1, 3831 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3832 92, -1, -1, -1, -1, -1, -1, 40, 41, -1, 3833 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3834 -1, -1, 114, -1, 116, -1, -1, 119, -1, -1, 3835 122, 123, 124, 125, 126, 127, 69, -1, -1, -1, 3836 -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, 3837 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 3838 -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 3839 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3840 -1, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3841 123, 124, 125, 126, 127, 69, -1, -1, -1, -1, 3842 -1, 75, -1, -1, -1, 79, -1, -1, 82, 83, 3843 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3844 -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, 3845 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3846 114, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3847 124, 125, 126, 127, 69, -1, -1, -1, -1, -1, 3848 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 3849 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3850 -1, -1, -1, -1, 40, 41, -1, 43, -1, -1, 3851 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3852 -1, 116, -1, -1, -1, -1, -1, 122, 123, 124, 3853 125, 126, 127, 69, -1, -1, -1, -1, -1, 75, 3854 -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 3855 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3856 -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, 3857 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, 3858 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, 3859 126, 127, 69, -1, -1, -1, -1, -1, 75, -1, 3860 -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 3861 87, 88, 89, -1, 91, 92, -1, -1, -1, -1, 3862 -1, -1, 40, 41, -1, 43, -1, -1, -1, -1, 3863 -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, 3864 -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 3865 127, 69, -1, -1, -1, -1, -1, 75, -1, -1, 3866 -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3867 88, 89, -1, 91, 92, -1, -1, -1, -1, -1, 3868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3869 -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, 3870 -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 3871 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3872 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3873 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, 3874 -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, 3875 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3876 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3877 -1, -1, 32, 33, 34, -1, 70, -1, 72, -1, 3878 74, 75, 42, 77, 78, 79, -1, -1, -1, -1, 3879 -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, 3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881 70, -1, -1, -1, -1, 75, -1, 77, 78, -1, 3882 -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, 3438 3883 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3439 3884 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3440 3885 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3441 33, 34, 35, -1, -1, 38, 39, 40, 41, 42, 3442 -1, -1, -1, -1, -1, 939, -1, -1, -1, -1, 3443 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3444 -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, 3445 73, 74, -1, 76, 77, 78, -1, 971, 81, 82, 3446 83, 84, 85, 86, 87, 88, -1, 90, 91, 983, 3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, -1, -1, -1, 1378, -1, -1, 3449 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3450 123, 124, 125, 126, -1, -1, -1, -1, 1022, -1, 3451 -1, -1, -1, 136, -1, -1, -1, -1, -1, 3, 3452 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3453 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3454 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3455 34, 35, -1, -1, 38, -1, -1, 41, 42, -1, 3456 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3457 -1, -1, -1, -1, -1, -1, 1467, -1, -1, -1, 3458 -1, -1, 66, -1, 1098, 69, -1, 71, -1, 73, 3459 74, -1, 76, 77, 78, -1, -1, -1, -1, -1, 3460 1491, 1492, -1, 87, 88, -1, -1, -1, -1, -1, 3461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, 1516, -1, -1, -1, 113, 3463 -1, 115, -1, -1, -1, 119, -1, 121, 122, -1, 3464 -1, -1, -1, 1157, 1158, 3, 4, 5, 6, 7, 3465 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3466 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3467 28, 29, -1, -1, 32, 33, 34, 35, -1, -1, 3468 38, 39, 40, 41, 42, -1, -1, -1, -1, -1, 3886 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 3469 3887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3470 3888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3471 68, 69, -1, 71, -1, 73, 74, -1, 76, 77, 3472 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3473 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3475 -1, -1, -1, -1, -1, 113, -1, 115, -1, -1, 3476 -1, -1, -1, 121, 122, 123, 124, 125, 126, -1, 3477 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 3478 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3479 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3480 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3481 39, 40, 41, 42, -1, -1, -1, -1, -1, -1, 3482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3483 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 3484 69, -1, 71, -1, 73, 74, -1, 76, 77, 78, 3485 -1, 1365, 81, 82, 83, 84, 85, 86, 87, 88, 3486 -1, 90, 91, -1, -1, -1, -1, -1, 1382, -1, 3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3488 -1, -1, -1, -1, 113, -1, 115, -1, -1, -1, 3489 -1, 120, 121, 122, 123, 124, 125, 126, 4, 5, 3490 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3491 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3492 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3493 -1, -1, -1, 39, 40, 41, 42, -1, -1, -1, 3494 1454, 1455, -1, -1, -1, -1, -1, -1, -1, -1, 3495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3496 -1, -1, 68, 69, -1, 71, -1, 73, 74, -1, 3497 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 3498 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, 3499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3500 -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, 3501 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125, 3502 126, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3503 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3504 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3505 33, 34, -1, -1, -1, -1, 39, 40, 41, 42, 3506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508 -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, 3509 73, 74, -1, 76, 77, 78, -1, -1, 81, 82, 3510 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, 3511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3513 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3514 123, 124, 125, 126, 4, 5, 6, 7, 8, 9, 3515 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3516 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3517 -1, -1, 32, 33, 34, -1, -1, -1, -1, 39, 3518 40, 41, 42, -1, -1, -1, -1, -1, -1, -1, 3519 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 3521 -1, 71, -1, 73, 74, -1, 76, 77, 78, -1, 3522 -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, 3523 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3525 -1, -1, -1, 113, -1, 115, -1, -1, -1, -1, 3526 -1, 121, 122, 123, 124, 125, 126, 4, 5, 6, 3889 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3890 -1, 74, -1, -1, 77, 78, 3, 4, 5, 6, 3527 3891 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3528 3892 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3529 3893 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3530 -1, -1, 39, 40, 41, 42, -1, -1, -1, -1,3894 -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, 3531 3895 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3532 3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3533 -1, 68, 69, -1, 71, -1, 73, 74, -1, 76, 3534 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, 3535 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537 -1, -1, -1, -1, -1, -1, 113, -1, 115, -1, 3538 -1, -1, -1, -1, 121, 122, 123, 124, 125, 126, 3539 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3540 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3541 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3542 33, 34, 35, -1, -1, 38, -1, -1, 41, 42, 3543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3545 -1, -1, -1, 66, -1, -1, 69, -1, 71, -1, 3546 73, 74, -1, 76, 77, 78, -1, -1, -1, -1, 3547 -1, -1, -1, -1, 87, 88, -1, -1, -1, -1, 3548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3550 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3551 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3552 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3553 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3554 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3555 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3556 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3557 29, -1, -1, 32, 33, 34, 69, -1, 71, -1, 3558 73, 74, 41, 76, 77, 78, -1, -1, -1, -1, 3559 -1, -1, -1, -1, 87, 88, -1, -1, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3561 69, -1, -1, -1, -1, -1, -1, 76, 77, -1, 3562 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3563 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3564 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3565 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 3566 33, 34, 35, -1, -1, 38, -1, -1, 41, -1, 3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3569 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3570 73, -1, -1, 76, 77, -1, -1, 80, 3, 4, 3571 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3572 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3573 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3574 35, -1, 115, 38, -1, -1, 41, -1, 121, 122, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3577 -1, -1, -1, -1, 69, -1, 71, -1, 73, -1, 3578 -1, 76, 77, 3, 4, 5, 6, 7, 8, 9, 3579 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3580 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3581 -1, -1, 32, 33, 34, -1, -1, -1, -1, -1, 3582 115, 41, -1, -1, -1, -1, 121, 122, -1, 7, 3583 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3584 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3585 -1, 71, -1, 73, -1, -1, 76, 77, -1, -1, 3586 -1, 39, 40, 41, 42, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3589 68, 69, -1, -1, -1, 115, 74, -1, -1, -1, 3590 78, 121, 122, 81, 82, 83, 84, 85, 86, 87, 3591 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3593 -1, -1, -1, -1, -1, 113, -1, 115, -1, -1, 3594 -1, -1, -1, 121, 122, 123, 124, 125, 126, 4, 3595 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3596 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3597 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3598 -1, -1, -1, -1, -1, -1, 41, -1, -1, 10, 3599 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3600 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3601 -1, 32, 33, 34, 69, -1, 71, -1, 73, 74, 3602 41, 76, 77, 78, -1, -1, -1, -1, -1, -1, 3603 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1, 3604 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, 3605 -1, -1, -1, -1, -1, 76, 77, -1, 113, -1, 3606 115, -1, -1, -1, -1, -1, 121, 122, 4, 5, 3607 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3608 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3609 26, 27, 28, 29, 115, -1, 32, 33, 34, -1, 3610 121, 122, -1, -1, -1, 41, -1, -1, -1, -1, 3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3613 -1, -1, -1, 69, -1, 71, -1, 73, -1, -1, 3614 76, 77, -1, 4, 5, 6, 7, 8, 9, 10, 3615 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3616 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3617 -1, 32, 33, 34, -1, -1, -1, -1, 114, 115, 3618 41, -1, -1, -1, -1, 121, 122, -1, -1, -1, 3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3620 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, 3621 71, -1, 73, -1, -1, 76, 77, -1, -1, -1, 3622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 3624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3625 -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, 3626 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3897 -1, -1, -1, 70, -1, 72, -1, 74, -1, -1, 3898 77, 78, 4, 5, 6, 7, 8, 9, 10, 11, 3627 3899 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3628 3900 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3629 32, 33, 34, -1, -1, -1, -1, -1, -1, 41, 3630 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3631 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3632 28, 29, -1, -1, 32, 33, 34, 69, -1, 71, 3633 -1, 73, -1, 41, 76, 77, -1, -1, -1, -1, 3901 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 3902 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3634 3903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 3636 -1, 69, -1, -1, -1, -1, -1, -1, 76, 77, 3637 -1, -1, -1, 115, -1, -1, -1, -1, -1, 121, 3638 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3639 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3640 23, 24, 25, 26, 27, 28, 29, 115, -1, 32, 3641 33, 34, -1, 121, 122, -1, -1, -1, 41, -1, 3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3644 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3645 73, -1, -1, 76, 77, -1, 4, 5, 6, 7, 3646 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3647 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3648 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3649 -1, -1, 115, 41, -1, -1, -1, -1, 121, 122, 3650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3652 -1, 69, -1, 71, -1, 73, -1, -1, 76, 77, 3653 -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3654 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3655 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3656 33, 34, -1, -1, -1, -1, -1, 115, 41, -1, 3657 -1, -1, -1, 121, 122, -1, -1, -1, -1, -1, 3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3659 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3660 73, -1, -1, 76, 77, 10, 11, 12, 13, 14, 3661 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3662 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3663 -1, -1, -1, -1, 39, 40, 41, 42, -1, -1, 3664 -1, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3666 -1, -1, -1, 68, 69, -1, -1, -1, -1, 74, 3667 -1, 76, 77, 78, -1, -1, 81, 82, 83, 84, 3668 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3670 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3671 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3672 125, 126, 10, 11, 12, 13, 14, 15, 16, 17, 3673 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3674 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3675 -1, 39, 40, 41, 42, -1, -1, -1, -1, -1, 3676 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3678 68, 69, -1, -1, -1, -1, 74, -1, 76, 77, 3679 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3680 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3682 -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, 3683 -1, -1, -1, 121, 122, 123, 124, 125, 126, 10, 3684 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3685 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3686 -1, 32, 33, 34, -1, -1, -1, -1, 39, 40, 3687 41, 42, -1, -1, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3689 -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 3690 -1, -1, -1, 74, -1, 76, 77, 78, -1, -1, 3691 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 3692 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694 -1, -1, 113, -1, 115, -1, -1, -1, -1, -1, 3695 121, 122, 123, 124, 125, 126, 10, 11, 12, 13, 3696 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3697 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3698 34, -1, -1, -1, -1, 39, 40, 41, 42, -1, 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3701 -1, -1, -1, -1, 68, 69, -1, -1, -1, -1, 3702 74, -1, 76, 77, 78, -1, -1, 81, 82, 83, 3703 84, 85, 86, 87, 88, -1, 90, 91, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 3706 -1, 115, -1, -1, -1, -1, -1, 121, 122, 123, 3707 124, 125, 126, 10, 11, 12, 13, 14, 15, 16, 3708 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3709 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3710 -1, -1, 39, 40, 41, 42, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3713 -1, 68, 69, -1, -1, -1, -1, 74, -1, 76, 3714 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, 3715 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, -1, -1, -1, -1, -1, 113, -1, 115, -1, 3718 -1, -1, -1, -1, 121, 122, 123, 124, 125, 126, 3719 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3720 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3721 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3722 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3723 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3724 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3725 -1, -1, 32, 33, 34, -1, 69, -1, 71, -1, 3726 73, 41, -1, 76, 77, -1, -1, -1, -1, -1, 3727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3729 -1, -1, -1, -1, 74, -1, 76, 77, -1, -1, 3730 -1, -1, -1, -1, -1, 118, -1, 87, 88, -1, 3731 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3732 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3733 26, 27, 28, 29, -1, 115, 32, 33, 34, -1, 3734 -1, 121, 122, -1, -1, 41, 42, 10, 11, 12, 3735 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3736 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3737 33, 34, -1, 69, -1, -1, -1, -1, 41, 42, 3738 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, 3739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, 3741 -1, -1, -1, 76, 77, -1, -1, -1, -1, 115, 3742 -1, -1, -1, 119, -1, 121, 122, -1, -1, -1, 3743 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3744 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3745 29, -1, 115, 32, 33, 34, 119, -1, 121, 122, 3746 -1, -1, 41, 42, 10, 11, 12, 13, 14, 15, 3747 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3748 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3749 69, -1, -1, -1, -1, 41, -1, 76, 77, -1, 3750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3752 -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, 3753 76, 77, -1, -1, -1, -1, 115, -1, -1, -1, 3754 119, -1, 121, 122, -1, -1, -1, -1, 10, 11, 3755 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3756 22, 23, 24, 25, 26, 27, 28, 29, -1, 115, 3757 32, 33, 34, -1, -1, 121, 122, -1, -1, 41, 3758 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3759 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3760 -1, -1, 32, 33, 34, -1, -1, 69, -1, -1, 3761 -1, 41, -1, -1, 76, 77, -1, -1, -1, -1, 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3764 -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, 3765 -1, -1, -1, 115, -1, -1, -1, -1, -1, 121, 3766 122, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3767 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3768 26, 27, 28, 29, -1, 115, 32, 33, 34, -1, 3769 -1, 121, 122, -1, -1, 41, -1, -1, -1, -1, 3770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3771 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3772 -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, 3773 76, 77, -1, 4, 5, 6, 7, 8, 9, 10, 3774 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3775 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3776 -1, 32, 33, 34, -1, -1, -1, -1, -1, 115, 3777 41, -1, -1, -1, -1, 121, 122, -1, -1, -1, 3778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3779 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, 3780 71, -1, 73, -1, -1, 76, 77, 39, 40, -1, 3781 42, 43, -1, 45, -1, -1, 48, 49, 50, 51, 3782 52, 53, 54, 55, -1, -1, 58, 59, -1, -1, 3783 -1, 63, 64, -1, 66, -1, 68, -1, -1, -1, 3784 -1, -1, 74, 114, -1, -1, 78, -1, -1, 81, 3785 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3788 -1, 113, -1, 115, -1, -1, 118, -1, -1, 121, 3789 122, 123, 124, 125, 126, -1, -1, 39, 40, 131, 3790 42, 43, -1, 45, 136, -1, 48, 49, 50, 51, 3791 52, 53, 54, 55, -1, -1, -1, 59, -1, -1, 3792 -1, 63, 64, -1, 66, -1, 68, -1, -1, -1, 3793 -1, -1, 74, -1, -1, -1, 78, -1, -1, 81, 3794 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3797 -1, 113, -1, 115, -1, -1, 118, -1, -1, 121, 3798 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, 3799 -1, -1, -1, -1, 136, 4, 5, 6, 7, 8, 3800 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3801 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3802 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3803 -1, -1, 41, -1, 39, 40, -1, 42, 43, -1, 3804 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3805 55, -1, -1, 58, 59, -1, -1, -1, 63, 64, 3806 69, 66, 71, 68, 73, -1, -1, 76, 77, 74, 3807 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3808 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3809 -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, 3810 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3811 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3812 125, 126, -1, -1, 39, 40, 131, 42, 43, -1, 3813 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3814 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, 3815 -1, 66, -1, 68, -1, -1, -1, -1, -1, 74, 3816 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3817 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3820 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3821 125, 126, -1, -1, 39, 40, 131, 42, 43, -1, 3822 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 3823 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, 3824 -1, 66, -1, 68, -1, -1, -1, -1, -1, 74, 3825 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3826 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3827 -1, -1, -1, 39, 40, -1, 42, -1, -1, -1, 3828 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3829 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3830 125, 126, 68, -1, -1, -1, 131, -1, 74, -1, 3831 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 3832 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, 3833 -1, -1, 39, 40, -1, 42, -1, -1, -1, -1, 3834 -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, 3835 -1, 117, 118, -1, -1, 121, 122, 123, 124, 125, 3836 126, 68, -1, -1, -1, -1, -1, 74, -1, -1, 3837 -1, 78, -1, -1, 81, 82, 83, 84, 85, 86, 3838 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, 3839 -1, 39, 40, -1, 42, -1, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, 113, -1, 115, -1, 3841 -1, 118, -1, -1, 121, 122, 123, 124, 125, 126, 3842 68, -1, -1, -1, -1, -1, 74, -1, -1, -1, 3843 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3844 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3845 39, 40, -1, 42, -1, -1, -1, -1, -1, -1, 3846 -1, -1, -1, -1, -1, 113, -1, 115, -1, -1, 3847 -1, -1, 120, 121, 122, 123, 124, 125, 126, 68, 3848 -1, -1, -1, -1, -1, 74, -1, -1, -1, 78, 3849 -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, 3850 -1, 90, 91, -1, -1, -1, -1, -1, -1, 39, 3851 40, -1, 42, -1, -1, -1, -1, -1, -1, -1, 3852 -1, -1, -1, -1, 113, -1, 115, -1, -1, 118, 3853 -1, -1, 121, 122, 123, 124, 125, 126, 68, -1, 3854 -1, -1, -1, -1, 74, -1, -1, -1, 78, -1, 3855 -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, 3856 90, 91, -1, -1, -1, -1, -1, -1, 39, 40, 3857 -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, 3858 -1, -1, -1, 113, -1, 115, -1, -1, -1, -1, 3859 -1, 121, 122, 123, 124, 125, 126, 68, -1, -1, 3860 -1, -1, -1, 74, -1, -1, -1, 78, -1, -1, 3861 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 3862 91, -1, -1, -1, -1, -1, -1, 39, 40, -1, 3863 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, 113, -1, 115, -1, -1, -1, -1, -1, 3865 121, 122, 123, 124, 125, 126, 68, -1, -1, -1, 3866 -1, -1, 74, -1, -1, -1, 78, -1, -1, 81, 3867 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 3868 -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, 3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3870 -1, 113, -1, 115, -1, -1, -1, -1, -1, 121, 3871 122, 123, 124, 125, 126, 68, -1, -1, -1, -1, 3872 -1, 74, -1, -1, -1, 78, -1, -1, 81, 82, 3873 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, 3874 -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, 3875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3876 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3877 123, 124, 125, 126, 68, -1, -1, -1, -1, -1, 3878 74, -1, -1, -1, 78, -1, -1, 81, 82, 83, 3879 84, 85, 86, 87, 88, -1, 90, 91, -1, -1, 3880 -1, -1, -1, -1, 39, 40, -1, 42, -1, -1, 3881 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 3882 -1, 115, -1, -1, -1, -1, -1, 121, 122, 123, 3883 124, 125, 126, 68, -1, -1, -1, -1, -1, 74, 3884 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3885 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3888 115, -1, -1, -1, -1, -1, 121, 122, 123, 124, 3889 125, 126, 4, 5, 6, 7, 8, 9, 10, 11, 3890 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3891 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3892 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 3893 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3894 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3895 28, 29, -1, -1, 32, 33, 34, 69, -1, 71, 3896 -1, 73, 74, 41, 76, 77, 78, -1, -1, -1, 3897 -1, -1, -1, -1, -1, 87, 88, -1, -1, -1, 3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3899 -1, 69, -1, -1, -1, -1, 74, -1, 76, 77, 3900 -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, 3901 88, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3902 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3903 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3904 32, 33, 34, -1, -1, -1, -1, -1, -1, 41, 3905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3906 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3907 -1, -1, -1, -1, -1, -1, -1, 69, -1, 71, 3908 -1, 73, -1, -1, 76, 77, 3, 4, 5, 6, 3909 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3910 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3911 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3912 -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, 3913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3914 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3915 -1, -1, 69, -1, 71, -1, 73, -1, -1, 76, 3916 77, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3917 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3918 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3919 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3922 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3923 73, -1, -1, 76, 77, 10, 11, 12, 13, 14, 3924 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3925 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3926 35, 36, 37, -1, -1, -1, 41, 10, 11, 12, 3927 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3928 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3929 33, 34, -1, -1, 69, -1, -1, -1, 41, -1, 3930 -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, 3931 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3932 -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, 3933 -1, -1, -1, 76, 77 3904 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 3905 72, -1, 74, -1, -1, 77, 78 3934 3906 }; 3935 3907 … … 3941 3913 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3942 3914 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 3943 34, 35, 38, 41, 42, 66, 69, 71, 73, 74, 3944 76, 77, 78, 87, 88, 113, 115, 121, 122, 141, 3945 144, 156, 205, 219, 220, 221, 222, 223, 224, 225, 3946 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 3947 236, 238, 239, 240, 241, 242, 243, 244, 246, 247, 3948 248, 249, 250, 251, 253, 261, 262, 289, 290, 291, 3949 299, 302, 308, 309, 311, 313, 314, 320, 325, 329, 3950 330, 331, 332, 333, 334, 335, 336, 356, 373, 374, 3951 375, 376, 74, 143, 144, 156, 222, 224, 232, 234, 3952 243, 247, 249, 290, 83, 113, 318, 319, 320, 318, 3953 318, 74, 76, 77, 78, 142, 143, 279, 280, 300, 3954 301, 76, 77, 280, 113, 311, 11, 206, 113, 156, 3955 325, 330, 331, 332, 334, 335, 336, 116, 138, 225, 3956 232, 234, 329, 333, 372, 373, 376, 377, 139, 111, 3957 135, 283, 118, 139, 180, 76, 77, 141, 278, 139, 3958 139, 139, 120, 139, 76, 77, 113, 156, 315, 324, 3959 325, 326, 327, 328, 329, 333, 337, 338, 339, 340, 3960 341, 347, 3, 30, 80, 245, 3, 5, 76, 115, 3961 156, 224, 235, 239, 241, 250, 291, 329, 333, 376, 3962 222, 224, 234, 243, 247, 249, 290, 329, 333, 35, 3963 240, 240, 235, 241, 139, 240, 235, 240, 235, 77, 3964 113, 118, 280, 291, 118, 280, 240, 235, 120, 139, 3965 139, 0, 138, 113, 180, 318, 318, 138, 115, 232, 3966 234, 374, 278, 278, 135, 234, 113, 156, 315, 325, 3967 329, 115, 156, 376, 312, 237, 320, 113, 296, 113, 3968 113, 53, 113, 39, 40, 42, 68, 74, 78, 81, 3969 82, 83, 84, 85, 86, 90, 91, 113, 115, 123, 3970 124, 125, 126, 140, 144, 145, 146, 147, 148, 155, 3971 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 3972 166, 167, 168, 169, 171, 174, 232, 282, 298, 372, 3973 377, 234, 114, 114, 114, 114, 114, 114, 114, 115, 3974 232, 356, 374, 115, 121, 156, 171, 224, 225, 231, 3975 234, 238, 239, 243, 246, 247, 249, 268, 269, 273, 3976 274, 275, 276, 290, 356, 368, 369, 370, 371, 376, 3977 377, 113, 329, 333, 376, 113, 120, 136, 115, 118, 3978 156, 171, 284, 284, 119, 138, 120, 136, 113, 120, 3979 136, 120, 136, 120, 136, 318, 136, 325, 326, 327, 3980 328, 338, 339, 340, 341, 234, 324, 337, 66, 317, 3981 115, 318, 355, 356, 318, 318, 180, 138, 113, 318, 3982 355, 318, 318, 234, 315, 113, 113, 233, 234, 232, 3983 234, 138, 232, 372, 377, 180, 138, 278, 283, 224, 3984 239, 329, 333, 180, 138, 300, 234, 243, 136, 234, 3985 234, 298, 254, 252, 264, 280, 263, 234, 300, 136, 3986 136, 311, 138, 143, 277, 3, 139, 214, 215, 229, 3987 231, 234, 138, 317, 113, 317, 171, 325, 234, 113, 3988 138, 278, 118, 35, 36, 37, 232, 292, 293, 295, 3989 138, 132, 135, 297, 138, 235, 240, 241, 278, 321, 3990 322, 323, 113, 145, 113, 155, 113, 155, 158, 113, 3991 155, 113, 113, 155, 155, 115, 171, 176, 180, 232, 3992 281, 372, 376, 138, 83, 85, 89, 90, 91, 113, 3993 115, 117, 118, 101, 102, 103, 104, 105, 106, 107, 3994 108, 109, 110, 111, 135, 173, 158, 158, 121, 127, 3995 128, 123, 124, 92, 93, 94, 95, 129, 130, 96, 3996 97, 122, 131, 132, 98, 99, 133, 113, 156, 351, 3997 352, 353, 354, 355, 114, 120, 113, 355, 356, 113, 3998 355, 356, 138, 232, 374, 116, 138, 139, 232, 234, 3999 367, 368, 376, 377, 139, 113, 115, 156, 325, 342, 4000 343, 344, 345, 346, 347, 348, 349, 350, 356, 357, 4001 358, 359, 360, 361, 362, 156, 376, 234, 139, 139, 4002 156, 232, 234, 369, 278, 232, 356, 369, 278, 138, 4003 138, 138, 138, 74, 115, 117, 144, 280, 284, 285, 4004 286, 287, 288, 138, 138, 138, 138, 138, 138, 315, 4005 114, 114, 114, 114, 114, 114, 114, 324, 337, 113, 4006 283, 116, 214, 138, 315, 176, 282, 176, 282, 315, 4007 115, 214, 317, 180, 138, 214, 114, 42, 115, 119, 4008 232, 255, 256, 257, 372, 118, 120, 378, 135, 265, 4009 118, 234, 270, 271, 272, 275, 276, 114, 120, 180, 4010 138, 121, 171, 138, 231, 234, 269, 368, 376, 309, 4011 310, 113, 156, 342, 114, 120, 135, 379, 280, 292, 4012 113, 118, 280, 282, 292, 114, 120, 113, 145, 114, 4013 134, 281, 281, 281, 150, 171, 282, 281, 138, 114, 4014 120, 114, 113, 156, 355, 363, 364, 365, 366, 114, 4015 120, 171, 115, 143, 149, 150, 138, 115, 143, 149, 4016 171, 158, 158, 158, 159, 159, 160, 160, 161, 161, 4017 161, 161, 162, 162, 163, 164, 165, 166, 167, 134, 4018 176, 138, 352, 353, 354, 234, 351, 318, 318, 171, 4019 282, 138, 277, 232, 356, 369, 234, 238, 116, 376, 4020 116, 113, 138, 325, 343, 344, 345, 348, 358, 359, 4021 360, 116, 138, 234, 342, 346, 357, 113, 318, 361, 4022 379, 318, 318, 379, 113, 318, 361, 318, 318, 318, 4023 318, 356, 232, 367, 377, 278, 116, 120, 116, 120, 4024 379, 232, 369, 379, 266, 267, 268, 269, 266, 278, 4025 171, 138, 115, 280, 134, 120, 378, 284, 115, 134, 4026 288, 31, 216, 217, 278, 266, 143, 315, 143, 317, 4027 113, 355, 356, 113, 355, 356, 145, 356, 180, 270, 4028 114, 114, 114, 114, 138, 180, 214, 180, 118, 256, 4029 257, 138, 113, 134, 156, 258, 260, 324, 325, 337, 4030 363, 120, 136, 120, 136, 280, 254, 280, 119, 169, 4031 170, 264, 139, 139, 143, 229, 139, 139, 266, 113, 4032 156, 376, 139, 119, 234, 293, 171, 294, 139, 138, 4033 138, 113, 139, 114, 322, 176, 177, 134, 136, 115, 4034 145, 207, 208, 209, 114, 120, 114, 114, 114, 114, 4035 171, 364, 365, 366, 234, 363, 318, 318, 118, 158, 4036 171, 172, 175, 120, 138, 114, 120, 171, 138, 119, 4037 169, 134, 270, 114, 114, 114, 351, 270, 114, 232, 4038 369, 115, 121, 156, 171, 171, 234, 348, 270, 114, 4039 114, 114, 114, 114, 114, 114, 7, 234, 342, 346, 4040 357, 138, 138, 379, 138, 138, 139, 139, 139, 139, 4041 283, 169, 170, 171, 316, 138, 284, 286, 119, 138, 4042 218, 280, 42, 43, 45, 48, 49, 50, 51, 52, 4043 53, 54, 55, 59, 63, 64, 74, 131, 177, 178, 4044 179, 180, 181, 182, 184, 185, 197, 199, 200, 205, 4045 219, 314, 31, 139, 135, 283, 138, 138, 114, 139, 4046 180, 254, 136, 136, 325, 170, 234, 259, 260, 259, 4047 280, 318, 119, 265, 378, 114, 120, 116, 116, 139, 4048 234, 120, 379, 296, 114, 292, 222, 224, 232, 304, 4049 305, 306, 307, 298, 114, 114, 134, 170, 113, 114, 4050 134, 120, 143, 114, 114, 114, 363, 285, 120, 139, 4051 175, 81, 84, 86, 143, 151, 152, 153, 150, 139, 4052 151, 169, 139, 113, 355, 356, 139, 138, 139, 139, 4053 139, 171, 114, 139, 113, 355, 356, 113, 361, 113, 4054 361, 356, 233, 7, 121, 139, 171, 270, 270, 269, 4055 273, 273, 274, 114, 120, 120, 114, 100, 126, 139, 4056 139, 151, 284, 171, 120, 136, 219, 223, 234, 238, 4057 113, 113, 178, 113, 113, 74, 136, 74, 136, 74, 4058 121, 177, 113, 180, 172, 172, 134, 148, 136, 139, 4059 138, 139, 218, 114, 171, 270, 270, 318, 114, 119, 4060 258, 119, 138, 114, 138, 139, 315, 119, 138, 139, 4061 139, 114, 118, 207, 116, 170, 136, 207, 209, 114, 4062 113, 355, 356, 378, 172, 116, 139, 154, 115, 152, 4063 154, 154, 120, 139, 89, 117, 116, 139, 114, 138, 4064 114, 116, 116, 116, 139, 114, 138, 138, 138, 171, 4065 171, 139, 116, 139, 139, 139, 139, 138, 138, 170, 4066 170, 116, 116, 139, 280, 234, 176, 176, 49, 176, 4067 138, 136, 136, 136, 176, 136, 176, 60, 61, 62, 4068 201, 202, 203, 136, 65, 136, 318, 118, 182, 119, 4069 136, 139, 139, 100, 275, 276, 114, 305, 120, 136, 4070 120, 136, 119, 303, 134, 145, 114, 114, 134, 138, 4071 119, 116, 85, 138, 152, 116, 115, 152, 115, 152, 4072 116, 270, 116, 270, 270, 270, 139, 139, 116, 116, 4073 114, 114, 116, 120, 100, 269, 100, 139, 116, 114, 4074 114, 113, 114, 177, 198, 219, 136, 114, 113, 113, 4075 180, 203, 60, 61, 171, 178, 149, 114, 114, 118, 4076 138, 138, 304, 145, 210, 113, 136, 210, 270, 151, 4077 138, 138, 139, 139, 139, 139, 116, 116, 138, 139, 4078 116, 178, 46, 47, 118, 188, 189, 190, 176, 178, 4079 139, 114, 177, 118, 190, 100, 138, 100, 138, 113, 4080 113, 136, 119, 138, 278, 315, 119, 120, 134, 170, 4081 114, 139, 139, 151, 151, 114, 114, 114, 114, 273, 4082 44, 170, 186, 187, 316, 134, 138, 178, 188, 114, 4083 136, 178, 136, 138, 114, 138, 114, 138, 100, 138, 4084 100, 138, 136, 304, 145, 143, 211, 114, 136, 114, 4085 116, 139, 139, 178, 100, 120, 134, 139, 212, 213, 4086 219, 136, 177, 177, 212, 180, 204, 232, 372, 180, 4087 204, 114, 138, 114, 138, 119, 114, 120, 116, 116, 4088 170, 186, 189, 191, 192, 138, 136, 189, 193, 194, 4089 139, 113, 156, 315, 363, 143, 139, 180, 204, 180, 4090 204, 113, 136, 143, 178, 183, 119, 189, 219, 177, 4091 58, 183, 196, 119, 189, 114, 234, 114, 139, 139, 4092 298, 178, 183, 136, 195, 196, 183, 196, 180, 180, 4093 114, 114, 114, 195, 139, 139, 180, 180, 139, 139 3915 34, 35, 39, 42, 43, 67, 70, 72, 74, 75, 3916 77, 78, 79, 88, 89, 114, 116, 122, 123, 142, 3917 145, 157, 206, 220, 221, 222, 223, 224, 225, 226, 3918 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 3919 237, 239, 240, 241, 242, 243, 244, 245, 247, 248, 3920 249, 250, 251, 252, 254, 262, 263, 290, 291, 292, 3921 300, 303, 309, 310, 312, 314, 315, 321, 326, 330, 3922 331, 332, 333, 334, 335, 336, 337, 357, 374, 375, 3923 376, 377, 75, 144, 145, 157, 223, 225, 233, 235, 3924 244, 248, 250, 291, 84, 114, 319, 320, 321, 319, 3925 319, 75, 77, 78, 79, 143, 144, 280, 281, 301, 3926 302, 77, 78, 281, 114, 312, 11, 207, 114, 157, 3927 326, 331, 332, 333, 335, 336, 337, 117, 139, 226, 3928 233, 235, 330, 334, 373, 374, 377, 378, 140, 112, 3929 136, 284, 119, 140, 181, 77, 78, 142, 279, 140, 3930 140, 140, 121, 140, 77, 78, 114, 157, 316, 325, 3931 326, 327, 328, 329, 330, 334, 338, 339, 340, 341, 3932 342, 348, 3, 30, 81, 246, 3, 5, 77, 116, 3933 157, 225, 236, 240, 242, 251, 292, 330, 334, 377, 3934 223, 225, 235, 244, 248, 250, 291, 330, 334, 35, 3935 241, 241, 236, 242, 140, 241, 236, 241, 236, 78, 3936 114, 119, 281, 292, 119, 281, 241, 236, 121, 140, 3937 140, 0, 139, 114, 181, 319, 319, 139, 116, 233, 3938 235, 375, 279, 279, 136, 235, 114, 157, 316, 326, 3939 330, 116, 157, 377, 313, 238, 321, 114, 297, 114, 3940 114, 54, 114, 40, 41, 43, 69, 75, 79, 82, 3941 83, 84, 85, 86, 87, 91, 92, 114, 116, 124, 3942 125, 126, 127, 141, 145, 146, 147, 148, 149, 156, 3943 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 3944 167, 168, 169, 170, 172, 175, 233, 283, 299, 373, 3945 378, 235, 115, 115, 115, 115, 115, 115, 115, 116, 3946 233, 357, 375, 116, 122, 157, 172, 225, 226, 232, 3947 235, 239, 240, 244, 247, 248, 250, 269, 270, 274, 3948 275, 276, 277, 291, 357, 369, 370, 371, 372, 377, 3949 378, 114, 330, 334, 377, 114, 121, 137, 116, 119, 3950 157, 172, 285, 285, 120, 139, 121, 137, 114, 121, 3951 137, 121, 137, 121, 137, 319, 137, 326, 327, 328, 3952 329, 339, 340, 341, 342, 235, 325, 338, 67, 318, 3953 116, 319, 356, 357, 319, 319, 181, 139, 114, 319, 3954 356, 319, 319, 235, 316, 114, 114, 234, 235, 233, 3955 235, 139, 233, 373, 378, 181, 139, 279, 284, 225, 3956 240, 330, 334, 181, 139, 301, 235, 244, 137, 235, 3957 235, 299, 255, 253, 265, 281, 264, 235, 301, 137, 3958 137, 312, 139, 144, 278, 3, 140, 215, 216, 230, 3959 232, 235, 139, 318, 114, 318, 172, 326, 235, 114, 3960 139, 279, 119, 35, 36, 37, 38, 233, 293, 294, 3961 296, 139, 133, 136, 298, 139, 236, 241, 242, 279, 3962 322, 323, 324, 114, 146, 114, 156, 114, 156, 159, 3963 114, 156, 114, 114, 156, 156, 116, 172, 177, 181, 3964 233, 282, 373, 377, 139, 84, 86, 90, 91, 92, 3965 114, 116, 118, 119, 102, 103, 104, 105, 106, 107, 3966 108, 109, 110, 111, 112, 136, 174, 159, 159, 122, 3967 128, 129, 124, 125, 93, 94, 95, 96, 130, 131, 3968 97, 98, 123, 132, 133, 99, 100, 134, 114, 157, 3969 352, 353, 354, 355, 356, 115, 121, 114, 356, 357, 3970 114, 356, 357, 139, 233, 375, 117, 139, 140, 233, 3971 235, 368, 369, 377, 378, 140, 114, 116, 157, 326, 3972 343, 344, 345, 346, 347, 348, 349, 350, 351, 357, 3973 358, 359, 360, 361, 362, 363, 157, 377, 235, 140, 3974 140, 157, 233, 235, 370, 279, 233, 357, 370, 279, 3975 139, 139, 139, 139, 75, 116, 118, 145, 281, 285, 3976 286, 287, 288, 289, 139, 139, 139, 139, 139, 139, 3977 316, 115, 115, 115, 115, 115, 115, 115, 325, 338, 3978 114, 284, 117, 215, 139, 316, 177, 283, 177, 283, 3979 316, 116, 215, 318, 181, 139, 215, 115, 43, 116, 3980 120, 233, 256, 257, 258, 373, 119, 121, 379, 136, 3981 266, 119, 235, 271, 272, 273, 276, 277, 115, 121, 3982 181, 139, 122, 172, 139, 232, 235, 270, 369, 377, 3983 310, 311, 114, 157, 343, 115, 121, 136, 380, 281, 3984 293, 114, 119, 281, 283, 293, 115, 121, 114, 146, 3985 115, 135, 282, 282, 282, 151, 172, 283, 282, 139, 3986 115, 121, 115, 114, 157, 356, 364, 365, 366, 367, 3987 115, 121, 172, 116, 144, 150, 151, 139, 116, 144, 3988 150, 172, 159, 159, 159, 160, 160, 161, 161, 162, 3989 162, 162, 162, 163, 163, 164, 165, 166, 167, 168, 3990 135, 177, 139, 353, 354, 355, 235, 352, 319, 319, 3991 172, 283, 139, 278, 233, 357, 370, 235, 239, 117, 3992 377, 117, 114, 139, 326, 344, 345, 346, 349, 359, 3993 360, 361, 117, 139, 235, 343, 347, 358, 114, 319, 3994 362, 380, 319, 319, 380, 114, 319, 362, 319, 319, 3995 319, 319, 357, 233, 368, 378, 279, 117, 121, 117, 3996 121, 380, 233, 370, 380, 267, 268, 269, 270, 267, 3997 279, 172, 139, 116, 281, 135, 121, 379, 285, 116, 3998 135, 289, 31, 217, 218, 279, 267, 144, 316, 144, 3999 318, 114, 356, 357, 114, 356, 357, 146, 357, 181, 4000 271, 115, 115, 115, 115, 139, 181, 215, 181, 119, 4001 257, 258, 139, 114, 135, 157, 259, 261, 325, 326, 4002 338, 364, 121, 137, 121, 137, 281, 255, 281, 120, 4003 170, 171, 265, 140, 140, 144, 230, 140, 140, 267, 4004 114, 157, 377, 140, 120, 235, 294, 172, 295, 140, 4005 139, 139, 114, 140, 115, 323, 177, 178, 135, 137, 4006 116, 146, 208, 209, 210, 115, 121, 115, 115, 115, 4007 115, 172, 365, 366, 367, 235, 364, 319, 319, 119, 4008 159, 172, 173, 176, 121, 139, 115, 121, 172, 139, 4009 120, 170, 135, 271, 115, 115, 115, 352, 271, 115, 4010 233, 370, 116, 122, 157, 172, 172, 235, 349, 271, 4011 115, 115, 115, 115, 115, 115, 115, 7, 235, 343, 4012 347, 358, 139, 139, 380, 139, 139, 140, 140, 140, 4013 140, 284, 170, 171, 172, 317, 139, 285, 287, 120, 4014 139, 219, 281, 43, 44, 46, 49, 50, 51, 52, 4015 53, 54, 55, 56, 60, 64, 65, 75, 132, 178, 4016 179, 180, 181, 182, 183, 185, 186, 198, 200, 201, 4017 206, 220, 315, 31, 140, 136, 284, 139, 139, 115, 4018 140, 181, 255, 137, 137, 326, 171, 235, 260, 261, 4019 260, 281, 319, 120, 266, 379, 115, 121, 117, 117, 4020 140, 235, 121, 380, 297, 115, 293, 223, 225, 233, 4021 305, 306, 307, 308, 299, 115, 115, 135, 171, 114, 4022 115, 135, 121, 144, 115, 115, 115, 364, 286, 121, 4023 140, 176, 82, 85, 87, 144, 152, 153, 154, 151, 4024 140, 152, 170, 140, 114, 356, 357, 140, 139, 140, 4025 140, 140, 172, 115, 140, 114, 356, 357, 114, 362, 4026 114, 362, 357, 234, 7, 122, 140, 172, 271, 271, 4027 270, 274, 274, 275, 115, 121, 121, 115, 101, 127, 4028 140, 140, 152, 285, 172, 121, 137, 220, 224, 235, 4029 239, 114, 114, 179, 114, 114, 75, 137, 75, 137, 4030 75, 122, 178, 114, 181, 173, 173, 135, 149, 137, 4031 140, 139, 140, 219, 115, 172, 271, 271, 319, 115, 4032 120, 259, 120, 139, 115, 139, 140, 316, 120, 139, 4033 140, 140, 115, 119, 208, 117, 171, 137, 208, 210, 4034 115, 114, 356, 357, 379, 173, 117, 140, 155, 116, 4035 153, 155, 155, 121, 140, 90, 118, 117, 140, 115, 4036 139, 115, 117, 117, 117, 140, 115, 139, 139, 139, 4037 172, 172, 140, 117, 140, 140, 140, 140, 139, 139, 4038 171, 171, 117, 117, 140, 281, 235, 177, 177, 50, 4039 177, 139, 137, 137, 137, 177, 137, 177, 61, 62, 4040 63, 202, 203, 204, 137, 66, 137, 319, 119, 183, 4041 120, 137, 140, 140, 101, 276, 277, 115, 306, 121, 4042 137, 121, 137, 120, 304, 135, 146, 115, 115, 135, 4043 139, 120, 117, 86, 139, 153, 117, 116, 153, 116, 4044 153, 117, 271, 117, 271, 271, 271, 140, 140, 117, 4045 117, 115, 115, 117, 121, 101, 270, 101, 140, 117, 4046 115, 115, 114, 115, 178, 199, 220, 137, 115, 114, 4047 114, 181, 204, 61, 62, 172, 179, 150, 115, 115, 4048 119, 139, 139, 305, 146, 211, 114, 137, 211, 271, 4049 152, 139, 139, 140, 140, 140, 140, 117, 117, 139, 4050 140, 117, 179, 47, 48, 119, 189, 190, 191, 177, 4051 179, 140, 115, 178, 119, 191, 101, 139, 101, 139, 4052 114, 114, 137, 120, 139, 279, 316, 120, 121, 135, 4053 171, 115, 140, 140, 152, 152, 115, 115, 115, 115, 4054 274, 45, 171, 187, 188, 317, 135, 139, 179, 189, 4055 115, 137, 179, 137, 139, 115, 139, 115, 139, 101, 4056 139, 101, 139, 137, 305, 146, 144, 212, 115, 137, 4057 115, 117, 140, 140, 179, 101, 121, 135, 140, 213, 4058 214, 220, 137, 178, 178, 213, 181, 205, 233, 373, 4059 181, 205, 115, 139, 115, 139, 120, 115, 121, 117, 4060 117, 171, 187, 190, 192, 193, 139, 137, 190, 194, 4061 195, 140, 114, 157, 316, 364, 144, 140, 181, 205, 4062 181, 205, 114, 137, 144, 179, 184, 120, 190, 220, 4063 178, 59, 184, 197, 120, 190, 115, 235, 115, 140, 4064 140, 299, 179, 184, 137, 196, 197, 184, 197, 181, 4065 181, 115, 115, 115, 196, 140, 140, 181, 181, 140, 4066 140 4094 4067 }; 4095 4068 … … 7564 7537 /* Line 1806 of yacc.c */ 7565 7538 #line 1895 "parser.yy" 7539 { (yyval.tclass) = DeclarationNode::Dtype; } 7540 break; 7541 7542 case 494: 7543 7544 /* Line 1806 of yacc.c */ 7545 #line 1897 "parser.yy" 7566 7546 { (yyval.tclass) = DeclarationNode::Ftype; } 7567 7547 break; 7568 7548 7569 case 494:7570 7571 /* Line 1806 of yacc.c */7572 #line 1897 "parser.yy"7573 { (yyval.tclass) = DeclarationNode::Dtype; }7574 break;7575 7576 7549 case 495: 7577 7550 7578 7551 /* Line 1806 of yacc.c */ 7579 #line 1902 "parser.yy" 7552 #line 1899 "parser.yy" 7553 { (yyval.tclass) = DeclarationNode::Ttype; } 7554 break; 7555 7556 case 496: 7557 7558 /* Line 1806 of yacc.c */ 7559 #line 1904 "parser.yy" 7580 7560 { (yyval.decl) = nullptr; } 7581 7561 break; 7582 7562 7583 case 49 6:7584 7585 /* Line 1806 of yacc.c */ 7586 #line 190 4"parser.yy"7563 case 497: 7564 7565 /* Line 1806 of yacc.c */ 7566 #line 1906 "parser.yy" 7587 7567 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7588 7568 break; 7589 7569 7590 case 49 7:7591 7592 /* Line 1806 of yacc.c */ 7593 #line 19 09"parser.yy"7570 case 498: 7571 7572 /* Line 1806 of yacc.c */ 7573 #line 1911 "parser.yy" 7594 7574 { 7595 7575 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7598 7578 break; 7599 7579 7600 case 49 8:7601 7602 /* Line 1806 of yacc.c */ 7603 #line 191 4"parser.yy"7580 case 499: 7581 7582 /* Line 1806 of yacc.c */ 7583 #line 1916 "parser.yy" 7604 7584 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7605 7585 break; 7606 7586 7607 case 499:7608 7609 /* Line 1806 of yacc.c */ 7610 #line 191 6"parser.yy"7587 case 500: 7588 7589 /* Line 1806 of yacc.c */ 7590 #line 1918 "parser.yy" 7611 7591 { (yyval.decl) = nullptr; } 7612 7592 break; 7613 7593 7614 case 50 0:7615 7616 /* Line 1806 of yacc.c */ 7617 #line 192 1"parser.yy"7594 case 501: 7595 7596 /* Line 1806 of yacc.c */ 7597 #line 1923 "parser.yy" 7618 7598 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7619 7599 break; 7620 7600 7621 case 50 2:7622 7623 /* Line 1806 of yacc.c */ 7624 #line 192 4"parser.yy"7601 case 503: 7602 7603 /* Line 1806 of yacc.c */ 7604 #line 1926 "parser.yy" 7625 7605 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7626 7606 break; 7627 7607 7628 case 50 3:7629 7630 /* Line 1806 of yacc.c */ 7631 #line 192 6"parser.yy"7608 case 504: 7609 7610 /* Line 1806 of yacc.c */ 7611 #line 1928 "parser.yy" 7632 7612 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7633 7613 break; 7634 7614 7635 case 50 4:7636 7637 /* Line 1806 of yacc.c */ 7638 #line 193 1"parser.yy"7615 case 505: 7616 7617 /* Line 1806 of yacc.c */ 7618 #line 1933 "parser.yy" 7639 7619 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7640 7620 break; 7641 7621 7642 case 50 5:7643 7644 /* Line 1806 of yacc.c */ 7645 #line 193 3"parser.yy"7622 case 506: 7623 7624 /* Line 1806 of yacc.c */ 7625 #line 1935 "parser.yy" 7646 7626 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7647 7627 break; 7648 7628 7649 case 50 6:7650 7651 /* Line 1806 of yacc.c */ 7652 #line 193 5"parser.yy"7629 case 507: 7630 7631 /* Line 1806 of yacc.c */ 7632 #line 1937 "parser.yy" 7653 7633 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7654 7634 break; 7655 7635 7656 case 50 7:7657 7658 /* Line 1806 of yacc.c */ 7659 #line 194 0"parser.yy"7636 case 508: 7637 7638 /* Line 1806 of yacc.c */ 7639 #line 1942 "parser.yy" 7660 7640 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7661 7641 break; 7662 7642 7663 case 50 8:7664 7665 /* Line 1806 of yacc.c */ 7666 #line 194 2"parser.yy"7643 case 509: 7644 7645 /* Line 1806 of yacc.c */ 7646 #line 1944 "parser.yy" 7667 7647 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7668 7648 break; 7669 7649 7670 case 5 09:7671 7672 /* Line 1806 of yacc.c */ 7673 #line 194 7"parser.yy"7650 case 510: 7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1949 "parser.yy" 7674 7654 { 7675 7655 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7678 7658 break; 7679 7659 7680 case 51 0:7681 7682 /* Line 1806 of yacc.c */ 7683 #line 195 2"parser.yy"7660 case 511: 7661 7662 /* Line 1806 of yacc.c */ 7663 #line 1954 "parser.yy" 7684 7664 { 7685 7665 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7688 7668 break; 7689 7669 7690 case 51 1:7691 7692 /* Line 1806 of yacc.c */ 7693 #line 196 0"parser.yy"7670 case 512: 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1962 "parser.yy" 7694 7674 { 7695 7675 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7698 7678 break; 7699 7679 7700 case 51 2:7701 7702 /* Line 1806 of yacc.c */ 7703 #line 196 5"parser.yy"7680 case 513: 7681 7682 /* Line 1806 of yacc.c */ 7683 #line 1967 "parser.yy" 7704 7684 { 7705 7685 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7708 7688 break; 7709 7689 7710 case 51 3:7711 7712 /* Line 1806 of yacc.c */ 7713 #line 197 0"parser.yy"7690 case 514: 7691 7692 /* Line 1806 of yacc.c */ 7693 #line 1972 "parser.yy" 7714 7694 { 7715 7695 typedefTable.leaveTrait(); … … 7719 7699 break; 7720 7700 7721 case 51 5:7722 7723 /* Line 1806 of yacc.c */ 7724 #line 198 0"parser.yy"7701 case 516: 7702 7703 /* Line 1806 of yacc.c */ 7704 #line 1982 "parser.yy" 7725 7705 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7726 7706 break; 7727 7707 7728 case 51 8:7729 7730 /* Line 1806 of yacc.c */ 7731 #line 199 0"parser.yy"7708 case 519: 7709 7710 /* Line 1806 of yacc.c */ 7711 #line 1992 "parser.yy" 7732 7712 { 7733 7713 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7736 7716 break; 7737 7717 7738 case 5 19:7739 7740 /* Line 1806 of yacc.c */ 7741 #line 199 5"parser.yy"7718 case 520: 7719 7720 /* Line 1806 of yacc.c */ 7721 #line 1997 "parser.yy" 7742 7722 { 7743 7723 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7746 7726 break; 7747 7727 7748 case 52 0:7749 7750 /* Line 1806 of yacc.c */ 7751 #line 200 0"parser.yy"7728 case 521: 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 2002 "parser.yy" 7752 7732 { 7753 7733 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7756 7736 break; 7757 7737 7758 case 52 1:7759 7760 /* Line 1806 of yacc.c */ 7761 #line 20 08"parser.yy"7738 case 522: 7739 7740 /* Line 1806 of yacc.c */ 7741 #line 2010 "parser.yy" 7762 7742 { 7763 7743 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7766 7746 break; 7767 7747 7768 case 52 2:7769 7770 /* Line 1806 of yacc.c */ 7771 #line 201 3"parser.yy"7748 case 523: 7749 7750 /* Line 1806 of yacc.c */ 7751 #line 2015 "parser.yy" 7772 7752 { 7773 7753 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7776 7756 break; 7777 7757 7778 case 52 3:7779 7780 /* Line 1806 of yacc.c */ 7781 #line 202 3"parser.yy"7758 case 524: 7759 7760 /* Line 1806 of yacc.c */ 7761 #line 2025 "parser.yy" 7782 7762 {} 7783 7763 break; 7784 7764 7785 case 52 4:7786 7787 /* Line 1806 of yacc.c */ 7788 #line 202 5"parser.yy"7765 case 525: 7766 7767 /* Line 1806 of yacc.c */ 7768 #line 2027 "parser.yy" 7789 7769 { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7790 7770 break; 7791 7771 7792 case 52 6:7793 7794 /* Line 1806 of yacc.c */ 7795 #line 203 1"parser.yy"7772 case 527: 7773 7774 /* Line 1806 of yacc.c */ 7775 #line 2033 "parser.yy" 7796 7776 { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7797 7777 break; 7798 7778 7799 case 52 7:7800 7801 /* Line 1806 of yacc.c */ 7802 #line 203 6"parser.yy"7779 case 528: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 2038 "parser.yy" 7803 7783 { (yyval.decl) = nullptr; } 7804 7784 break; 7805 7785 7806 case 53 1:7807 7808 /* Line 1806 of yacc.c */ 7809 #line 204 4"parser.yy"7786 case 532: 7787 7788 /* Line 1806 of yacc.c */ 7789 #line 2046 "parser.yy" 7810 7790 {} 7811 7791 break; 7812 7792 7813 case 53 2:7814 7815 /* Line 1806 of yacc.c */ 7816 #line 204 6"parser.yy"7793 case 533: 7794 7795 /* Line 1806 of yacc.c */ 7796 #line 2048 "parser.yy" 7817 7797 { 7818 7798 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" … … 7821 7801 break; 7822 7802 7823 case 53 3:7824 7825 /* Line 1806 of yacc.c */ 7826 #line 205 1"parser.yy"7803 case 534: 7804 7805 /* Line 1806 of yacc.c */ 7806 #line 2053 "parser.yy" 7827 7807 { 7828 7808 linkage = linkageStack.top(); … … 7832 7812 break; 7833 7813 7834 case 53 4:7835 7836 /* Line 1806 of yacc.c */ 7837 #line 205 7"parser.yy"7814 case 535: 7815 7816 /* Line 1806 of yacc.c */ 7817 #line 2059 "parser.yy" 7838 7818 { // mark all fields in list 7839 7819 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7843 7823 break; 7844 7824 7845 case 53 6:7846 7847 /* Line 1806 of yacc.c */ 7848 #line 207 2"parser.yy"7825 case 537: 7826 7827 /* Line 1806 of yacc.c */ 7828 #line 2074 "parser.yy" 7849 7829 { 7850 7830 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7854 7834 break; 7855 7835 7856 case 53 7:7857 7858 /* Line 1806 of yacc.c */ 7859 #line 20 78"parser.yy"7836 case 538: 7837 7838 /* Line 1806 of yacc.c */ 7839 #line 2080 "parser.yy" 7860 7840 { 7861 7841 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7865 7845 break; 7866 7846 7867 case 53 8:7868 7869 /* Line 1806 of yacc.c */ 7870 #line 208 7"parser.yy"7847 case 539: 7848 7849 /* Line 1806 of yacc.c */ 7850 #line 2089 "parser.yy" 7871 7851 { 7872 7852 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7876 7856 break; 7877 7857 7878 case 5 39:7879 7880 /* Line 1806 of yacc.c */ 7881 #line 209 3"parser.yy"7858 case 540: 7859 7860 /* Line 1806 of yacc.c */ 7861 #line 2095 "parser.yy" 7882 7862 { 7883 7863 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7887 7867 break; 7888 7868 7889 case 54 0:7890 7891 /* Line 1806 of yacc.c */ 7892 #line 2 099"parser.yy"7869 case 541: 7870 7871 /* Line 1806 of yacc.c */ 7872 #line 2101 "parser.yy" 7893 7873 { 7894 7874 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7898 7878 break; 7899 7879 7900 case 54 1:7901 7902 /* Line 1806 of yacc.c */ 7903 #line 210 5"parser.yy"7880 case 542: 7881 7882 /* Line 1806 of yacc.c */ 7883 #line 2107 "parser.yy" 7904 7884 { 7905 7885 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7909 7889 break; 7910 7890 7911 case 54 2:7912 7913 /* Line 1806 of yacc.c */ 7914 #line 211 1"parser.yy"7891 case 543: 7892 7893 /* Line 1806 of yacc.c */ 7894 #line 2113 "parser.yy" 7915 7895 { 7916 7896 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7920 7900 break; 7921 7901 7922 case 54 3:7923 7924 /* Line 1806 of yacc.c */ 7925 #line 21 19"parser.yy"7902 case 544: 7903 7904 /* Line 1806 of yacc.c */ 7905 #line 2121 "parser.yy" 7926 7906 { 7927 7907 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7931 7911 break; 7932 7912 7933 case 54 4:7934 7935 /* Line 1806 of yacc.c */ 7936 #line 212 5"parser.yy"7913 case 545: 7914 7915 /* Line 1806 of yacc.c */ 7916 #line 2127 "parser.yy" 7937 7917 { 7938 7918 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7942 7922 break; 7943 7923 7944 case 54 5:7945 7946 /* Line 1806 of yacc.c */ 7947 #line 213 3"parser.yy"7924 case 546: 7925 7926 /* Line 1806 of yacc.c */ 7927 #line 2135 "parser.yy" 7948 7928 { 7949 7929 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7953 7933 break; 7954 7934 7955 case 54 6:7956 7957 /* Line 1806 of yacc.c */ 7958 #line 21 39"parser.yy"7935 case 547: 7936 7937 /* Line 1806 of yacc.c */ 7938 #line 2141 "parser.yy" 7959 7939 { 7960 7940 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7964 7944 break; 7965 7945 7966 case 55 0:7967 7968 /* Line 1806 of yacc.c */ 7969 #line 215 4"parser.yy"7946 case 551: 7947 7948 /* Line 1806 of yacc.c */ 7949 #line 2156 "parser.yy" 7970 7950 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7971 7951 break; 7972 7952 7973 case 55 1:7974 7975 /* Line 1806 of yacc.c */ 7976 #line 21 59"parser.yy"7953 case 552: 7954 7955 /* Line 1806 of yacc.c */ 7956 #line 2161 "parser.yy" 7977 7957 { (yyval.constant) = nullptr; } 7978 7958 break; 7979 7959 7980 case 55 2:7981 7982 /* Line 1806 of yacc.c */ 7983 #line 216 1"parser.yy"7960 case 553: 7961 7962 /* Line 1806 of yacc.c */ 7963 #line 2163 "parser.yy" 7984 7964 { (yyval.constant) = (yyvsp[(3) - (5)].constant); } 7985 7965 break; 7986 7966 7987 case 55 3:7988 7989 /* Line 1806 of yacc.c */ 7990 #line 216 6"parser.yy"7967 case 554: 7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2168 "parser.yy" 7991 7971 { (yyval.decl) = nullptr; } 7992 7972 break; 7993 7973 7994 case 55 6:7995 7996 /* Line 1806 of yacc.c */ 7997 #line 217 3"parser.yy"7974 case 557: 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2175 "parser.yy" 7998 7978 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7999 7979 break; 8000 7980 8001 case 55 7:8002 8003 /* Line 1806 of yacc.c */ 8004 #line 21 79"parser.yy"7981 case 558: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2181 "parser.yy" 8005 7985 { (yyval.decl) = nullptr; } 8006 7986 break; 8007 7987 8008 case 56 2:8009 8010 /* Line 1806 of yacc.c */ 8011 #line 219 0"parser.yy"7988 case 563: 7989 7990 /* Line 1806 of yacc.c */ 7991 #line 2192 "parser.yy" 8012 7992 { delete (yyvsp[(3) - (4)].en); } 8013 7993 break; 8014 7994 8015 case 56 3:8016 8017 /* Line 1806 of yacc.c */ 8018 #line 219 4"parser.yy"7995 case 564: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2196 "parser.yy" 8019 7999 { delete (yyvsp[(1) - (1)].tok); } 8020 8000 break; 8021 8001 8022 case 564:8023 8024 /* Line 1806 of yacc.c */8025 #line 2195 "parser.yy"8026 { delete (yyvsp[(1) - (1)].decl); }8027 break;8028 8029 8002 case 565: 8030 8031 /* Line 1806 of yacc.c */8032 #line 2196 "parser.yy"8033 { delete (yyvsp[(1) - (1)].decl); }8034 break;8035 8036 case 566:8037 8003 8038 8004 /* Line 1806 of yacc.c */ … … 8041 8007 break; 8042 8008 8009 case 566: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2198 "parser.yy" 8013 { delete (yyvsp[(1) - (1)].decl); } 8014 break; 8015 8043 8016 case 567: 8044 8017 8045 8018 /* Line 1806 of yacc.c */ 8046 #line 2 232"parser.yy"8047 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl)); }8048 break; 8049 8050 case 56 9:8051 8052 /* Line 1806 of yacc.c */ 8053 #line 223 5"parser.yy"8019 #line 2199 "parser.yy" 8020 { delete (yyvsp[(1) - (1)].decl); } 8021 break; 8022 8023 case 568: 8024 8025 /* Line 1806 of yacc.c */ 8026 #line 2234 "parser.yy" 8054 8027 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8055 8028 break; … … 8065 8038 8066 8039 /* Line 1806 of yacc.c */ 8067 #line 2242 "parser.yy" 8040 #line 2239 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8042 break; 8043 8044 case 572: 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2244 "parser.yy" 8068 8048 { 8069 8049 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8072 8052 break; 8073 8053 8074 case 57 2:8075 8076 /* Line 1806 of yacc.c */ 8077 #line 224 7"parser.yy"8054 case 573: 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2249 "parser.yy" 8078 8058 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8079 8059 break; 8080 8060 8081 case 57 3:8082 8083 /* Line 1806 of yacc.c */ 8084 #line 225 2"parser.yy"8061 case 574: 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2254 "parser.yy" 8085 8065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8086 8066 break; 8087 8067 8088 case 57 4:8089 8090 /* Line 1806 of yacc.c */ 8091 #line 225 4"parser.yy"8068 case 575: 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2256 "parser.yy" 8092 8072 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8093 8073 break; 8094 8074 8095 case 57 5:8096 8097 /* Line 1806 of yacc.c */ 8098 #line 225 6"parser.yy"8075 case 576: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2258 "parser.yy" 8099 8079 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8100 8080 break; 8101 8081 8102 case 57 6:8103 8104 /* Line 1806 of yacc.c */ 8105 #line 226 1"parser.yy"8082 case 577: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2263 "parser.yy" 8106 8086 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8107 break;8108 8109 case 577:8110 8111 /* Line 1806 of yacc.c */8112 #line 2263 "parser.yy"8113 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8114 8087 break; 8115 8088 … … 8125 8098 /* Line 1806 of yacc.c */ 8126 8099 #line 2267 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8101 break; 8102 8103 case 580: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2269 "parser.yy" 8127 8107 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8128 8108 break; 8129 8109 8130 case 58 0:8131 8132 /* Line 1806 of yacc.c */ 8133 #line 227 2"parser.yy"8110 case 581: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2274 "parser.yy" 8134 8114 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8135 8115 break; 8136 8116 8137 case 58 1:8138 8139 /* Line 1806 of yacc.c */ 8140 #line 227 4"parser.yy"8117 case 582: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2276 "parser.yy" 8141 8121 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8142 8122 break; 8143 8123 8144 case 58 2:8145 8146 /* Line 1806 of yacc.c */ 8147 #line 228 3"parser.yy"8124 case 583: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2285 "parser.yy" 8148 8128 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8149 8129 break; 8150 8130 8151 case 58 4:8152 8153 /* Line 1806 of yacc.c */ 8154 #line 228 6"parser.yy"8131 case 585: 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2288 "parser.yy" 8155 8135 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8156 8136 break; 8157 8137 8158 case 58 5:8159 8160 /* Line 1806 of yacc.c */ 8161 #line 229 1"parser.yy"8138 case 586: 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2293 "parser.yy" 8162 8142 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8163 8143 break; 8164 8144 8165 case 58 6:8166 8167 /* Line 1806 of yacc.c */ 8168 #line 229 3"parser.yy"8145 case 587: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2295 "parser.yy" 8169 8149 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8170 8150 break; 8171 8151 8172 case 58 7:8173 8174 /* Line 1806 of yacc.c */ 8175 #line 229 5"parser.yy"8152 case 588: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2297 "parser.yy" 8176 8156 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8177 8157 break; 8178 8158 8179 case 58 8:8180 8181 /* Line 1806 of yacc.c */ 8182 #line 230 0"parser.yy"8159 case 589: 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2302 "parser.yy" 8183 8163 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8184 8164 break; 8185 8165 8186 case 5 89:8187 8188 /* Line 1806 of yacc.c */ 8189 #line 230 2"parser.yy"8166 case 590: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2304 "parser.yy" 8190 8170 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8191 8171 break; 8192 8172 8193 case 59 0:8194 8195 /* Line 1806 of yacc.c */ 8196 #line 230 4"parser.yy"8173 case 591: 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2306 "parser.yy" 8197 8177 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8198 break;8199 8200 case 591:8201 8202 /* Line 1806 of yacc.c */8203 #line 2309 "parser.yy"8204 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8205 8178 break; 8206 8179 … … 8216 8189 /* Line 1806 of yacc.c */ 8217 8190 #line 2313 "parser.yy" 8191 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8192 break; 8193 8194 case 594: 8195 8196 /* Line 1806 of yacc.c */ 8197 #line 2315 "parser.yy" 8218 8198 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8219 8199 break; 8220 8200 8221 case 59 7:8222 8223 /* Line 1806 of yacc.c */ 8224 #line 23 28"parser.yy"8201 case 598: 8202 8203 /* Line 1806 of yacc.c */ 8204 #line 2330 "parser.yy" 8225 8205 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8226 8206 break; 8227 8207 8228 case 59 8:8229 8230 /* Line 1806 of yacc.c */ 8231 #line 233 0"parser.yy"8208 case 599: 8209 8210 /* Line 1806 of yacc.c */ 8211 #line 2332 "parser.yy" 8232 8212 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8233 8213 break; 8234 8214 8235 case 599:8236 8237 /* Line 1806 of yacc.c */ 8238 #line 233 2"parser.yy"8215 case 600: 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2334 "parser.yy" 8239 8219 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8240 8220 break; 8241 8221 8242 case 60 0:8243 8244 /* Line 1806 of yacc.c */ 8245 #line 233 7"parser.yy"8222 case 601: 8223 8224 /* Line 1806 of yacc.c */ 8225 #line 2339 "parser.yy" 8246 8226 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8247 8227 break; 8248 8228 8249 case 60 1:8250 8251 /* Line 1806 of yacc.c */ 8252 #line 23 39"parser.yy"8229 case 602: 8230 8231 /* Line 1806 of yacc.c */ 8232 #line 2341 "parser.yy" 8253 8233 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8254 8234 break; 8255 8235 8256 case 60 2:8257 8258 /* Line 1806 of yacc.c */ 8259 #line 234 1"parser.yy"8236 case 603: 8237 8238 /* Line 1806 of yacc.c */ 8239 #line 2343 "parser.yy" 8260 8240 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8261 break;8262 8263 case 603:8264 8265 /* Line 1806 of yacc.c */8266 #line 2346 "parser.yy"8267 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8268 8241 break; 8269 8242 … … 8279 8252 /* Line 1806 of yacc.c */ 8280 8253 #line 2350 "parser.yy" 8254 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8255 break; 8256 8257 case 606: 8258 8259 /* Line 1806 of yacc.c */ 8260 #line 2352 "parser.yy" 8281 8261 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8282 8262 break; 8283 8263 8284 case 606: 8285 8286 /* Line 1806 of yacc.c */ 8287 #line 2365 "parser.yy" 8288 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8289 break; 8290 8291 case 608: 8292 8293 /* Line 1806 of yacc.c */ 8294 #line 2368 "parser.yy" 8264 case 607: 8265 8266 /* Line 1806 of yacc.c */ 8267 #line 2367 "parser.yy" 8295 8268 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8296 8269 break; … … 8303 8276 break; 8304 8277 8305 case 611: 8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2376 "parser.yy" 8278 case 610: 8279 8280 /* Line 1806 of yacc.c */ 8281 #line 2372 "parser.yy" 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8283 break; 8284 8285 case 612: 8286 8287 /* Line 1806 of yacc.c */ 8288 #line 2378 "parser.yy" 8309 8289 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8310 8290 break; 8311 8291 8312 case 61 2:8313 8314 /* Line 1806 of yacc.c */ 8315 #line 238 1"parser.yy"8292 case 613: 8293 8294 /* Line 1806 of yacc.c */ 8295 #line 2383 "parser.yy" 8316 8296 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8317 8297 break; 8318 8298 8319 case 61 3:8320 8321 /* Line 1806 of yacc.c */ 8322 #line 238 3"parser.yy"8299 case 614: 8300 8301 /* Line 1806 of yacc.c */ 8302 #line 2385 "parser.yy" 8323 8303 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8324 8304 break; 8325 8305 8326 case 61 4:8327 8328 /* Line 1806 of yacc.c */ 8329 #line 238 5"parser.yy"8306 case 615: 8307 8308 /* Line 1806 of yacc.c */ 8309 #line 2387 "parser.yy" 8330 8310 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8331 8311 break; 8332 8312 8333 case 61 5:8334 8335 /* Line 1806 of yacc.c */ 8336 #line 239 0"parser.yy"8313 case 616: 8314 8315 /* Line 1806 of yacc.c */ 8316 #line 2392 "parser.yy" 8337 8317 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8338 break;8339 8340 case 616:8341 8342 /* Line 1806 of yacc.c */8343 #line 2392 "parser.yy"8344 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8345 8318 break; 8346 8319 … … 8356 8329 /* Line 1806 of yacc.c */ 8357 8330 #line 2396 "parser.yy" 8331 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8332 break; 8333 8334 case 619: 8335 8336 /* Line 1806 of yacc.c */ 8337 #line 2398 "parser.yy" 8358 8338 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8359 8339 break; 8360 8340 8361 case 6 19:8362 8363 /* Line 1806 of yacc.c */ 8364 #line 240 1"parser.yy"8341 case 620: 8342 8343 /* Line 1806 of yacc.c */ 8344 #line 2403 "parser.yy" 8365 8345 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8366 8346 break; 8367 8347 8368 case 62 0:8369 8370 /* Line 1806 of yacc.c */ 8371 #line 240 3"parser.yy"8348 case 621: 8349 8350 /* Line 1806 of yacc.c */ 8351 #line 2405 "parser.yy" 8372 8352 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8373 8353 break; 8374 8354 8375 case 62 1:8376 8377 /* Line 1806 of yacc.c */ 8378 #line 240 5"parser.yy"8355 case 622: 8356 8357 /* Line 1806 of yacc.c */ 8358 #line 2407 "parser.yy" 8379 8359 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8380 8360 break; 8381 8361 8382 case 622: 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2415 "parser.yy" 8386 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8387 break; 8388 8389 case 624: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2418 "parser.yy" 8362 case 623: 8363 8364 /* Line 1806 of yacc.c */ 8365 #line 2417 "parser.yy" 8393 8366 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8394 8367 break; … … 8404 8377 8405 8378 /* Line 1806 of yacc.c */ 8406 #line 2425 "parser.yy" 8379 #line 2422 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8381 break; 8382 8383 case 627: 8384 8385 /* Line 1806 of yacc.c */ 8386 #line 2427 "parser.yy" 8407 8387 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8408 8388 break; 8409 8389 8410 case 62 7:8411 8412 /* Line 1806 of yacc.c */ 8413 #line 242 7"parser.yy"8390 case 628: 8391 8392 /* Line 1806 of yacc.c */ 8393 #line 2429 "parser.yy" 8414 8394 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8415 8395 break; 8416 8396 8417 case 62 8:8418 8419 /* Line 1806 of yacc.c */ 8420 #line 24 29"parser.yy"8397 case 629: 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2431 "parser.yy" 8421 8401 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8422 8402 break; 8423 8403 8424 case 6 29:8425 8426 /* Line 1806 of yacc.c */ 8427 #line 243 4"parser.yy"8404 case 630: 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2436 "parser.yy" 8428 8408 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8429 break;8430 8431 case 630:8432 8433 /* Line 1806 of yacc.c */8434 #line 2436 "parser.yy"8435 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8436 8409 break; 8437 8410 … … 8447 8420 /* Line 1806 of yacc.c */ 8448 8421 #line 2440 "parser.yy" 8422 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8423 break; 8424 8425 case 633: 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2442 "parser.yy" 8449 8429 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8450 8430 break; 8451 8431 8452 case 63 3:8453 8454 /* Line 1806 of yacc.c */ 8455 #line 244 5"parser.yy"8432 case 634: 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2447 "parser.yy" 8456 8436 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8457 8437 break; 8458 8438 8459 case 63 4:8460 8461 /* Line 1806 of yacc.c */ 8462 #line 244 7"parser.yy"8439 case 635: 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2449 "parser.yy" 8463 8443 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8464 8444 break; 8465 8445 8466 case 63 5:8467 8468 /* Line 1806 of yacc.c */ 8469 #line 24 49"parser.yy"8446 case 636: 8447 8448 /* Line 1806 of yacc.c */ 8449 #line 2451 "parser.yy" 8470 8450 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8471 8451 break; 8472 8452 8473 case 636: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2480 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8478 break; 8479 8480 case 638: 8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2483 "parser.yy" 8453 case 637: 8454 8455 /* Line 1806 of yacc.c */ 8456 #line 2482 "parser.yy" 8484 8457 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8485 8458 break; … … 8495 8468 8496 8469 /* Line 1806 of yacc.c */ 8497 #line 2490 "parser.yy" 8470 #line 2487 "parser.yy" 8471 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8472 break; 8473 8474 case 641: 8475 8476 /* Line 1806 of yacc.c */ 8477 #line 2492 "parser.yy" 8498 8478 { 8499 8479 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8502 8482 break; 8503 8483 8504 case 64 1:8505 8506 /* Line 1806 of yacc.c */ 8507 #line 249 5"parser.yy"8484 case 642: 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2497 "parser.yy" 8508 8488 { 8509 8489 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8512 8492 break; 8513 8493 8514 case 64 2:8515 8516 /* Line 1806 of yacc.c */ 8517 #line 250 3"parser.yy"8494 case 643: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2505 "parser.yy" 8518 8498 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8519 8499 break; 8520 8500 8521 case 64 3:8522 8523 /* Line 1806 of yacc.c */ 8524 #line 250 5"parser.yy"8501 case 644: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2507 "parser.yy" 8525 8505 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8526 8506 break; 8527 8507 8528 case 64 4:8529 8530 /* Line 1806 of yacc.c */ 8531 #line 250 7"parser.yy"8508 case 645: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2509 "parser.yy" 8532 8512 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8533 8513 break; 8534 8514 8535 case 64 5:8536 8537 /* Line 1806 of yacc.c */ 8538 #line 251 2"parser.yy"8515 case 646: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2514 "parser.yy" 8539 8519 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8540 8520 break; 8541 8521 8542 case 64 6:8543 8544 /* Line 1806 of yacc.c */ 8545 #line 251 4"parser.yy"8522 case 647: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2516 "parser.yy" 8546 8526 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8547 8527 break; 8548 8528 8549 case 64 7:8550 8551 /* Line 1806 of yacc.c */ 8552 #line 25 19"parser.yy"8529 case 648: 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2521 "parser.yy" 8553 8533 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8554 8534 break; 8555 8535 8556 case 64 8:8557 8558 /* Line 1806 of yacc.c */ 8559 #line 252 1"parser.yy"8536 case 649: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2523 "parser.yy" 8560 8540 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8561 break;8562 8563 case 650:8564 8565 /* Line 1806 of yacc.c */8566 #line 2536 "parser.yy"8567 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8568 8541 break; 8569 8542 … … 8578 8551 8579 8552 /* Line 1806 of yacc.c */ 8580 #line 2543 "parser.yy" 8553 #line 2540 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8555 break; 8556 8557 case 653: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2545 "parser.yy" 8581 8561 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8582 8562 break; 8583 8563 8584 case 65 3:8585 8586 /* Line 1806 of yacc.c */ 8587 #line 254 5"parser.yy"8564 case 654: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2547 "parser.yy" 8588 8568 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8589 8569 break; 8590 8570 8591 case 65 4:8592 8593 /* Line 1806 of yacc.c */ 8594 #line 254 7"parser.yy"8571 case 655: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2549 "parser.yy" 8595 8575 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8596 8576 break; 8597 8577 8598 case 65 5:8599 8600 /* Line 1806 of yacc.c */ 8601 #line 25 49"parser.yy"8578 case 656: 8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2551 "parser.yy" 8602 8582 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8603 8583 break; 8604 8584 8605 case 65 6:8606 8607 /* Line 1806 of yacc.c */ 8608 #line 255 1"parser.yy"8585 case 657: 8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2553 "parser.yy" 8609 8589 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8610 break;8611 8612 case 658:8613 8614 /* Line 1806 of yacc.c */8615 #line 2557 "parser.yy"8616 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8617 8590 break; 8618 8591 … … 8628 8601 /* Line 1806 of yacc.c */ 8629 8602 #line 2561 "parser.yy" 8603 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8604 break; 8605 8606 case 661: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2563 "parser.yy" 8630 8610 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8631 8611 break; 8632 8612 8633 case 66 1:8634 8635 /* Line 1806 of yacc.c */ 8636 #line 256 6"parser.yy"8613 case 662: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2568 "parser.yy" 8637 8617 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8638 8618 break; 8639 8619 8640 case 66 2:8641 8642 /* Line 1806 of yacc.c */ 8643 #line 25 68"parser.yy"8620 case 663: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2570 "parser.yy" 8644 8624 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8645 8625 break; 8646 8626 8647 case 66 3:8648 8649 /* Line 1806 of yacc.c */ 8650 #line 257 0"parser.yy"8627 case 664: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2572 "parser.yy" 8651 8631 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8652 8632 break; 8653 8633 8654 case 66 4:8655 8656 /* Line 1806 of yacc.c */ 8657 #line 257 6"parser.yy"8634 case 665: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2578 "parser.yy" 8658 8638 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8659 8639 break; 8660 8640 8661 case 66 5:8662 8663 /* Line 1806 of yacc.c */ 8664 #line 25 78"parser.yy"8641 case 666: 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2580 "parser.yy" 8665 8645 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8666 8646 break; 8667 8647 8668 case 66 7:8669 8670 /* Line 1806 of yacc.c */ 8671 #line 258 4"parser.yy"8648 case 668: 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2586 "parser.yy" 8672 8652 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8673 8653 break; 8674 8654 8675 case 66 8:8676 8677 /* Line 1806 of yacc.c */ 8678 #line 258 6"parser.yy"8655 case 669: 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2588 "parser.yy" 8679 8659 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8680 8660 break; 8681 8661 8682 case 6 69:8683 8684 /* Line 1806 of yacc.c */ 8685 #line 25 88"parser.yy"8662 case 670: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2590 "parser.yy" 8686 8666 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8687 8667 break; 8688 8668 8689 case 67 0:8690 8691 /* Line 1806 of yacc.c */ 8692 #line 259 0"parser.yy"8669 case 671: 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2592 "parser.yy" 8693 8673 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8694 break;8695 8696 case 672:8697 8698 /* Line 1806 of yacc.c */8699 #line 2605 "parser.yy"8700 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8701 8674 break; 8702 8675 … … 8711 8684 8712 8685 /* Line 1806 of yacc.c */ 8713 #line 2612 "parser.yy" 8686 #line 2609 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8688 break; 8689 8690 case 675: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2614 "parser.yy" 8714 8694 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8715 8695 break; 8716 8696 8717 case 67 5:8718 8719 /* Line 1806 of yacc.c */ 8720 #line 261 4"parser.yy"8697 case 676: 8698 8699 /* Line 1806 of yacc.c */ 8700 #line 2616 "parser.yy" 8721 8701 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8722 8702 break; 8723 8703 8724 case 67 6:8725 8726 /* Line 1806 of yacc.c */ 8727 #line 261 6"parser.yy"8704 case 677: 8705 8706 /* Line 1806 of yacc.c */ 8707 #line 2618 "parser.yy" 8728 8708 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8729 8709 break; 8730 8710 8731 case 67 7:8732 8733 /* Line 1806 of yacc.c */ 8734 #line 26 18"parser.yy"8711 case 678: 8712 8713 /* Line 1806 of yacc.c */ 8714 #line 2620 "parser.yy" 8735 8715 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8736 8716 break; 8737 8717 8738 case 67 8:8739 8740 /* Line 1806 of yacc.c */ 8741 #line 262 0"parser.yy"8718 case 679: 8719 8720 /* Line 1806 of yacc.c */ 8721 #line 2622 "parser.yy" 8742 8722 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8743 break;8744 8745 case 680:8746 8747 /* Line 1806 of yacc.c */8748 #line 2626 "parser.yy"8749 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8750 8723 break; 8751 8724 … … 8761 8734 /* Line 1806 of yacc.c */ 8762 8735 #line 2630 "parser.yy" 8736 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8737 break; 8738 8739 case 683: 8740 8741 /* Line 1806 of yacc.c */ 8742 #line 2632 "parser.yy" 8763 8743 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8764 8744 break; 8765 8745 8766 case 68 3:8767 8768 /* Line 1806 of yacc.c */ 8769 #line 263 5"parser.yy"8746 case 684: 8747 8748 /* Line 1806 of yacc.c */ 8749 #line 2637 "parser.yy" 8770 8750 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8771 8751 break; 8772 8752 8773 case 68 4:8774 8775 /* Line 1806 of yacc.c */ 8776 #line 263 7"parser.yy"8753 case 685: 8754 8755 /* Line 1806 of yacc.c */ 8756 #line 2639 "parser.yy" 8777 8757 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8778 8758 break; 8779 8759 8780 case 68 5:8781 8782 /* Line 1806 of yacc.c */ 8783 #line 26 39"parser.yy"8760 case 686: 8761 8762 /* Line 1806 of yacc.c */ 8763 #line 2641 "parser.yy" 8784 8764 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8785 8765 break; 8786 8766 8787 case 68 7:8788 8789 /* Line 1806 of yacc.c */ 8790 #line 264 6"parser.yy"8767 case 688: 8768 8769 /* Line 1806 of yacc.c */ 8770 #line 2648 "parser.yy" 8791 8771 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8792 8772 break; 8793 8773 8794 case 6 89:8795 8796 /* Line 1806 of yacc.c */ 8797 #line 265 7"parser.yy"8774 case 690: 8775 8776 /* Line 1806 of yacc.c */ 8777 #line 2659 "parser.yy" 8798 8778 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8799 8779 break; 8800 8780 8801 case 69 0:8802 8803 /* Line 1806 of yacc.c */ 8804 #line 266 0"parser.yy"8781 case 691: 8782 8783 /* Line 1806 of yacc.c */ 8784 #line 2662 "parser.yy" 8805 8785 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8806 8786 break; 8807 8787 8808 case 69 1:8809 8810 /* Line 1806 of yacc.c */ 8811 #line 266 2"parser.yy"8788 case 692: 8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2664 "parser.yy" 8812 8792 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8813 8793 break; 8814 8794 8815 case 69 2:8816 8817 /* Line 1806 of yacc.c */ 8818 #line 266 5"parser.yy"8795 case 693: 8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2667 "parser.yy" 8819 8799 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8820 8800 break; 8821 8801 8822 case 69 3:8823 8824 /* Line 1806 of yacc.c */ 8825 #line 266 7"parser.yy"8802 case 694: 8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2669 "parser.yy" 8826 8806 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8827 8807 break; 8828 8808 8829 case 69 4:8830 8831 /* Line 1806 of yacc.c */ 8832 #line 26 69"parser.yy"8809 case 695: 8810 8811 /* Line 1806 of yacc.c */ 8812 #line 2671 "parser.yy" 8833 8813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8834 break;8835 8836 case 696:8837 8838 /* Line 1806 of yacc.c */8839 #line 2683 "parser.yy"8840 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8841 8814 break; 8842 8815 … … 8851 8824 8852 8825 /* Line 1806 of yacc.c */ 8853 #line 2690 "parser.yy" 8826 #line 2687 "parser.yy" 8827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8828 break; 8829 8830 case 699: 8831 8832 /* Line 1806 of yacc.c */ 8833 #line 2692 "parser.yy" 8854 8834 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8855 8835 break; 8856 8836 8857 case 699:8858 8859 /* Line 1806 of yacc.c */ 8860 #line 269 2"parser.yy"8837 case 700: 8838 8839 /* Line 1806 of yacc.c */ 8840 #line 2694 "parser.yy" 8861 8841 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8862 8842 break; 8863 8843 8864 case 70 0:8865 8866 /* Line 1806 of yacc.c */ 8867 #line 269 4"parser.yy"8844 case 701: 8845 8846 /* Line 1806 of yacc.c */ 8847 #line 2696 "parser.yy" 8868 8848 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8869 8849 break; 8870 8850 8871 case 70 1:8872 8873 /* Line 1806 of yacc.c */ 8874 #line 269 6"parser.yy"8851 case 702: 8852 8853 /* Line 1806 of yacc.c */ 8854 #line 2698 "parser.yy" 8875 8855 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8876 8856 break; 8877 8857 8878 case 70 2:8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2 698"parser.yy"8858 case 703: 8859 8860 /* Line 1806 of yacc.c */ 8861 #line 2700 "parser.yy" 8882 8862 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8883 break;8884 8885 case 704:8886 8887 /* Line 1806 of yacc.c */8888 #line 2704 "parser.yy"8889 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8890 8863 break; 8891 8864 … … 8901 8874 /* Line 1806 of yacc.c */ 8902 8875 #line 2708 "parser.yy" 8876 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8877 break; 8878 8879 case 707: 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2710 "parser.yy" 8903 8883 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8904 8884 break; 8905 8885 8906 case 70 7:8907 8908 /* Line 1806 of yacc.c */ 8909 #line 271 3"parser.yy"8886 case 708: 8887 8888 /* Line 1806 of yacc.c */ 8889 #line 2715 "parser.yy" 8910 8890 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8911 8891 break; 8912 8892 8913 case 70 8:8914 8915 /* Line 1806 of yacc.c */ 8916 #line 271 5"parser.yy"8893 case 709: 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2717 "parser.yy" 8917 8897 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8918 8898 break; 8919 8899 8920 case 71 1:8921 8922 /* Line 1806 of yacc.c */ 8923 #line 272 5"parser.yy"8900 case 712: 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2727 "parser.yy" 8924 8904 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8925 8905 break; 8926 8906 8927 case 71 4:8928 8929 /* Line 1806 of yacc.c */ 8930 #line 273 5"parser.yy"8907 case 715: 8908 8909 /* Line 1806 of yacc.c */ 8910 #line 2737 "parser.yy" 8931 8911 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8932 8912 break; 8933 8913 8934 case 71 5:8935 8936 /* Line 1806 of yacc.c */ 8937 #line 273 7"parser.yy"8914 case 716: 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2739 "parser.yy" 8938 8918 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8939 8919 break; 8940 8920 8941 case 71 6:8942 8943 /* Line 1806 of yacc.c */ 8944 #line 27 39"parser.yy"8921 case 717: 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2741 "parser.yy" 8945 8925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8946 8926 break; 8947 8927 8948 case 71 7:8949 8950 /* Line 1806 of yacc.c */ 8951 #line 274 1"parser.yy"8928 case 718: 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2743 "parser.yy" 8952 8932 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8953 8933 break; 8954 8934 8955 case 71 8:8956 8957 /* Line 1806 of yacc.c */ 8958 #line 274 3"parser.yy"8935 case 719: 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2745 "parser.yy" 8959 8939 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8960 8940 break; 8961 8941 8962 case 7 19:8963 8964 /* Line 1806 of yacc.c */ 8965 #line 274 5"parser.yy"8942 case 720: 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2747 "parser.yy" 8966 8946 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8967 8947 break; 8968 8948 8969 case 72 0:8970 8971 /* Line 1806 of yacc.c */ 8972 #line 275 2"parser.yy"8949 case 721: 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2754 "parser.yy" 8973 8953 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8974 8954 break; 8975 8955 8976 case 72 1:8977 8978 /* Line 1806 of yacc.c */ 8979 #line 275 4"parser.yy"8956 case 722: 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2756 "parser.yy" 8980 8960 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8981 8961 break; 8982 8962 8983 case 72 2:8984 8985 /* Line 1806 of yacc.c */ 8986 #line 275 6"parser.yy"8963 case 723: 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2758 "parser.yy" 8987 8967 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8988 8968 break; 8989 8969 8990 case 72 3:8991 8992 /* Line 1806 of yacc.c */ 8993 #line 27 58"parser.yy"8970 case 724: 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2760 "parser.yy" 8994 8974 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8995 8975 break; 8996 8976 8997 case 72 4:8998 8999 /* Line 1806 of yacc.c */ 9000 #line 276 0"parser.yy"8977 case 725: 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2762 "parser.yy" 9001 8981 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9002 8982 break; 9003 8983 9004 case 72 5:9005 9006 /* Line 1806 of yacc.c */ 9007 #line 276 3"parser.yy"8984 case 726: 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2765 "parser.yy" 9008 8988 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9009 8989 break; 9010 8990 9011 case 72 6:9012 9013 /* Line 1806 of yacc.c */ 9014 #line 276 5"parser.yy"8991 case 727: 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2767 "parser.yy" 9015 8995 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9016 8996 break; 9017 8997 9018 case 72 7:9019 9020 /* Line 1806 of yacc.c */ 9021 #line 276 7"parser.yy"8998 case 728: 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2769 "parser.yy" 9022 9002 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9023 9003 break; 9024 9004 9025 case 72 8:9026 9027 /* Line 1806 of yacc.c */ 9028 #line 27 69"parser.yy"9005 case 729: 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2771 "parser.yy" 9029 9009 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9030 9010 break; 9031 9011 9032 case 7 29:9033 9034 /* Line 1806 of yacc.c */ 9035 #line 277 1"parser.yy"9012 case 730: 9013 9014 /* Line 1806 of yacc.c */ 9015 #line 2773 "parser.yy" 9036 9016 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9037 9017 break; 9038 9018 9039 case 73 0:9040 9041 /* Line 1806 of yacc.c */ 9042 #line 277 6"parser.yy"9019 case 731: 9020 9021 /* Line 1806 of yacc.c */ 9022 #line 2778 "parser.yy" 9043 9023 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9044 9024 break; 9045 9025 9046 case 73 1:9047 9048 /* Line 1806 of yacc.c */ 9049 #line 27 78"parser.yy"9026 case 732: 9027 9028 /* Line 1806 of yacc.c */ 9029 #line 2780 "parser.yy" 9050 9030 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9051 9031 break; 9052 9032 9053 case 73 2:9054 9055 /* Line 1806 of yacc.c */ 9056 #line 278 3"parser.yy"9033 case 733: 9034 9035 /* Line 1806 of yacc.c */ 9036 #line 2785 "parser.yy" 9057 9037 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9058 9038 break; 9059 9039 9060 case 73 3:9061 9062 /* Line 1806 of yacc.c */ 9063 #line 278 5"parser.yy"9040 case 734: 9041 9042 /* Line 1806 of yacc.c */ 9043 #line 2787 "parser.yy" 9064 9044 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9065 9045 break; 9066 9046 9067 case 73 5:9068 9069 /* Line 1806 of yacc.c */ 9070 #line 281 2"parser.yy"9047 case 736: 9048 9049 /* Line 1806 of yacc.c */ 9050 #line 2814 "parser.yy" 9071 9051 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9072 9052 break; 9073 9053 9074 case 7 39:9075 9076 /* Line 1806 of yacc.c */ 9077 #line 282 3"parser.yy"9054 case 740: 9055 9056 /* Line 1806 of yacc.c */ 9057 #line 2825 "parser.yy" 9078 9058 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9079 9059 break; 9080 9060 9081 case 74 0:9082 9083 /* Line 1806 of yacc.c */ 9084 #line 282 5"parser.yy"9061 case 741: 9062 9063 /* Line 1806 of yacc.c */ 9064 #line 2827 "parser.yy" 9085 9065 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9086 9066 break; 9087 9067 9088 case 74 1:9089 9090 /* Line 1806 of yacc.c */ 9091 #line 282 7"parser.yy"9068 case 742: 9069 9070 /* Line 1806 of yacc.c */ 9071 #line 2829 "parser.yy" 9092 9072 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9093 9073 break; 9094 9074 9095 case 74 2:9096 9097 /* Line 1806 of yacc.c */ 9098 #line 28 29"parser.yy"9075 case 743: 9076 9077 /* Line 1806 of yacc.c */ 9078 #line 2831 "parser.yy" 9099 9079 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9100 9080 break; 9101 9081 9102 case 74 3:9103 9104 /* Line 1806 of yacc.c */ 9105 #line 283 1"parser.yy"9082 case 744: 9083 9084 /* Line 1806 of yacc.c */ 9085 #line 2833 "parser.yy" 9106 9086 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9107 9087 break; 9108 9088 9109 case 74 4:9110 9111 /* Line 1806 of yacc.c */ 9112 #line 283 3"parser.yy"9089 case 745: 9090 9091 /* Line 1806 of yacc.c */ 9092 #line 2835 "parser.yy" 9113 9093 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9114 9094 break; 9115 9095 9116 case 74 5:9117 9118 /* Line 1806 of yacc.c */ 9119 #line 284 0"parser.yy"9096 case 746: 9097 9098 /* Line 1806 of yacc.c */ 9099 #line 2842 "parser.yy" 9120 9100 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9121 9101 break; 9122 9102 9123 case 74 6:9124 9125 /* Line 1806 of yacc.c */ 9126 #line 284 2"parser.yy"9103 case 747: 9104 9105 /* Line 1806 of yacc.c */ 9106 #line 2844 "parser.yy" 9127 9107 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9128 9108 break; 9129 9109 9130 case 74 7:9131 9132 /* Line 1806 of yacc.c */ 9133 #line 284 4"parser.yy"9110 case 748: 9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2846 "parser.yy" 9134 9114 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9135 9115 break; 9136 9116 9137 case 74 8:9138 9139 /* Line 1806 of yacc.c */ 9140 #line 284 6"parser.yy"9117 case 749: 9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2848 "parser.yy" 9141 9121 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9142 9122 break; 9143 9123 9144 case 7 49:9145 9146 /* Line 1806 of yacc.c */ 9147 #line 28 48"parser.yy"9124 case 750: 9125 9126 /* Line 1806 of yacc.c */ 9127 #line 2850 "parser.yy" 9148 9128 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9149 9129 break; 9150 9130 9151 case 75 0:9152 9153 /* Line 1806 of yacc.c */ 9154 #line 285 0"parser.yy"9131 case 751: 9132 9133 /* Line 1806 of yacc.c */ 9134 #line 2852 "parser.yy" 9155 9135 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9156 9136 break; 9157 9137 9158 case 75 1:9159 9160 /* Line 1806 of yacc.c */ 9161 #line 285 5"parser.yy"9138 case 752: 9139 9140 /* Line 1806 of yacc.c */ 9141 #line 2857 "parser.yy" 9162 9142 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9163 break;9164 9165 case 752:9166 9167 /* Line 1806 of yacc.c */9168 #line 2862 "parser.yy"9169 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }9170 9143 break; 9171 9144 … … 9177 9150 break; 9178 9151 9179 case 756: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2888 "parser.yy" 9152 case 754: 9153 9154 /* Line 1806 of yacc.c */ 9155 #line 2866 "parser.yy" 9156 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9157 break; 9158 9159 case 757: 9160 9161 /* Line 1806 of yacc.c */ 9162 #line 2890 "parser.yy" 9183 9163 { (yyval.en) = nullptr; } 9184 9164 break; 9185 9165 9186 case 75 7:9187 9188 /* Line 1806 of yacc.c */ 9189 #line 289 0"parser.yy"9166 case 758: 9167 9168 /* Line 1806 of yacc.c */ 9169 #line 2892 "parser.yy" 9190 9170 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9191 9171 break; … … 9194 9174 9195 9175 /* Line 1806 of yacc.c */ 9196 #line 91 97 "Parser/parser.cc"9176 #line 9177 "Parser/parser.cc" 9197 9177 default: break; 9198 9178 } … … 9425 9405 9426 9406 /* Line 2067 of yacc.c */ 9427 #line 289 3"parser.yy"9407 #line 2895 "parser.yy" 9428 9408 9429 9409 // ----end of grammar---- -
src/Parser/parser.h
rbb82c03 r2162c2c 73 73 FTYPE = 291, 74 74 DTYPE = 292, 75 TRAIT = 293, 76 SIZEOF = 294, 77 OFFSETOF = 295, 78 ATTRIBUTE = 296, 79 EXTENSION = 297, 80 IF = 298, 81 ELSE = 299, 82 SWITCH = 300, 83 CASE = 301, 84 DEFAULT = 302, 85 DO = 303, 86 WHILE = 304, 87 FOR = 305, 88 BREAK = 306, 89 CONTINUE = 307, 90 GOTO = 308, 91 RETURN = 309, 92 CHOOSE = 310, 93 DISABLE = 311, 94 ENABLE = 312, 95 FALLTHRU = 313, 96 TRY = 314, 97 CATCH = 315, 98 CATCHRESUME = 316, 99 FINALLY = 317, 100 THROW = 318, 101 THROWRESUME = 319, 102 AT = 320, 103 ASM = 321, 104 ALIGNAS = 322, 105 ALIGNOF = 323, 106 ATOMIC = 324, 107 GENERIC = 325, 108 NORETURN = 326, 109 STATICASSERT = 327, 110 THREADLOCAL = 328, 111 IDENTIFIER = 329, 112 QUOTED_IDENTIFIER = 330, 113 TYPEDEFname = 331, 114 TYPEGENname = 332, 115 ATTR_IDENTIFIER = 333, 116 ATTR_TYPEDEFname = 334, 117 ATTR_TYPEGENname = 335, 118 INTEGERconstant = 336, 119 CHARACTERconstant = 337, 120 STRINGliteral = 338, 121 REALDECIMALconstant = 339, 122 REALFRACTIONconstant = 340, 123 FLOATINGconstant = 341, 124 ZERO = 342, 125 ONE = 343, 126 ARROW = 344, 127 ICR = 345, 128 DECR = 346, 129 LS = 347, 130 RS = 348, 131 LE = 349, 132 GE = 350, 133 EQ = 351, 134 NE = 352, 135 ANDAND = 353, 136 OROR = 354, 137 ELLIPSIS = 355, 138 MULTassign = 356, 139 DIVassign = 357, 140 MODassign = 358, 141 PLUSassign = 359, 142 MINUSassign = 360, 143 LSassign = 361, 144 RSassign = 362, 145 ANDassign = 363, 146 ERassign = 364, 147 ORassign = 365, 148 ATassign = 366, 149 THEN = 367 75 TTYPE = 293, 76 TRAIT = 294, 77 SIZEOF = 295, 78 OFFSETOF = 296, 79 ATTRIBUTE = 297, 80 EXTENSION = 298, 81 IF = 299, 82 ELSE = 300, 83 SWITCH = 301, 84 CASE = 302, 85 DEFAULT = 303, 86 DO = 304, 87 WHILE = 305, 88 FOR = 306, 89 BREAK = 307, 90 CONTINUE = 308, 91 GOTO = 309, 92 RETURN = 310, 93 CHOOSE = 311, 94 DISABLE = 312, 95 ENABLE = 313, 96 FALLTHRU = 314, 97 TRY = 315, 98 CATCH = 316, 99 CATCHRESUME = 317, 100 FINALLY = 318, 101 THROW = 319, 102 THROWRESUME = 320, 103 AT = 321, 104 ASM = 322, 105 ALIGNAS = 323, 106 ALIGNOF = 324, 107 ATOMIC = 325, 108 GENERIC = 326, 109 NORETURN = 327, 110 STATICASSERT = 328, 111 THREADLOCAL = 329, 112 IDENTIFIER = 330, 113 QUOTED_IDENTIFIER = 331, 114 TYPEDEFname = 332, 115 TYPEGENname = 333, 116 ATTR_IDENTIFIER = 334, 117 ATTR_TYPEDEFname = 335, 118 ATTR_TYPEGENname = 336, 119 INTEGERconstant = 337, 120 CHARACTERconstant = 338, 121 STRINGliteral = 339, 122 REALDECIMALconstant = 340, 123 REALFRACTIONconstant = 341, 124 FLOATINGconstant = 342, 125 ZERO = 343, 126 ONE = 344, 127 ARROW = 345, 128 ICR = 346, 129 DECR = 347, 130 LS = 348, 131 RS = 349, 132 LE = 350, 133 GE = 351, 134 EQ = 352, 135 NE = 353, 136 ANDAND = 354, 137 OROR = 355, 138 ELLIPSIS = 356, 139 MULTassign = 357, 140 DIVassign = 358, 141 MODassign = 359, 142 PLUSassign = 360, 143 MINUSassign = 361, 144 LSassign = 362, 145 RSassign = 363, 146 ANDassign = 364, 147 ERassign = 365, 148 ORassign = 366, 149 ATassign = 367, 150 THEN = 368 150 151 }; 151 152 #endif … … 186 187 #define FTYPE 291 187 188 #define DTYPE 292 188 #define TRAIT 293 189 #define SIZEOF 294 190 #define OFFSETOF 295 191 #define ATTRIBUTE 296 192 #define EXTENSION 297 193 #define IF 298 194 #define ELSE 299 195 #define SWITCH 300 196 #define CASE 301 197 #define DEFAULT 302 198 #define DO 303 199 #define WHILE 304 200 #define FOR 305 201 #define BREAK 306 202 #define CONTINUE 307 203 #define GOTO 308 204 #define RETURN 309 205 #define CHOOSE 310 206 #define DISABLE 311 207 #define ENABLE 312 208 #define FALLTHRU 313 209 #define TRY 314 210 #define CATCH 315 211 #define CATCHRESUME 316 212 #define FINALLY 317 213 #define THROW 318 214 #define THROWRESUME 319 215 #define AT 320 216 #define ASM 321 217 #define ALIGNAS 322 218 #define ALIGNOF 323 219 #define ATOMIC 324 220 #define GENERIC 325 221 #define NORETURN 326 222 #define STATICASSERT 327 223 #define THREADLOCAL 328 224 #define IDENTIFIER 329 225 #define QUOTED_IDENTIFIER 330 226 #define TYPEDEFname 331 227 #define TYPEGENname 332 228 #define ATTR_IDENTIFIER 333 229 #define ATTR_TYPEDEFname 334 230 #define ATTR_TYPEGENname 335 231 #define INTEGERconstant 336 232 #define CHARACTERconstant 337 233 #define STRINGliteral 338 234 #define REALDECIMALconstant 339 235 #define REALFRACTIONconstant 340 236 #define FLOATINGconstant 341 237 #define ZERO 342 238 #define ONE 343 239 #define ARROW 344 240 #define ICR 345 241 #define DECR 346 242 #define LS 347 243 #define RS 348 244 #define LE 349 245 #define GE 350 246 #define EQ 351 247 #define NE 352 248 #define ANDAND 353 249 #define OROR 354 250 #define ELLIPSIS 355 251 #define MULTassign 356 252 #define DIVassign 357 253 #define MODassign 358 254 #define PLUSassign 359 255 #define MINUSassign 360 256 #define LSassign 361 257 #define RSassign 362 258 #define ANDassign 363 259 #define ERassign 364 260 #define ORassign 365 261 #define ATassign 366 262 #define THEN 367 189 #define TTYPE 293 190 #define TRAIT 294 191 #define SIZEOF 295 192 #define OFFSETOF 296 193 #define ATTRIBUTE 297 194 #define EXTENSION 298 195 #define IF 299 196 #define ELSE 300 197 #define SWITCH 301 198 #define CASE 302 199 #define DEFAULT 303 200 #define DO 304 201 #define WHILE 305 202 #define FOR 306 203 #define BREAK 307 204 #define CONTINUE 308 205 #define GOTO 309 206 #define RETURN 310 207 #define CHOOSE 311 208 #define DISABLE 312 209 #define ENABLE 313 210 #define FALLTHRU 314 211 #define TRY 315 212 #define CATCH 316 213 #define CATCHRESUME 317 214 #define FINALLY 318 215 #define THROW 319 216 #define THROWRESUME 320 217 #define AT 321 218 #define ASM 322 219 #define ALIGNAS 323 220 #define ALIGNOF 324 221 #define ATOMIC 325 222 #define GENERIC 326 223 #define NORETURN 327 224 #define STATICASSERT 328 225 #define THREADLOCAL 329 226 #define IDENTIFIER 330 227 #define QUOTED_IDENTIFIER 331 228 #define TYPEDEFname 332 229 #define TYPEGENname 333 230 #define ATTR_IDENTIFIER 334 231 #define ATTR_TYPEDEFname 335 232 #define ATTR_TYPEGENname 336 233 #define INTEGERconstant 337 234 #define CHARACTERconstant 338 235 #define STRINGliteral 339 236 #define REALDECIMALconstant 340 237 #define REALFRACTIONconstant 341 238 #define FLOATINGconstant 342 239 #define ZERO 343 240 #define ONE 344 241 #define ARROW 345 242 #define ICR 346 243 #define DECR 347 244 #define LS 348 245 #define RS 349 246 #define LE 350 247 #define GE 351 248 #define EQ 352 249 #define NE 353 250 #define ANDAND 354 251 #define OROR 355 252 #define ELLIPSIS 356 253 #define MULTassign 357 254 #define DIVassign 358 255 #define MODassign 359 256 #define PLUSassign 360 257 #define MINUSassign 361 258 #define LSassign 362 259 #define RSassign 363 260 #define ANDassign 364 261 #define ERassign 365 262 #define ORassign 366 263 #define ATassign 367 264 #define THEN 368 263 265 264 266 … … 290 292 291 293 /* Line 2068 of yacc.c */ 292 #line 29 3"Parser/parser.h"294 #line 295 "Parser/parser.h" 293 295 } YYSTYPE; 294 296 # define YYSTYPE_IS_TRIVIAL 1 -
src/Parser/parser.yy
rbb82c03 r2162c2c 83 83 %token TYPEOF LABEL // GCC 84 84 %token ENUM STRUCT UNION 85 %token OTYPE FTYPE DTYPE T RAIT // CFA85 %token OTYPE FTYPE DTYPE TTYPE TRAIT // CFA 86 86 %token SIZEOF OFFSETOF 87 87 %token ATTRIBUTE EXTENSION // GCC … … 1893 1893 { $$ = DeclarationNode::Otype; } 1894 1894 | DTYPE 1895 { $$ = DeclarationNode::Dtype; } 1896 | FTYPE 1895 1897 { $$ = DeclarationNode::Ftype; } 1896 | FTYPE1897 { $$ = DeclarationNode:: Dtype; }1898 | TTYPE 1899 { $$ = DeclarationNode::Ttype; } 1898 1900 ; 1899 1901 -
src/ResolvExpr/AdjustExprType.cc
rbb82c03 r2162c2c 22 22 class AdjustExprType : public Mutator { 23 23 typedef Mutator Parent; 24 using Parent::mutate; 24 25 public: 25 26 AdjustExprType( const TypeEnvironment &env, const SymTab::Indexer &indexer ); -
src/ResolvExpr/AlternativeFinder.cc
rbb82c03 r2162c2c 267 267 std::list< Expression* >& actuals = appExpr->get_args(); 268 268 269 std::list< Type * > formalTypes;270 std::list< Type * >::iterator formalType = formalTypes.end();271 272 269 for ( std::list< Expression* >::iterator actualExpr = actuals.begin(); actualExpr != actuals.end(); ++actualExpr ) { 273 270 Type * actualType = (*actualExpr)->get_result(); 274 271 PRINT( 275 272 std::cerr << "actual expression:" << std::endl; 276 273 (*actualExpr)->print( std::cerr, 8 ); 277 274 std::cerr << "--- results are" << std::endl; 278 (*actualExpr)->get_result()->print( std::cerr, 8 ); 279 ) 280 std::list< DeclarationWithType* >::iterator startFormal = formal; 275 actualType->print( std::cerr, 8 ); 276 ) 281 277 Cost actualCost; 282 std::list< Type * > flatActualTypes; 283 flatten( (*actualExpr)->get_result(), back_inserter( flatActualTypes ) ); 284 for ( std::list< Type* >::iterator actualType = flatActualTypes.begin(); actualType != flatActualTypes.end(); ++actualType ) { 285 286 287 // tuple handling code 288 if ( formalType == formalTypes.end() ) { 289 // the type of the formal parameter may be a tuple type. To make this easier to work with, 290 // flatten the tuple type and traverse the resulting list of types, incrementing the formal 291 // iterator once its types have been extracted. Once a particular formal parameter's type has 292 // been exhausted load the next formal parameter's type. 293 if ( formal == formals.end() ) { 294 if ( function->get_isVarArgs() ) { 295 convCost += Cost( 1, 0, 0 ); 296 break; 297 } else { 298 return Cost::infinity; 299 } 300 } 301 formalTypes.clear(); 302 flatten( (*formal)->get_type(), back_inserter( formalTypes ) ); 303 formalType = formalTypes.begin(); 304 ++formal; 278 if ( formal == formals.end() ) { 279 if ( function->get_isVarArgs() ) { 280 convCost += Cost( 1, 0, 0 ); 281 continue; 282 } else { 283 return Cost::infinity; 305 284 } 306 307 PRINT( 308 std::cerr << std::endl << "converting "; 309 (*actualType)->print( std::cerr, 8 ); 310 std::cerr << std::endl << " to "; 311 (*formalType)->print( std::cerr, 8 ); 312 ) 313 Cost newCost = conversionCost( *actualType, *formalType, indexer, alt.env ); 314 PRINT( 315 std::cerr << std::endl << "cost is" << newCost << std::endl; 316 ) 317 318 if ( newCost == Cost::infinity ) { 319 return newCost; 320 } 321 convCost += newCost; 322 actualCost += newCost; 323 324 convCost += Cost( 0, polyCost( *formalType, alt.env, indexer ) + polyCost( *actualType, alt.env, indexer ), 0 ); 325 326 formalType++; 327 } 285 } 286 Type * formalType = (*formal)->get_type(); 287 PRINT( 288 std::cerr << std::endl << "converting "; 289 actualType->print( std::cerr, 8 ); 290 std::cerr << std::endl << " to "; 291 formalType->print( std::cerr, 8 ); 292 ) 293 Cost newCost = conversionCost( actualType, formalType, indexer, alt.env ); 294 PRINT( 295 std::cerr << std::endl << "cost is" << newCost << std::endl; 296 ) 297 298 if ( newCost == Cost::infinity ) { 299 return newCost; 300 } 301 convCost += newCost; 302 actualCost += newCost; 328 303 if ( actualCost != Cost( 0, 0, 0 ) ) { 329 std::list< DeclarationWithType* >::iterator startFormalPlusOne = startFormal; 330 startFormalPlusOne++; 331 if ( formal == startFormalPlusOne ) { 332 // not a tuple type 333 Type *newType = (*startFormal)->get_type()->clone(); 334 alt.env.apply( newType ); 335 *actualExpr = new CastExpr( *actualExpr, newType ); 336 } else { 337 TupleType *newType = new TupleType( Type::Qualifiers() ); 338 for ( std::list< DeclarationWithType* >::iterator i = startFormal; i != formal; ++i ) { 339 newType->get_types().push_back( (*i)->get_type()->clone() ); 340 } 341 alt.env.apply( newType ); 342 *actualExpr = new CastExpr( *actualExpr, newType ); 343 } 344 } 345 304 Type *newType = formalType->clone(); 305 alt.env.apply( newType ); 306 *actualExpr = new CastExpr( *actualExpr, newType ); 307 } 308 convCost += Cost( 0, polyCost( formalType, alt.env, indexer ) + polyCost( actualType, alt.env, indexer ), 0 ); 309 ++formal; // can't be in for-loop update because of the continue 346 310 } 347 311 if ( formal != formals.end() ) { … … 364 328 } 365 329 convCost += newCost; 366 367 330 convCost += Cost( 0, polyCost( assert->second.formalType, alt.env, indexer ) + polyCost( assert->second.actualType, alt.env, indexer ), 0 ); 368 331 } … … 376 339 unifiableVars[ (*tyvar)->get_name() ] = TypeDecl::Data{ *tyvar }; 377 340 for ( std::list< DeclarationWithType* >::iterator assert = (*tyvar)->get_assertions().begin(); assert != (*tyvar)->get_assertions().end(); ++assert ) { 378 needAssertions[ *assert ] = true;341 needAssertions[ *assert ].isUsed = true; 379 342 } 380 343 /// needAssertions.insert( needAssertions.end(), (*tyvar)->get_assertions().begin(), (*tyvar)->get_assertions().end() ); … … 388 351 if ( TupleType * tupleType = dynamic_cast< TupleType * >( formalType ) ) { 389 352 // formalType is a TupleType - group actuals into a TupleExpr whose type unifies with the TupleType 390 TupleExpr * tupleExpr = new TupleExpr();353 std::list< Expression * > exprs; 391 354 for ( Type * type : *tupleType ) { 392 if ( ! instantiateArgument( type, defaultValue, actualIt, actualEnd, openVars, resultEnv, resultNeed, resultHave, indexer, cost, back_inserter( tupleExpr->get_exprs()) ) ) {393 delete tupleExpr;355 if ( ! instantiateArgument( type, defaultValue, actualIt, actualEnd, openVars, resultEnv, resultNeed, resultHave, indexer, cost, back_inserter( exprs ) ) ) { 356 deleteAll( exprs ); 394 357 return false; 395 358 } 396 359 } 397 tupleExpr->set_result( Tuples::makeTupleType( tupleExpr->get_exprs() ) ); 398 *out++ = tupleExpr; 360 *out++ = new TupleExpr( exprs ); 361 } else if ( TypeInstType * ttype = Tuples::isTtype( formalType ) ) { 362 // xxx - mixing default arguments with variadic?? 363 std::list< Expression * > exprs; 364 for ( ; actualIt != actualEnd; ++actualIt ) { 365 exprs.push_back( actualIt->expr->clone() ); 366 cost += actualIt->cost; 367 } 368 Expression * arg = nullptr; 369 if ( exprs.size() == 1 && Tuples::isTtype( exprs.front()->get_result() ) ) { 370 // the case where a ttype value is passed directly is special, e.g. for argument forwarding purposes 371 // xxx - what if passing multiple arguments, last of which is ttype? 372 // xxx - what would happen if unify was changed so that unifying tuple types flattened both before unifying lists? then pass in TupleType(ttype) below. 373 arg = exprs.front(); 374 } else { 375 arg = new TupleExpr( exprs ); 376 } 377 assert( arg && arg->get_result() ); 378 if ( ! unify( ttype, arg->get_result(), resultEnv, resultNeed, resultHave, openVars, indexer ) ) { 379 return false; 380 } 381 *out++ = arg; 399 382 } else if ( actualIt != actualEnd ) { 400 383 // both actualType and formalType are atomic (non-tuple) types - if they unify … … 483 466 void addToIndexer( AssertionSet &assertSet, SymTab::Indexer &indexer ) { 484 467 for ( AssertionSet::iterator i = assertSet.begin(); i != assertSet.end(); ++i ) { 485 if ( i->second == true) {468 if ( i->second.isUsed ) { 486 469 i->first->accept( indexer ); 487 470 } … … 494 477 if ( begin == end ) { 495 478 if ( newNeed.empty() ) { 479 PRINT( 480 std::cerr << "all assertions satisfied, output alternative: "; 481 newAlt.print( std::cerr ); 482 std::cerr << std::endl; 483 ); 496 484 *out++ = newAlt; 497 485 return; … … 510 498 511 499 ForwardIterator cur = begin++; 512 if ( ! cur->second ) {500 if ( ! cur->second.isUsed ) { 513 501 inferRecursive( begin, end, newAlt, openVars, decls, newNeed, /*needParents,*/ level, indexer, out ); 514 502 return; // xxx - should this continue? previously this wasn't here, and it looks like it should be … … 554 542 assert( (*candidate)->get_uniqueId() ); 555 543 DeclarationWithType *candDecl = static_cast< DeclarationWithType* >( Declaration::declFromId( (*candidate)->get_uniqueId() ) ); 544 545 // everything with an empty idChain was pulled in by the current assertion. 546 // add current assertion's idChain + current assertion's ID so that the correct inferParameters can be found. 547 for ( auto & a : newerNeed ) { 548 if ( a.second.idChain.empty() ) { 549 a.second.idChain = cur->second.idChain; 550 a.second.idChain.push_back( curDecl->get_uniqueId() ); 551 } 552 } 553 556 554 //AssertionParentSet newNeedParents( needParents ); 557 555 // skip repeatingly-self-recursive assertion satisfaction … … 569 567 ) 570 568 ApplicationExpr *appExpr = static_cast< ApplicationExpr* >( newerAlt.expr ); 569 // follow the current assertion's ID chain to find the correct set of inferred parameters to add the candidate to (i.e. the set of inferred parameters belonging to the entity which requested the assertion parameter). 570 InferredParams * inferParameters = &appExpr->get_inferParams(); 571 for ( UniqueId id : cur->second.idChain ) { 572 inferParameters = (*inferParameters)[ id ].inferParams.get(); 573 } 571 574 // XXX: this is a memory leak, but adjType can't be deleted because it might contain assertions 572 appExpr->get_inferParams()[ curDecl->get_uniqueId() ] = ParamEntry( (*candidate)->get_uniqueId(), adjType->clone(), curDecl->get_type()->clone(), varExpr );575 (*inferParameters)[ curDecl->get_uniqueId() ] = ParamEntry( (*candidate)->get_uniqueId(), adjType->clone(), curDecl->get_type()->clone(), varExpr ); 573 576 inferRecursive( begin, end, newerAlt, newOpenVars, newDecls, newerNeed, /*newNeedParents,*/ level, indexer, out ); 574 577 } else { … … 609 612 makeUnifiableVars( funcType, openVars, resultNeed ); 610 613 AltList instantiatedActuals; // filled by instantiate function 611 if ( targetType && ! targetType->isVoid() ) {614 if ( targetType && ! targetType->isVoid() && ! funcType->get_returnVals().empty() ) { 612 615 // attempt to narrow based on expected target type 613 616 Type * returnType = funcType->get_returnVals().front()->get_type(); … … 1075 1078 } 1076 1079 1077 void AlternativeFinder::visit( TupleExpr *tupleExpr ) {1080 void AlternativeFinder::visit( UntypedTupleExpr *tupleExpr ) { 1078 1081 std::list< AlternativeFinder > subExprAlternatives; 1079 1082 findSubExprs( tupleExpr->get_exprs().begin(), tupleExpr->get_exprs().end(), back_inserter( subExprAlternatives ) ); … … 1081 1084 combos( subExprAlternatives.begin(), subExprAlternatives.end(), back_inserter( possibilities ) ); 1082 1085 for ( std::list< AltList >::const_iterator i = possibilities.begin(); i != possibilities.end(); ++i ) { 1083 TupleExpr *newExpr = new TupleExpr; 1084 makeExprList( *i, newExpr->get_exprs() ); 1085 newExpr->set_result( Tuples::makeTupleType( newExpr->get_exprs() ) ); 1086 std::list< Expression * > exprs; 1087 makeExprList( *i, exprs ); 1086 1088 1087 1089 TypeEnvironment compositeEnv; 1088 1090 simpleCombineEnvironments( i->begin(), i->end(), compositeEnv ); 1089 alternatives.push_back( Alternative( new Expr, compositeEnv, sumCost( *i ) ) );1091 alternatives.push_back( Alternative( new TupleExpr( exprs ) , compositeEnv, sumCost( *i ) ) ); 1090 1092 } // for 1093 } 1094 1095 void AlternativeFinder::visit( TupleExpr *tupleExpr ) { 1096 alternatives.push_back( Alternative( tupleExpr->clone(), env, Cost::zero ) ); 1091 1097 } 1092 1098 -
src/ResolvExpr/AlternativeFinder.h
rbb82c03 r2162c2c 64 64 virtual void visit( ConditionalExpr *conditionalExpr ); 65 65 virtual void visit( CommaExpr *commaExpr ); 66 virtual void visit( TupleExpr *tupleExpr );67 66 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ); 68 67 virtual void visit( ConstructorExpr * ctorExpr ); 68 virtual void visit( UntypedTupleExpr *tupleExpr ); 69 virtual void visit( TupleExpr *tupleExpr ); 69 70 virtual void visit( TupleIndexExpr *tupleExpr ); 70 71 virtual void visit( TupleAssignExpr *tupleExpr ); -
src/ResolvExpr/FindOpenVars.cc
rbb82c03 r2162c2c 50 50 openVars[ (*i)->get_name() ] = TypeDecl::Data{ (*i) }; 51 51 for ( std::list< DeclarationWithType* >::const_iterator assert = (*i)->get_assertions().begin(); assert != (*i)->get_assertions().end(); ++assert ) { 52 needAssertions[ *assert ] = false;52 needAssertions[ *assert ].isUsed = false; 53 53 } 54 54 /// cloneAll( (*i)->get_assertions(), needAssertions ); … … 59 59 closedVars[ (*i)->get_name() ] = TypeDecl::Data{ (*i) }; 60 60 for ( std::list< DeclarationWithType* >::const_iterator assert = (*i)->get_assertions().begin(); assert != (*i)->get_assertions().end(); ++assert ) { 61 haveAssertions[ *assert ] = false;61 haveAssertions[ *assert ].isUsed = false; 62 62 } 63 63 /// cloneAll( (*i)->get_assertions(), haveAssertions ); -
src/ResolvExpr/TypeEnvironment.cc
rbb82c03 r2162c2c 75 75 for ( AssertionSet::const_iterator i = assertions.begin(); i != assertions.end(); ++i ) { 76 76 i->first->print( os, indent ); 77 if ( i->second ) {77 if ( i->second.isUsed ) { 78 78 os << "(used)"; 79 79 } else { -
src/ResolvExpr/TypeEnvironment.h
rbb82c03 r2162c2c 31 31 bool operator()( DeclarationWithType * d1, DeclarationWithType * d2 ) const; 32 32 }; 33 typedef std::map< DeclarationWithType*, bool, AssertCompare > AssertionSet; 33 struct AssertionSetValue { 34 bool isUsed; 35 // chain of Unique IDs of the assertion declarations. The first ID in the chain is the ID of an assertion on the current type, 36 // with each successive ID being the ID of an assertion pulled in by the previous ID. The last ID in the chain is 37 // the ID of the assertion that pulled in the current assertion. 38 std::list< UniqueId > idChain; 39 }; 40 typedef std::map< DeclarationWithType*, AssertionSetValue, AssertCompare > AssertionSet; 34 41 typedef std::map< std::string, TypeDecl::Data > OpenVarSet; 35 42 -
src/ResolvExpr/Unify.cc
rbb82c03 r2162c2c 26 26 #include "SymTab/Indexer.h" 27 27 #include "Common/utility.h" 28 28 #include "Tuples/Tuples.h" 29 29 30 30 // #define DEBUG … … 157 157 // if the type variable is specified to be a complete type then the incoming 158 158 // type must also be complete 159 // xxx - should this also check that type is not a tuple type and that it's not a ttype? 159 160 return ! isFtype( type, indexer ) && (! data.isComplete || isComplete( type )); 160 161 case TypeDecl::Ftype: 161 162 return isFtype( type, indexer ); 163 case TypeDecl::Ttype: 164 // ttype unifies with any tuple type 165 return dynamic_cast< TupleType * >( type ); 162 166 } // switch 163 assert( false );164 167 return false; 165 168 } … … 431 434 if ( i != assertions.end() ) { 432 435 /// std::cerr << "found it!" << std::endl; 433 i->second = true;436 i->second.isUsed = true; 434 437 } // if 435 438 } … … 485 488 } 486 489 490 template< typename Iterator > 491 std::unique_ptr<Type> combineTypes( Iterator begin, Iterator end ) { 492 std::list< Type * > types; 493 for ( ; begin != end; ++begin ) { 494 // it's guaranteed that a ttype variable will be bound to a flat tuple, so ensure that this results in a flat tuple 495 flatten( (*begin)->get_type(), back_inserter( types ) ); 496 } 497 return std::unique_ptr<Type>( new TupleType( Type::Qualifiers(), types ) ); 498 } 499 487 500 template< typename Iterator1, typename Iterator2 > 488 501 bool unifyDeclList( Iterator1 list1Begin, Iterator1 list1End, Iterator2 list2Begin, Iterator2 list2End, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, const OpenVarSet &openVars, const SymTab::Indexer &indexer ) { 489 502 for ( ; list1Begin != list1End && list2Begin != list2End; ++list1Begin, ++list2Begin ) { 490 // Type * commonType; 491 // if ( ! unifyInexact( (*list1Begin)->get_type(), (*list2Begin)->get_type(), env, needAssertions, haveAssertions, openVars, WidenMode( true, true ), indexer, commonType ) ) { 492 if ( ! unifyExact( (*list1Begin)->get_type(), (*list2Begin)->get_type(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ) ) { 503 Type * t1 = (*list1Begin)->get_type(); 504 Type * t2 = (*list2Begin)->get_type(); 505 bool isTtype1 = Tuples::isTtype( t1 ); 506 bool isTtype2 = Tuples::isTtype( t2 ); 507 // xxx - assumes ttype must be last parameter 508 // xxx - there may be a nice way to refactor this, but be careful because the argument positioning might matter in some cases. 509 if ( isTtype1 && ! isTtype2 ) { 510 // combine all of the things in list2, then unify 511 return unifyExact( t1, combineTypes( list2Begin, list2End ).get(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ); 512 } else if ( isTtype2 && ! isTtype1 ) { 513 // combine all of the things in list1, then unify 514 return unifyExact( combineTypes( list1Begin, list1End ).get(), t2, env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ); 515 } else if ( ! unifyExact( t1, t2, env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ) ) { 493 516 return false; 494 517 } // if 495 518 } // for 496 if ( list1Begin != list1End || list2Begin != list2End ) { 497 return false; 519 // may get to the end of one argument list before the end of the other. This is only okay when the other is a ttype 520 if ( list1Begin != list1End ) { 521 // try unifying empty tuple type with ttype 522 Type * t1 = (*list1Begin)->get_type(); 523 if ( Tuples::isTtype( t1 ) ) { 524 return unifyExact( t1, combineTypes( list2Begin, list2End ).get(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ); 525 } else return false; 526 } else if ( list2Begin != list2End ) { 527 // try unifying empty tuple type with ttype 528 Type * t2 = (*list2Begin)->get_type(); 529 if ( Tuples::isTtype( t2 ) ) { 530 return unifyExact( combineTypes( list1Begin, list1End ).get(), t2, env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ); 531 } else return false; 498 532 } else { 499 533 return true; 500 534 } // if 535 } 536 537 /// Finds ttypes and replaces them with their expansion, if known. 538 /// This needs to be done so that satisfying ttype assertions is easier. 539 /// If this isn't done then argument lists can have wildly different 540 /// size and structure, when they should be compatible. 541 struct TtypeExpander : public Mutator { 542 TypeEnvironment & env; 543 TtypeExpander( TypeEnvironment & env ) : env( env ) {} 544 Type * mutate( TypeInstType * typeInst ) { 545 EqvClass eqvClass; 546 if ( env.lookup( typeInst->get_name(), eqvClass ) ) { 547 if ( eqvClass.data.kind == TypeDecl::Ttype ) { 548 // expand ttype parameter into its actual type 549 if ( eqvClass.type ) { 550 delete typeInst; 551 return eqvClass.type->clone(); 552 } 553 } 554 } 555 return typeInst; 556 } 557 }; 558 559 /// flattens a list of declarations, so that each tuple type has a single declaration. 560 /// makes use of TtypeExpander to ensure ttypes are flat as well. 561 void flattenList( std::list< DeclarationWithType * > src, std::list< DeclarationWithType * > & dst, TypeEnvironment & env ) { 562 dst.clear(); 563 for ( DeclarationWithType * dcl : src ) { 564 TtypeExpander expander( env ); 565 dcl->acceptMutator( expander ); 566 std::list< Type * > types; 567 flatten( dcl->get_type(), back_inserter( types ) ); 568 for ( Type * t : types ) { 569 dst.push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::C, nullptr, t, nullptr ) ); 570 } 571 delete dcl; 572 } 501 573 } 502 574 … … 504 576 FunctionType *otherFunction = dynamic_cast< FunctionType* >( type2 ); 505 577 if ( otherFunction && functionType->get_isVarArgs() == otherFunction->get_isVarArgs() ) { 506 if ( functionType->get_parameters().size() == otherFunction->get_parameters().size() && functionType->get_returnVals().size() == otherFunction->get_returnVals().size() ) { 507 if ( unifyDeclList( functionType->get_parameters().begin(), functionType->get_parameters().end(), otherFunction->get_parameters().begin(), otherFunction->get_parameters().end(), env, needAssertions, haveAssertions, openVars, indexer ) ) { 508 if ( unifyDeclList( functionType->get_returnVals().begin(), functionType->get_returnVals().end(), otherFunction->get_returnVals().begin(), otherFunction->get_returnVals().end(), env, needAssertions, haveAssertions, openVars, indexer ) ) { 509 578 // flatten the parameter lists for both functions so that tuple structure 579 // doesn't affect unification. Must be a clone so that the types don't change. 580 std::unique_ptr<FunctionType> flatFunc( functionType->clone() ); 581 std::unique_ptr<FunctionType> flatOther( otherFunction->clone() ); 582 flattenList( flatFunc->get_parameters(), flatFunc->get_parameters(), env ); 583 flattenList( flatOther->get_parameters(), flatOther->get_parameters(), env ); 584 585 // sizes don't have to match if ttypes are involved; need to be more precise wrt where the ttype is to prevent errors 586 if ( (flatFunc->get_parameters().size() == flatOther->get_parameters().size() && flatFunc->get_returnVals().size() == flatOther->get_returnVals().size()) || flatFunc->isTtype() || flatOther->isTtype() ) { 587 if ( unifyDeclList( flatFunc->get_parameters().begin(), flatFunc->get_parameters().end(), flatOther->get_parameters().begin(), flatOther->get_parameters().end(), env, needAssertions, haveAssertions, openVars, indexer ) ) { 588 if ( unifyDeclList( flatFunc->get_returnVals().begin(), flatFunc->get_returnVals().end(), flatOther->get_returnVals().begin(), flatOther->get_returnVals().end(), env, needAssertions, haveAssertions, openVars, indexer ) ) { 589 590 // the original types must be used in mark assertions, since pointer comparisons are used 510 591 markAssertions( haveAssertions, needAssertions, functionType ); 511 592 markAssertions( haveAssertions, needAssertions, otherFunction ); -
src/ResolvExpr/typeops.h
rbb82c03 r2162c2c 164 164 } 165 165 } else { 166 *out++ = type ;166 *out++ = type->clone(); 167 167 } 168 168 } -
src/SymTab/Indexer.cc
rbb82c03 r2162c2c 453 453 } 454 454 455 void Indexer::visit( TupleExpr *tupleExpr ) {456 acceptNewScope( tupleExpr->get_result(), *this );457 acceptAll( tupleExpr->get_exprs(), *this );458 }459 460 void Indexer::visit( TupleAssignExpr *tupleExpr ) {461 acceptNewScope( tupleExpr->get_result(), *this );462 maybeAccept( tupleExpr->get_stmtExpr(), *this );463 }464 465 455 void Indexer::visit( TypeExpr *typeExpr ) { 466 456 acceptNewScope( typeExpr->get_result(), *this ); … … 474 464 } 475 465 466 void Indexer::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) { 467 acceptNewScope( impCpCtorExpr->get_result(), *this ); 468 maybeAccept( impCpCtorExpr->get_callExpr(), *this ); 469 acceptAll( impCpCtorExpr->get_tempDecls(), *this ); 470 acceptAll( impCpCtorExpr->get_returnDecls(), *this ); 471 acceptAll( impCpCtorExpr->get_dtors(), *this ); 472 } 473 474 void Indexer::visit( ConstructorExpr * ctorExpr ) { 475 acceptNewScope( ctorExpr->get_result(), *this ); 476 maybeAccept( ctorExpr->get_callExpr(), *this ); 477 } 478 479 void Indexer::visit( CompoundLiteralExpr *compLitExpr ) { 480 acceptNewScope( compLitExpr->get_result(), *this ); 481 maybeAccept( compLitExpr->get_type(), *this ); 482 maybeAccept( compLitExpr->get_initializer(), *this ); 483 } 484 476 485 void Indexer::visit( UntypedValofExpr *valofExpr ) { 477 486 acceptNewScope( valofExpr->get_result(), *this ); 478 487 maybeAccept( valofExpr->get_body(), *this ); 488 } 489 490 void Indexer::visit( RangeExpr *rangeExpr ) { 491 maybeAccept( rangeExpr->get_low(), *this ); 492 maybeAccept( rangeExpr->get_high(), *this ); 493 } 494 495 void Indexer::visit( UntypedTupleExpr *tupleExpr ) { 496 acceptNewScope( tupleExpr->get_result(), *this ); 497 acceptAll( tupleExpr->get_exprs(), *this ); 498 } 499 500 void Indexer::visit( TupleExpr *tupleExpr ) { 501 acceptNewScope( tupleExpr->get_result(), *this ); 502 acceptAll( tupleExpr->get_exprs(), *this ); 503 } 504 505 void Indexer::visit( TupleIndexExpr *tupleExpr ) { 506 acceptNewScope( tupleExpr->get_result(), *this ); 507 maybeAccept( tupleExpr->get_tuple(), *this ); 508 } 509 510 void Indexer::visit( MemberTupleExpr *tupleExpr ) { 511 acceptNewScope( tupleExpr->get_result(), *this ); 512 maybeAccept( tupleExpr->get_member(), *this ); 513 maybeAccept( tupleExpr->get_aggregate(), *this ); 514 } 515 516 void Indexer::visit( TupleAssignExpr *tupleExpr ) { 517 acceptNewScope( tupleExpr->get_result(), *this ); 518 maybeAccept( tupleExpr->get_stmtExpr(), *this ); 519 } 520 521 void Indexer::visit( StmtExpr *stmtExpr ) { 522 acceptNewScope( stmtExpr->get_result(), *this ); 523 maybeAccept( stmtExpr->get_statements(), *this ); 524 acceptAll( stmtExpr->get_returnDecls(), *this ); 525 acceptAll( stmtExpr->get_dtors(), *this ); 526 } 527 528 void Indexer::visit( UniqueExpr *uniqueExpr ) { 529 acceptNewScope( uniqueExpr->get_result(), *this ); 530 maybeAccept( uniqueExpr->get_expr(), *this ); 479 531 } 480 532 -
src/SymTab/Indexer.h
rbb82c03 r2162c2c 66 66 virtual void visit( TypeExpr *typeExpr ); 67 67 virtual void visit( AsmExpr *asmExpr ); 68 virtual void visit( ImplicitCopyCtorExpr *impCpCtorExpr ); 69 virtual void visit( ConstructorExpr * ctorExpr ); 70 virtual void visit( CompoundLiteralExpr *compLitExpr ); 68 71 virtual void visit( UntypedValofExpr *valofExpr ); 72 virtual void visit( RangeExpr *rangeExpr ); 73 virtual void visit( UntypedTupleExpr *tupleExpr ); 69 74 virtual void visit( TupleExpr *tupleExpr ); 75 virtual void visit( TupleIndexExpr *tupleExpr ); 76 virtual void visit( MemberTupleExpr *tupleExpr ); 70 77 virtual void visit( TupleAssignExpr *tupleExpr ); 78 virtual void visit( StmtExpr * stmtExpr ); 79 virtual void visit( UniqueExpr * uniqueExpr ); 71 80 72 81 virtual void visit( TraitInstType *contextInst ); -
src/SymTab/Mangler.cc
rbb82c03 r2162c2c 214 214 mangleName << "f"; 215 215 break; 216 case TypeDecl::Ttype: 217 mangleName << "tVARGS"; 218 break; 219 default: 220 assert( false ); 216 221 } // switch 217 222 mangleName << numStream.str(); … … 256 261 if ( ! type->get_forall().empty() ) { 257 262 std::list< std::string > assertionNames; 258 int tcount = 0, dcount = 0, fcount = 0 ;263 int tcount = 0, dcount = 0, fcount = 0, vcount = 0; 259 264 mangleName << "A"; 260 265 for ( Type::ForallList::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) { … … 269 274 fcount++; 270 275 break; 276 case TypeDecl::Ttype: 277 vcount++; 278 break; 279 default: 280 assert( false ); 271 281 } // switch 272 282 varNums[ (*i )->get_name() ] = std::pair< int, int >( nextVarNum++, (int )(*i )->get_kind() ); … … 280 290 } // for 281 291 } // for 282 mangleName << tcount << "_" << dcount << "_" << fcount << "_" ;292 mangleName << tcount << "_" << dcount << "_" << fcount << "_" << vcount << "_"; 283 293 std::copy( assertionNames.begin(), assertionNames.end(), std::ostream_iterator< std::string >( mangleName, "" ) ); 284 294 mangleName << "_"; -
src/SynTree/ApplicationExpr.cc
rbb82c03 r2162c2c 24 24 25 25 ParamEntry::ParamEntry( const ParamEntry &other ) : 26 decl( other.decl ), actualType( maybeClone( other.actualType ) ), formalType( maybeClone( other.formalType ) ), expr( maybeClone( other.expr ) ) {26 decl( other.decl ), actualType( maybeClone( other.actualType ) ), formalType( maybeClone( other.formalType ) ), expr( maybeClone( other.expr ) ), inferParams( new InferredParams( *other.inferParams ) ) { 27 27 } 28 28 … … 34 34 formalType = maybeClone( other.formalType ); 35 35 expr = maybeClone( other.expr ); 36 *inferParams = *other.inferParams; 36 37 return *this; 37 38 } … … 62 63 } 63 64 65 void printInferParams( const InferredParams & inferParams, std::ostream &os, int indent, int level ) { 66 if ( ! inferParams.empty() ) { 67 os << std::string(indent, ' ') << "with inferred parameters " << level << ":" << std::endl; 68 for ( InferredParams::const_iterator i = inferParams.begin(); i != inferParams.end(); ++i ) { 69 os << std::string(indent+2, ' '); 70 Declaration::declFromId( i->second.decl )->printShort( os, indent+2 ); 71 os << std::endl; 72 printInferParams( *i->second.inferParams, os, indent+2, level+1 ); 73 } // for 74 } // if 75 } 76 64 77 void ApplicationExpr::print( std::ostream &os, int indent ) const { 65 78 os << "Application of" << std::endl << std::string(indent+2, ' '); … … 69 82 printAll( args, os, indent+2 ); 70 83 } // if 71 if ( ! inferParams.empty() ) { 72 os << std::string(indent, ' ') << "with inferred parameters:" << std::endl; 73 for ( InferredParams::const_iterator i = inferParams.begin(); i != inferParams.end(); ++i ) { 74 os << std::string(indent+2, ' '); 75 Declaration::declFromId( i->second.decl )->printShort( os, indent+2 ); 76 os << std::endl; 77 } // for 78 } // if 84 printInferParams( inferParams, os, indent+2, 0 ); 79 85 Expression::print( os, indent ); 80 86 } -
src/SynTree/Declaration.cc
rbb82c03 r2162c2c 57 57 58 58 std::ostream & operator<<( std::ostream & out, const Declaration * decl ) { 59 decl->print( out ); 59 if ( decl ){ 60 decl->print( out ); 61 } else { 62 out << "nullptr"; 63 } 60 64 return out; 61 65 } -
src/SynTree/Declaration.h
rbb82c03 r2162c2c 179 179 typedef NamedTypeDecl Parent; 180 180 public: 181 enum Kind { Any, Dtype, Ftype };181 enum Kind { Any, Dtype, Ftype, Ttype }; 182 182 /// Data extracted from a type decl 183 183 struct Data { -
src/SynTree/Expression.cc
rbb82c03 r2162c2c 672 672 673 673 std::ostream & operator<<( std::ostream & out, const Expression * expr ) { 674 expr->print( out ); 674 if ( expr ) { 675 expr->print( out ); 676 } else { 677 out << "nullptr"; 678 } 675 679 return out; 676 680 } -
src/SynTree/Expression.h
rbb82c03 r2162c2c 54 54 }; 55 55 56 struct ParamEntry; 57 typedef std::map< UniqueId, ParamEntry > InferredParams; 58 56 59 /// ParamEntry contains the i.d. of a declaration and a type that is derived from that declaration, 57 60 /// but subject to decay-to-pointer and type parameter renaming 58 61 struct ParamEntry { 59 ParamEntry(): decl( 0 ), actualType( 0 ), formalType( 0 ), expr( 0 ) {}60 ParamEntry( UniqueId decl, Type *actualType, Type *formalType, Expression* expr ): decl( decl ), actualType( actualType ), formalType( formalType ), expr( expr ) {}62 ParamEntry(): decl( 0 ), actualType( 0 ), formalType( 0 ), expr( 0 ), inferParams( new InferredParams ) {} 63 ParamEntry( UniqueId decl, Type *actualType, Type *formalType, Expression* expr ): decl( decl ), actualType( actualType ), formalType( formalType ), expr( expr ), inferParams( new InferredParams ) {} 61 64 ParamEntry( const ParamEntry &other ); 62 65 ~ParamEntry(); … … 67 70 Type *formalType; 68 71 Expression* expr; 69 }; 70 71 typedef std::map< UniqueId, ParamEntry > InferredParams; 72 std::unique_ptr< InferredParams > inferParams; 73 }; 72 74 73 75 /// ApplicationExpr represents the application of a function to a set of parameters. This is the result of running an … … 634 636 }; 635 637 638 /// UntypedTupleExpr represents a tuple expression ( [a, b, c] ) before resolution 639 class UntypedTupleExpr : public Expression { 640 public: 641 UntypedTupleExpr( const std::list< Expression * > & exprs, Expression *_aname = nullptr ); 642 UntypedTupleExpr( const UntypedTupleExpr &other ); 643 virtual ~UntypedTupleExpr(); 644 645 std::list<Expression*>& get_exprs() { return exprs; } 646 647 virtual UntypedTupleExpr *clone() const { return new UntypedTupleExpr( *this ); } 648 virtual void accept( Visitor &v ) { v.visit( this ); } 649 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 650 virtual void print( std::ostream &os, int indent = 0 ) const; 651 private: 652 std::list<Expression*> exprs; 653 }; 654 636 655 /// TupleExpr represents a tuple expression ( [a, b, c] ) 637 656 class TupleExpr : public Expression { 638 657 public: 639 TupleExpr( const std::list< Expression * > & exprs = std::list< Expression * >(), Expression *_aname = nullptr );658 TupleExpr( const std::list< Expression * > & exprs, Expression *_aname = nullptr ); 640 659 TupleExpr( const TupleExpr &other ); 641 660 virtual ~TupleExpr(); 642 661 643 void set_exprs( std::list<Expression*> newValue ) { exprs = newValue; }644 662 std::list<Expression*>& get_exprs() { return exprs; } 645 663 -
src/SynTree/FunctionType.cc
rbb82c03 r2162c2c 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // FunctionType.cc -- 7 // FunctionType.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 19 19 #include "Declaration.h" 20 20 #include "Common/utility.h" 21 #include "Tuples/Tuples.h" 21 22 22 23 FunctionType::FunctionType( const Type::Qualifiers &tq, bool isVarArgs ) : Type( tq ), isVarArgs( isVarArgs ) { … … 31 32 deleteAll( returnVals ); 32 33 deleteAll( parameters ); 34 } 35 36 namespace { 37 bool containsTtype( const std::list<DeclarationWithType * > & l ) { 38 if ( ! l.empty() ) { 39 return Tuples::isTtype( l.back()->get_type() ); 40 } 41 return false; 42 } 43 } 44 45 bool FunctionType::isTtype() const { 46 return containsTtype( returnVals ) || containsTtype( parameters ); 33 47 } 34 48 -
src/SynTree/Mutator.cc
rbb82c03 r2162c2c 23 23 #include "Constant.h" 24 24 #include "Common/utility.h" 25 #include "TypeSubstitution.h" 25 26 26 27 Mutator::Mutator() {} … … 178 179 179 180 Expression *Mutator::mutate( ApplicationExpr *applicationExpr ) { 181 applicationExpr->set_env( maybeMutate( applicationExpr->get_env(), *this ) ); 180 182 applicationExpr->set_result( maybeMutate( applicationExpr->get_result(), *this ) ); 181 183 applicationExpr->set_function( maybeMutate( applicationExpr->get_function(), *this ) ); … … 185 187 186 188 Expression *Mutator::mutate( UntypedExpr *untypedExpr ) { 189 untypedExpr->set_env( maybeMutate( untypedExpr->get_env(), *this ) ); 187 190 untypedExpr->set_result( maybeMutate( untypedExpr->get_result(), *this ) ); 188 191 mutateAll( untypedExpr->get_args(), *this ); … … 191 194 192 195 Expression *Mutator::mutate( NameExpr *nameExpr ) { 196 nameExpr->set_env( maybeMutate( nameExpr->get_env(), *this ) ); 193 197 nameExpr->set_result( maybeMutate( nameExpr->get_result(), *this ) ); 194 198 return nameExpr; … … 196 200 197 201 Expression *Mutator::mutate( AddressExpr *addressExpr ) { 202 addressExpr->set_env( maybeMutate( addressExpr->get_env(), *this ) ); 198 203 addressExpr->set_result( maybeMutate( addressExpr->get_result(), *this ) ); 199 204 addressExpr->set_arg( maybeMutate( addressExpr->get_arg(), *this ) ); … … 202 207 203 208 Expression *Mutator::mutate( LabelAddressExpr *labelAddressExpr ) { 209 labelAddressExpr->set_env( maybeMutate( labelAddressExpr->get_env(), *this ) ); 204 210 labelAddressExpr->set_result( maybeMutate( labelAddressExpr->get_result(), *this ) ); 205 211 labelAddressExpr->set_arg( maybeMutate( labelAddressExpr->get_arg(), *this ) ); … … 208 214 209 215 Expression *Mutator::mutate( CastExpr *castExpr ) { 216 castExpr->set_env( maybeMutate( castExpr->get_env(), *this ) ); 210 217 castExpr->set_result( maybeMutate( castExpr->get_result(), *this ) ); 211 218 castExpr->set_arg( maybeMutate( castExpr->get_arg(), *this ) ); … … 214 221 215 222 Expression *Mutator::mutate( UntypedMemberExpr *memberExpr ) { 223 memberExpr->set_env( maybeMutate( memberExpr->get_env(), *this ) ); 216 224 memberExpr->set_result( maybeMutate( memberExpr->get_result(), *this ) ); 217 225 memberExpr->set_aggregate( maybeMutate( memberExpr->get_aggregate(), *this ) ); … … 221 229 222 230 Expression *Mutator::mutate( MemberExpr *memberExpr ) { 231 memberExpr->set_env( maybeMutate( memberExpr->get_env(), *this ) ); 223 232 memberExpr->set_result( maybeMutate( memberExpr->get_result(), *this ) ); 224 233 memberExpr->set_aggregate( maybeMutate( memberExpr->get_aggregate(), *this ) ); … … 227 236 228 237 Expression *Mutator::mutate( VariableExpr *variableExpr ) { 238 variableExpr->set_env( maybeMutate( variableExpr->get_env(), *this ) ); 229 239 variableExpr->set_result( maybeMutate( variableExpr->get_result(), *this ) ); 230 240 return variableExpr; … … 232 242 233 243 Expression *Mutator::mutate( ConstantExpr *constantExpr ) { 244 constantExpr->set_env( maybeMutate( constantExpr->get_env(), *this ) ); 234 245 constantExpr->set_result( maybeMutate( constantExpr->get_result(), *this ) ); 235 246 // maybeMutate( constantExpr->get_constant(), *this ) … … 238 249 239 250 Expression *Mutator::mutate( SizeofExpr *sizeofExpr ) { 251 sizeofExpr->set_env( maybeMutate( sizeofExpr->get_env(), *this ) ); 240 252 sizeofExpr->set_result( maybeMutate( sizeofExpr->get_result(), *this ) ); 241 253 if ( sizeofExpr->get_isType() ) { … … 248 260 249 261 Expression *Mutator::mutate( AlignofExpr *alignofExpr ) { 262 alignofExpr->set_env( maybeMutate( alignofExpr->get_env(), *this ) ); 250 263 alignofExpr->set_result( maybeMutate( alignofExpr->get_result(), *this ) ); 251 264 if ( alignofExpr->get_isType() ) { … … 258 271 259 272 Expression *Mutator::mutate( UntypedOffsetofExpr *offsetofExpr ) { 273 offsetofExpr->set_env( maybeMutate( offsetofExpr->get_env(), *this ) ); 260 274 offsetofExpr->set_result( maybeMutate( offsetofExpr->get_result(), *this ) ); 261 275 offsetofExpr->set_type( maybeMutate( offsetofExpr->get_type(), *this ) ); … … 264 278 265 279 Expression *Mutator::mutate( OffsetofExpr *offsetofExpr ) { 280 offsetofExpr->set_env( maybeMutate( offsetofExpr->get_env(), *this ) ); 266 281 offsetofExpr->set_result( maybeMutate( offsetofExpr->get_result(), *this ) ); 267 282 offsetofExpr->set_type( maybeMutate( offsetofExpr->get_type(), *this ) ); … … 271 286 272 287 Expression *Mutator::mutate( OffsetPackExpr *offsetPackExpr ) { 288 offsetPackExpr->set_env( maybeMutate( offsetPackExpr->get_env(), *this ) ); 273 289 offsetPackExpr->set_result( maybeMutate( offsetPackExpr->get_result(), *this ) ); 274 290 offsetPackExpr->set_type( maybeMutate( offsetPackExpr->get_type(), *this ) ); … … 277 293 278 294 Expression *Mutator::mutate( AttrExpr *attrExpr ) { 295 attrExpr->set_env( maybeMutate( attrExpr->get_env(), *this ) ); 279 296 attrExpr->set_result( maybeMutate( attrExpr->get_result(), *this ) ); 280 297 if ( attrExpr->get_isType() ) { … … 287 304 288 305 Expression *Mutator::mutate( LogicalExpr *logicalExpr ) { 306 logicalExpr->set_env( maybeMutate( logicalExpr->get_env(), *this ) ); 289 307 logicalExpr->set_result( maybeMutate( logicalExpr->get_result(), *this ) ); 290 308 logicalExpr->set_arg1( maybeMutate( logicalExpr->get_arg1(), *this ) ); … … 294 312 295 313 Expression *Mutator::mutate( ConditionalExpr *conditionalExpr ) { 314 conditionalExpr->set_env( maybeMutate( conditionalExpr->get_env(), *this ) ); 296 315 conditionalExpr->set_result( maybeMutate( conditionalExpr->get_result(), *this ) ); 297 316 conditionalExpr->set_arg1( maybeMutate( conditionalExpr->get_arg1(), *this ) ); … … 302 321 303 322 Expression *Mutator::mutate( CommaExpr *commaExpr ) { 323 commaExpr->set_env( maybeMutate( commaExpr->get_env(), *this ) ); 304 324 commaExpr->set_result( maybeMutate( commaExpr->get_result(), *this ) ); 305 325 commaExpr->set_arg1( maybeMutate( commaExpr->get_arg1(), *this ) ); … … 309 329 310 330 Expression *Mutator::mutate( TypeExpr *typeExpr ) { 331 typeExpr->set_env( maybeMutate( typeExpr->get_env(), *this ) ); 311 332 typeExpr->set_result( maybeMutate( typeExpr->get_result(), *this ) ); 312 333 typeExpr->set_type( maybeMutate( typeExpr->get_type(), *this ) ); … … 315 336 316 337 Expression *Mutator::mutate( AsmExpr *asmExpr ) { 338 asmExpr->set_env( maybeMutate( asmExpr->get_env(), *this ) ); 317 339 asmExpr->set_inout( maybeMutate( asmExpr->get_inout(), *this ) ); 318 340 asmExpr->set_constraint( maybeMutate( asmExpr->get_constraint(), *this ) ); … … 322 344 323 345 Expression* Mutator::mutate( ImplicitCopyCtorExpr *impCpCtorExpr ) { 346 impCpCtorExpr->set_env( maybeMutate( impCpCtorExpr->get_env(), *this ) ); 347 impCpCtorExpr->set_result( maybeMutate( impCpCtorExpr->get_result(), *this ) ); 324 348 impCpCtorExpr->set_callExpr( maybeMutate( impCpCtorExpr->get_callExpr(), *this ) ); 325 349 mutateAll( impCpCtorExpr->get_tempDecls(), *this ); … … 330 354 331 355 Expression* Mutator::mutate( ConstructorExpr *ctorExpr ) { 356 ctorExpr->set_env( maybeMutate( ctorExpr->get_env(), *this ) ); 332 357 ctorExpr->set_result( maybeMutate( ctorExpr->get_result(), *this ) ); 333 358 ctorExpr->set_callExpr( maybeMutate( ctorExpr->get_callExpr(), *this ) ); … … 336 361 337 362 Expression *Mutator::mutate( CompoundLiteralExpr *compLitExpr ) { 363 compLitExpr->set_env( maybeMutate( compLitExpr->get_env(), *this ) ); 338 364 compLitExpr->set_result( maybeMutate( compLitExpr->get_result(), *this ) ); 339 365 compLitExpr->set_type( maybeMutate( compLitExpr->get_type(), *this ) ); … … 343 369 344 370 Expression *Mutator::mutate( UntypedValofExpr *valofExpr ) { 371 valofExpr->set_env( maybeMutate( valofExpr->get_env(), *this ) ); 345 372 valofExpr->set_result( maybeMutate( valofExpr->get_result(), *this ) ); 346 373 return valofExpr; … … 348 375 349 376 Expression *Mutator::mutate( RangeExpr *rangeExpr ) { 377 rangeExpr->set_env( maybeMutate( rangeExpr->get_env(), *this ) ); 350 378 rangeExpr->set_low( maybeMutate( rangeExpr->get_low(), *this ) ); 351 379 rangeExpr->set_high( maybeMutate( rangeExpr->get_high(), *this ) ); … … 353 381 } 354 382 355 Expression *Mutator::mutate( TupleExpr *tupleExpr ) { 383 Expression *Mutator::mutate( UntypedTupleExpr *tupleExpr ) { 384 tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) ); 356 385 tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) ); 357 386 mutateAll( tupleExpr->get_exprs(), *this ); … … 359 388 } 360 389 390 Expression *Mutator::mutate( TupleExpr *tupleExpr ) { 391 tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) ); 392 tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) ); 393 mutateAll( tupleExpr->get_exprs(), *this ); 394 return tupleExpr; 395 } 396 361 397 Expression *Mutator::mutate( TupleIndexExpr *tupleExpr ) { 398 tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) ); 362 399 tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) ); 363 400 tupleExpr->set_tuple( maybeMutate( tupleExpr->get_tuple(), *this ) ); … … 366 403 367 404 Expression *Mutator::mutate( MemberTupleExpr *tupleExpr ) { 405 tupleExpr->set_env( maybeMutate( tupleExpr->get_env(), *this ) ); 368 406 tupleExpr->set_result( maybeMutate( tupleExpr->get_result(), *this ) ); 369 407 tupleExpr->set_member( maybeMutate( tupleExpr->get_member(), *this ) ); … … 373 411 374 412 Expression *Mutator::mutate( TupleAssignExpr *assignExpr ) { 413 assignExpr->set_env( maybeMutate( assignExpr->get_env(), *this ) ); 375 414 assignExpr->set_result( maybeMutate( assignExpr->get_result(), *this ) ); 376 415 assignExpr->set_stmtExpr( maybeMutate( assignExpr->get_stmtExpr(), *this ) ); … … 379 418 380 419 Expression *Mutator::mutate( StmtExpr *stmtExpr ) { 420 stmtExpr->set_env( maybeMutate( stmtExpr->get_env(), *this ) ); 381 421 stmtExpr->set_result( maybeMutate( stmtExpr->get_result(), *this ) ); 382 422 stmtExpr->set_statements( maybeMutate( stmtExpr->get_statements(), *this ) ); … … 387 427 388 428 Expression *Mutator::mutate( UniqueExpr *uniqueExpr ) { 429 uniqueExpr->set_env( maybeMutate( uniqueExpr->get_env(), *this ) ); 389 430 uniqueExpr->set_result( maybeMutate( uniqueExpr->get_result(), *this ) ); 390 431 uniqueExpr->set_expr( maybeMutate( uniqueExpr->get_expr(), *this ) ); -
src/SynTree/Mutator.h
rbb82c03 r2162c2c 78 78 virtual Expression* mutate( UntypedValofExpr *valofExpr ); 79 79 virtual Expression* mutate( RangeExpr *rangeExpr ); 80 virtual Expression* mutate( UntypedTupleExpr *tupleExpr ); 80 81 virtual Expression* mutate( TupleExpr *tupleExpr ); 81 82 virtual Expression* mutate( TupleIndexExpr *tupleExpr ); -
src/SynTree/Statement.cc
rbb82c03 r2162c2c 388 388 389 389 std::ostream & operator<<( std::ostream & out, const Statement * statement ) { 390 statement->print( out ); 390 if ( statement ) { 391 statement->print( out ); 392 } else { 393 out << "nullptr"; 394 } 391 395 return out; 392 396 } -
src/SynTree/SynTree.h
rbb82c03 r2162c2c 83 83 class UntypedValofExpr; 84 84 class RangeExpr; 85 class UntypedTupleExpr; 85 86 class TupleExpr; 86 87 class TupleIndexExpr; -
src/SynTree/TupleExpr.cc
rbb82c03 r2162c2c 21 21 #include "VarExprReplacer.h" 22 22 23 UntypedTupleExpr::UntypedTupleExpr( const std::list< Expression * > & exprs, Expression *_aname ) : Expression( _aname ), exprs( exprs ) { 24 } 25 26 UntypedTupleExpr::UntypedTupleExpr( const UntypedTupleExpr &other ) : Expression( other ) { 27 cloneAll( other.exprs, exprs ); 28 } 29 30 UntypedTupleExpr::~UntypedTupleExpr() { 31 deleteAll( exprs ); 32 } 33 34 void UntypedTupleExpr::print( std::ostream &os, int indent ) const { 35 os << "Untyped Tuple:" << std::endl; 36 printAll( exprs, os, indent+2 ); 37 Expression::print( os, indent ); 38 } 39 23 40 TupleExpr::TupleExpr( const std::list< Expression * > & exprs, Expression *_aname ) : Expression( _aname ), exprs( exprs ) { 24 if ( ! exprs.empty() ) { 25 if ( std::all_of( exprs.begin(), exprs.end(), [](Expression * expr) { return expr->get_result(); } ) ) { 26 set_result( Tuples::makeTupleType( exprs ) ); 27 } 28 } 41 set_result( Tuples::makeTupleType( exprs ) ); 29 42 } 30 43 … … 45 58 TupleIndexExpr::TupleIndexExpr( Expression * tuple, unsigned int index ) : tuple( tuple ), index( index ) { 46 59 TupleType * type = safe_dynamic_cast< TupleType * >( tuple->get_result() ); 47 assert ( type->size() > index);60 assertf( type->size() > index, "TupleIndexExpr index out of bounds: tuple size %d, requested index %d in expr %s", type->size(), index, toString( tuple ).c_str() ); 48 61 set_result( (*std::next( type->get_types().begin(), index ))->clone() ); 49 62 get_result()->set_isLvalue( type->get_isLvalue() ); -
src/SynTree/Type.cc
rbb82c03 r2162c2c 85 85 86 86 std::ostream & operator<<( std::ostream & out, const Type * type ) { 87 type->print( out ); 87 if ( type ) { 88 type->print( out ); 89 } else { 90 out << "nullptr"; 91 } 88 92 return out; 89 93 } -
src/SynTree/Type.h
rbb82c03 r2162c2c 204 204 std::list<DeclarationWithType*> & get_returnVals() { return returnVals; } 205 205 std::list<DeclarationWithType*> & get_parameters() { return parameters; } 206 bool get_isVarArgs() { return isVarArgs; }206 bool get_isVarArgs() const { return isVarArgs; } 207 207 void set_isVarArgs( bool newValue ) { isVarArgs = newValue; } 208 209 bool isTtype() const; 208 210 209 211 virtual FunctionType *clone() const { return new FunctionType( *this ); } -
src/SynTree/TypeDecl.cc
rbb82c03 r2162c2c 18 18 #include "Common/utility.h" 19 19 20 TypeDecl::TypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type, Kind kind ) : Parent( name, sc, type ), kind( kind ), sized( kind == Any ) {20 TypeDecl::TypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type, Kind kind ) : Parent( name, sc, type ), kind( kind ), sized( kind == Any || kind == Ttype ) { 21 21 } 22 22 … … 25 25 26 26 std::string TypeDecl::typeString() const { 27 static const char *kindNames[] = { "type", "incomplete type", "function type" };27 static const char *kindNames[] = { "type", "incomplete type", "function type", "tuple type" }; 28 28 return kindNames[ kind ]; 29 29 } -
src/SynTree/TypeSubstitution.cc
rbb82c03 r2162c2c 231 231 } 232 232 233 TypeSubstitution * TypeSubstitution::acceptMutator( Mutator & mutator ) { 234 for ( auto & p : typeEnv ) { 235 p.second = maybeMutate( p.second, mutator ); 236 } 237 for ( auto & p : varEnv ) { 238 p.second = maybeMutate( p.second, mutator ); 239 } 240 return this; 241 } 242 233 243 void TypeSubstitution::print( std::ostream &os, int indent ) const { 234 244 os << std::string( indent, ' ' ) << "Types:" << std::endl; -
src/SynTree/TypeSubstitution.h
rbb82c03 r2162c2c 53 53 54 54 void normalize(); 55 56 TypeSubstitution * acceptMutator( Mutator & mutator ); 55 57 56 58 void print( std::ostream &os, int indent = 0 ) const; -
src/SynTree/Visitor.cc
rbb82c03 r2162c2c 273 273 274 274 void Visitor::visit( ImplicitCopyCtorExpr *impCpCtorExpr ) { 275 maybeAccept( impCpCtorExpr->get_result(), *this ); 275 276 maybeAccept( impCpCtorExpr->get_callExpr(), *this ); 276 277 acceptAll( impCpCtorExpr->get_tempDecls(), *this ); … … 298 299 maybeAccept( rangeExpr->get_low(), *this ); 299 300 maybeAccept( rangeExpr->get_high(), *this ); 301 } 302 303 void Visitor::visit( UntypedTupleExpr *tupleExpr ) { 304 maybeAccept( tupleExpr->get_result(), *this ); 305 acceptAll( tupleExpr->get_exprs(), *this ); 300 306 } 301 307 -
src/SynTree/Visitor.h
rbb82c03 r2162c2c 78 78 virtual void visit( UntypedValofExpr *valofExpr ); 79 79 virtual void visit( RangeExpr *rangeExpr ); 80 virtual void visit( UntypedTupleExpr *tupleExpr ); 80 81 virtual void visit( TupleExpr *tupleExpr ); 81 82 virtual void visit( TupleIndexExpr *tupleExpr ); -
src/Tuples/Explode.h
rbb82c03 r2162c2c 33 33 /// helper function used by explode 34 34 template< typename OutputIterator > 35 void explodeUnique( Expression * expr, const ResolvExpr::Alternative & alt, const SymTab::Indexer & indexer, OutputIterator out ) { 35 void explodeUnique( Expression * expr, const ResolvExpr::Alternative & alt, const SymTab::Indexer & indexer, OutputIterator out, bool isTupleAssign ) { 36 if ( isTupleAssign ) { 37 // tuple assignment needs AddressExprs to be recursively exploded to easily get at all of the components 38 if ( AddressExpr * addrExpr = dynamic_cast< AddressExpr * >( expr ) ) { 39 ResolvExpr::AltList alts; 40 explodeUnique( addrExpr->get_arg(), alt, indexer, back_inserter( alts ), isTupleAssign ); 41 for ( ResolvExpr::Alternative & alt : alts ) { 42 // distribute '&' over all components 43 alt.expr = distributeAddr( alt.expr ); 44 *out++ = alt; 45 } 46 // in tuple assignment, still need to handle the other cases, but only if not already handled here (don't want to output too many alternatives) 47 return; 48 } 49 } 36 50 Type * res = expr->get_result(); 37 if ( AddressExpr * addrExpr = dynamic_cast< AddressExpr * >( expr ) ) { 38 ResolvExpr::AltList alts; 39 explodeUnique( addrExpr->get_arg(), alt, indexer, back_inserter( alts ) ); 40 for ( ResolvExpr::Alternative & alt : alts ) { 41 // distribute '&' over all components 42 alt.expr = distributeAddr( alt.expr ); 43 *out++ = alt; 44 } 45 } else if ( TupleType * tupleType = dynamic_cast< TupleType * > ( res ) ) { 51 if ( TupleType * tupleType = dynamic_cast< TupleType * > ( res ) ) { 46 52 if ( TupleExpr * tupleExpr = dynamic_cast< TupleExpr * >( expr ) ) { 47 53 // can open tuple expr and dump its exploded components 48 54 for ( Expression * expr : tupleExpr->get_exprs() ) { 49 explodeUnique( expr, alt, indexer, out );55 explodeUnique( expr, alt, indexer, out, isTupleAssign ); 50 56 } 51 57 } else { … … 58 64 for ( unsigned int i = 0; i < tupleType->size(); i++ ) { 59 65 TupleIndexExpr * idx = new TupleIndexExpr( arg->clone(), i ); 60 explodeUnique( idx, alt, indexer, out );66 explodeUnique( idx, alt, indexer, out, isTupleAssign ); 61 67 delete idx; 62 68 } … … 71 77 /// expands a tuple-valued alternative into multiple alternatives, each with a non-tuple-type 72 78 template< typename OutputIterator > 73 void explode( const ResolvExpr::Alternative &alt, const SymTab::Indexer & indexer, OutputIterator out ) {74 explodeUnique( alt.expr, alt, indexer, out );79 void explode( const ResolvExpr::Alternative &alt, const SymTab::Indexer & indexer, OutputIterator out, bool isTupleAssign = false ) { 80 explodeUnique( alt.expr, alt, indexer, out, isTupleAssign ); 75 81 } 76 82 77 83 // explode list of alternatives 78 84 template< typename AltIterator, typename OutputIterator > 79 void explode( AltIterator altBegin, AltIterator altEnd, const SymTab::Indexer & indexer, OutputIterator out ) {85 void explode( AltIterator altBegin, AltIterator altEnd, const SymTab::Indexer & indexer, OutputIterator out, bool isTupleAssign = false ) { 80 86 for ( ; altBegin != altEnd; ++altBegin ) { 81 explode( *altBegin, indexer, out );87 explode( *altBegin, indexer, out, isTupleAssign ); 82 88 } 83 89 } 84 90 85 91 template< typename OutputIterator > 86 void explode( const ResolvExpr::AltList & alts, const SymTab::Indexer & indexer, OutputIterator out ) {87 explode( alts.begin(), alts.end(), indexer, out );92 void explode( const ResolvExpr::AltList & alts, const SymTab::Indexer & indexer, OutputIterator out, bool isTupleAssign = false ) { 93 explode( alts.begin(), alts.end(), indexer, out, isTupleAssign ); 88 94 } 89 95 } // namespace Tuples -
src/Tuples/TupleAssignment.cc
rbb82c03 r2162c2c 73 73 }; 74 74 75 /// true if expr is an expression of tuple type , i.e. a tuple expression, tuple variable, or MRV (multiple-return-value) function75 /// true if expr is an expression of tuple type 76 76 bool isTuple( Expression *expr ) { 77 77 if ( ! expr ) return false; 78 78 assert( expr->has_result() ); 79 return dynamic_cast< TupleExpr *>(expr) || expr->get_result()->size() > 1;79 return dynamic_cast< TupleType * >( expr->get_result() ); 80 80 } 81 81 … … 142 142 matcher->match( new_assigns ); 143 143 144 if ( new_assigns.empty() ) return; 144 if ( ! matcher->lhs.empty() || ! matcher->rhs.empty() ) { 145 // if both lhs and rhs are empty then this is the empty tuple case, wherein it's okay for new_assigns to be empty. 146 // if not the empty tuple case, return early so that no new alternatives are generated. 147 if ( new_assigns.empty() ) return; 148 } 145 149 ResolvExpr::AltList current; 146 150 // now resolve new assignments … … 186 190 187 191 // explode the lhs so that each field of the tuple-valued-expr is assigned. 188 explode( lhsAlt, spotter.currentFinder.get_indexer(), back_inserter(lhs) );192 explode( lhsAlt, spotter.currentFinder.get_indexer(), back_inserter(lhs), true ); 189 193 190 194 // and finally, re-add the cast to each lhs expr, so that qualified tuple fields can be constructed … … 211 215 TupleAssignSpotter::MultipleAssignMatcher::MultipleAssignMatcher( TupleAssignSpotter &spotter, const ResolvExpr::AltList & alts ) : Matcher( spotter, alts ) { 212 216 // explode the rhs so that each field of the tuple-valued-expr is assigned. 213 explode( std::next(alts.begin(), 1), alts.end(), spotter.currentFinder.get_indexer(), back_inserter(rhs) );217 explode( std::next(alts.begin(), 1), alts.end(), spotter.currentFinder.get_indexer(), back_inserter(rhs), true ); 214 218 } 215 219 … … 248 252 static UniqueName lhsNamer( "__massassign_L" ); 249 253 static UniqueName rhsNamer( "__massassign_R" ); 250 assert ( ! lhs.empty() && rhs.size() <= 1); 254 // empty tuple case falls into this matcher, hence the second part of the assert 255 assert( (! lhs.empty() && rhs.size() <= 1) || (lhs.empty() && rhs.empty()) ); 251 256 252 257 ObjectDecl * rtmp = rhs.size() == 1 ? newObject( rhsNamer, rhs.front().expr ) : nullptr; 253 258 for ( ResolvExpr::Alternative & lhsAlt : lhs ) { 259 // create a temporary object for each value in the lhs and create a call involving the rhs 254 260 ObjectDecl * ltmp = newObject( lhsNamer, lhsAlt.expr ); 255 261 out.push_back( createFunc( spotter.fname, ltmp, rtmp ) ); … … 263 269 static UniqueName rhsNamer( "__multassign_R" ); 264 270 265 // xxx - need more complicated matching?266 271 if ( lhs.size() == rhs.size() ) { 272 // produce a new temporary object for each value in the lhs and rhs and pairwise create the calls 267 273 std::list< ObjectDecl * > ltmp; 268 274 std::list< ObjectDecl * > rtmp; -
src/Tuples/TupleExpansion.cc
rbb82c03 r2162c2c 144 144 145 145 Expression * MemberTupleExpander::mutate( UntypedMemberExpr * memberExpr ) { 146 if ( TupleExpr * tupleExpr = dynamic_cast<TupleExpr * > ( memberExpr->get_member() ) ) {146 if ( UntypedTupleExpr * tupleExpr = dynamic_cast< UntypedTupleExpr * > ( memberExpr->get_member() ) ) { 147 147 Expression * aggr = memberExpr->get_aggregate()->clone()->acceptMutator( *this ); 148 148 // aggregate expressions which might be impure must be wrapped in unique expressions … … 225 225 decl->get_parameters().push_back( tyParam ); 226 226 } 227 if ( tupleType->size() == 0 ) { 228 // empty structs are not standard C. Add a dummy field to empty tuples to silence warnings when a compound literal Tuple0 is created. 229 decl->get_members().push_back( new ObjectDecl( "dummy", DeclarationNode::NoStorageClass, LinkageSpec::C, nullptr, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr ) ); 230 } 227 231 typeMap[mangleName] = decl; 228 232 addDeclaration( decl ); … … 315 319 qualifiers &= type->get_qualifiers(); 316 320 } // for 321 if ( exprs.empty() ) qualifiers = Type::Qualifiers(); 317 322 return tupleType; 323 } 324 325 TypeInstType * isTtype( Type * type ) { 326 if ( TypeInstType * inst = dynamic_cast< TypeInstType * >( type ) ) { 327 if ( inst->get_baseType()->get_kind() == TypeDecl::Ttype ) { 328 return inst; 329 } 330 } 331 return nullptr; 318 332 } 319 333 -
src/Tuples/Tuples.h
rbb82c03 r2162c2c 42 42 Type * makeTupleType( const std::list< Expression * > & exprs ); 43 43 44 /// returns a TypeInstType if `type` is a ttype, nullptr otherwise 45 TypeInstType * isTtype( Type * type ); 46 44 47 /// returns true if the expression may contain side-effects. 45 48 bool maybeImpure( Expression * expr ); -
src/libcfa/math.c
rbb82c03 r2162c2c 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // math.c -- 8 // 6 // 7 // math.c -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Tue Apr 19 22:23:08 2016 … … 12 12 // Last Modified On : Sun Apr 24 08:52:31 2016 13 13 // Update Count : 75 14 // 14 // 15 15 16 16 #include "math" … … 34 34 long double remainder( long double x, long double y ) { return remainderl( x, y ); } 35 35 36 //[ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }36 [ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; } 37 37 float remquo( float x, float y, int *quo ) { return remquof( x, y, quo ); } 38 //[ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }39 //[ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }38 [ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; } 39 [ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; } 40 40 long double remquo( long double x, long double y, int *quo ) { return remquol( x, y, quo ); } 41 41 42 //[ int, float ] div( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; }42 [ int, float ] div( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; } 43 43 float div( float x, float y, int *quo ) { return remquof( x, y, quo ); } 44 //[ int, double ] div( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; }45 //[ int, long double ] div( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; }44 [ int, double ] div( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; } 45 [ int, long double ] div( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; } 46 46 long double div( long double x, long double y, int *quo ) { return remquol( x, y, quo ); } 47 47 … … 278 278 long double ldexp( long double x, int exp2 ) { return ldexpl( x, exp2 ); } 279 279 280 //[ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; }280 [ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; } 281 281 float modf( float x, float *i ) { return modff( x, i ); } 282 //[ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; }283 //[ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; }282 [ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; } 283 [ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; } 284 284 long double modf( long double x, long double *i ) { return modfl( x, i ); } 285 285 -
src/libcfa/stdlib
rbb82c03 r2162c2c 47 47 void free( void * ptr ); 48 48 } // extern "C" 49 50 forall( otype T, ttype Params | { void ?{}(T *, Params); } ) T * new( Params p ); 51 forall( dtype T | { void ^?{}(T *); } ) void delete( T * ptr ); 52 49 53 50 54 //--------------------------------------- -
src/libcfa/stdlib.c
rbb82c03 r2162c2c 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // algorithm.c -- 7 // algorithm.c -- 8 8 // 9 9 // Author : Peter A. Buhr … … 78 78 } // posix_memalign 79 79 80 forall( otype T, ttype Params | { void ?{}(T *, Params); } ) 81 T * new( Params p ) { 82 return ((T*)malloc()){ p }; 83 } 84 85 forall( dtype T | { void ^?{}(T *); } ) 86 void delete( T * ptr ) { 87 if ( ptr ) { 88 ^ptr{}; 89 free( ptr ); 90 } 91 } 92 80 93 //--------------------------------------- 81 94 … … 141 154 if ( sscanf( ptr, "%Lf%Lfi", &re, &im ) == EOF ) {} 142 155 return re + im * _Complex_I; 143 } 156 } 144 157 145 158 int strto( const char * sptr, char ** eptr, int base ) { … … 213 226 //--------------------------------------- 214 227 215 //forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } )216 //[ T, T ] div( T t1, T t2 ) { return [ t1 / t2, t1 % t2 ]; }228 forall( otype T | { T ?/?( T, T ); T ?%?( T, T ); } ) 229 [ T, T ] div( T t1, T t2 ) { return [ t1 / t2, t1 % t2 ]; } 217 230 218 231 //--------------------------------------- -
src/main.cc
rbb82c03 r2162c2c 69 69 symtabp = false, 70 70 treep = false, 71 tuplep = false, 71 72 validp = false, 72 73 errorp = false, … … 266 267 OPTPRINT( "expandUniqueExpr" ); // xxx - is this the right place for this? want to expand ASAP so that subsequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused 267 268 Tuples::expandUniqueExpr( translationUnit ); 269 270 OPTPRINT( "convertSpecializations" ) // needs to happen before tuple types are expanded 271 GenPoly::convertSpecializations( translationUnit ); 272 268 273 OPTPRINT( "expandTuples" ); // xxx - is this the right place for this? 269 274 Tuples::expandTuples( translationUnit ); 275 if ( tuplep ) { 276 dump( translationUnit ); 277 return 0; 278 } 270 279 271 280 OPTPRINT("instantiateGenerics") … … 273 282 OPTPRINT( "copyParams" ); 274 283 GenPoly::copyParams( translationUnit ); 275 OPTPRINT( "convertSpecializations" )276 GenPoly::convertSpecializations( translationUnit );277 284 OPTPRINT( "convertLvalue" ) 278 285 GenPoly::convertLvalue( translationUnit ); … … 327 334 328 335 void parse_cmdline( int argc, char * argv[], const char *& filename ) { 329 enum { Ast, Bbox, Bresolver, CtorInitFix, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, Validate, };336 enum { Ast, Bbox, Bresolver, CtorInitFix, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, TupleExpansion, Validate, }; 330 337 331 338 static struct option long_opts[] = { … … 344 351 { "symbol", no_argument, 0, Symbol }, 345 352 { "tree", no_argument, 0, Tree }, 353 { "tuple-expansion", no_argument, 0, TupleExpansion }, 346 354 { "validate", no_argument, 0, Validate }, 347 355 { 0, 0, 0, 0 } … … 352 360 353 361 int c; 354 while ( (c = getopt_long( argc, argv, "abBcefglnpqrst vyzD:F:", long_opts, &long_index )) != -1 ) {362 while ( (c = getopt_long( argc, argv, "abBcefglnpqrstTvyzD:F:", long_opts, &long_index )) != -1 ) { 355 363 switch ( c ) { 356 364 case Ast: … … 362 370 bresolvep = true; 363 371 break; 364 case 'B': // print before resolversteps372 case 'B': // print before box steps 365 373 bboxp = true; 366 374 break; … … 408 416 case 't': // build in tree 409 417 treep = true; 418 break; 419 case TupleExpansion: 420 case 'T': // print after tuple expansion 421 tuplep = true; 410 422 break; 411 423 case 'v': // dump AST after decl validation pass -
src/tests/avltree/avl.h
rbb82c03 r2162c2c 19 19 forall(otype T | Comparable(T)) 20 20 int ?>?(T t1, T t2); 21 22 // xxx - unbound type variable problems when trying to use new instead of create 23 // forall( otype T, ttype Params | { void ?{}(T *, Params); } ) T * new( Params p ); 21 24 22 25 forall(dtype T | { void ^?{}(T *); }) -
src/tests/avltree/avl0.c
rbb82c03 r2162c2c 10 10 return t2 < t1; 11 11 } 12 13 forall(dtype T | { void ^?{}(T *); })14 void delete(T * x) {15 if (x) {16 ^?{}(x);17 free(x);18 }19 }
Note:
See TracChangeset
for help on using the changeset viewer.