### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ClassFile.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ClassFile.java,v retrieving revision 1.203 diff -u -r1.203 ClassFile.java --- compiler/org/eclipse/jdt/internal/compiler/ClassFile.java 27 Oct 2010 02:55:30 -0000 1.203 +++ compiler/org/eclipse/jdt/internal/compiler/ClassFile.java 5 Jan 2011 19:54:16 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -823,6 +823,9 @@ case SyntheticMethodBinding.SwitchTable : // generate a method info to define the switch table synthetic method addSyntheticSwitchTable(syntheticMethod); + break; + case SyntheticMethodBinding.TooManyEnumsConstants : + addSyntheticEnumInitializationMethod(syntheticMethod); } } } @@ -918,6 +921,29 @@ this.contents[methodAttributeOffset] = (byte) attributeNumber; } + public void addSyntheticEnumInitializationMethod(SyntheticMethodBinding methodBinding) { + generateMethodInfoHeader(methodBinding); + int methodAttributeOffset = this.contentsOffset; + // this will add exception attribute, synthetic attribute, deprecated attribute,... + int attributeNumber = generateMethodInfoAttributes(methodBinding); + // Code attribute + int codeAttributeOffset = this.contentsOffset; + attributeNumber++; // add code attribute + generateCodeAttributeHeader(); + this.codeStream.init(this); + this.codeStream.generateSyntheticBodyForEnumInitializationMethod(methodBinding); + completeCodeAttributeForSyntheticMethod( + methodBinding, + codeAttributeOffset, + ((SourceTypeBinding) methodBinding.declaringClass) + .scope + .referenceCompilationUnit() + .compilationResult + .getLineSeparatorPositions()); + // update the number of attributes + this.contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); + this.contents[methodAttributeOffset] = (byte) attributeNumber; + } /** * INTERNAL USE-ONLY * Generate the byte for a problem method info that correspond to a synthetic method that Index: compiler/org/eclipse/jdt/internal/compiler/ast/Clinit.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/Clinit.java,v retrieving revision 1.61 diff -u -r1.61 Clinit.java --- compiler/org/eclipse/jdt/internal/compiler/ast/Clinit.java 9 Nov 2010 19:59:19 -0000 1.61 +++ compiler/org/eclipse/jdt/internal/compiler/ast/Clinit.java 5 Jan 2011 19:54:16 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -26,11 +26,13 @@ import org.eclipse.jdt.internal.compiler.lookup.FieldBinding; import org.eclipse.jdt.internal.compiler.lookup.MethodScope; import org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding; +import org.eclipse.jdt.internal.compiler.lookup.SyntheticMethodBinding; import org.eclipse.jdt.internal.compiler.lookup.TypeConstants; import org.eclipse.jdt.internal.compiler.parser.Parser; import org.eclipse.jdt.internal.compiler.problem.AbortMethod; public class Clinit extends AbstractMethodDeclaration { + private static int ENUM_CONSTANTS_THRESHOLD = 2000; private FieldBinding assertionSyntheticFieldBinding = null; private FieldBinding classLiteralSyntheticField = null; @@ -191,16 +193,44 @@ // generate static fields/initializers/enum constants final FieldDeclaration[] fieldDeclarations = declaringType.fields; BlockScope lastInitializerScope = null; + int remainingFieldCount = 0; if (TypeDeclaration.kind(declaringType.modifiers) == TypeDeclaration.ENUM_DECL) { - int enumCount = 0; - int remainingFieldCount = 0; - if (fieldDeclarations != null) { + int enumCount = declaringType.enumConstantsCounter; + if (enumCount > ENUM_CONSTANTS_THRESHOLD) { + // generate synthetic methods to initialize all the enum constants + int begin = -1; + int count = 0; + if (fieldDeclarations != null) { + int max = fieldDeclarations.length; + for (int i = 0; i < max; i++) { + FieldDeclaration fieldDecl = fieldDeclarations[i]; + if (fieldDecl.isStatic()) { + if (fieldDecl.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { + if (begin == -1) { + begin = i; + } + count++; + if (count > ENUM_CONSTANTS_THRESHOLD) { + SyntheticMethodBinding syntheticMethod = declaringType.binding.addSyntheticMethodForEnumInitialization(begin, i); + codeStream.invoke(Opcodes.OPC_invokestatic, syntheticMethod, null /* default declaringClass */); + begin = -1; + count = 0; + } + } + } + } + if (count != 0) { + // add last synthetic method + SyntheticMethodBinding syntheticMethod = declaringType.binding.addSyntheticMethodForEnumInitialization(begin, max); + codeStream.invoke(Opcodes.OPC_invokestatic, syntheticMethod, null /* default declaringClass */); + } + } + } else if (fieldDeclarations != null) { for (int i = 0, max = fieldDeclarations.length; i < max; i++) { FieldDeclaration fieldDecl = fieldDeclarations[i]; if (fieldDecl.isStatic()) { if (fieldDecl.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { fieldDecl.generateCode(staticInitializerScope, codeStream); - enumCount++; } else { remainingFieldCount++; } @@ -228,20 +258,24 @@ codeStream.fieldAccess(Opcodes.OPC_putstatic, declaringType.enumValuesSyntheticfield, null /* default declaringClass */); if (remainingFieldCount != 0) { // if fields that are not enum constants need to be generated (static initializer/static field) - for (int i = 0, max = fieldDeclarations.length; i < max; i++) { + for (int i = 0, max = fieldDeclarations.length; i < max && remainingFieldCount >= 0; i++) { FieldDeclaration fieldDecl = fieldDeclarations[i]; switch (fieldDecl.getKind()) { case AbstractVariableDeclaration.ENUM_CONSTANT : break; case AbstractVariableDeclaration.INITIALIZER : - if (!fieldDecl.isStatic()) + if (!fieldDecl.isStatic()) { break; + } + remainingFieldCount--; lastInitializerScope = ((Initializer) fieldDecl).block.scope; fieldDecl.generateCode(staticInitializerScope, codeStream); break; case AbstractVariableDeclaration.FIELD : - if (!fieldDecl.binding.isStatic()) + if (!fieldDecl.binding.isStatic()) { break; + } + remainingFieldCount--; lastInitializerScope = null; fieldDecl.generateCode(staticInitializerScope, codeStream); break; Index: compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java,v retrieving revision 1.101 diff -u -r1.101 FieldDeclaration.java --- compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java 1 Jul 2010 04:39:20 -0000 1.101 +++ compiler/org/eclipse/jdt/internal/compiler/ast/FieldDeclaration.java 5 Jan 2011 19:54:16 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -94,7 +94,7 @@ int pc = codeStream.position; boolean isStatic; if (this.initialization != null - && !((isStatic = this.binding.isStatic()) && this.binding.constant() != Constant.NotAConstant)) { + && !((isStatic = this.binding.isStatic()) && this.binding.constant() != Constant.NotAConstant)) { // non-static field, need receiver if (!isStatic) codeStream.aload_0(); Index: compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java,v retrieving revision 1.164 diff -u -r1.164 TypeDeclaration.java --- compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java 21 Jun 2010 09:47:48 -0000 1.164 +++ compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java 5 Jan 2011 19:54:17 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -55,6 +55,7 @@ public TypeDeclaration enclosingType; // for member types only public FieldBinding enumValuesSyntheticfield; // for enum + public int enumConstantsCounter; // 1.5 support public TypeParameter[] typeParameters; Index: compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java,v retrieving revision 1.179 diff -u -r1.179 CodeStream.java --- compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java 9 Nov 2010 19:59:19 -0000 1.179 +++ compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java 5 Jan 2011 19:54:17 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -15,10 +15,13 @@ import org.eclipse.jdt.internal.compiler.CompilationResult; import org.eclipse.jdt.internal.compiler.ast.ASTNode; import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration; +import org.eclipse.jdt.internal.compiler.ast.AbstractVariableDeclaration; import org.eclipse.jdt.internal.compiler.ast.AllocationExpression; import org.eclipse.jdt.internal.compiler.ast.ExplicitConstructorCall; import org.eclipse.jdt.internal.compiler.ast.Expression; +import org.eclipse.jdt.internal.compiler.ast.FieldDeclaration; import org.eclipse.jdt.internal.compiler.ast.OperatorIds; +import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration; import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; @@ -2445,7 +2448,24 @@ aload_2(); areturn(); } - +public void generateSyntheticBodyForEnumInitializationMethod(SyntheticMethodBinding methodBinding) { + // no local used + this.maxLocals = 0; + // generate all enum constants + SourceTypeBinding sourceTypeBinding = (SourceTypeBinding) methodBinding.declaringClass; + TypeDeclaration typeDeclaration = sourceTypeBinding.scope.referenceContext; + BlockScope staticInitializerScope = typeDeclaration.staticInitializerScope; + FieldDeclaration[] fieldDeclarations = typeDeclaration.fields; + for (int i = methodBinding.startIndex, max = methodBinding.endIndex; i < max; i++) { + FieldDeclaration fieldDecl = fieldDeclarations[i]; + if (fieldDecl.isStatic()) { + if (fieldDecl.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { + fieldDecl.generateCode(staticInitializerScope, this); + } + } + } + return_(); +} public void generateSyntheticBodyForFieldReadAccess(SyntheticMethodBinding accessMethod) { initializeMaxLocals(accessMethod); FieldBinding fieldBinding = accessMethod.targetReadField; Index: compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java,v retrieving revision 1.183 diff -u -r1.183 SourceTypeBinding.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java 17 Dec 2010 06:40:13 -0000 1.183 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java 5 Jan 2011 19:54:17 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -480,6 +480,18 @@ } return accessMethod; } +public SyntheticMethodBinding addSyntheticMethodForEnumInitialization(int begin, int end) { + if (this.synthetics == null) + this.synthetics = new HashMap[MAX_SYNTHETICS]; + if (this.synthetics[SourceTypeBinding.METHOD_EMUL] == null) + this.synthetics[SourceTypeBinding.METHOD_EMUL] = new HashMap(5); + + SyntheticMethodBinding accessMethod = new SyntheticMethodBinding(this, begin, end); + SyntheticMethodBinding[] accessors = new SyntheticMethodBinding[2]; + this.synthetics[SourceTypeBinding.METHOD_EMUL].put(accessMethod.selector, accessors); + accessors[0] = accessMethod; + return accessMethod; +} /* Add a new synthetic access method for access to . * Must distinguish access method used for super access from others (need to use invokespecial bytecode) Answer the new method or the existing method if one already existed. @@ -1500,7 +1512,6 @@ public ReferenceBinding[] superInterfaces() { return this.superInterfaces; } - public SyntheticMethodBinding[] syntheticMethods() { if (this.synthetics == null || this.synthetics[SourceTypeBinding.METHOD_EMUL] == null Index: compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding.java,v retrieving revision 1.26 diff -u -r1.26 SyntheticMethodBinding.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding.java 7 Sep 2010 13:39:18 -0000 1.26 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/SyntheticMethodBinding.java 5 Jan 2011 19:54:17 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -21,9 +21,13 @@ public FieldBinding targetWriteField; // write access to a field public MethodBinding targetMethod; // method or constructor public TypeBinding targetEnumType; // enum type - + public int purpose; + // fields used to generate enum constants when too many + public int startIndex; + public int endIndex; + public final static int FieldReadAccess = 1; // field read public final static int FieldWriteAccess = 2; // field write public final static int SuperFieldReadAccess = 3; // super field read @@ -35,6 +39,7 @@ public final static int EnumValues = 9; // enum #values() public final static int EnumValueOf = 10; // enum #valueOf(String) public final static int SwitchTable = 11; // switch table method + public final static int TooManyEnumsConstants = 12; // too many enum constants public int sourceStart = 0; // start position of the matching declaration public int index; // used for sorting access methods in the class file @@ -265,6 +270,26 @@ } } + /** + * Construct enum special methods: values or valueOf methods + */ + public SyntheticMethodBinding(SourceTypeBinding declaringEnum, int startIndex, int endIndex) { + this.declaringClass = declaringEnum; + SyntheticMethodBinding[] knownAccessMethods = declaringEnum.syntheticMethods(); + this.index = knownAccessMethods == null ? 0 : knownAccessMethods.length; + StringBuffer buffer = new StringBuffer(); + buffer.append(TypeConstants.SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX).append(this.index); + this.selector = String.valueOf(buffer).toCharArray(); + this.modifiers = ClassFileConstants.AccPrivate | ClassFileConstants.AccStatic; + this.tagBits |= (TagBits.AnnotationResolved | TagBits.DeprecatedAnnotationResolved); + this.purpose = SyntheticMethodBinding.TooManyEnumsConstants; + this.thrownExceptions = Binding.NO_EXCEPTIONS; + this.returnType = TypeBinding.VOID; + this.parameters = Binding.NO_PARAMETERS; + this.startIndex = startIndex; + this.endIndex = endIndex; + } + // Create a synthetic method that will simply call the super classes method. // Used when a public method is inherited from a non-public class into a public class. // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=288658 Index: compiler/org/eclipse/jdt/internal/compiler/lookup/TypeConstants.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/TypeConstants.java,v retrieving revision 1.50 diff -u -r1.50 TypeConstants.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/TypeConstants.java 1 Oct 2009 17:52:18 -0000 1.50 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/TypeConstants.java 5 Jan 2011 19:54:17 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2009 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -155,6 +155,7 @@ char[] SYNTHETIC_OUTER_LOCAL_PREFIX = "val$".toCharArray(); //$NON-NLS-1$ char[] SYNTHETIC_ENCLOSING_INSTANCE_PREFIX = "this$".toCharArray(); //$NON-NLS-1$ char[] SYNTHETIC_ACCESS_METHOD_PREFIX = "access$".toCharArray(); //$NON-NLS-1$ + char[] SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX = " enum constant initialization$".toCharArray(); //$NON-NLS-1$ // synthetic package-info name public static final char[] PACKAGE_INFO_NAME = "package-info".toCharArray(); //$NON-NLS-1$ Index: compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java,v retrieving revision 1.421 diff -u -r1.421 Parser.java --- compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java 27 Oct 2010 02:55:30 -0000 1.421 +++ compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java 5 Jan 2011 19:54:17 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -8277,92 +8277,93 @@ protected void dispatchDeclarationIntoEnumDeclaration(int length) { if (length == 0) - return; - int[] flag = new int[length + 1]; //plus one -- see - int size1 = 0, size2 = 0, size3 = 0; - TypeDeclaration enumDeclaration = (TypeDeclaration) this.astStack[this.astPtr - length]; - boolean hasAbstractMethods = false; - for (int i = length - 1; i >= 0; i--) { - ASTNode astNode = this.astStack[this.astPtr--]; - if (astNode instanceof AbstractMethodDeclaration) { - //methods and constructors have been regrouped into one single list - flag[i] = 2; - size2++; - if (((AbstractMethodDeclaration) astNode).isAbstract()) { - hasAbstractMethods = true; - } - } else if (astNode instanceof TypeDeclaration) { - flag[i] = 3; - size3++; - } else if (astNode instanceof FieldDeclaration) { - flag[i] = 1; - size1++; -// if(astNode instanceof EnumConstant) { -// EnumConstant constant = (EnumConstant) astNode; -// ((AllocationExpression)constant.initialization).type = new SingleTypeReference(enumDeclaration.name, -// (((long) enumDeclaration.sourceStart) << 32) + enumDeclaration.sourceEnd); -// } - } - } + return; + int[] flag = new int[length + 1]; //plus one -- see + int size1 = 0, size2 = 0, size3 = 0; + TypeDeclaration enumDeclaration = (TypeDeclaration) this.astStack[this.astPtr - length]; + boolean hasAbstractMethods = false; + int enumConstantsCounter = 0; + for (int i = length - 1; i >= 0; i--) { + ASTNode astNode = this.astStack[this.astPtr--]; + if (astNode instanceof AbstractMethodDeclaration) { + //methods and constructors have been regrouped into one single list + flag[i] = 2; + size2++; + if (((AbstractMethodDeclaration) astNode).isAbstract()) { + hasAbstractMethods = true; + } + } else if (astNode instanceof TypeDeclaration) { + flag[i] = 3; + size3++; + } else if (astNode instanceof FieldDeclaration) { + flag[i] = 1; + size1++; + if (((FieldDeclaration) astNode).getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { + enumConstantsCounter++; + } + } + } - //arrays creation - if (size1 != 0) { - enumDeclaration.fields = new FieldDeclaration[size1]; - } - if (size2 != 0) { - enumDeclaration.methods = new AbstractMethodDeclaration[size2]; - if (hasAbstractMethods) enumDeclaration.bits |= ASTNode.HasAbstractMethods; - } - if (size3 != 0) { - enumDeclaration.memberTypes = new TypeDeclaration[size3]; - } + //arrays creation + if (size1 != 0) { + enumDeclaration.fields = new FieldDeclaration[size1]; + } + if (size2 != 0) { + enumDeclaration.methods = new AbstractMethodDeclaration[size2]; + if (hasAbstractMethods) enumDeclaration.bits |= ASTNode.HasAbstractMethods; + } + if (size3 != 0) { + enumDeclaration.memberTypes = new TypeDeclaration[size3]; + } - //arrays fill up - size1 = size2 = size3 = 0; - int flagI = flag[0], start = 0; - int length2; - for (int end = 0; end <= length; end++) // the plus one allows to - { - if (flagI != flag[end]) //treat the last element as a ended flag..... - { //array copy - switch (flagI) { - case 1 : - size1 += (length2 = end - start); - System.arraycopy( - this.astStack, - this.astPtr + start + 1, - enumDeclaration.fields, - size1 - length2, - length2); - break; - case 2 : - size2 += (length2 = end - start); - System.arraycopy( - this.astStack, - this.astPtr + start + 1, - enumDeclaration.methods, - size2 - length2, - length2); - break; - case 3 : - size3 += (length2 = end - start); - System.arraycopy( - this.astStack, - this.astPtr + start + 1, - enumDeclaration.memberTypes, - size3 - length2, - length2); - break; - } - flagI = flag[start = end]; - } - } + //arrays fill up + size1 = size2 = size3 = 0; + int flagI = flag[0], start = 0; + int length2; + for (int end = 0; end <= length; end++) // the plus one allows to + { + if (flagI != flag[end]) //treat the last element as a ended flag..... + { //array copy + switch (flagI) { + case 1 : + size1 += (length2 = end - start); + System.arraycopy( + this.astStack, + this.astPtr + start + 1, + enumDeclaration.fields, + size1 - length2, + length2); + break; + case 2 : + size2 += (length2 = end - start); + System.arraycopy( + this.astStack, + this.astPtr + start + 1, + enumDeclaration.methods, + size2 - length2, + length2); + break; + case 3 : + size3 += (length2 = end - start); + System.arraycopy( + this.astStack, + this.astPtr + start + 1, + enumDeclaration.memberTypes, + size3 - length2, + length2); + break; + } + flagI = flag[start = end]; + } + } - if (enumDeclaration.memberTypes != null) { - for (int i = enumDeclaration.memberTypes.length - 1; i >= 0; i--) { - enumDeclaration.memberTypes[i].enclosingType = enumDeclaration; - } - }} + if (enumDeclaration.memberTypes != null) { + for (int i = enumDeclaration.memberTypes.length - 1; i >= 0; i--) { + enumDeclaration.memberTypes[i].enclosingType = enumDeclaration; + } + } + enumDeclaration.enumConstantsCounter = enumConstantsCounter; +} protected CompilationUnitDeclaration endParse(int act) { this.lastAct = act; #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java,v retrieving revision 1.19 diff -u -r1.19 XLargeTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java 27 Jun 2008 16:04:45 -0000 1.19 +++ src/org/eclipse/jdt/core/tests/compiler/regression/XLargeTest.java 5 Jan 2011 19:54:18 -0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2008 IBM Corporation and others. + * Copyright (c) 2005, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -13,6 +13,7 @@ import java.util.Map; import java.util.Random; +import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import junit.framework.Test; @@ -11843,6 +11844,2574 @@ null, JavacTestOptions.EclipseJustification.EclipseBug169017); } +public void test0016() { + if (this.complianceLevel <= ClassFileConstants.JDK1_4) return; + // only run in 1.5 or above + StringBuffer buffer = new StringBuffer(); + buffer + .append("0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119") + .append("1201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022") + .append("0320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528") + .append("6287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369") + .append("3703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524") + .append("5345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553") + .append("6537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619") + .append("6206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027") + .append("0370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578") + .append("6787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869") + .append("8708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529") + .append("5395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610") + .append("2710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089") + .append("1090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111") + .append("5211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214") + .append("1215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612") + .append("7712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339") + .append("1340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114") + .append("0214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464") + .append("1465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615") + .append("2715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589") + .append("1590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116") + .append("5216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714") + .append("1715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617") + .append("7717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839") + .append("1840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119") + .append("0219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964") + .append("19651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999null2001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620") + .append("2720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089") + .append("2090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121") + .append("5221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214") + .append("2215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622") + .append("7722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339") + .append("2340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124") + .append("0224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464") + .append("246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500"); + this.runConformTest( + new String[] { + "X.java", + "public enum X {\n" + + " X0(0),\n" + + " X1(1),\n" + + " X2(2),\n" + + " X3(3),\n" + + " X4(4),\n" + + " X5(5),\n" + + " X6(6),\n" + + " X7(7),\n" + + " X8(8),\n" + + " X9(9),\n" + + " X10(10),\n" + + " X11(11),\n" + + " X12(12),\n" + + " X13(13),\n" + + " X14(14),\n" + + " X15(15),\n" + + " X16(16),\n" + + " X17(17),\n" + + " X18(18),\n" + + " X19(19),\n" + + " X20(20),\n" + + " X21(21),\n" + + " X22(22),\n" + + " X23(23),\n" + + " X24(24),\n" + + " X25(25),\n" + + " X26(26),\n" + + " X27(27),\n" + + " X28(28),\n" + + " X29(29),\n" + + " X30(30),\n" + + " X31(31),\n" + + " X32(32),\n" + + " X33(33),\n" + + " X34(34),\n" + + " X35(35),\n" + + " X36(36),\n" + + " X37(37),\n" + + " X38(38),\n" + + " X39(39),\n" + + " X40(40),\n" + + " X41(41),\n" + + " X42(42),\n" + + " X43(43),\n" + + " X44(44),\n" + + " X45(45),\n" + + " X46(46),\n" + + " X47(47),\n" + + " X48(48),\n" + + " X49(49),\n" + + " X50(50),\n" + + " X51(51),\n" + + " X52(52),\n" + + " X53(53),\n" + + " X54(54),\n" + + " X55(55),\n" + + " X56(56),\n" + + " X57(57),\n" + + " X58(58),\n" + + " X59(59),\n" + + " X60(60),\n" + + " X61(61),\n" + + " X62(62),\n" + + " X63(63),\n" + + " X64(64),\n" + + " X65(65),\n" + + " X66(66),\n" + + " X67(67),\n" + + " X68(68),\n" + + " X69(69),\n" + + " X70(70),\n" + + " X71(71),\n" + + " X72(72),\n" + + " X73(73),\n" + + " X74(74),\n" + + " X75(75),\n" + + " X76(76),\n" + + " X77(77),\n" + + " X78(78),\n" + + " X79(79),\n" + + " X80(80),\n" + + " X81(81),\n" + + " X82(82),\n" + + " X83(83),\n" + + " X84(84),\n" + + " X85(85),\n" + + " X86(86),\n" + + " X87(87),\n" + + " X88(88),\n" + + " X89(89),\n" + + " X90(90),\n" + + " X91(91),\n" + + " X92(92),\n" + + " X93(93),\n" + + " X94(94),\n" + + " X95(95),\n" + + " X96(96),\n" + + " X97(97),\n" + + " X98(98),\n" + + " X99(99),\n" + + " X100(100),\n" + + " X101(101),\n" + + " X102(102),\n" + + " X103(103),\n" + + " X104(104),\n" + + " X105(105),\n" + + " X106(106),\n" + + " X107(107),\n" + + " X108(108),\n" + + " X109(109),\n" + + " X110(110),\n" + + " X111(111),\n" + + " X112(112),\n" + + " X113(113),\n" + + " X114(114),\n" + + " X115(115),\n" + + " X116(116),\n" + + " X117(117),\n" + + " X118(118),\n" + + " X119(119),\n" + + " X120(120),\n" + + " X121(121),\n" + + " X122(122),\n" + + " X123(123),\n" + + " X124(124),\n" + + " X125(125),\n" + + " X126(126),\n" + + " X127(127),\n" + + " X128(128),\n" + + " X129(129),\n" + + " X130(130),\n" + + " X131(131),\n" + + " X132(132),\n" + + " X133(133),\n" + + " X134(134),\n" + + " X135(135),\n" + + " X136(136),\n" + + " X137(137),\n" + + " X138(138),\n" + + " X139(139),\n" + + " X140(140),\n" + + " X141(141),\n" + + " X142(142),\n" + + " X143(143),\n" + + " X144(144),\n" + + " X145(145),\n" + + " X146(146),\n" + + " X147(147),\n" + + " X148(148),\n" + + " X149(149),\n" + + " X150(150),\n" + + " X151(151),\n" + + " X152(152),\n" + + " X153(153),\n" + + " X154(154),\n" + + " X155(155),\n" + + " X156(156),\n" + + " X157(157),\n" + + " X158(158),\n" + + " X159(159),\n" + + " X160(160),\n" + + " X161(161),\n" + + " X162(162),\n" + + " X163(163),\n" + + " X164(164),\n" + + " X165(165),\n" + + " X166(166),\n" + + " X167(167),\n" + + " X168(168),\n" + + " X169(169),\n" + + " X170(170),\n" + + " X171(171),\n" + + " X172(172),\n" + + " X173(173),\n" + + " X174(174),\n" + + " X175(175),\n" + + " X176(176),\n" + + " X177(177),\n" + + " X178(178),\n" + + " X179(179),\n" + + " X180(180),\n" + + " X181(181),\n" + + " X182(182),\n" + + " X183(183),\n" + + " X184(184),\n" + + " X185(185),\n" + + " X186(186),\n" + + " X187(187),\n" + + " X188(188),\n" + + " X189(189),\n" + + " X190(190),\n" + + " X191(191),\n" + + " X192(192),\n" + + " X193(193),\n" + + " X194(194),\n" + + " X195(195),\n" + + " X196(196),\n" + + " X197(197),\n" + + " X198(198),\n" + + " X199(199),\n" + + " X200(200),\n" + + " X201(201),\n" + + " X202(202),\n" + + " X203(203),\n" + + " X204(204),\n" + + " X205(205),\n" + + " X206(206),\n" + + " X207(207),\n" + + " X208(208),\n" + + " X209(209),\n" + + " X210(210),\n" + + " X211(211),\n" + + " X212(212),\n" + + " X213(213),\n" + + " X214(214),\n" + + " X215(215),\n" + + " X216(216),\n" + + " X217(217),\n" + + " X218(218),\n" + + " X219(219),\n" + + " X220(220),\n" + + " X221(221),\n" + + " X222(222),\n" + + " X223(223),\n" + + " X224(224),\n" + + " X225(225),\n" + + " X226(226),\n" + + " X227(227),\n" + + " X228(228),\n" + + " X229(229),\n" + + " X230(230),\n" + + " X231(231),\n" + + " X232(232),\n" + + " X233(233),\n" + + " X234(234),\n" + + " X235(235),\n" + + " X236(236),\n" + + " X237(237),\n" + + " X238(238),\n" + + " X239(239),\n" + + " X240(240),\n" + + " X241(241),\n" + + " X242(242),\n" + + " X243(243),\n" + + " X244(244),\n" + + " X245(245),\n" + + " X246(246),\n" + + " X247(247),\n" + + " X248(248),\n" + + " X249(249),\n" + + " X250(250),\n" + + " X251(251),\n" + + " X252(252),\n" + + " X253(253),\n" + + " X254(254),\n" + + " X255(255),\n" + + " X256(256),\n" + + " X257(257),\n" + + " X258(258),\n" + + " X259(259),\n" + + " X260(260),\n" + + " X261(261),\n" + + " X262(262),\n" + + " X263(263),\n" + + " X264(264),\n" + + " X265(265),\n" + + " X266(266),\n" + + " X267(267),\n" + + " X268(268),\n" + + " X269(269),\n" + + " X270(270),\n" + + " X271(271),\n" + + " X272(272),\n" + + " X273(273),\n" + + " X274(274),\n" + + " X275(275),\n" + + " X276(276),\n" + + " X277(277),\n" + + " X278(278),\n" + + " X279(279),\n" + + " X280(280),\n" + + " X281(281),\n" + + " X282(282),\n" + + " X283(283),\n" + + " X284(284),\n" + + " X285(285),\n" + + " X286(286),\n" + + " X287(287),\n" + + " X288(288),\n" + + " X289(289),\n" + + " X290(290),\n" + + " X291(291),\n" + + " X292(292),\n" + + " X293(293),\n" + + " X294(294),\n" + + " X295(295),\n" + + " X296(296),\n" + + " X297(297),\n" + + " X298(298),\n" + + " X299(299),\n" + + " X300(300),\n" + + " X301(301),\n" + + " X302(302),\n" + + " X303(303),\n" + + " X304(304),\n" + + " X305(305),\n" + + " X306(306),\n" + + " X307(307),\n" + + " X308(308),\n" + + " X309(309),\n" + + " X310(310),\n" + + " X311(311),\n" + + " X312(312),\n" + + " X313(313),\n" + + " X314(314),\n" + + " X315(315),\n" + + " X316(316),\n" + + " X317(317),\n" + + " X318(318),\n" + + " X319(319),\n" + + " X320(320),\n" + + " X321(321),\n" + + " X322(322),\n" + + " X323(323),\n" + + " X324(324),\n" + + " X325(325),\n" + + " X326(326),\n" + + " X327(327),\n" + + " X328(328),\n" + + " X329(329),\n" + + " X330(330),\n" + + " X331(331),\n" + + " X332(332),\n" + + " X333(333),\n" + + " X334(334),\n" + + " X335(335),\n" + + " X336(336),\n" + + " X337(337),\n" + + " X338(338),\n" + + " X339(339),\n" + + " X340(340),\n" + + " X341(341),\n" + + " X342(342),\n" + + " X343(343),\n" + + " X344(344),\n" + + " X345(345),\n" + + " X346(346),\n" + + " X347(347),\n" + + " X348(348),\n" + + " X349(349),\n" + + " X350(350),\n" + + " X351(351),\n" + + " X352(352),\n" + + " X353(353),\n" + + " X354(354),\n" + + " X355(355),\n" + + " X356(356),\n" + + " X357(357),\n" + + " X358(358),\n" + + " X359(359),\n" + + " X360(360),\n" + + " X361(361),\n" + + " X362(362),\n" + + " X363(363),\n" + + " X364(364),\n" + + " X365(365),\n" + + " X366(366),\n" + + " X367(367),\n" + + " X368(368),\n" + + " X369(369),\n" + + " X370(370),\n" + + " X371(371),\n" + + " X372(372),\n" + + " X373(373),\n" + + " X374(374),\n" + + " X375(375),\n" + + " X376(376),\n" + + " X377(377),\n" + + " X378(378),\n" + + " X379(379),\n" + + " X380(380),\n" + + " X381(381),\n" + + " X382(382),\n" + + " X383(383),\n" + + " X384(384),\n" + + " X385(385),\n" + + " X386(386),\n" + + " X387(387),\n" + + " X388(388),\n" + + " X389(389),\n" + + " X390(390),\n" + + " X391(391),\n" + + " X392(392),\n" + + " X393(393),\n" + + " X394(394),\n" + + " X395(395),\n" + + " X396(396),\n" + + " X397(397),\n" + + " X398(398),\n" + + " X399(399),\n" + + " X400(400),\n" + + " X401(401),\n" + + " X402(402),\n" + + " X403(403),\n" + + " X404(404),\n" + + " X405(405),\n" + + " X406(406),\n" + + " X407(407),\n" + + " X408(408),\n" + + " X409(409),\n" + + " X410(410),\n" + + " X411(411),\n" + + " X412(412),\n" + + " X413(413),\n" + + " X414(414),\n" + + " X415(415),\n" + + " X416(416),\n" + + " X417(417),\n" + + " X418(418),\n" + + " X419(419),\n" + + " X420(420),\n" + + " X421(421),\n" + + " X422(422),\n" + + " X423(423),\n" + + " X424(424),\n" + + " X425(425),\n" + + " X426(426),\n" + + " X427(427),\n" + + " X428(428),\n" + + " X429(429),\n" + + " X430(430),\n" + + " X431(431),\n" + + " X432(432),\n" + + " X433(433),\n" + + " X434(434),\n" + + " X435(435),\n" + + " X436(436),\n" + + " X437(437),\n" + + " X438(438),\n" + + " X439(439),\n" + + " X440(440),\n" + + " X441(441),\n" + + " X442(442),\n" + + " X443(443),\n" + + " X444(444),\n" + + " X445(445),\n" + + " X446(446),\n" + + " X447(447),\n" + + " X448(448),\n" + + " X449(449),\n" + + " X450(450),\n" + + " X451(451),\n" + + " X452(452),\n" + + " X453(453),\n" + + " X454(454),\n" + + " X455(455),\n" + + " X456(456),\n" + + " X457(457),\n" + + " X458(458),\n" + + " X459(459),\n" + + " X460(460),\n" + + " X461(461),\n" + + " X462(462),\n" + + " X463(463),\n" + + " X464(464),\n" + + " X465(465),\n" + + " X466(466),\n" + + " X467(467),\n" + + " X468(468),\n" + + " X469(469),\n" + + " X470(470),\n" + + " X471(471),\n" + + " X472(472),\n" + + " X473(473),\n" + + " X474(474),\n" + + " X475(475),\n" + + " X476(476),\n" + + " X477(477),\n" + + " X478(478),\n" + + " X479(479),\n" + + " X480(480),\n" + + " X481(481),\n" + + " X482(482),\n" + + " X483(483),\n" + + " X484(484),\n" + + " X485(485),\n" + + " X486(486),\n" + + " X487(487),\n" + + " X488(488),\n" + + " X489(489),\n" + + " X490(490),\n" + + " X491(491),\n" + + " X492(492),\n" + + " X493(493),\n" + + " X494(494),\n" + + " X495(495),\n" + + " X496(496),\n" + + " X497(497),\n" + + " X498(498),\n" + + " X499(499),\n" + + " X500(500),\n" + + " X501(501),\n" + + " X502(502),\n" + + " X503(503),\n" + + " X504(504),\n" + + " X505(505),\n" + + " X506(506),\n" + + " X507(507),\n" + + " X508(508),\n" + + " X509(509),\n" + + " X510(510),\n" + + " X511(511),\n" + + " X512(512),\n" + + " X513(513),\n" + + " X514(514),\n" + + " X515(515),\n" + + " X516(516),\n" + + " X517(517),\n" + + " X518(518),\n" + + " X519(519),\n" + + " X520(520),\n" + + " X521(521),\n" + + " X522(522),\n" + + " X523(523),\n" + + " X524(524),\n" + + " X525(525),\n" + + " X526(526),\n" + + " X527(527),\n" + + " X528(528),\n" + + " X529(529),\n" + + " X530(530),\n" + + " X531(531),\n" + + " X532(532),\n" + + " X533(533),\n" + + " X534(534),\n" + + " X535(535),\n" + + " X536(536),\n" + + " X537(537),\n" + + " X538(538),\n" + + " X539(539),\n" + + " X540(540),\n" + + " X541(541),\n" + + " X542(542),\n" + + " X543(543),\n" + + " X544(544),\n" + + " X545(545),\n" + + " X546(546),\n" + + " X547(547),\n" + + " X548(548),\n" + + " X549(549),\n" + + " X550(550),\n" + + " X551(551),\n" + + " X552(552),\n" + + " X553(553),\n" + + " X554(554),\n" + + " X555(555),\n" + + " X556(556),\n" + + " X557(557),\n" + + " X558(558),\n" + + " X559(559),\n" + + " X560(560),\n" + + " X561(561),\n" + + " X562(562),\n" + + " X563(563),\n" + + " X564(564),\n" + + " X565(565),\n" + + " X566(566),\n" + + " X567(567),\n" + + " X568(568),\n" + + " X569(569),\n" + + " X570(570),\n" + + " X571(571),\n" + + " X572(572),\n" + + " X573(573),\n" + + " X574(574),\n" + + " X575(575),\n" + + " X576(576),\n" + + " X577(577),\n" + + " X578(578),\n" + + " X579(579),\n" + + " X580(580),\n" + + " X581(581),\n" + + " X582(582),\n" + + " X583(583),\n" + + " X584(584),\n" + + " X585(585),\n" + + " X586(586),\n" + + " X587(587),\n" + + " X588(588),\n" + + " X589(589),\n" + + " X590(590),\n" + + " X591(591),\n" + + " X592(592),\n" + + " X593(593),\n" + + " X594(594),\n" + + " X595(595),\n" + + " X596(596),\n" + + " X597(597),\n" + + " X598(598),\n" + + " X599(599),\n" + + " X600(600),\n" + + " X601(601),\n" + + " X602(602),\n" + + " X603(603),\n" + + " X604(604),\n" + + " X605(605),\n" + + " X606(606),\n" + + " X607(607),\n" + + " X608(608),\n" + + " X609(609),\n" + + " X610(610),\n" + + " X611(611),\n" + + " X612(612),\n" + + " X613(613),\n" + + " X614(614),\n" + + " X615(615),\n" + + " X616(616),\n" + + " X617(617),\n" + + " X618(618),\n" + + " X619(619),\n" + + " X620(620),\n" + + " X621(621),\n" + + " X622(622),\n" + + " X623(623),\n" + + " X624(624),\n" + + " X625(625),\n" + + " X626(626),\n" + + " X627(627),\n" + + " X628(628),\n" + + " X629(629),\n" + + " X630(630),\n" + + " X631(631),\n" + + " X632(632),\n" + + " X633(633),\n" + + " X634(634),\n" + + " X635(635),\n" + + " X636(636),\n" + + " X637(637),\n" + + " X638(638),\n" + + " X639(639),\n" + + " X640(640),\n" + + " X641(641),\n" + + " X642(642),\n" + + " X643(643),\n" + + " X644(644),\n" + + " X645(645),\n" + + " X646(646),\n" + + " X647(647),\n" + + " X648(648),\n" + + " X649(649),\n" + + " X650(650),\n" + + " X651(651),\n" + + " X652(652),\n" + + " X653(653),\n" + + " X654(654),\n" + + " X655(655),\n" + + " X656(656),\n" + + " X657(657),\n" + + " X658(658),\n" + + " X659(659),\n" + + " X660(660),\n" + + " X661(661),\n" + + " X662(662),\n" + + " X663(663),\n" + + " X664(664),\n" + + " X665(665),\n" + + " X666(666),\n" + + " X667(667),\n" + + " X668(668),\n" + + " X669(669),\n" + + " X670(670),\n" + + " X671(671),\n" + + " X672(672),\n" + + " X673(673),\n" + + " X674(674),\n" + + " X675(675),\n" + + " X676(676),\n" + + " X677(677),\n" + + " X678(678),\n" + + " X679(679),\n" + + " X680(680),\n" + + " X681(681),\n" + + " X682(682),\n" + + " X683(683),\n" + + " X684(684),\n" + + " X685(685),\n" + + " X686(686),\n" + + " X687(687),\n" + + " X688(688),\n" + + " X689(689),\n" + + " X690(690),\n" + + " X691(691),\n" + + " X692(692),\n" + + " X693(693),\n" + + " X694(694),\n" + + " X695(695),\n" + + " X696(696),\n" + + " X697(697),\n" + + " X698(698),\n" + + " X699(699),\n" + + " X700(700),\n" + + " X701(701),\n" + + " X702(702),\n" + + " X703(703),\n" + + " X704(704),\n" + + " X705(705),\n" + + " X706(706),\n" + + " X707(707),\n" + + " X708(708),\n" + + " X709(709),\n" + + " X710(710),\n" + + " X711(711),\n" + + " X712(712),\n" + + " X713(713),\n" + + " X714(714),\n" + + " X715(715),\n" + + " X716(716),\n" + + " X717(717),\n" + + " X718(718),\n" + + " X719(719),\n" + + " X720(720),\n" + + " X721(721),\n" + + " X722(722),\n" + + " X723(723),\n" + + " X724(724),\n" + + " X725(725),\n" + + " X726(726),\n" + + " X727(727),\n" + + " X728(728),\n" + + " X729(729),\n" + + " X730(730),\n" + + " X731(731),\n" + + " X732(732),\n" + + " X733(733),\n" + + " X734(734),\n" + + " X735(735),\n" + + " X736(736),\n" + + " X737(737),\n" + + " X738(738),\n" + + " X739(739),\n" + + " X740(740),\n" + + " X741(741),\n" + + " X742(742),\n" + + " X743(743),\n" + + " X744(744),\n" + + " X745(745),\n" + + " X746(746),\n" + + " X747(747),\n" + + " X748(748),\n" + + " X749(749),\n" + + " X750(750),\n" + + " X751(751),\n" + + " X752(752),\n" + + " X753(753),\n" + + " X754(754),\n" + + " X755(755),\n" + + " X756(756),\n" + + " X757(757),\n" + + " X758(758),\n" + + " X759(759),\n" + + " X760(760),\n" + + " X761(761),\n" + + " X762(762),\n" + + " X763(763),\n" + + " X764(764),\n" + + " X765(765),\n" + + " X766(766),\n" + + " X767(767),\n" + + " X768(768),\n" + + " X769(769),\n" + + " X770(770),\n" + + " X771(771),\n" + + " X772(772),\n" + + " X773(773),\n" + + " X774(774),\n" + + " X775(775),\n" + + " X776(776),\n" + + " X777(777),\n" + + " X778(778),\n" + + " X779(779),\n" + + " X780(780),\n" + + " X781(781),\n" + + " X782(782),\n" + + " X783(783),\n" + + " X784(784),\n" + + " X785(785),\n" + + " X786(786),\n" + + " X787(787),\n" + + " X788(788),\n" + + " X789(789),\n" + + " X790(790),\n" + + " X791(791),\n" + + " X792(792),\n" + + " X793(793),\n" + + " X794(794),\n" + + " X795(795),\n" + + " X796(796),\n" + + " X797(797),\n" + + " X798(798),\n" + + " X799(799),\n" + + " X800(800),\n" + + " X801(801),\n" + + " X802(802),\n" + + " X803(803),\n" + + " X804(804),\n" + + " X805(805),\n" + + " X806(806),\n" + + " X807(807),\n" + + " X808(808),\n" + + " X809(809),\n" + + " X810(810),\n" + + " X811(811),\n" + + " X812(812),\n" + + " X813(813),\n" + + " X814(814),\n" + + " X815(815),\n" + + " X816(816),\n" + + " X817(817),\n" + + " X818(818),\n" + + " X819(819),\n" + + " X820(820),\n" + + " X821(821),\n" + + " X822(822),\n" + + " X823(823),\n" + + " X824(824),\n" + + " X825(825),\n" + + " X826(826),\n" + + " X827(827),\n" + + " X828(828),\n" + + " X829(829),\n" + + " X830(830),\n" + + " X831(831),\n" + + " X832(832),\n" + + " X833(833),\n" + + " X834(834),\n" + + " X835(835),\n" + + " X836(836),\n" + + " X837(837),\n" + + " X838(838),\n" + + " X839(839),\n" + + " X840(840),\n" + + " X841(841),\n" + + " X842(842),\n" + + " X843(843),\n" + + " X844(844),\n" + + " X845(845),\n" + + " X846(846),\n" + + " X847(847),\n" + + " X848(848),\n" + + " X849(849),\n" + + " X850(850),\n" + + " X851(851),\n" + + " X852(852),\n" + + " X853(853),\n" + + " X854(854),\n" + + " X855(855),\n" + + " X856(856),\n" + + " X857(857),\n" + + " X858(858),\n" + + " X859(859),\n" + + " X860(860),\n" + + " X861(861),\n" + + " X862(862),\n" + + " X863(863),\n" + + " X864(864),\n" + + " X865(865),\n" + + " X866(866),\n" + + " X867(867),\n" + + " X868(868),\n" + + " X869(869),\n" + + " X870(870),\n" + + " X871(871),\n" + + " X872(872),\n" + + " X873(873),\n" + + " X874(874),\n" + + " X875(875),\n" + + " X876(876),\n" + + " X877(877),\n" + + " X878(878),\n" + + " X879(879),\n" + + " X880(880),\n" + + " X881(881),\n" + + " X882(882),\n" + + " X883(883),\n" + + " X884(884),\n" + + " X885(885),\n" + + " X886(886),\n" + + " X887(887),\n" + + " X888(888),\n" + + " X889(889),\n" + + " X890(890),\n" + + " X891(891),\n" + + " X892(892),\n" + + " X893(893),\n" + + " X894(894),\n" + + " X895(895),\n" + + " X896(896),\n" + + " X897(897),\n" + + " X898(898),\n" + + " X899(899),\n" + + " X900(900),\n" + + " X901(901),\n" + + " X902(902),\n" + + " X903(903),\n" + + " X904(904),\n" + + " X905(905),\n" + + " X906(906),\n" + + " X907(907),\n" + + " X908(908),\n" + + " X909(909),\n" + + " X910(910),\n" + + " X911(911),\n" + + " X912(912),\n" + + " X913(913),\n" + + " X914(914),\n" + + " X915(915),\n" + + " X916(916),\n" + + " X917(917),\n" + + " X918(918),\n" + + " X919(919),\n" + + " X920(920),\n" + + " X921(921),\n" + + " X922(922),\n" + + " X923(923),\n" + + " X924(924),\n" + + " X925(925),\n" + + " X926(926),\n" + + " X927(927),\n" + + " X928(928),\n" + + " X929(929),\n" + + " X930(930),\n" + + " X931(931),\n" + + " X932(932),\n" + + " X933(933),\n" + + " X934(934),\n" + + " X935(935),\n" + + " X936(936),\n" + + " X937(937),\n" + + " X938(938),\n" + + " X939(939),\n" + + " X940(940),\n" + + " X941(941),\n" + + " X942(942),\n" + + " X943(943),\n" + + " X944(944),\n" + + " X945(945),\n" + + " X946(946),\n" + + " X947(947),\n" + + " X948(948),\n" + + " X949(949),\n" + + " X950(950),\n" + + " X951(951),\n" + + " X952(952),\n" + + " X953(953),\n" + + " X954(954),\n" + + " X955(955),\n" + + " X956(956),\n" + + " X957(957),\n" + + " X958(958),\n" + + " X959(959),\n" + + " X960(960),\n" + + " X961(961),\n" + + " X962(962),\n" + + " X963(963),\n" + + " X964(964),\n" + + " X965(965),\n" + + " X966(966),\n" + + " X967(967),\n" + + " X968(968),\n" + + " X969(969),\n" + + " X970(970),\n" + + " X971(971),\n" + + " X972(972),\n" + + " X973(973),\n" + + " X974(974),\n" + + " X975(975),\n" + + " X976(976),\n" + + " X977(977),\n" + + " X978(978),\n" + + " X979(979),\n" + + " X980(980),\n" + + " X981(981),\n" + + " X982(982),\n" + + " X983(983),\n" + + " X984(984),\n" + + " X985(985),\n" + + " X986(986),\n" + + " X987(987),\n" + + " X988(988),\n" + + " X989(989),\n" + + " X990(990),\n" + + " X991(991),\n" + + " X992(992),\n" + + " X993(993),\n" + + " X994(994),\n" + + " X995(995),\n" + + " X996(996),\n" + + " X997(997),\n" + + " X998(998),\n" + + " X999(999),\n" + + " X1000(1000),\n" + + " X1001(1001),\n" + + " X1002(1002),\n" + + " X1003(1003),\n" + + " X1004(1004),\n" + + " X1005(1005),\n" + + " X1006(1006),\n" + + " X1007(1007),\n" + + " X1008(1008),\n" + + " X1009(1009),\n" + + " X1010(1010),\n" + + " X1011(1011),\n" + + " X1012(1012),\n" + + " X1013(1013),\n" + + " X1014(1014),\n" + + " X1015(1015),\n" + + " X1016(1016),\n" + + " X1017(1017),\n" + + " X1018(1018),\n" + + " X1019(1019),\n" + + " X1020(1020),\n" + + " X1021(1021),\n" + + " X1022(1022),\n" + + " X1023(1023),\n" + + " X1024(1024),\n" + + " X1025(1025),\n" + + " X1026(1026),\n" + + " X1027(1027),\n" + + " X1028(1028),\n" + + " X1029(1029),\n" + + " X1030(1030),\n" + + " X1031(1031),\n" + + " X1032(1032),\n" + + " X1033(1033),\n" + + " X1034(1034),\n" + + " X1035(1035),\n" + + " X1036(1036),\n" + + " X1037(1037),\n" + + " X1038(1038),\n" + + " X1039(1039),\n" + + " X1040(1040),\n" + + " X1041(1041),\n" + + " X1042(1042),\n" + + " X1043(1043),\n" + + " X1044(1044),\n" + + " X1045(1045),\n" + + " X1046(1046),\n" + + " X1047(1047),\n" + + " X1048(1048),\n" + + " X1049(1049),\n" + + " X1050(1050),\n" + + " X1051(1051),\n" + + " X1052(1052),\n" + + " X1053(1053),\n" + + " X1054(1054),\n" + + " X1055(1055),\n" + + " X1056(1056),\n" + + " X1057(1057),\n" + + " X1058(1058),\n" + + " X1059(1059),\n" + + " X1060(1060),\n" + + " X1061(1061),\n" + + " X1062(1062),\n" + + " X1063(1063),\n" + + " X1064(1064),\n" + + " X1065(1065),\n" + + " X1066(1066),\n" + + " X1067(1067),\n" + + " X1068(1068),\n" + + " X1069(1069),\n" + + " X1070(1070),\n" + + " X1071(1071),\n" + + " X1072(1072),\n" + + " X1073(1073),\n" + + " X1074(1074),\n" + + " X1075(1075),\n" + + " X1076(1076),\n" + + " X1077(1077),\n" + + " X1078(1078),\n" + + " X1079(1079),\n" + + " X1080(1080),\n" + + " X1081(1081),\n" + + " X1082(1082),\n" + + " X1083(1083),\n" + + " X1084(1084),\n" + + " X1085(1085),\n" + + " X1086(1086),\n" + + " X1087(1087),\n" + + " X1088(1088),\n" + + " X1089(1089),\n" + + " X1090(1090),\n" + + " X1091(1091),\n" + + " X1092(1092),\n" + + " X1093(1093),\n" + + " X1094(1094),\n" + + " X1095(1095),\n" + + " X1096(1096),\n" + + " X1097(1097),\n" + + " X1098(1098),\n" + + " X1099(1099),\n" + + " X1100(1100),\n" + + " X1101(1101),\n" + + " X1102(1102),\n" + + " X1103(1103),\n" + + " X1104(1104),\n" + + " X1105(1105),\n" + + " X1106(1106),\n" + + " X1107(1107),\n" + + " X1108(1108),\n" + + " X1109(1109),\n" + + " X1110(1110),\n" + + " X1111(1111),\n" + + " X1112(1112),\n" + + " X1113(1113),\n" + + " X1114(1114),\n" + + " X1115(1115),\n" + + " X1116(1116),\n" + + " X1117(1117),\n" + + " X1118(1118),\n" + + " X1119(1119),\n" + + " X1120(1120),\n" + + " X1121(1121),\n" + + " X1122(1122),\n" + + " X1123(1123),\n" + + " X1124(1124),\n" + + " X1125(1125),\n" + + " X1126(1126),\n" + + " X1127(1127),\n" + + " X1128(1128),\n" + + " X1129(1129),\n" + + " X1130(1130),\n" + + " X1131(1131),\n" + + " X1132(1132),\n" + + " X1133(1133),\n" + + " X1134(1134),\n" + + " X1135(1135),\n" + + " X1136(1136),\n" + + " X1137(1137),\n" + + " X1138(1138),\n" + + " X1139(1139),\n" + + " X1140(1140),\n" + + " X1141(1141),\n" + + " X1142(1142),\n" + + " X1143(1143),\n" + + " X1144(1144),\n" + + " X1145(1145),\n" + + " X1146(1146),\n" + + " X1147(1147),\n" + + " X1148(1148),\n" + + " X1149(1149),\n" + + " X1150(1150),\n" + + " X1151(1151),\n" + + " X1152(1152),\n" + + " X1153(1153),\n" + + " X1154(1154),\n" + + " X1155(1155),\n" + + " X1156(1156),\n" + + " X1157(1157),\n" + + " X1158(1158),\n" + + " X1159(1159),\n" + + " X1160(1160),\n" + + " X1161(1161),\n" + + " X1162(1162),\n" + + " X1163(1163),\n" + + " X1164(1164),\n" + + " X1165(1165),\n" + + " X1166(1166),\n" + + " X1167(1167),\n" + + " X1168(1168),\n" + + " X1169(1169),\n" + + " X1170(1170),\n" + + " X1171(1171),\n" + + " X1172(1172),\n" + + " X1173(1173),\n" + + " X1174(1174),\n" + + " X1175(1175),\n" + + " X1176(1176),\n" + + " X1177(1177),\n" + + " X1178(1178),\n" + + " X1179(1179),\n" + + " X1180(1180),\n" + + " X1181(1181),\n" + + " X1182(1182),\n" + + " X1183(1183),\n" + + " X1184(1184),\n" + + " X1185(1185),\n" + + " X1186(1186),\n" + + " X1187(1187),\n" + + " X1188(1188),\n" + + " X1189(1189),\n" + + " X1190(1190),\n" + + " X1191(1191),\n" + + " X1192(1192),\n" + + " X1193(1193),\n" + + " X1194(1194),\n" + + " X1195(1195),\n" + + " X1196(1196),\n" + + " X1197(1197),\n" + + " X1198(1198),\n" + + " X1199(1199),\n" + + " X1200(1200),\n" + + " X1201(1201),\n" + + " X1202(1202),\n" + + " X1203(1203),\n" + + " X1204(1204),\n" + + " X1205(1205),\n" + + " X1206(1206),\n" + + " X1207(1207),\n" + + " X1208(1208),\n" + + " X1209(1209),\n" + + " X1210(1210),\n" + + " X1211(1211),\n" + + " X1212(1212),\n" + + " X1213(1213),\n" + + " X1214(1214),\n" + + " X1215(1215),\n" + + " X1216(1216),\n" + + " X1217(1217),\n" + + " X1218(1218),\n" + + " X1219(1219),\n" + + " X1220(1220),\n" + + " X1221(1221),\n" + + " X1222(1222),\n" + + " X1223(1223),\n" + + " X1224(1224),\n" + + " X1225(1225),\n" + + " X1226(1226),\n" + + " X1227(1227),\n" + + " X1228(1228),\n" + + " X1229(1229),\n" + + " X1230(1230),\n" + + " X1231(1231),\n" + + " X1232(1232),\n" + + " X1233(1233),\n" + + " X1234(1234),\n" + + " X1235(1235),\n" + + " X1236(1236),\n" + + " X1237(1237),\n" + + " X1238(1238),\n" + + " X1239(1239),\n" + + " X1240(1240),\n" + + " X1241(1241),\n" + + " X1242(1242),\n" + + " X1243(1243),\n" + + " X1244(1244),\n" + + " X1245(1245),\n" + + " X1246(1246),\n" + + " X1247(1247),\n" + + " X1248(1248),\n" + + " X1249(1249),\n" + + " X1250(1250),\n" + + " X1251(1251),\n" + + " X1252(1252),\n" + + " X1253(1253),\n" + + " X1254(1254),\n" + + " X1255(1255),\n" + + " X1256(1256),\n" + + " X1257(1257),\n" + + " X1258(1258),\n" + + " X1259(1259),\n" + + " X1260(1260),\n" + + " X1261(1261),\n" + + " X1262(1262),\n" + + " X1263(1263),\n" + + " X1264(1264),\n" + + " X1265(1265),\n" + + " X1266(1266),\n" + + " X1267(1267),\n" + + " X1268(1268),\n" + + " X1269(1269),\n" + + " X1270(1270),\n" + + " X1271(1271),\n" + + " X1272(1272),\n" + + " X1273(1273),\n" + + " X1274(1274),\n" + + " X1275(1275),\n" + + " X1276(1276),\n" + + " X1277(1277),\n" + + " X1278(1278),\n" + + " X1279(1279),\n" + + " X1280(1280),\n" + + " X1281(1281),\n" + + " X1282(1282),\n" + + " X1283(1283),\n" + + " X1284(1284),\n" + + " X1285(1285),\n" + + " X1286(1286),\n" + + " X1287(1287),\n" + + " X1288(1288),\n" + + " X1289(1289),\n" + + " X1290(1290),\n" + + " X1291(1291),\n" + + " X1292(1292),\n" + + " X1293(1293),\n" + + " X1294(1294),\n" + + " X1295(1295),\n" + + " X1296(1296),\n" + + " X1297(1297),\n" + + " X1298(1298),\n" + + " X1299(1299),\n" + + " X1300(1300),\n" + + " X1301(1301),\n" + + " X1302(1302),\n" + + " X1303(1303),\n" + + " X1304(1304),\n" + + " X1305(1305),\n" + + " X1306(1306),\n" + + " X1307(1307),\n" + + " X1308(1308),\n" + + " X1309(1309),\n" + + " X1310(1310),\n" + + " X1311(1311),\n" + + " X1312(1312),\n" + + " X1313(1313),\n" + + " X1314(1314),\n" + + " X1315(1315),\n" + + " X1316(1316),\n" + + " X1317(1317),\n" + + " X1318(1318),\n" + + " X1319(1319),\n" + + " X1320(1320),\n" + + " X1321(1321),\n" + + " X1322(1322),\n" + + " X1323(1323),\n" + + " X1324(1324),\n" + + " X1325(1325),\n" + + " X1326(1326),\n" + + " X1327(1327),\n" + + " X1328(1328),\n" + + " X1329(1329),\n" + + " X1330(1330),\n" + + " X1331(1331),\n" + + " X1332(1332),\n" + + " X1333(1333),\n" + + " X1334(1334),\n" + + " X1335(1335),\n" + + " X1336(1336),\n" + + " X1337(1337),\n" + + " X1338(1338),\n" + + " X1339(1339),\n" + + " X1340(1340),\n" + + " X1341(1341),\n" + + " X1342(1342),\n" + + " X1343(1343),\n" + + " X1344(1344),\n" + + " X1345(1345),\n" + + " X1346(1346),\n" + + " X1347(1347),\n" + + " X1348(1348),\n" + + " X1349(1349),\n" + + " X1350(1350),\n" + + " X1351(1351),\n" + + " X1352(1352),\n" + + " X1353(1353),\n" + + " X1354(1354),\n" + + " X1355(1355),\n" + + " X1356(1356),\n" + + " X1357(1357),\n" + + " X1358(1358),\n" + + " X1359(1359),\n" + + " X1360(1360),\n" + + " X1361(1361),\n" + + " X1362(1362),\n" + + " X1363(1363),\n" + + " X1364(1364),\n" + + " X1365(1365),\n" + + " X1366(1366),\n" + + " X1367(1367),\n" + + " X1368(1368),\n" + + " X1369(1369),\n" + + " X1370(1370),\n" + + " X1371(1371),\n" + + " X1372(1372),\n" + + " X1373(1373),\n" + + " X1374(1374),\n" + + " X1375(1375),\n" + + " X1376(1376),\n" + + " X1377(1377),\n" + + " X1378(1378),\n" + + " X1379(1379),\n" + + " X1380(1380),\n" + + " X1381(1381),\n" + + " X1382(1382),\n" + + " X1383(1383),\n" + + " X1384(1384),\n" + + " X1385(1385),\n" + + " X1386(1386),\n" + + " X1387(1387),\n" + + " X1388(1388),\n" + + " X1389(1389),\n" + + " X1390(1390),\n" + + " X1391(1391),\n" + + " X1392(1392),\n" + + " X1393(1393),\n" + + " X1394(1394),\n" + + " X1395(1395),\n" + + " X1396(1396),\n" + + " X1397(1397),\n" + + " X1398(1398),\n" + + " X1399(1399),\n" + + " X1400(1400),\n" + + " X1401(1401),\n" + + " X1402(1402),\n" + + " X1403(1403),\n" + + " X1404(1404),\n" + + " X1405(1405),\n" + + " X1406(1406),\n" + + " X1407(1407),\n" + + " X1408(1408),\n" + + " X1409(1409),\n" + + " X1410(1410),\n" + + " X1411(1411),\n" + + " X1412(1412),\n" + + " X1413(1413),\n" + + " X1414(1414),\n" + + " X1415(1415),\n" + + " X1416(1416),\n" + + " X1417(1417),\n" + + " X1418(1418),\n" + + " X1419(1419),\n" + + " X1420(1420),\n" + + " X1421(1421),\n" + + " X1422(1422),\n" + + " X1423(1423),\n" + + " X1424(1424),\n" + + " X1425(1425),\n" + + " X1426(1426),\n" + + " X1427(1427),\n" + + " X1428(1428),\n" + + " X1429(1429),\n" + + " X1430(1430),\n" + + " X1431(1431),\n" + + " X1432(1432),\n" + + " X1433(1433),\n" + + " X1434(1434),\n" + + " X1435(1435),\n" + + " X1436(1436),\n" + + " X1437(1437),\n" + + " X1438(1438),\n" + + " X1439(1439),\n" + + " X1440(1440),\n" + + " X1441(1441),\n" + + " X1442(1442),\n" + + " X1443(1443),\n" + + " X1444(1444),\n" + + " X1445(1445),\n" + + " X1446(1446),\n" + + " X1447(1447),\n" + + " X1448(1448),\n" + + " X1449(1449),\n" + + " X1450(1450),\n" + + " X1451(1451),\n" + + " X1452(1452),\n" + + " X1453(1453),\n" + + " X1454(1454),\n" + + " X1455(1455),\n" + + " X1456(1456),\n" + + " X1457(1457),\n" + + " X1458(1458),\n" + + " X1459(1459),\n" + + " X1460(1460),\n" + + " X1461(1461),\n" + + " X1462(1462),\n" + + " X1463(1463),\n" + + " X1464(1464),\n" + + " X1465(1465),\n" + + " X1466(1466),\n" + + " X1467(1467),\n" + + " X1468(1468),\n" + + " X1469(1469),\n" + + " X1470(1470),\n" + + " X1471(1471),\n" + + " X1472(1472),\n" + + " X1473(1473),\n" + + " X1474(1474),\n" + + " X1475(1475),\n" + + " X1476(1476),\n" + + " X1477(1477),\n" + + " X1478(1478),\n" + + " X1479(1479),\n" + + " X1480(1480),\n" + + " X1481(1481),\n" + + " X1482(1482),\n" + + " X1483(1483),\n" + + " X1484(1484),\n" + + " X1485(1485),\n" + + " X1486(1486),\n" + + " X1487(1487),\n" + + " X1488(1488),\n" + + " X1489(1489),\n" + + " X1490(1490),\n" + + " X1491(1491),\n" + + " X1492(1492),\n" + + " X1493(1493),\n" + + " X1494(1494),\n" + + " X1495(1495),\n" + + " X1496(1496),\n" + + " X1497(1497),\n" + + " X1498(1498),\n" + + " X1499(1499),\n" + + " X1500(1500),\n" + + " X1501(1501),\n" + + " X1502(1502),\n" + + " X1503(1503),\n" + + " X1504(1504),\n" + + " X1505(1505),\n" + + " X1506(1506),\n" + + " X1507(1507),\n" + + " X1508(1508),\n" + + " X1509(1509),\n" + + " X1510(1510),\n" + + " X1511(1511),\n" + + " X1512(1512),\n" + + " X1513(1513),\n" + + " X1514(1514),\n" + + " X1515(1515),\n" + + " X1516(1516),\n" + + " X1517(1517),\n" + + " X1518(1518),\n" + + " X1519(1519),\n" + + " X1520(1520),\n" + + " X1521(1521),\n" + + " X1522(1522),\n" + + " X1523(1523),\n" + + " X1524(1524),\n" + + " X1525(1525),\n" + + " X1526(1526),\n" + + " X1527(1527),\n" + + " X1528(1528),\n" + + " X1529(1529),\n" + + " X1530(1530),\n" + + " X1531(1531),\n" + + " X1532(1532),\n" + + " X1533(1533),\n" + + " X1534(1534),\n" + + " X1535(1535),\n" + + " X1536(1536),\n" + + " X1537(1537),\n" + + " X1538(1538),\n" + + " X1539(1539),\n" + + " X1540(1540),\n" + + " X1541(1541),\n" + + " X1542(1542),\n" + + " X1543(1543),\n" + + " X1544(1544),\n" + + " X1545(1545),\n" + + " X1546(1546),\n" + + " X1547(1547),\n" + + " X1548(1548),\n" + + " X1549(1549),\n" + + " X1550(1550),\n" + + " X1551(1551),\n" + + " X1552(1552),\n" + + " X1553(1553),\n" + + " X1554(1554),\n" + + " X1555(1555),\n" + + " X1556(1556),\n" + + " X1557(1557),\n" + + " X1558(1558),\n" + + " X1559(1559),\n" + + " X1560(1560),\n" + + " X1561(1561),\n" + + " X1562(1562),\n" + + " X1563(1563),\n" + + " X1564(1564),\n" + + " X1565(1565),\n" + + " X1566(1566),\n" + + " X1567(1567),\n" + + " X1568(1568),\n" + + " X1569(1569),\n" + + " X1570(1570),\n" + + " X1571(1571),\n" + + " X1572(1572),\n" + + " X1573(1573),\n" + + " X1574(1574),\n" + + " X1575(1575),\n" + + " X1576(1576),\n" + + " X1577(1577),\n" + + " X1578(1578),\n" + + " X1579(1579),\n" + + " X1580(1580),\n" + + " X1581(1581),\n" + + " X1582(1582),\n" + + " X1583(1583),\n" + + " X1584(1584),\n" + + " X1585(1585),\n" + + " X1586(1586),\n" + + " X1587(1587),\n" + + " X1588(1588),\n" + + " X1589(1589),\n" + + " X1590(1590),\n" + + " X1591(1591),\n" + + " X1592(1592),\n" + + " X1593(1593),\n" + + " X1594(1594),\n" + + " X1595(1595),\n" + + " X1596(1596),\n" + + " X1597(1597),\n" + + " X1598(1598),\n" + + " X1599(1599),\n" + + " X1600(1600),\n" + + " X1601(1601),\n" + + " X1602(1602),\n" + + " X1603(1603),\n" + + " X1604(1604),\n" + + " X1605(1605),\n" + + " X1606(1606),\n" + + " X1607(1607),\n" + + " X1608(1608),\n" + + " X1609(1609),\n" + + " X1610(1610),\n" + + " X1611(1611),\n" + + " X1612(1612),\n" + + " X1613(1613),\n" + + " X1614(1614),\n" + + " X1615(1615),\n" + + " X1616(1616),\n" + + " X1617(1617),\n" + + " X1618(1618),\n" + + " X1619(1619),\n" + + " X1620(1620),\n" + + " X1621(1621),\n" + + " X1622(1622),\n" + + " X1623(1623),\n" + + " X1624(1624),\n" + + " X1625(1625),\n" + + " X1626(1626),\n" + + " X1627(1627),\n" + + " X1628(1628),\n" + + " X1629(1629),\n" + + " X1630(1630),\n" + + " X1631(1631),\n" + + " X1632(1632),\n" + + " X1633(1633),\n" + + " X1634(1634),\n" + + " X1635(1635),\n" + + " X1636(1636),\n" + + " X1637(1637),\n" + + " X1638(1638),\n" + + " X1639(1639),\n" + + " X1640(1640),\n" + + " X1641(1641),\n" + + " X1642(1642),\n" + + " X1643(1643),\n" + + " X1644(1644),\n" + + " X1645(1645),\n" + + " X1646(1646),\n" + + " X1647(1647),\n" + + " X1648(1648),\n" + + " X1649(1649),\n" + + " X1650(1650),\n" + + " X1651(1651),\n" + + " X1652(1652),\n" + + " X1653(1653),\n" + + " X1654(1654),\n" + + " X1655(1655),\n" + + " X1656(1656),\n" + + " X1657(1657),\n" + + " X1658(1658),\n" + + " X1659(1659),\n" + + " X1660(1660),\n" + + " X1661(1661),\n" + + " X1662(1662),\n" + + " X1663(1663),\n" + + " X1664(1664),\n" + + " X1665(1665),\n" + + " X1666(1666),\n" + + " X1667(1667),\n" + + " X1668(1668),\n" + + " X1669(1669),\n" + + " X1670(1670),\n" + + " X1671(1671),\n" + + " X1672(1672),\n" + + " X1673(1673),\n" + + " X1674(1674),\n" + + " X1675(1675),\n" + + " X1676(1676),\n" + + " X1677(1677),\n" + + " X1678(1678),\n" + + " X1679(1679),\n" + + " X1680(1680),\n" + + " X1681(1681),\n" + + " X1682(1682),\n" + + " X1683(1683),\n" + + " X1684(1684),\n" + + " X1685(1685),\n" + + " X1686(1686),\n" + + " X1687(1687),\n" + + " X1688(1688),\n" + + " X1689(1689),\n" + + " X1690(1690),\n" + + " X1691(1691),\n" + + " X1692(1692),\n" + + " X1693(1693),\n" + + " X1694(1694),\n" + + " X1695(1695),\n" + + " X1696(1696),\n" + + " X1697(1697),\n" + + " X1698(1698),\n" + + " X1699(1699),\n" + + " X1700(1700),\n" + + " X1701(1701),\n" + + " X1702(1702),\n" + + " X1703(1703),\n" + + " X1704(1704),\n" + + " X1705(1705),\n" + + " X1706(1706),\n" + + " X1707(1707),\n" + + " X1708(1708),\n" + + " X1709(1709),\n" + + " X1710(1710),\n" + + " X1711(1711),\n" + + " X1712(1712),\n" + + " X1713(1713),\n" + + " X1714(1714),\n" + + " X1715(1715),\n" + + " X1716(1716),\n" + + " X1717(1717),\n" + + " X1718(1718),\n" + + " X1719(1719),\n" + + " X1720(1720),\n" + + " X1721(1721),\n" + + " X1722(1722),\n" + + " X1723(1723),\n" + + " X1724(1724),\n" + + " X1725(1725),\n" + + " X1726(1726),\n" + + " X1727(1727),\n" + + " X1728(1728),\n" + + " X1729(1729),\n" + + " X1730(1730),\n" + + " X1731(1731),\n" + + " X1732(1732),\n" + + " X1733(1733),\n" + + " X1734(1734),\n" + + " X1735(1735),\n" + + " X1736(1736),\n" + + " X1737(1737),\n" + + " X1738(1738),\n" + + " X1739(1739),\n" + + " X1740(1740),\n" + + " X1741(1741),\n" + + " X1742(1742),\n" + + " X1743(1743),\n" + + " X1744(1744),\n" + + " X1745(1745),\n" + + " X1746(1746),\n" + + " X1747(1747),\n" + + " X1748(1748),\n" + + " X1749(1749),\n" + + " X1750(1750),\n" + + " X1751(1751),\n" + + " X1752(1752),\n" + + " X1753(1753),\n" + + " X1754(1754),\n" + + " X1755(1755),\n" + + " X1756(1756),\n" + + " X1757(1757),\n" + + " X1758(1758),\n" + + " X1759(1759),\n" + + " X1760(1760),\n" + + " X1761(1761),\n" + + " X1762(1762),\n" + + " X1763(1763),\n" + + " X1764(1764),\n" + + " X1765(1765),\n" + + " X1766(1766),\n" + + " X1767(1767),\n" + + " X1768(1768),\n" + + " X1769(1769),\n" + + " X1770(1770),\n" + + " X1771(1771),\n" + + " X1772(1772),\n" + + " X1773(1773),\n" + + " X1774(1774),\n" + + " X1775(1775),\n" + + " X1776(1776),\n" + + " X1777(1777),\n" + + " X1778(1778),\n" + + " X1779(1779),\n" + + " X1780(1780),\n" + + " X1781(1781),\n" + + " X1782(1782),\n" + + " X1783(1783),\n" + + " X1784(1784),\n" + + " X1785(1785),\n" + + " X1786(1786),\n" + + " X1787(1787),\n" + + " X1788(1788),\n" + + " X1789(1789),\n" + + " X1790(1790),\n" + + " X1791(1791),\n" + + " X1792(1792),\n" + + " X1793(1793),\n" + + " X1794(1794),\n" + + " X1795(1795),\n" + + " X1796(1796),\n" + + " X1797(1797),\n" + + " X1798(1798),\n" + + " X1799(1799),\n" + + " X1800(1800),\n" + + " X1801(1801),\n" + + " X1802(1802),\n" + + " X1803(1803),\n" + + " X1804(1804),\n" + + " X1805(1805),\n" + + " X1806(1806),\n" + + " X1807(1807),\n" + + " X1808(1808),\n" + + " X1809(1809),\n" + + " X1810(1810),\n" + + " X1811(1811),\n" + + " X1812(1812),\n" + + " X1813(1813),\n" + + " X1814(1814),\n" + + " X1815(1815),\n" + + " X1816(1816),\n" + + " X1817(1817),\n" + + " X1818(1818),\n" + + " X1819(1819),\n" + + " X1820(1820),\n" + + " X1821(1821),\n" + + " X1822(1822),\n" + + " X1823(1823),\n" + + " X1824(1824),\n" + + " X1825(1825),\n" + + " X1826(1826),\n" + + " X1827(1827),\n" + + " X1828(1828),\n" + + " X1829(1829),\n" + + " X1830(1830),\n" + + " X1831(1831),\n" + + " X1832(1832),\n" + + " X1833(1833),\n" + + " X1834(1834),\n" + + " X1835(1835),\n" + + " X1836(1836),\n" + + " X1837(1837),\n" + + " X1838(1838),\n" + + " X1839(1839),\n" + + " X1840(1840),\n" + + " X1841(1841),\n" + + " X1842(1842),\n" + + " X1843(1843),\n" + + " X1844(1844),\n" + + " X1845(1845),\n" + + " X1846(1846),\n" + + " X1847(1847),\n" + + " X1848(1848),\n" + + " X1849(1849),\n" + + " X1850(1850),\n" + + " X1851(1851),\n" + + " X1852(1852),\n" + + " X1853(1853),\n" + + " X1854(1854),\n" + + " X1855(1855),\n" + + " X1856(1856),\n" + + " X1857(1857),\n" + + " X1858(1858),\n" + + " X1859(1859),\n" + + " X1860(1860),\n" + + " X1861(1861),\n" + + " X1862(1862),\n" + + " X1863(1863),\n" + + " X1864(1864),\n" + + " X1865(1865),\n" + + " X1866(1866),\n" + + " X1867(1867),\n" + + " X1868(1868),\n" + + " X1869(1869),\n" + + " X1870(1870),\n" + + " X1871(1871),\n" + + " X1872(1872),\n" + + " X1873(1873),\n" + + " X1874(1874),\n" + + " X1875(1875),\n" + + " X1876(1876),\n" + + " X1877(1877),\n" + + " X1878(1878),\n" + + " X1879(1879),\n" + + " X1880(1880),\n" + + " X1881(1881),\n" + + " X1882(1882),\n" + + " X1883(1883),\n" + + " X1884(1884),\n" + + " X1885(1885),\n" + + " X1886(1886),\n" + + " X1887(1887),\n" + + " X1888(1888),\n" + + " X1889(1889),\n" + + " X1890(1890),\n" + + " X1891(1891),\n" + + " X1892(1892),\n" + + " X1893(1893),\n" + + " X1894(1894),\n" + + " X1895(1895),\n" + + " X1896(1896),\n" + + " X1897(1897),\n" + + " X1898(1898),\n" + + " X1899(1899),\n" + + " X1900(1900),\n" + + " X1901(1901),\n" + + " X1902(1902),\n" + + " X1903(1903),\n" + + " X1904(1904),\n" + + " X1905(1905),\n" + + " X1906(1906),\n" + + " X1907(1907),\n" + + " X1908(1908),\n" + + " X1909(1909),\n" + + " X1910(1910),\n" + + " X1911(1911),\n" + + " X1912(1912),\n" + + " X1913(1913),\n" + + " X1914(1914),\n" + + " X1915(1915),\n" + + " X1916(1916),\n" + + " X1917(1917),\n" + + " X1918(1918),\n" + + " X1919(1919),\n" + + " X1920(1920),\n" + + " X1921(1921),\n" + + " X1922(1922),\n" + + " X1923(1923),\n" + + " X1924(1924),\n" + + " X1925(1925),\n" + + " X1926(1926),\n" + + " X1927(1927),\n" + + " X1928(1928),\n" + + " X1929(1929),\n" + + " X1930(1930),\n" + + " X1931(1931),\n" + + " X1932(1932),\n" + + " X1933(1933),\n" + + " X1934(1934),\n" + + " X1935(1935),\n" + + " X1936(1936),\n" + + " X1937(1937),\n" + + " X1938(1938),\n" + + " X1939(1939),\n" + + " X1940(1940),\n" + + " X1941(1941),\n" + + " X1942(1942),\n" + + " X1943(1943),\n" + + " X1944(1944),\n" + + " X1945(1945),\n" + + " X1946(1946),\n" + + " X1947(1947),\n" + + " X1948(1948),\n" + + " X1949(1949),\n" + + " X1950(1950),\n" + + " X1951(1951),\n" + + " X1952(1952),\n" + + " X1953(1953),\n" + + " X1954(1954),\n" + + " X1955(1955),\n" + + " X1956(1956),\n" + + " X1957(1957),\n" + + " X1958(1958),\n" + + " X1959(1959),\n" + + " X1960(1960),\n" + + " X1961(1961),\n" + + " X1962(1962),\n" + + " X1963(1963),\n" + + " X1964(1964),\n" + + " X1965(1965),\n" + + " X1966(1966),\n" + + " X1967(1967),\n" + + " X1968(1968),\n" + + " X1969(1969),\n" + + " X1970(1970),\n" + + " X1971(1971),\n" + + " X1972(1972),\n" + + " X1973(1973),\n" + + " X1974(1974),\n" + + " X1975(1975),\n" + + " X1976(1976),\n" + + " X1977(1977),\n" + + " X1978(1978),\n" + + " X1979(1979),\n" + + " X1980(1980),\n" + + " X1981(1981),\n" + + " X1982(1982),\n" + + " X1983(1983),\n" + + " X1984(1984),\n" + + " X1985(1985),\n" + + " X1986(1986),\n" + + " X1987(1987),\n" + + " X1988(1988),\n" + + " X1989(1989),\n" + + " X1990(1990),\n" + + " X1991(1991),\n" + + " X1992(1992),\n" + + " X1993(1993),\n" + + " X1994(1994),\n" + + " X1995(1995),\n" + + " X1996(1996),\n" + + " X1997(1997),\n" + + " X1998(1998),\n" + + " X1999(1999),\n" + + " X2000(2000),\n" + + " X2001(2001),\n" + + " X2002(2002),\n" + + " X2003(2003),\n" + + " X2004(2004),\n" + + " X2005(2005),\n" + + " X2006(2006),\n" + + " X2007(2007),\n" + + " X2008(2008),\n" + + " X2009(2009),\n" + + " X2010(2010),\n" + + " X2011(2011),\n" + + " X2012(2012),\n" + + " X2013(2013),\n" + + " X2014(2014),\n" + + " X2015(2015),\n" + + " X2016(2016),\n" + + " X2017(2017),\n" + + " X2018(2018),\n" + + " X2019(2019),\n" + + " X2020(2020),\n" + + " X2021(2021),\n" + + " X2022(2022),\n" + + " X2023(2023),\n" + + " X2024(2024),\n" + + " X2025(2025),\n" + + " X2026(2026),\n" + + " X2027(2027),\n" + + " X2028(2028),\n" + + " X2029(2029),\n" + + " X2030(2030),\n" + + " X2031(2031),\n" + + " X2032(2032),\n" + + " X2033(2033),\n" + + " X2034(2034),\n" + + " X2035(2035),\n" + + " X2036(2036),\n" + + " X2037(2037),\n" + + " X2038(2038),\n" + + " X2039(2039),\n" + + " X2040(2040),\n" + + " X2041(2041),\n" + + " X2042(2042),\n" + + " X2043(2043),\n" + + " X2044(2044),\n" + + " X2045(2045),\n" + + " X2046(2046),\n" + + " X2047(2047),\n" + + " X2048(2048),\n" + + " X2049(2049),\n" + + " X2050(2050),\n" + + " X2051(2051),\n" + + " X2052(2052),\n" + + " X2053(2053),\n" + + " X2054(2054),\n" + + " X2055(2055),\n" + + " X2056(2056),\n" + + " X2057(2057),\n" + + " X2058(2058),\n" + + " X2059(2059),\n" + + " X2060(2060),\n" + + " X2061(2061),\n" + + " X2062(2062),\n" + + " X2063(2063),\n" + + " X2064(2064),\n" + + " X2065(2065),\n" + + " X2066(2066),\n" + + " X2067(2067),\n" + + " X2068(2068),\n" + + " X2069(2069),\n" + + " X2070(2070),\n" + + " X2071(2071),\n" + + " X2072(2072),\n" + + " X2073(2073),\n" + + " X2074(2074),\n" + + " X2075(2075),\n" + + " X2076(2076),\n" + + " X2077(2077),\n" + + " X2078(2078),\n" + + " X2079(2079),\n" + + " X2080(2080),\n" + + " X2081(2081),\n" + + " X2082(2082),\n" + + " X2083(2083),\n" + + " X2084(2084),\n" + + " X2085(2085),\n" + + " X2086(2086),\n" + + " X2087(2087),\n" + + " X2088(2088),\n" + + " X2089(2089),\n" + + " X2090(2090),\n" + + " X2091(2091),\n" + + " X2092(2092),\n" + + " X2093(2093),\n" + + " X2094(2094),\n" + + " X2095(2095),\n" + + " X2096(2096),\n" + + " X2097(2097),\n" + + " X2098(2098),\n" + + " X2099(2099),\n" + + " X2100(2100),\n" + + " X2101(2101),\n" + + " X2102(2102),\n" + + " X2103(2103),\n" + + " X2104(2104),\n" + + " X2105(2105),\n" + + " X2106(2106),\n" + + " X2107(2107),\n" + + " X2108(2108),\n" + + " X2109(2109),\n" + + " X2110(2110),\n" + + " X2111(2111),\n" + + " X2112(2112),\n" + + " X2113(2113),\n" + + " X2114(2114),\n" + + " X2115(2115),\n" + + " X2116(2116),\n" + + " X2117(2117),\n" + + " X2118(2118),\n" + + " X2119(2119),\n" + + " X2120(2120),\n" + + " X2121(2121),\n" + + " X2122(2122),\n" + + " X2123(2123),\n" + + " X2124(2124),\n" + + " X2125(2125),\n" + + " X2126(2126),\n" + + " X2127(2127),\n" + + " X2128(2128),\n" + + " X2129(2129),\n" + + " X2130(2130),\n" + + " X2131(2131),\n" + + " X2132(2132),\n" + + " X2133(2133),\n" + + " X2134(2134),\n" + + " X2135(2135),\n" + + " X2136(2136),\n" + + " X2137(2137),\n" + + " X2138(2138),\n" + + " X2139(2139),\n" + + " X2140(2140),\n" + + " X2141(2141),\n" + + " X2142(2142),\n" + + " X2143(2143),\n" + + " X2144(2144),\n" + + " X2145(2145),\n" + + " X2146(2146),\n" + + " X2147(2147),\n" + + " X2148(2148),\n" + + " X2149(2149),\n" + + " X2150(2150),\n" + + " X2151(2151),\n" + + " X2152(2152),\n" + + " X2153(2153),\n" + + " X2154(2154),\n" + + " X2155(2155),\n" + + " X2156(2156),\n" + + " X2157(2157),\n" + + " X2158(2158),\n" + + " X2159(2159),\n" + + " X2160(2160),\n" + + " X2161(2161),\n" + + " X2162(2162),\n" + + " X2163(2163),\n" + + " X2164(2164),\n" + + " X2165(2165),\n" + + " X2166(2166),\n" + + " X2167(2167),\n" + + " X2168(2168),\n" + + " X2169(2169),\n" + + " X2170(2170),\n" + + " X2171(2171),\n" + + " X2172(2172),\n" + + " X2173(2173),\n" + + " X2174(2174),\n" + + " X2175(2175),\n" + + " X2176(2176),\n" + + " X2177(2177),\n" + + " X2178(2178),\n" + + " X2179(2179),\n" + + " X2180(2180),\n" + + " X2181(2181),\n" + + " X2182(2182),\n" + + " X2183(2183),\n" + + " X2184(2184),\n" + + " X2185(2185),\n" + + " X2186(2186),\n" + + " X2187(2187),\n" + + " X2188(2188),\n" + + " X2189(2189),\n" + + " X2190(2190),\n" + + " X2191(2191),\n" + + " X2192(2192),\n" + + " X2193(2193),\n" + + " X2194(2194),\n" + + " X2195(2195),\n" + + " X2196(2196),\n" + + " X2197(2197),\n" + + " X2198(2198),\n" + + " X2199(2199),\n" + + " X2200(2200),\n" + + " X2201(2201),\n" + + " X2202(2202),\n" + + " X2203(2203),\n" + + " X2204(2204),\n" + + " X2205(2205),\n" + + " X2206(2206),\n" + + " X2207(2207),\n" + + " X2208(2208),\n" + + " X2209(2209),\n" + + " X2210(2210),\n" + + " X2211(2211),\n" + + " X2212(2212),\n" + + " X2213(2213),\n" + + " X2214(2214),\n" + + " X2215(2215),\n" + + " X2216(2216),\n" + + " X2217(2217),\n" + + " X2218(2218),\n" + + " X2219(2219),\n" + + " X2220(2220),\n" + + " X2221(2221),\n" + + " X2222(2222),\n" + + " X2223(2223),\n" + + " X2224(2224),\n" + + " X2225(2225),\n" + + " X2226(2226),\n" + + " X2227(2227),\n" + + " X2228(2228),\n" + + " X2229(2229),\n" + + " X2230(2230),\n" + + " X2231(2231),\n" + + " X2232(2232),\n" + + " X2233(2233),\n" + + " X2234(2234),\n" + + " X2235(2235),\n" + + " X2236(2236),\n" + + " X2237(2237),\n" + + " X2238(2238),\n" + + " X2239(2239),\n" + + " X2240(2240),\n" + + " X2241(2241),\n" + + " X2242(2242),\n" + + " X2243(2243),\n" + + " X2244(2244),\n" + + " X2245(2245),\n" + + " X2246(2246),\n" + + " X2247(2247),\n" + + " X2248(2248),\n" + + " X2249(2249),\n" + + " X2250(2250),\n" + + " X2251(2251),\n" + + " X2252(2252),\n" + + " X2253(2253),\n" + + " X2254(2254),\n" + + " X2255(2255),\n" + + " X2256(2256),\n" + + " X2257(2257),\n" + + " X2258(2258),\n" + + " X2259(2259),\n" + + " X2260(2260),\n" + + " X2261(2261),\n" + + " X2262(2262),\n" + + " X2263(2263),\n" + + " X2264(2264),\n" + + " X2265(2265),\n" + + " X2266(2266),\n" + + " X2267(2267),\n" + + " X2268(2268),\n" + + " X2269(2269),\n" + + " X2270(2270),\n" + + " X2271(2271),\n" + + " X2272(2272),\n" + + " X2273(2273),\n" + + " X2274(2274),\n" + + " X2275(2275),\n" + + " X2276(2276),\n" + + " X2277(2277),\n" + + " X2278(2278),\n" + + " X2279(2279),\n" + + " X2280(2280),\n" + + " X2281(2281),\n" + + " X2282(2282),\n" + + " X2283(2283),\n" + + " X2284(2284),\n" + + " X2285(2285),\n" + + " X2286(2286),\n" + + " X2287(2287),\n" + + " X2288(2288),\n" + + " X2289(2289),\n" + + " X2290(2290),\n" + + " X2291(2291),\n" + + " X2292(2292),\n" + + " X2293(2293),\n" + + " X2294(2294),\n" + + " X2295(2295),\n" + + " X2296(2296),\n" + + " X2297(2297),\n" + + " X2298(2298),\n" + + " X2299(2299),\n" + + " X2300(2300),\n" + + " X2301(2301),\n" + + " X2302(2302),\n" + + " X2303(2303),\n" + + " X2304(2304),\n" + + " X2305(2305),\n" + + " X2306(2306),\n" + + " X2307(2307),\n" + + " X2308(2308),\n" + + " X2309(2309),\n" + + " X2310(2310),\n" + + " X2311(2311),\n" + + " X2312(2312),\n" + + " X2313(2313),\n" + + " X2314(2314),\n" + + " X2315(2315),\n" + + " X2316(2316),\n" + + " X2317(2317),\n" + + " X2318(2318),\n" + + " X2319(2319),\n" + + " X2320(2320),\n" + + " X2321(2321),\n" + + " X2322(2322),\n" + + " X2323(2323),\n" + + " X2324(2324),\n" + + " X2325(2325),\n" + + " X2326(2326),\n" + + " X2327(2327),\n" + + " X2328(2328),\n" + + " X2329(2329),\n" + + " X2330(2330),\n" + + " X2331(2331),\n" + + " X2332(2332),\n" + + " X2333(2333),\n" + + " X2334(2334),\n" + + " X2335(2335),\n" + + " X2336(2336),\n" + + " X2337(2337),\n" + + " X2338(2338),\n" + + " X2339(2339),\n" + + " X2340(2340),\n" + + " X2341(2341),\n" + + " X2342(2342),\n" + + " X2343(2343),\n" + + " X2344(2344),\n" + + " X2345(2345),\n" + + " X2346(2346),\n" + + " X2347(2347),\n" + + " X2348(2348),\n" + + " X2349(2349),\n" + + " X2350(2350),\n" + + " X2351(2351),\n" + + " X2352(2352),\n" + + " X2353(2353),\n" + + " X2354(2354),\n" + + " X2355(2355),\n" + + " X2356(2356),\n" + + " X2357(2357),\n" + + " X2358(2358),\n" + + " X2359(2359),\n" + + " X2360(2360),\n" + + " X2361(2361),\n" + + " X2362(2362),\n" + + " X2363(2363),\n" + + " X2364(2364),\n" + + " X2365(2365),\n" + + " X2366(2366),\n" + + " X2367(2367),\n" + + " X2368(2368),\n" + + " X2369(2369),\n" + + " X2370(2370),\n" + + " X2371(2371),\n" + + " X2372(2372),\n" + + " X2373(2373),\n" + + " X2374(2374),\n" + + " X2375(2375),\n" + + " X2376(2376),\n" + + " X2377(2377),\n" + + " X2378(2378),\n" + + " X2379(2379),\n" + + " X2380(2380),\n" + + " X2381(2381),\n" + + " X2382(2382),\n" + + " X2383(2383),\n" + + " X2384(2384),\n" + + " X2385(2385),\n" + + " X2386(2386),\n" + + " X2387(2387),\n" + + " X2388(2388),\n" + + " X2389(2389),\n" + + " X2390(2390),\n" + + " X2391(2391),\n" + + " X2392(2392),\n" + + " X2393(2393),\n" + + " X2394(2394),\n" + + " X2395(2395),\n" + + " X2396(2396),\n" + + " X2397(2397),\n" + + " X2398(2398),\n" + + " X2399(2399),\n" + + " X2400(2400),\n" + + " X2401(2401),\n" + + " X2402(2402),\n" + + " X2403(2403),\n" + + " X2404(2404),\n" + + " X2405(2405),\n" + + " X2406(2406),\n" + + " X2407(2407),\n" + + " X2408(2408),\n" + + " X2409(2409),\n" + + " X2410(2410),\n" + + " X2411(2411),\n" + + " X2412(2412),\n" + + " X2413(2413),\n" + + " X2414(2414),\n" + + " X2415(2415),\n" + + " X2416(2416),\n" + + " X2417(2417),\n" + + " X2418(2418),\n" + + " X2419(2419),\n" + + " X2420(2420),\n" + + " X2421(2421),\n" + + " X2422(2422),\n" + + " X2423(2423),\n" + + " X2424(2424),\n" + + " X2425(2425),\n" + + " X2426(2426),\n" + + " X2427(2427),\n" + + " X2428(2428),\n" + + " X2429(2429),\n" + + " X2430(2430),\n" + + " X2431(2431),\n" + + " X2432(2432),\n" + + " X2433(2433),\n" + + " X2434(2434),\n" + + " X2435(2435),\n" + + " X2436(2436),\n" + + " X2437(2437),\n" + + " X2438(2438),\n" + + " X2439(2439),\n" + + " X2440(2440),\n" + + " X2441(2441),\n" + + " X2442(2442),\n" + + " X2443(2443),\n" + + " X2444(2444),\n" + + " X2445(2445),\n" + + " X2446(2446),\n" + + " X2447(2447),\n" + + " X2448(2448),\n" + + " X2449(2449),\n" + + " X2450(2450),\n" + + " X2451(2451),\n" + + " X2452(2452),\n" + + " X2453(2453),\n" + + " X2454(2454),\n" + + " X2455(2455),\n" + + " X2456(2456),\n" + + " X2457(2457),\n" + + " X2458(2458),\n" + + " X2459(2459),\n" + + " X2460(2460),\n" + + " X2461(2461),\n" + + " X2462(2462),\n" + + " X2463(2463),\n" + + " X2464(2464),\n" + + " X2465(2465),\n" + + " X2466(2466),\n" + + " X2467(2467),\n" + + " X2468(2468),\n" + + " X2469(2469),\n" + + " X2470(2470),\n" + + " X2471(2471),\n" + + " X2472(2472),\n" + + " X2473(2473),\n" + + " X2474(2474),\n" + + " X2475(2475),\n" + + " X2476(2476),\n" + + " X2477(2477),\n" + + " X2478(2478),\n" + + " X2479(2479),\n" + + " X2480(2480),\n" + + " X2481(2481),\n" + + " X2482(2482),\n" + + " X2483(2483),\n" + + " X2484(2484),\n" + + " X2485(2485),\n" + + " X2486(2486),\n" + + " X2487(2487),\n" + + " X2488(2488),\n" + + " X2489(2489),\n" + + " X2490(2490),\n" + + " X2491(2491),\n" + + " X2492(2492),\n" + + " X2493(2493),\n" + + " X2494(2494),\n" + + " X2495(2495),\n" + + " X2496(2496),\n" + + " X2497(2497),\n" + + " X2498(2498),\n" + + " X2499(2499),\n" + + " ;\n" + + "\n" + + " private int value;\n" + + " X(int i) {\n" + + " this.value = i;\n" + + " }\n" + + " \n" + + " public static void main(String[] args) {\n" + + " int i = 0;\n" + + " for (X x : X.values()) {\n" + + " i++;\n" + + " System.out.print(x);\n" + + " }\n" + + " System.out.print(i);\n" + + " }\n" + + " \n" + + " public String toString() {\n" + + " return Integer.toString(this.value);\n" + + " }\n" + + "}" + }, + buffer.toString()); +} public static Class testClass() { return XLargeTest.class; }