first support for "goto_w" Java bytecode instruction

This commit is contained in:
Volker Berlin 2019-03-20 19:11:38 +01:00
parent 1b6fd3c7a5
commit 0b3c1987f5
3 changed files with 497 additions and 161 deletions

View File

@ -270,35 +270,52 @@ class BranchManger {
parent.add( new BranchNode( startPos, startPos, WasmBlockOperator.BR_IF, null, 0 ) );
return;
}
int gotoPos = endPos - 3; // 3 - byte size of goto instruction
BranchNode branch = null;
for( ; i < parsedOperations.size(); i++ ) {
ParsedBlock parsedBlock = parsedOperations.get( i );
if( parsedBlock.startPosition == gotoPos && parsedBlock.op == JavaBlockOperator.GOTO && parsedBlock.startPosition < parsedBlock.endPosition) {
if( parsedBlock.nextPosition == endPos && parsedBlock.op == JavaBlockOperator.GOTO && parsedBlock.startPosition < parsedBlock.endPosition ) {
parsedOperations.remove( i );
branch = new BranchNode( startPos, startBlock.endPosition, WasmBlockOperator.IF, null );
int elsePos = startBlock.endPosition;
// end position can not be outside of the parent
endPos = Math.min( parsedBlock.endPosition, parent.endPos );
// special case if there is only one goto in the IF block. Occur with goto_w
if( parsedBlock.startPosition == startPos ) {
int nextPos = Math.min( parsedBlock.endPosition, parent.endPos );
for( int j = i; j < parsedOperations.size(); j++ ) {
ParsedBlock parsedBlock2 = parsedOperations.get( j );
if( parsedBlock2.nextPosition == nextPos && parsedBlock2.op == JavaBlockOperator.GOTO && parsedBlock2.startPosition < parsedBlock2.endPosition ) {
parsedOperations.remove( j );
elsePos = nextPos;
endPos = parsedBlock2.endPosition;
startBlock.negateCompare();
i = j;
}
}
}
branch = new BranchNode( startPos, elsePos, WasmBlockOperator.IF, null );
parent.add( branch );
if( i > 0 ) {
calculate( branch, parsedOperations.subList( 0, i ) );
i = 0;
}
AnyType blockType = calculateBlockType( startPos, branch.endPos );
branch.data = blockType;
// end position can not be outside of the parent
endPos = Math.min( parsedBlock.endPosition, parent.endPos );
// if with block type signature must have an else block
int breakDeep = blockType == ValueType.empty ? calculateBreakDeep( parent, endPos ) : -1;
if( breakDeep >= 0 ) {
branch.endOp = WasmBlockOperator.END;
branch.add( new BranchNode( startBlock.endPosition, endPos, WasmBlockOperator.BR, null, breakDeep + 1 ) );
branch.add( new BranchNode( elsePos, endPos, WasmBlockOperator.BR, null, breakDeep + 1 ) );
endPos = branch.endPos;
} else {
branch = new BranchNode( startBlock.endPosition, endPos, WasmBlockOperator.ELSE, WasmBlockOperator.END );
branch = new BranchNode( elsePos, endPos, WasmBlockOperator.ELSE, WasmBlockOperator.END );
parent.add( branch );
}
break;
}
if( parsedBlock.startPosition > gotoPos ) {
if( parsedBlock.nextPosition > endPos ) {
break;
}
}

View File

@ -631,7 +631,11 @@ class JavaMethodWasmCodeBuilder extends WasmCodeBuilder {
case 199: // ifnonnull
opIfCompareCondition( NumericOperator.ifnonnull, byteCode, codePos );
break;
//TODO case 200: // goto_w
case 200: // goto_w
offset = byteCode.readInt();
branchManager.addGotoOperator( codePos, offset, byteCode.getCodePosition(), byteCode.getLineNumber() );
addNopInstruction( codePos ); // marker of the line number for the branch manager
break;
//TODO case 201: // jsr_w
default:
throw new WasmException( "Unimplemented Java byte code operation: " + op, byteCode.getLineNumber() );

View File

@ -1,5 +1,5 @@
/*
* Copyright 2018 Volker Berlin (i-net software)
* Copyright 2019 Volker Berlin (i-net software)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -52,160 +52,475 @@ public class Wide extends AbstractBaseTest {
*/
@Export
static int abc() {
long a0 = 0;
long a1 = 1;
long a2 = 2;
long a3 = 3;
long a4 = 4;
long a5 = 5;
long a6 = 6;
long a7 = 7;
long a8 = 8;
long a9 = 9;
long a10 = 10;
long a11 = 11;
long a12 = 12;
long a13 = 13;
long a14 = 14;
long a15 = 15;
long a16 = 16;
long a17 = 17;
long a18 = 18;
long a19 = 19;
long a20 = 20;
long a21 = 21;
long a22 = 22;
long a23 = 23;
long a24 = 24;
long a25 = 25;
long a26 = 26;
long a27 = 27;
long a28 = 28;
long a29 = 29;
long a30 = 30;
long a31 = 31;
long a32 = 32;
long a33 = 33;
long a34 = 34;
long a35 = 35;
long a36 = 36;
long a37 = 37;
long a38 = 38;
long a39 = 39;
long a40 = 40;
long a41 = 41;
long a42 = 42;
long a43 = 43;
long a44 = 44;
long a45 = 45;
long a46 = 46;
long a47 = 47;
long a48 = 48;
long a49 = 49;
int i = 42;
if( 42 == i ) {
// TODO
// for( int j = 0; j < 10; j++ ) {
// i++;
// }
i++;
} else {
int j = 0;
long a0 = 0;
long a1 = 1;
long a2 = 2;
long a3 = 3;
long a4 = 4;
long a5 = 5;
long a6 = 6;
long a7 = 7;
long a8 = 8;
long a9 = 9;
long a10 = 10;
long a11 = 11;
long a12 = 12;
long a13 = 13;
long a14 = 14;
long a15 = 15;
long a16 = 16;
long a17 = 17;
long a18 = 18;
long a19 = 19;
long a20 = 20;
long a21 = 21;
long a22 = 22;
long a23 = 23;
long a24 = 24;
long a25 = 25;
long a26 = 26;
long a27 = 27;
long a28 = 28;
long a29 = 29;
long a30 = 30;
long a31 = 31;
long a32 = 32;
long a33 = 33;
long a34 = 34;
long a35 = 35;
long a36 = 36;
long a37 = 37;
long a38 = 38;
long a39 = 39;
long a40 = 40;
long a41 = 41;
long a42 = 42;
long a43 = 43;
long a44 = 44;
long a45 = 45;
long a46 = 46;
long a47 = 47;
long a48 = 48;
long a49 = 49;
long b0 = 0;
long b1 = 1;
long b2 = 2;
long b3 = 3;
long b4 = 4;
long b5 = 5;
long b6 = 6;
long b7 = 7;
long b8 = 8;
long b9 = 9;
long b10 = 10;
long b11 = 11;
long b12 = 12;
long b13 = 13;
long b14 = 14;
long b15 = 15;
long b16 = 16;
long b17 = 17;
long b18 = 18;
long b19 = 19;
long b20 = 20;
long b21 = 21;
long b22 = 22;
long b23 = 23;
long b24 = 24;
long b25 = 25;
long b26 = 26;
long b27 = 27;
long b28 = 28;
long b29 = 29;
long b30 = 30;
long b31 = 31;
long b32 = 32;
long b33 = 33;
long b34 = 34;
long b35 = 35;
long b36 = 36;
long b37 = 37;
long b38 = 38;
long b39 = 39;
long b40 = 40;
long b41 = 41;
long b42 = 42;
long b43 = 43;
long b44 = 44;
long b45 = 45;
long b46 = 46;
long b47 = 47;
long b48 = 48;
long b49 = 49;
double c0 = 0;
double c1 = 1;
double c2 = 2;
double c3 = 3;
double c4 = 4;
double c5 = 5;
double c6 = 6;
double c7 = 7;
double c8 = 8;
double c9 = 9;
double c10 = 10;
double c11 = 11;
double c12 = 12;
double c13 = 13;
double c14 = 14;
double c15 = 15;
double c16 = 16;
double c17 = 17;
double c18 = 18;
double c19 = 19;
double c20 = 20;
double c21 = 21;
double c22 = 22;
double c23 = 23;
double c24 = 24;
double c25 = 25;
double c26 = 26;
double c27 = 27;
double c28 = 28;
double c29 = 29;
double c30 = 30;
double c31 = 31;
double c32 = 32;
double c33 = 33;
double c34 = 34;
double c35 = 35;
double c36 = 36;
double c37 = 37;
double c38 = 38;
double c39 = 39;
double c40 = 40;
double c41 = 41;
double c42 = 42;
double c43 = 43;
double c44 = 44;
double c45 = 45;
double c46 = 46;
double c47 = 47;
double c48 = 48;
double c49 = 49;
long b0 = 0;
long b1 = 1;
long b2 = 2;
long b3 = 3;
long b4 = 4;
long b5 = 5;
long b6 = 6;
long b7 = 7;
long b8 = 8;
long b9 = 9;
long b10 = 10;
long b11 = 11;
long b12 = 12;
long b13 = 13;
long b14 = 14;
long b15 = 15;
long b16 = 16;
long b17 = 17;
long b18 = 18;
long b19 = 19;
long b20 = 20;
long b21 = 21;
long b22 = 22;
long b23 = 23;
long b24 = 24;
long b25 = 25;
long b26 = 26;
long b27 = 27;
long b28 = 28;
long b29 = 29;
long b30 = 30;
long b31 = 31;
long b32 = 32;
long b33 = 33;
long b34 = 34;
long b35 = 35;
long b36 = 36;
long b37 = 37;
long b38 = 38;
long b39 = 39;
long b40 = 40;
long b41 = 41;
long b42 = 42;
long b43 = 43;
long b44 = 44;
long b45 = 45;
long b46 = 46;
long b47 = 47;
long b48 = 48;
long b49 = 49;
// a large block with more as 32 Kbyte of instructions that a goto_w instuction is needed
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
double c0 = 0;
double c1 = 1;
double c2 = 2;
double c3 = 3;
double c4 = 4;
double c5 = 5;
double c6 = 6;
double c7 = 7;
double c8 = 8;
double c9 = 9;
double c10 = 10;
double c11 = 11;
double c12 = 12;
double c13 = 13;
double c14 = 14;
double c15 = 15;
double c16 = 16;
double c17 = 17;
double c18 = 18;
double c19 = 19;
double c20 = 20;
double c21 = 21;
double c22 = 22;
double c23 = 23;
double c24 = 24;
double c25 = 25;
double c26 = 26;
double c27 = 27;
double c28 = 28;
double c29 = 29;
double c30 = 30;
double c31 = 31;
double c32 = 32;
double c33 = 33;
double c34 = 34;
double c35 = 35;
double c36 = 36;
double c37 = 37;
double c38 = 38;
double c39 = 39;
double c40 = 40;
double c41 = 41;
double c42 = 42;
double c43 = 43;
double c44 = 44;
double c45 = 45;
double c46 = 46;
double c47 = 47;
double c48 = 48;
double c49 = 49;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
return 255;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000; c49 += 1000;
}
return i;
}
}
}