offset += (int)(l>>32);
offset1 += (int)(l>>32);
	public boolean matchTokens(int i1, VTDNav vn2, int i2) 	throws NavException{	    int t1, t2;	    int ch1, ch2;	    int endOffset1, endOffset2;	    long l;	    		/*if (vn2 ==null){			throw new NavException(" One of VTD objects is null!!");		}*/		if ( i1 ==i2 && this == vn2)			return true;				t1 = this.getTokenType(i1);		t2 = vn2.getTokenType(i2);				int offset1 = this.getTokenOffset(i1);		int offset2 = vn2.getTokenOffset(i2);				endOffset1 = this.getTokenLength(i1)+offset1;		endOffset2 = vn2.getTokenLength(i2) + offset2;		for(;offset1<endOffset1&& offset2< endOffset2;){		    if(t1 == VTDNav.TOKEN_CHARACTER_DATA		            || t1== VTDNav.TOKEN_ATTR_VAL){		        l = this.getCharResolved(offset1);		    } else {		        l = this.getChar(offset1);		    }	        ch1 = (int)l;	        offset += (int)(l>>32);		    		    if(t2 == VTDNav.TOKEN_CHARACTER_DATA		            || t2== VTDNav.TOKEN_ATTR_VAL){		        l = vn2.getCharResolved(offset2);		    } else {		        l = vn2.getChar(offset2);		    }	        ch2 = (int)l;	        offset2 += (int)(l>>32);	        		    if (ch1 != ch2)		        return false;		}				if (offset1 == endOffset2 		        && offset2 == endOffset1)			return true;		else			return false;	}