// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
package com.openvehicles.OVMS;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilterInputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;
import java.io.OutputStream;
import java.io.Serializable;
import java.io.StreamCorruptedException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class Base64
{
public static class InputStream extends FilterInputStream
{
public int read()
throws IOException
{
if(position >= 0) goto _L2; else goto _L1
_L1:
if(!encode) goto _L4; else goto _L3
_L3:
byte abyte2[];
int i1;
int j1;
abyte2 = new byte[3];
i1 = 0;
j1 = 0;
_L14:
int j;
int k1;
if(j1 < 3)
if((k1 = in.read()) >= 0)
{
abyte2[j1] = (byte)k1;
i1++;
j1++;
continue; /* Loop/switch isn't completed */
}
if(i1 <= 0) goto _L6; else goto _L5
_L5:
Base64.encode3to4(abyte2, 0, i1, buffer, 0, options);
position = 0;
numSigBytes = 4;
_L2:
if(position < 0) goto _L8; else goto _L7
_L7:
byte abyte1[];
int k;
int l;
if(position >= numSigBytes)
j = -1;
else
if(encode && breakLines && lineLength >= 76)
{
lineLength = 0;
j = 10;
} else
{
lineLength = 1 + lineLength;
byte abyte0[] = buffer;
int i = position;
position = i + 1;
byte byte0 = abyte0[i];
if(position >= bufferLength)
position = -1;
j = byte0 & 0xff;
}
return j;
_L6:
j = -1;
break MISSING_BLOCK_LABEL_86;
_L4:
abyte1 = new byte[4];
k = 0;
_L12:
if(k < 4) goto _L10; else goto _L9
_L9:
if(k != 4)
break MISSING_BLOCK_LABEL_222;
numSigBytes = Base64.decode4to3(abyte1, 0, buffer, 0, options);
position = 0;
goto _L2
_L10:
do
l = in.read();
while(l >= 0 && decodabet[l & 0x7f] <= -5);
if(l < 0) goto _L9; else goto _L11
_L11:
abyte1[k] = (byte)l;
k++;
goto _L12
if(k == 0)
j = -1;
else
throw new IOException("Improperly padded Base64 input.");
break MISSING_BLOCK_LABEL_86;
_L8:
throw new IOException("Error in Base64 code reading stream.");
if(true) goto _L14; else goto _L13
_L13:
}
public int read(byte abyte0[], int i, int j)
throws IOException
{
int k = 0;
_L3:
if(k < j) goto _L2; else goto _L1
_L1:
return k;
_L2:
label0:
{
int l = read();
if(l < 0)
break label0;
abyte0[i + k] = (byte)l;
k++;
}
goto _L3
if(k == 0)
k = -1;
goto _L1
}
private boolean breakLines;
private byte buffer[];
private int bufferLength;
private byte decodabet[];
private boolean encode;
private int lineLength;
private int numSigBytes;
private int options;
private int position;
public InputStream(java.io.InputStream inputstream)
{
this(inputstream, 0);
}
public InputStream(java.io.InputStream inputstream, int i)
{
boolean flag = true;
super(inputstream);
options = i;
boolean flag1;
int j;
if((i & 8) > 0)
flag1 = flag;
else
flag1 = false;
breakLines = flag1;
if((i & 1) <= 0)
flag = false;
encode = flag;
if(encode)
j = 4;
else
j = 3;
bufferLength = j;
buffer = new byte[bufferLength];
position = -1;
lineLength = 0;
decodabet = Base64.getDecodabet(i);
}
}
public static class OutputStream extends FilterOutputStream
{
public void close()
throws IOException
{
flushBase64();
super.close();
buffer = null;
out = null;
}
public void flushBase64()
throws IOException
{
label0:
{
if(position > 0)
{
if(!encode)
break label0;
out.write(Base64.encode3to4(b4, buffer, position, options));
position = 0;
}
return;
}
throw new IOException("Base64 input not properly padded.");
}
public void resumeEncoding()
{
suspendEncoding = false;
}
public void suspendEncoding()
throws IOException
{
flushBase64();
suspendEncoding = true;
}
public void write(int i)
throws IOException
{
if(!suspendEncoding) goto _L2; else goto _L1
_L1:
out.write(i);
_L4:
return;
_L2:
if(encode)
{
byte abyte1[] = buffer;
int l = position;
position = l + 1;
abyte1[l] = (byte)i;
if(position >= bufferLength)
{
out.write(Base64.encode3to4(b4, buffer, bufferLength, options));
lineLength = 4 + lineLength;
if(breakLines && lineLength >= 76)
{
out.write(10);
lineLength = 0;
}
position = 0;
}
continue; /* Loop/switch isn't completed */
}
if(decodabet[i & 0x7f] <= -5)
break; /* Loop/switch isn't completed */
byte abyte0[] = buffer;
int j = position;
position = j + 1;
abyte0[j] = (byte)i;
if(position >= bufferLength)
{
int k = Base64.decode4to3(buffer, 0, b4, 0, options);
out.write(b4, 0, k);
position = 0;
}
if(true) goto _L4; else goto _L3
_L3:
if(decodabet[i & 0x7f] == -5) goto _L4; else goto _L5
_L5:
throw new IOException("Invalid character in Base64 data.");
}
public void write(byte abyte0[], int i, int j)
throws IOException
{
if(suspendEncoding)
{
out.write(abyte0, i, j);
} else
{
int k = 0;
while(k < j)
{
write(abyte0[i + k]);
k++;
}
}
}
private byte b4[];
private boolean breakLines;
private byte buffer[];
private int bufferLength;
private byte decodabet[];
private boolean encode;
private int lineLength;
private int options;
private int position;
private boolean suspendEncoding;
public OutputStream(java.io.OutputStream outputstream)
{
this(outputstream, 1);
}
public OutputStream(java.io.OutputStream outputstream, int i)
{
boolean flag = true;
super(outputstream);
boolean flag1;
int j;
if((i & 8) != 0)
flag1 = flag;
else
flag1 = false;
breakLines = flag1;
if((i & 1) == 0)
flag = false;
encode = flag;
if(encode)
j = 3;
else
j = 4;
bufferLength = j;
buffer = new byte[bufferLength];
position = 0;
lineLength = 0;
suspendEncoding = false;
b4 = new byte[4];
options = i;
decodabet = Base64.getDecodabet(i);
}
}
private Base64()
{
}
public static byte[] decode(String s)
throws IOException
{
return decode(s, 0);
}
public static byte[] decode(String s, int i)
throws IOException
{
if(s == null)
throw new NullPointerException("Input string was null.");
byte abyte4[] = s.getBytes("US-ASCII");
byte abyte0[] = abyte4;
_L5:
ByteArrayInputStream bytearrayinputstream;
GZIPInputStream gzipinputstream;
ByteArrayOutputStream bytearrayoutputstream;
byte abyte2[];
ByteArrayOutputStream bytearrayoutputstream1;
ByteArrayInputStream bytearrayinputstream1;
GZIPInputStream gzipinputstream1;
int j;
byte abyte1[] = decode(abyte0, 0, abyte0.length, i);
UnsupportedEncodingException unsupportedencodingexception;
boolean flag;
byte abyte3[];
if((i & 4) != 0)
flag = true;
else
flag = false;
if(abyte1 == null || abyte1.length < 4 || flag || 35615 != (0xff & abyte1[0] | 0xff00 & abyte1[1] << 8)) goto _L2; else goto _L1
_L1:
bytearrayinputstream = null;
gzipinputstream = null;
bytearrayoutputstream = null;
abyte2 = new byte[2048];
bytearrayoutputstream1 = new ByteArrayOutputStream();
bytearrayinputstream1 = new ByteArrayInputStream(abyte1);
gzipinputstream1 = new GZIPInputStream(bytearrayinputstream1);
_L6:
j = gzipinputstream1.read(abyte2);
if(j >= 0) goto _L4; else goto _L3
_L3:
abyte3 = bytearrayoutputstream1.toByteArray();
Exception exception;
IOException ioexception;
abyte1 = abyte3;
Exception exception1;
Exception exception2;
Exception exception3;
Exception exception4;
Exception exception5;
Exception exception6;
try
{
bytearrayoutputstream1.close();
}
catch(Exception exception7) { }
try
{
gzipinputstream1.close();
}
catch(Exception exception8) { }
try
{
bytearrayinputstream1.close();
}
catch(Exception exception9) { }
_L2:
return abyte1;
unsupportedencodingexception;
abyte0 = s.getBytes();
goto _L5
_L4:
bytearrayoutputstream1.write(abyte2, 0, j);
goto _L6
ioexception;
bytearrayoutputstream = bytearrayoutputstream1;
gzipinputstream = gzipinputstream1;
bytearrayinputstream = bytearrayinputstream1;
_L9:
ioexception.printStackTrace();
try
{
bytearrayoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception4) { }
try
{
gzipinputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception5) { }
try
{
bytearrayinputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception6) { }
goto _L2
exception;
_L8:
try
{
bytearrayoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception1) { }
try
{
gzipinputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception2) { }
try
{
bytearrayinputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception3) { }
throw exception;
exception;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
exception;
bytearrayoutputstream = bytearrayoutputstream1;
bytearrayinputstream = bytearrayinputstream1;
continue; /* Loop/switch isn't completed */
exception;
bytearrayoutputstream = bytearrayoutputstream1;
gzipinputstream = gzipinputstream1;
bytearrayinputstream = bytearrayinputstream1;
if(true) goto _L8; else goto _L7
_L7:
ioexception;
goto _L9
ioexception;
bytearrayoutputstream = bytearrayoutputstream1;
goto _L9
ioexception;
bytearrayoutputstream = bytearrayoutputstream1;
bytearrayinputstream = bytearrayinputstream1;
goto _L9
}
public static byte[] decode(byte abyte0[])
throws IOException
{
return decode(abyte0, 0, abyte0.length, 0);
}
public static byte[] decode(byte abyte0[], int i, int j, int k)
throws IOException
{
if(abyte0 == null)
throw new NullPointerException("Cannot decode null source array.");
if(i < 0 || i + j > abyte0.length)
{
Object aobj[] = new Object[3];
aobj[0] = Integer.valueOf(abyte0.length);
aobj[1] = Integer.valueOf(i);
aobj[2] = Integer.valueOf(j);
throw new IllegalArgumentException(String.format("Source array with length %d cannot have offset of %d and process %d bytes.", aobj));
}
if(j != 0) goto _L2; else goto _L1
_L1:
byte abyte4[] = new byte[0];
_L5:
return abyte4;
_L2:
byte abyte1[];
byte abyte2[];
int l;
byte abyte3[];
int i1;
int j1;
if(j < 4)
throw new IllegalArgumentException((new StringBuilder("Base64-encoded string must have at least four characters, but length specified was ")).append(j).toString());
abyte1 = getDecodabet(k);
abyte2 = new byte[(j * 3) / 4];
l = 0;
abyte3 = new byte[4];
i1 = i;
j1 = 0;
_L10:
if(i1 < i + j) goto _L4; else goto _L3
_L3:
j1;
_L9:
abyte4 = new byte[l];
System.arraycopy(abyte2, 0, abyte4, 0, l);
goto _L5
_L4:
byte byte0 = abyte1[0xff & abyte0[i1]];
if(byte0 < -5) goto _L7; else goto _L6
_L6:
int k1;
if(byte0 < -1)
break MISSING_BLOCK_LABEL_305;
k1 = j1 + 1;
abyte3[j1] = abyte0[i1];
if(k1 <= 3)
break; /* Loop/switch isn't completed */
l += decode4to3(abyte3, 0, abyte2, l, k);
k1 = 0;
if(abyte0[i1] == 61) goto _L9; else goto _L8
_L8:
i1++;
j1 = k1;
goto _L10
_L7:
Object aobj1[] = new Object[2];
aobj1[0] = Integer.valueOf(0xff & abyte0[i1]);
aobj1[1] = Integer.valueOf(i1);
throw new IOException(String.format("Bad Base64 input character decimal %d in array position %d", aobj1));
k1 = j1;
goto _L8
}
private static int decode4to3(byte abyte0[], int i, byte abyte1[], int j, int k)
{
int l = 1;
if(abyte0 == null)
throw new NullPointerException("Source array was null.");
if(abyte1 == null)
throw new NullPointerException("Destination array was null.");
if(i < 0 || i + 3 >= abyte0.length)
{
Object aobj[] = new Object[2];
aobj[0] = Integer.valueOf(abyte0.length);
aobj[l] = Integer.valueOf(i);
throw new IllegalArgumentException(String.format("Source array with length %d cannot have offset of %d and still process four bytes.", aobj));
}
if(j < 0 || j + 2 >= abyte1.length)
{
Object aobj1[] = new Object[2];
aobj1[0] = Integer.valueOf(abyte1.length);
aobj1[l] = Integer.valueOf(j);
throw new IllegalArgumentException(String.format("Destination array with length %d cannot have offset of %d and still store three bytes.", aobj1));
}
byte abyte2[] = getDecodabet(k);
if(abyte0[i + 2] == 61)
abyte1[j] = (byte)(((0xff & abyte2[abyte0[i]]) << 18 | (0xff & abyte2[abyte0[i + 1]]) << 12) >>> 16);
else
if(abyte0[i + 3] == 61)
{
int j1 = (0xff & abyte2[abyte0[i]]) << 18 | (0xff & abyte2[abyte0[i + 1]]) << 12 | (0xff & abyte2[abyte0[i + 2]]) << 6;
abyte1[j] = (byte)(j1 >>> 16);
abyte1[j + 1] = (byte)(j1 >>> 8);
l = 2;
} else
{
int i1 = (0xff & abyte2[abyte0[i]]) << 18 | (0xff & abyte2[abyte0[i + 1]]) << 12 | (0xff & abyte2[abyte0[i + 2]]) << 6 | 0xff & abyte2[abyte0[i + 3]];
abyte1[j] = (byte)(i1 >> 16);
abyte1[j + 1] = (byte)(i1 >> 8);
abyte1[j + 2] = (byte)i1;
l = 3;
}
return l;
}
public static void decodeFileToFile(String s, String s1)
throws IOException
{
byte abyte0[];
BufferedOutputStream bufferedoutputstream;
abyte0 = decodeFromFile(s);
bufferedoutputstream = null;
BufferedOutputStream bufferedoutputstream1 = new BufferedOutputStream(new FileOutputStream(s1));
bufferedoutputstream1.write(abyte0);
bufferedoutputstream1.close();
_L1:
return;
IOException ioexception;
ioexception;
_L3:
throw ioexception;
Exception exception;
exception;
_L2:
try
{
bufferedoutputstream.close();
}
catch(Exception exception1) { }
throw exception;
Exception exception2;
exception2;
goto _L1
exception;
bufferedoutputstream = bufferedoutputstream1;
goto _L2
ioexception;
bufferedoutputstream = bufferedoutputstream1;
goto _L3
}
public static byte[] decodeFromFile(String s)
throws IOException
{
InputStream inputstream = null;
File file;
int i;
file = new File(s);
i = 0;
if(file.length() > 0x7fffffffL)
throw new IOException((new StringBuilder("File is too big for this convenience method (")).append(file.length()).append(" bytes).").toString());
goto _L1
IOException ioexception;
ioexception;
_L7:
throw ioexception;
Exception exception;
exception;
_L5:
InputStream inputstream1;
byte abyte0[];
int j;
byte abyte1[];
try
{
inputstream.close();
}
catch(Exception exception1) { }
throw exception;
_L1:
abyte0 = new byte[(int)file.length()];
inputstream1 = new InputStream(new BufferedInputStream(new FileInputStream(file)), 0);
_L3:
j = inputstream1.read(abyte0, i, 4096);
if(j >= 0)
break MISSING_BLOCK_LABEL_147;
abyte1 = new byte[i];
System.arraycopy(abyte0, 0, abyte1, 0, i);
try
{
inputstream1.close();
}
catch(Exception exception2) { }
return abyte1;
i += j;
if(true) goto _L3; else goto _L2
_L2:
exception;
inputstream = inputstream1;
if(true) goto _L5; else goto _L4
_L4:
ioexception;
inputstream = inputstream1;
if(true) goto _L7; else goto _L6
_L6:
}
public static void decodeToFile(String s, String s1)
throws IOException
{
OutputStream outputstream = null;
OutputStream outputstream1 = new OutputStream(new FileOutputStream(s1), 0);
outputstream1.write(s.getBytes("US-ASCII"));
outputstream1.close();
_L1:
return;
IOException ioexception;
ioexception;
_L3:
throw ioexception;
Exception exception;
exception;
_L2:
try
{
outputstream.close();
}
catch(Exception exception1) { }
throw exception;
Exception exception2;
exception2;
goto _L1
exception;
outputstream = outputstream1;
goto _L2
ioexception;
outputstream = outputstream1;
goto _L3
}
public static Object decodeToObject(String s)
throws IOException, ClassNotFoundException
{
return decodeToObject(s, 0, null);
}
public static Object decodeToObject(String s, int i, ClassLoader classloader)
throws IOException, ClassNotFoundException
{
byte abyte0[];
ByteArrayInputStream bytearrayinputstream;
Object obj;
abyte0 = decode(s, i);
bytearrayinputstream = null;
obj = null;
final ByteArrayInputStream final_inputstream = new ByteArrayInputStream(abyte0);
if(classloader != null) goto _L2; else goto _L1
_L1:
obj = new ObjectInputStream(final_inputstream);
_L3:
Object obj1 = ((ObjectInputStream) (obj)).readObject();
IOException ioexception;
Exception exception;
ClassNotFoundException classnotfoundexception;
ObjectInputStream objectinputstream;
Exception exception1;
Exception exception2;
try
{
final_inputstream.close();
}
catch(Exception exception3) { }
try
{
((ObjectInputStream) (obj)).close();
}
catch(Exception exception4) { }
return obj1;
_L2:
objectinputstream = new ObjectInputStream(classloader) {
public Class resolveClass(ObjectStreamClass objectstreamclass)
throws IOException, ClassNotFoundException
{
Class class1 = Class.forName(objectstreamclass.getName(), false, loader);
if(class1 == null)
class1 = super.resolveClass(objectstreamclass);
return class1;
}
private final ClassLoader val$loader;
throws StreamCorruptedException, IOException
{
loader = classloader;
super(final_inputstream);
}
}
;
obj = objectinputstream;
goto _L3
ioexception;
_L7:
throw ioexception;
exception;
_L4:
try
{
bytearrayinputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception1) { }
try
{
((ObjectInputStream) (obj)).close();
}
// Misplaced declaration of an exception variable
catch(Exception exception2) { }
throw exception;
classnotfoundexception;
_L5:
throw classnotfoundexception;
exception;
bytearrayinputstream = final_inputstream;
goto _L4
classnotfoundexception;
bytearrayinputstream = final_inputstream;
goto _L5
ioexception;
bytearrayinputstream = final_inputstream;
if(true) goto _L7; else goto _L6
_L6:
}
public static void encode(ByteBuffer bytebuffer, ByteBuffer bytebuffer1)
{
byte abyte0[] = new byte[3];
byte abyte1[] = new byte[4];
do
{
if(!bytebuffer.hasRemaining())
return;
int i = Math.min(3, bytebuffer.remaining());
bytebuffer.get(abyte0, 0, i);
encode3to4(abyte1, abyte0, i, 0);
bytebuffer1.put(abyte1);
} while(true);
}
public static void encode(ByteBuffer bytebuffer, CharBuffer charbuffer)
{
byte abyte0[] = new byte[3];
byte abyte1[] = new byte[4];
do
{
if(!bytebuffer.hasRemaining())
return;
int i = Math.min(3, bytebuffer.remaining());
bytebuffer.get(abyte0, 0, i);
encode3to4(abyte1, abyte0, i, 0);
int j = 0;
while(j < 4)
{
charbuffer.put((char)(0xff & abyte1[j]));
j++;
}
} while(true);
}
private static byte[] encode3to4(byte abyte0[], int i, int j, byte abyte1[], int k, int l)
{
byte abyte2[];
int i2;
int i1 = 0;
abyte2 = getAlphabet(l);
int j1;
int k1;
int l1;
if(j > 0)
j1 = (abyte0[i] << 24) >>> 8;
else
j1 = 0;
if(j > 1)
k1 = (abyte0[i + 1] << 24) >>> 16;
else
k1 = 0;
l1 = k1 | j1;
if(j > 2)
i1 = (abyte0[i + 2] << 24) >>> 24;
i2 = l1 | i1;
j;
JVM INSTR tableswitch 1 3: default 104
// 1 238
// 2 181
// 3 118;
goto _L1 _L2 _L3 _L4
_L1:
return abyte1;
_L4:
abyte1[k] = abyte2[i2 >>> 18];
abyte1[k + 1] = abyte2[0x3f & i2 >>> 12];
abyte1[k + 2] = abyte2[0x3f & i2 >>> 6];
abyte1[k + 3] = abyte2[i2 & 0x3f];
continue; /* Loop/switch isn't completed */
_L3:
abyte1[k] = abyte2[i2 >>> 18];
abyte1[k + 1] = abyte2[0x3f & i2 >>> 12];
abyte1[k + 2] = abyte2[0x3f & i2 >>> 6];
abyte1[k + 3] = 61;
continue; /* Loop/switch isn't completed */
_L2:
abyte1[k] = abyte2[i2 >>> 18];
abyte1[k + 1] = abyte2[0x3f & i2 >>> 12];
abyte1[k + 2] = 61;
abyte1[k + 3] = 61;
if(true) goto _L1; else goto _L5
_L5:
}
private static byte[] encode3to4(byte abyte0[], byte abyte1[], int i, int j)
{
encode3to4(abyte1, 0, i, abyte0, 0, j);
return abyte0;
}
public static String encodeBytes(byte abyte0[])
{
String s = null;
String s1 = encodeBytes(abyte0, 0, abyte0.length, 0);
s = s1;
_L1:
IOException ioexception;
if(!$assertionsDisabled && s == null)
throw new AssertionError();
else
return s;
ioexception;
if(!$assertionsDisabled)
throw new AssertionError(ioexception.getMessage());
goto _L1
}
public static String encodeBytes(byte abyte0[], int i)
throws IOException
{
return encodeBytes(abyte0, 0, abyte0.length, i);
}
public static String encodeBytes(byte abyte0[], int i, int j)
{
String s = null;
String s1 = encodeBytes(abyte0, i, j, 0);
s = s1;
_L1:
IOException ioexception;
if(!$assertionsDisabled && s == null)
throw new AssertionError();
else
return s;
ioexception;
if(!$assertionsDisabled)
throw new AssertionError(ioexception.getMessage());
goto _L1
}
public static String encodeBytes(byte abyte0[], int i, int j, int k)
throws IOException
{
byte abyte1[] = encodeBytesToBytes(abyte0, i, j, k);
String s;
try
{
s = new String(abyte1, "US-ASCII");
}
catch(UnsupportedEncodingException unsupportedencodingexception)
{
s = new String(abyte1);
}
return s;
}
public static byte[] encodeBytesToBytes(byte abyte0[])
{
byte abyte1[] = null;
byte abyte2[] = encodeBytesToBytes(abyte0, 0, abyte0.length, 0);
abyte1 = abyte2;
_L2:
return abyte1;
IOException ioexception;
ioexception;
if(!$assertionsDisabled)
throw new AssertionError((new StringBuilder("IOExceptions only come from GZipping, which is turned off: ")).append(ioexception.getMessage()).toString());
if(true) goto _L2; else goto _L1
_L1:
}
public static byte[] encodeBytesToBytes(byte abyte0[], int i, int j, int k)
throws IOException
{
if(abyte0 == null)
throw new NullPointerException("Cannot serialize a null array.");
if(i < 0)
throw new IllegalArgumentException((new StringBuilder("Cannot have negative offset: ")).append(i).toString());
if(j < 0)
throw new IllegalArgumentException((new StringBuilder("Cannot have length offset: ")).append(j).toString());
if(i + j > abyte0.length)
{
Object aobj[] = new Object[3];
aobj[0] = Integer.valueOf(i);
aobj[1] = Integer.valueOf(j);
aobj[2] = Integer.valueOf(abyte0.length);
throw new IllegalArgumentException(String.format("Cannot have offset of %d and length of %d with array of length %d", aobj));
}
if((k & 2) == 0) goto _L2; else goto _L1
_L1:
ByteArrayOutputStream bytearrayoutputstream;
GZIPOutputStream gzipoutputstream;
OutputStream outputstream;
bytearrayoutputstream = null;
gzipoutputstream = null;
outputstream = null;
ByteArrayOutputStream bytearrayoutputstream1 = new ByteArrayOutputStream();
OutputStream outputstream1;
GZIPOutputStream gzipoutputstream1;
IOException ioexception;
Exception exception;
try
{
outputstream1 = new OutputStream(bytearrayoutputstream1, k | 1);
}
// Misplaced declaration of an exception variable
catch(IOException ioexception)
{
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
}
try
{
gzipoutputstream1 = new GZIPOutputStream(outputstream1);
}
// Misplaced declaration of an exception variable
catch(IOException ioexception)
{
outputstream = outputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
}
gzipoutputstream1.write(abyte0, i, j);
gzipoutputstream1.close();
boolean flag;
int l;
byte byte0;
int i1;
byte abyte1[];
int j1;
int k1;
int l1;
int i2;
byte abyte2[];
Exception exception1;
Exception exception2;
Exception exception3;
try
{
gzipoutputstream1.close();
}
catch(Exception exception4) { }
try
{
outputstream1.close();
}
catch(Exception exception5) { }
try
{
bytearrayoutputstream1.close();
}
catch(Exception exception6) { }
abyte2 = bytearrayoutputstream1.toByteArray();
return abyte2;
ioexception;
_L7:
throw ioexception;
exception;
_L5:
try
{
gzipoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception1) { }
try
{
outputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception2) { }
try
{
bytearrayoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception3) { }
throw exception;
_L2:
if((k & 8) != 0)
flag = true;
else
flag = false;
l = 4 * (j / 3);
if(j % 3 > 0)
byte0 = 4;
else
byte0 = 0;
i1 = l + byte0;
if(flag)
i1 += i1 / 76;
abyte1 = new byte[i1];
j1 = 0;
k1 = 0;
l1 = j - 2;
i2 = 0;
_L3:
label0:
{
if(j1 < l1)
break label0;
if(j1 < j)
{
encode3to4(abyte0, j1 + i, j - j1, abyte1, k1, k);
k1 += 4;
}
if(k1 <= -1 + abyte1.length)
{
abyte2 = new byte[k1];
System.arraycopy(abyte1, 0, abyte2, 0, k1);
} else
{
abyte2 = abyte1;
}
}
break MISSING_BLOCK_LABEL_212;
encode3to4(abyte0, j1 + i, 3, abyte1, k1, k);
i2 += 4;
if(flag && i2 >= 76)
{
abyte1[k1 + 4] = 10;
k1++;
i2 = 0;
}
j1 += 3;
k1 += 4;
goto _L3
exception;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
exception;
outputstream = outputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
exception;
outputstream = outputstream1;
gzipoutputstream = gzipoutputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
if(true) goto _L5; else goto _L4
_L4:
break MISSING_BLOCK_LABEL_166;
ioexception;
outputstream = outputstream1;
gzipoutputstream = gzipoutputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
if(true) goto _L7; else goto _L6
_L6:
}
public static void encodeFileToFile(String s, String s1)
throws IOException
{
String s2;
BufferedOutputStream bufferedoutputstream;
s2 = encodeFromFile(s);
bufferedoutputstream = null;
BufferedOutputStream bufferedoutputstream1 = new BufferedOutputStream(new FileOutputStream(s1));
bufferedoutputstream1.write(s2.getBytes("US-ASCII"));
bufferedoutputstream1.close();
_L1:
return;
IOException ioexception;
ioexception;
_L3:
throw ioexception;
Exception exception;
exception;
_L2:
try
{
bufferedoutputstream.close();
}
catch(Exception exception1) { }
throw exception;
Exception exception2;
exception2;
goto _L1
exception;
bufferedoutputstream = bufferedoutputstream1;
goto _L2
ioexception;
bufferedoutputstream = bufferedoutputstream1;
goto _L3
}
public static String encodeFromFile(String s)
throws IOException
{
InputStream inputstream = null;
byte abyte0[];
int i;
InputStream inputstream1;
File file = new File(s);
abyte0 = new byte[Math.max((int)(1.0D + 1.3999999999999999D * (double)file.length()), 40)];
i = 0;
inputstream1 = new InputStream(new BufferedInputStream(new FileInputStream(file)), 1);
_L2:
int j;
String s1;
j = inputstream1.read(abyte0, i, 4096);
if(j >= 0)
break MISSING_BLOCK_LABEL_103;
s1 = new String(abyte0, 0, i, "US-ASCII");
Exception exception;
IOException ioexception;
Exception exception1;
try
{
inputstream1.close();
}
catch(Exception exception2) { }
return s1;
i += j;
if(true) goto _L2; else goto _L1
_L1:
ioexception;
_L6:
throw ioexception;
exception;
_L4:
try
{
inputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception1) { }
throw exception;
exception;
inputstream = inputstream1;
if(true) goto _L4; else goto _L3
_L3:
ioexception;
inputstream = inputstream1;
if(true) goto _L6; else goto _L5
_L5:
}
public static String encodeObject(Serializable serializable)
throws IOException
{
return encodeObject(serializable, 0);
}
public static String encodeObject(Serializable serializable, int i)
throws IOException
{
ByteArrayOutputStream bytearrayoutputstream;
OutputStream outputstream;
GZIPOutputStream gzipoutputstream;
ObjectOutputStream objectoutputstream;
if(serializable == null)
throw new NullPointerException("Cannot serialize a null object.");
bytearrayoutputstream = null;
outputstream = null;
gzipoutputstream = null;
objectoutputstream = null;
ByteArrayOutputStream bytearrayoutputstream1 = new ByteArrayOutputStream();
OutputStream outputstream1;
IOException ioexception;
Exception exception;
GZIPOutputStream gzipoutputstream1;
ObjectOutputStream objectoutputstream2;
try
{
outputstream1 = new OutputStream(bytearrayoutputstream1, i | 1);
}
// Misplaced declaration of an exception variable
catch(IOException ioexception)
{
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
}
if((i & 2) == 0) goto _L2; else goto _L1
_L1:
try
{
gzipoutputstream1 = new GZIPOutputStream(outputstream1);
}
// Misplaced declaration of an exception variable
catch(IOException ioexception)
{
outputstream = outputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
}
objectoutputstream2 = new ObjectOutputStream(gzipoutputstream1);
objectoutputstream = objectoutputstream2;
gzipoutputstream = gzipoutputstream1;
_L4:
objectoutputstream.writeObject(serializable);
ObjectOutputStream objectoutputstream1;
Exception exception1;
Exception exception2;
Exception exception3;
Exception exception4;
String s;
try
{
objectoutputstream.close();
}
catch(Exception exception5) { }
try
{
gzipoutputstream.close();
}
catch(Exception exception6) { }
try
{
outputstream1.close();
}
catch(Exception exception7) { }
try
{
bytearrayoutputstream1.close();
}
catch(Exception exception8) { }
try
{
s = new String(bytearrayoutputstream1.toByteArray(), "US-ASCII");
}
catch(UnsupportedEncodingException unsupportedencodingexception)
{
s = new String(bytearrayoutputstream1.toByteArray());
}
return s;
_L2:
objectoutputstream1 = new ObjectOutputStream(outputstream1);
objectoutputstream = objectoutputstream1;
if(true) goto _L4; else goto _L3
_L3:
ioexception;
_L8:
throw ioexception;
exception;
_L6:
try
{
objectoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception1) { }
try
{
gzipoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception2) { }
try
{
outputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception3) { }
try
{
bytearrayoutputstream.close();
}
// Misplaced declaration of an exception variable
catch(Exception exception4) { }
throw exception;
exception;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
exception;
outputstream = outputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
continue; /* Loop/switch isn't completed */
exception;
gzipoutputstream = gzipoutputstream1;
outputstream = outputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
if(true) goto _L6; else goto _L5
_L5:
break MISSING_BLOCK_LABEL_48;
ioexception;
gzipoutputstream = gzipoutputstream1;
outputstream = outputstream1;
bytearrayoutputstream = bytearrayoutputstream1;
if(true) goto _L8; else goto _L7
_L7:
}
public static void encodeToFile(byte abyte0[], String s)
throws IOException
{
OutputStream outputstream;
if(abyte0 == null)
throw new NullPointerException("Data to encode was null.");
outputstream = null;
OutputStream outputstream1 = new OutputStream(new FileOutputStream(s), 1);
outputstream1.write(abyte0);
outputstream1.close();
_L1:
return;
IOException ioexception;
ioexception;
_L3:
throw ioexception;
Exception exception;
exception;
_L2:
try
{
outputstream.close();
}
catch(Exception exception1) { }
throw exception;
Exception exception2;
exception2;
goto _L1
exception;
outputstream = outputstream1;
goto _L2
ioexception;
outputstream = outputstream1;
goto _L3
}
private static final byte[] getAlphabet(int i)
{
byte abyte0[];
if((i & 0x10) == 16)
abyte0 = _URL_SAFE_ALPHABET;
else
if((i & 0x20) == 32)
abyte0 = _ORDERED_ALPHABET;
else
abyte0 = _STANDARD_ALPHABET;
return abyte0;
}
private static final byte[] getDecodabet(int i)
{
byte abyte0[];
if((i & 0x10) == 16)
abyte0 = _URL_SAFE_DECODABET;
else
if((i & 0x20) == 32)
abyte0 = _ORDERED_DECODABET;
else
abyte0 = _STANDARD_DECODABET;
return abyte0;
}
static final boolean $assertionsDisabled = false;
public static final int DECODE = 0;
public static final int DONT_GUNZIP = 4;
public static final int DO_BREAK_LINES = 8;
public static final int ENCODE = 1;
private static final byte EQUALS_SIGN = 61;
private static final byte EQUALS_SIGN_ENC = -1;
public static final int GZIP = 2;
private static final int MAX_LINE_LENGTH = 76;
private static final byte NEW_LINE = 10;
public static final int NO_OPTIONS = 0;
public static final int ORDERED = 32;
private static final String PREFERRED_ENCODING = "US-ASCII";
public static final int URL_SAFE = 16;
private static final byte WHITE_SPACE_ENC = -5;
private static final byte _ORDERED_ALPHABET[];
private static final byte _ORDERED_DECODABET[];
private static final byte _STANDARD_ALPHABET[];
private static final byte _STANDARD_DECODABET[];
private static final byte _URL_SAFE_ALPHABET[];
private static final byte _URL_SAFE_DECODABET[];
static
{
boolean flag;
byte abyte0[];
byte abyte1[];
byte abyte2[];
byte abyte3[];
byte abyte4[];
byte abyte5[];
if(!com/openvehicles/OVMS/Base64.desiredAssertionStatus())
flag = true;
else
flag = false;
$assertionsDisabled = flag;
abyte0 = new byte[64];
abyte0[0] = 65;
abyte0[1] = 66;
abyte0[2] = 67;
abyte0[3] = 68;
abyte0[4] = 69;
abyte0[5] = 70;
abyte0[6] = 71;
abyte0[7] = 72;
abyte0[8] = 73;
abyte0[9] = 74;
abyte0[10] = 75;
abyte0[11] = 76;
abyte0[12] = 77;
abyte0[13] = 78;
abyte0[14] = 79;
abyte0[15] = 80;
abyte0[16] = 81;
abyte0[17] = 82;
abyte0[18] = 83;
abyte0[19] = 84;
abyte0[20] = 85;
abyte0[21] = 86;
abyte0[22] = 87;
abyte0[23] = 88;
abyte0[24] = 89;
abyte0[25] = 90;
abyte0[26] = 97;
abyte0[27] = 98;
abyte0[28] = 99;
abyte0[29] = 100;
abyte0[30] = 101;
abyte0[31] = 102;
abyte0[32] = 103;
abyte0[33] = 104;
abyte0[34] = 105;
abyte0[35] = 106;
abyte0[36] = 107;
abyte0[37] = 108;
abyte0[38] = 109;
abyte0[39] = 110;
abyte0[40] = 111;
abyte0[41] = 112;
abyte0[42] = 113;
abyte0[43] = 114;
abyte0[44] = 115;
abyte0[45] = 116;
abyte0[46] = 117;
abyte0[47] = 118;
abyte0[48] = 119;
abyte0[49] = 120;
abyte0[50] = 121;
abyte0[51] = 122;
abyte0[52] = 48;
abyte0[53] = 49;
abyte0[54] = 50;
abyte0[55] = 51;
abyte0[56] = 52;
abyte0[57] = 53;
abyte0[58] = 54;
abyte0[59] = 55;
abyte0[60] = 56;
abyte0[61] = 57;
abyte0[62] = 43;
abyte0[63] = 47;
_STANDARD_ALPHABET = abyte0;
abyte1 = new byte[256];
abyte1[0] = -9;
abyte1[1] = -9;
abyte1[2] = -9;
abyte1[3] = -9;
abyte1[4] = -9;
abyte1[5] = -9;
abyte1[6] = -9;
abyte1[7] = -9;
abyte1[8] = -9;
abyte1[9] = -5;
abyte1[10] = -5;
abyte1[11] = -9;
abyte1[12] = -9;
abyte1[13] = -5;
abyte1[14] = -9;
abyte1[15] = -9;
abyte1[16] = -9;
abyte1[17] = -9;
abyte1[18] = -9;
abyte1[19] = -9;
abyte1[20] = -9;
abyte1[21] = -9;
abyte1[22] = -9;
abyte1[23] = -9;
abyte1[24] = -9;
abyte1[25] = -9;
abyte1[26] = -9;
abyte1[27] = -9;
abyte1[28] = -9;
abyte1[29] = -9;
abyte1[30] = -9;
abyte1[31] = -9;
abyte1[32] = -5;
abyte1[33] = -9;
abyte1[34] = -9;
abyte1[35] = -9;
abyte1[36] = -9;
abyte1[37] = -9;
abyte1[38] = -9;
abyte1[39] = -9;
abyte1[40] = -9;
abyte1[41] = -9;
abyte1[42] = -9;
abyte1[43] = 62;
abyte1[44] = -9;
abyte1[45] = -9;
abyte1[46] = -9;
abyte1[47] = 63;
abyte1[48] = 52;
abyte1[49] = 53;
abyte1[50] = 54;
abyte1[51] = 55;
abyte1[52] = 56;
abyte1[53] = 57;
abyte1[54] = 58;
abyte1[55] = 59;
abyte1[56] = 60;
abyte1[57] = 61;
abyte1[58] = -9;
abyte1[59] = -9;
abyte1[60] = -9;
abyte1[61] = -1;
abyte1[62] = -9;
abyte1[63] = -9;
abyte1[64] = -9;
abyte1[66] = 1;
abyte1[67] = 2;
abyte1[68] = 3;
abyte1[69] = 4;
abyte1[70] = 5;
abyte1[71] = 6;
abyte1[72] = 7;
abyte1[73] = 8;
abyte1[74] = 9;
abyte1[75] = 10;
abyte1[76] = 11;
abyte1[77] = 12;
abyte1[78] = 13;
abyte1[79] = 14;
abyte1[80] = 15;
abyte1[81] = 16;
abyte1[82] = 17;
abyte1[83] = 18;
abyte1[84] = 19;
abyte1[85] = 20;
abyte1[86] = 21;
abyte1[87] = 22;
abyte1[88] = 23;
abyte1[89] = 24;
abyte1[90] = 25;
abyte1[91] = -9;
abyte1[92] = -9;
abyte1[93] = -9;
abyte1[94] = -9;
abyte1[95] = -9;
abyte1[96] = -9;
abyte1[97] = 26;
abyte1[98] = 27;
abyte1[99] = 28;
abyte1[100] = 29;
abyte1[101] = 30;
abyte1[102] = 31;
abyte1[103] = 32;
abyte1[104] = 33;
abyte1[105] = 34;
abyte1[106] = 35;
abyte1[107] = 36;
abyte1[108] = 37;
abyte1[109] = 38;
abyte1[110] = 39;
abyte1[111] = 40;
abyte1[112] = 41;
abyte1[113] = 42;
abyte1[114] = 43;
abyte1[115] = 44;
abyte1[116] = 45;
abyte1[117] = 46;
abyte1[118] = 47;
abyte1[119] = 48;
abyte1[120] = 49;
abyte1[121] = 50;
abyte1[122] = 51;
abyte1[123] = -9;
abyte1[124] = -9;
abyte1[125] = -9;
abyte1[126] = -9;
abyte1[127] = -9;
abyte1[128] = -9;
abyte1[129] = -9;
abyte1[130] = -9;
abyte1[131] = -9;
abyte1[132] = -9;
abyte1[133] = -9;
abyte1[134] = -9;
abyte1[135] = -9;
abyte1[136] = -9;
abyte1[137] = -9;
abyte1[138] = -9;
abyte1[139] = -9;
abyte1[140] = -9;
abyte1[141] = -9;
abyte1[142] = -9;
abyte1[143] = -9;
abyte1[144] = -9;
abyte1[145] = -9;
abyte1[146] = -9;
abyte1[147] = -9;
abyte1[148] = -9;
abyte1[149] = -9;
abyte1[150] = -9;
abyte1[151] = -9;
abyte1[152] = -9;
abyte1[153] = -9;
abyte1[154] = -9;
abyte1[155] = -9;
abyte1[156] = -9;
abyte1[157] = -9;
abyte1[158] = -9;
abyte1[159] = -9;
abyte1[160] = -9;
abyte1[161] = -9;
abyte1[162] = -9;
abyte1[163] = -9;
abyte1[164] = -9;
abyte1[165] = -9;
abyte1[166] = -9;
abyte1[167] = -9;
abyte1[168] = -9;
abyte1[169] = -9;
abyte1[170] = -9;
abyte1[171] = -9;
abyte1[172] = -9;
abyte1[173] = -9;
abyte1[174] = -9;
abyte1[175] = -9;
abyte1[176] = -9;
abyte1[177] = -9;
abyte1[178] = -9;
abyte1[179] = -9;
abyte1[180] = -9;
abyte1[181] = -9;
abyte1[182] = -9;
abyte1[183] = -9;
abyte1[184] = -9;
abyte1[185] = -9;
abyte1[186] = -9;
abyte1[187] = -9;
abyte1[188] = -9;
abyte1[189] = -9;
abyte1[190] = -9;
abyte1[191] = -9;
abyte1[192] = -9;
abyte1[193] = -9;
abyte1[194] = -9;
abyte1[195] = -9;
abyte1[196] = -9;
abyte1[197] = -9;
abyte1[198] = -9;
abyte1[199] = -9;
abyte1[200] = -9;
abyte1[201] = -9;
abyte1[202] = -9;
abyte1[203] = -9;
abyte1[204] = -9;
abyte1[205] = -9;
abyte1[206] = -9;
abyte1[207] = -9;
abyte1[208] = -9;
abyte1[209] = -9;
abyte1[210] = -9;
abyte1[211] = -9;
abyte1[212] = -9;
abyte1[213] = -9;
abyte1[214] = -9;
abyte1[215] = -9;
abyte1[216] = -9;
abyte1[217] = -9;
abyte1[218] = -9;
abyte1[219] = -9;
abyte1[220] = -9;
abyte1[221] = -9;
abyte1[222] = -9;
abyte1[223] = -9;
abyte1[224] = -9;
abyte1[225] = -9;
abyte1[226] = -9;
abyte1[227] = -9;
abyte1[228] = -9;
abyte1[229] = -9;
abyte1[230] = -9;
abyte1[231] = -9;
abyte1[232] = -9;
abyte1[233] = -9;
abyte1[234] = -9;
abyte1[235] = -9;
abyte1[236] = -9;
abyte1[237] = -9;
abyte1[238] = -9;
abyte1[239] = -9;
abyte1[240] = -9;
abyte1[241] = -9;
abyte1[242] = -9;
abyte1[243] = -9;
abyte1[244] = -9;
abyte1[245] = -9;
abyte1[246] = -9;
abyte1[247] = -9;
abyte1[248] = -9;
abyte1[249] = -9;
abyte1[250] = -9;
abyte1[251] = -9;
abyte1[252] = -9;
abyte1[253] = -9;
abyte1[254] = -9;
abyte1[255] = -9;
_STANDARD_DECODABET = abyte1;
abyte2 = new byte[64];
abyte2[0] = 65;
abyte2[1] = 66;
abyte2[2] = 67;
abyte2[3] = 68;
abyte2[4] = 69;
abyte2[5] = 70;
abyte2[6] = 71;
abyte2[7] = 72;
abyte2[8] = 73;
abyte2[9] = 74;
abyte2[10] = 75;
abyte2[11] = 76;
abyte2[12] = 77;
abyte2[13] = 78;
abyte2[14] = 79;
abyte2[15] = 80;
abyte2[16] = 81;
abyte2[17] = 82;
abyte2[18] = 83;
abyte2[19] = 84;
abyte2[20] = 85;
abyte2[21] = 86;
abyte2[22] = 87;
abyte2[23] = 88;
abyte2[24] = 89;
abyte2[25] = 90;
abyte2[26] = 97;
abyte2[27] = 98;
abyte2[28] = 99;
abyte2[29] = 100;
abyte2[30] = 101;
abyte2[31] = 102;
abyte2[32] = 103;
abyte2[33] = 104;
abyte2[34] = 105;
abyte2[35] = 106;
abyte2[36] = 107;
abyte2[37] = 108;
abyte2[38] = 109;
abyte2[39] = 110;
abyte2[40] = 111;
abyte2[41] = 112;
abyte2[42] = 113;
abyte2[43] = 114;
abyte2[44] = 115;
abyte2[45] = 116;
abyte2[46] = 117;
abyte2[47] = 118;
abyte2[48] = 119;
abyte2[49] = 120;
abyte2[50] = 121;
abyte2[51] = 122;
abyte2[52] = 48;
abyte2[53] = 49;
abyte2[54] = 50;
abyte2[55] = 51;
abyte2[56] = 52;
abyte2[57] = 53;
abyte2[58] = 54;
abyte2[59] = 55;
abyte2[60] = 56;
abyte2[61] = 57;
abyte2[62] = 45;
abyte2[63] = 95;
_URL_SAFE_ALPHABET = abyte2;
abyte3 = new byte[256];
abyte3[0] = -9;
abyte3[1] = -9;
abyte3[2] = -9;
abyte3[3] = -9;
abyte3[4] = -9;
abyte3[5] = -9;
abyte3[6] = -9;
abyte3[7] = -9;
abyte3[8] = -9;
abyte3[9] = -5;
abyte3[10] = -5;
abyte3[11] = -9;
abyte3[12] = -9;
abyte3[13] = -5;
abyte3[14] = -9;
abyte3[15] = -9;
abyte3[16] = -9;
abyte3[17] = -9;
abyte3[18] = -9;
abyte3[19] = -9;
abyte3[20] = -9;
abyte3[21] = -9;
abyte3[22] = -9;
abyte3[23] = -9;
abyte3[24] = -9;
abyte3[25] = -9;
abyte3[26] = -9;
abyte3[27] = -9;
abyte3[28] = -9;
abyte3[29] = -9;
abyte3[30] = -9;
abyte3[31] = -9;
abyte3[32] = -5;
abyte3[33] = -9;
abyte3[34] = -9;
abyte3[35] = -9;
abyte3[36] = -9;
abyte3[37] = -9;
abyte3[38] = -9;
abyte3[39] = -9;
abyte3[40] = -9;
abyte3[41] = -9;
abyte3[42] = -9;
abyte3[43] = -9;
abyte3[44] = -9;
abyte3[45] = 62;
abyte3[46] = -9;
abyte3[47] = -9;
abyte3[48] = 52;
abyte3[49] = 53;
abyte3[50] = 54;
abyte3[51] = 55;
abyte3[52] = 56;
abyte3[53] = 57;
abyte3[54] = 58;
abyte3[55] = 59;
abyte3[56] = 60;
abyte3[57] = 61;
abyte3[58] = -9;
abyte3[59] = -9;
abyte3[60] = -9;
abyte3[61] = -1;
abyte3[62] = -9;
abyte3[63] = -9;
abyte3[64] = -9;
abyte3[66] = 1;
abyte3[67] = 2;
abyte3[68] = 3;
abyte3[69] = 4;
abyte3[70] = 5;
abyte3[71] = 6;
abyte3[72] = 7;
abyte3[73] = 8;
abyte3[74] = 9;
abyte3[75] = 10;
abyte3[76] = 11;
abyte3[77] = 12;
abyte3[78] = 13;
abyte3[79] = 14;
abyte3[80] = 15;
abyte3[81] = 16;
abyte3[82] = 17;
abyte3[83] = 18;
abyte3[84] = 19;
abyte3[85] = 20;
abyte3[86] = 21;
abyte3[87] = 22;
abyte3[88] = 23;
abyte3[89] = 24;
abyte3[90] = 25;
abyte3[91] = -9;
abyte3[92] = -9;
abyte3[93] = -9;
abyte3[94] = -9;
abyte3[95] = 63;
abyte3[96] = -9;
abyte3[97] = 26;
abyte3[98] = 27;
abyte3[99] = 28;
abyte3[100] = 29;
abyte3[101] = 30;
abyte3[102] = 31;
abyte3[103] = 32;
abyte3[104] = 33;
abyte3[105] = 34;
abyte3[106] = 35;
abyte3[107] = 36;
abyte3[108] = 37;
abyte3[109] = 38;
abyte3[110] = 39;
abyte3[111] = 40;
abyte3[112] = 41;
abyte3[113] = 42;
abyte3[114] = 43;
abyte3[115] = 44;
abyte3[116] = 45;
abyte3[117] = 46;
abyte3[118] = 47;
abyte3[119] = 48;
abyte3[120] = 49;
abyte3[121] = 50;
abyte3[122] = 51;
abyte3[123] = -9;
abyte3[124] = -9;
abyte3[125] = -9;
abyte3[126] = -9;
abyte3[127] = -9;
abyte3[128] = -9;
abyte3[129] = -9;
abyte3[130] = -9;
abyte3[131] = -9;
abyte3[132] = -9;
abyte3[133] = -9;
abyte3[134] = -9;
abyte3[135] = -9;
abyte3[136] = -9;
abyte3[137] = -9;
abyte3[138] = -9;
abyte3[139] = -9;
abyte3[140] = -9;
abyte3[141] = -9;
abyte3[142] = -9;
abyte3[143] = -9;
abyte3[144] = -9;
abyte3[145] = -9;
abyte3[146] = -9;
abyte3[147] = -9;
abyte3[148] = -9;
abyte3[149] = -9;
abyte3[150] = -9;
abyte3[151] = -9;
abyte3[152] = -9;
abyte3[153] = -9;
abyte3[154] = -9;
abyte3[155] = -9;
abyte3[156] = -9;
abyte3[157] = -9;
abyte3[158] = -9;
abyte3[159] = -9;
abyte3[160] = -9;
abyte3[161] = -9;
abyte3[162] = -9;
abyte3[163] = -9;
abyte3[164] = -9;
abyte3[165] = -9;
abyte3[166] = -9;
abyte3[167] = -9;
abyte3[168] = -9;
abyte3[169] = -9;
abyte3[170] = -9;
abyte3[171] = -9;
abyte3[172] = -9;
abyte3[173] = -9;
abyte3[174] = -9;
abyte3[175] = -9;
abyte3[176] = -9;
abyte3[177] = -9;
abyte3[178] = -9;
abyte3[179] = -9;
abyte3[180] = -9;
abyte3[181] = -9;
abyte3[182] = -9;
abyte3[183] = -9;
abyte3[184] = -9;
abyte3[185] = -9;
abyte3[186] = -9;
abyte3[187] = -9;
abyte3[188] = -9;
abyte3[189] = -9;
abyte3[190] = -9;
abyte3[191] = -9;
abyte3[192] = -9;
abyte3[193] = -9;
abyte3[194] = -9;
abyte3[195] = -9;
abyte3[196] = -9;
abyte3[197] = -9;
abyte3[198] = -9;
abyte3[199] = -9;
abyte3[200] = -9;
abyte3[201] = -9;
abyte3[202] = -9;
abyte3[203] = -9;
abyte3[204] = -9;
abyte3[205] = -9;
abyte3[206] = -9;
abyte3[207] = -9;
abyte3[208] = -9;
abyte3[209] = -9;
abyte3[210] = -9;
abyte3[211] = -9;
abyte3[212] = -9;
abyte3[213] = -9;
abyte3[214] = -9;
abyte3[215] = -9;
abyte3[216] = -9;
abyte3[217] = -9;
abyte3[218] = -9;
abyte3[219] = -9;
abyte3[220] = -9;
abyte3[221] = -9;
abyte3[222] = -9;
abyte3[223] = -9;
abyte3[224] = -9;
abyte3[225] = -9;
abyte3[226] = -9;
abyte3[227] = -9;
abyte3[228] = -9;
abyte3[229] = -9;
abyte3[230] = -9;
abyte3[231] = -9;
abyte3[232] = -9;
abyte3[233] = -9;
abyte3[234] = -9;
abyte3[235] = -9;
abyte3[236] = -9;
abyte3[237] = -9;
abyte3[238] = -9;
abyte3[239] = -9;
abyte3[240] = -9;
abyte3[241] = -9;
abyte3[242] = -9;
abyte3[243] = -9;
abyte3[244] = -9;
abyte3[245] = -9;
abyte3[246] = -9;
abyte3[247] = -9;
abyte3[248] = -9;
abyte3[249] = -9;
abyte3[250] = -9;
abyte3[251] = -9;
abyte3[252] = -9;
abyte3[253] = -9;
abyte3[254] = -9;
abyte3[255] = -9;
_URL_SAFE_DECODABET = abyte3;
abyte4 = new byte[64];
abyte4[0] = 45;
abyte4[1] = 48;
abyte4[2] = 49;
abyte4[3] = 50;
abyte4[4] = 51;
abyte4[5] = 52;
abyte4[6] = 53;
abyte4[7] = 54;
abyte4[8] = 55;
abyte4[9] = 56;
abyte4[10] = 57;
abyte4[11] = 65;
abyte4[12] = 66;
abyte4[13] = 67;
abyte4[14] = 68;
abyte4[15] = 69;
abyte4[16] = 70;
abyte4[17] = 71;
abyte4[18] = 72;
abyte4[19] = 73;
abyte4[20] = 74;
abyte4[21] = 75;
abyte4[22] = 76;
abyte4[23] = 77;
abyte4[24] = 78;
abyte4[25] = 79;
abyte4[26] = 80;
abyte4[27] = 81;
abyte4[28] = 82;
abyte4[29] = 83;
abyte4[30] = 84;
abyte4[31] = 85;
abyte4[32] = 86;
abyte4[33] = 87;
abyte4[34] = 88;
abyte4[35] = 89;
abyte4[36] = 90;
abyte4[37] = 95;
abyte4[38] = 97;
abyte4[39] = 98;
abyte4[40] = 99;
abyte4[41] = 100;
abyte4[42] = 101;
abyte4[43] = 102;
abyte4[44] = 103;
abyte4[45] = 104;
abyte4[46] = 105;
abyte4[47] = 106;
abyte4[48] = 107;
abyte4[49] = 108;
abyte4[50] = 109;
abyte4[51] = 110;
abyte4[52] = 111;
abyte4[53] = 112;
abyte4[54] = 113;
abyte4[55] = 114;
abyte4[56] = 115;
abyte4[57] = 116;
abyte4[58] = 117;
abyte4[59] = 118;
abyte4[60] = 119;
abyte4[61] = 120;
abyte4[62] = 121;
abyte4[63] = 122;
_ORDERED_ALPHABET = abyte4;
abyte5 = new byte[257];
abyte5[0] = -9;
abyte5[1] = -9;
abyte5[2] = -9;
abyte5[3] = -9;
abyte5[4] = -9;
abyte5[5] = -9;
abyte5[6] = -9;
abyte5[7] = -9;
abyte5[8] = -9;
abyte5[9] = -5;
abyte5[10] = -5;
abyte5[11] = -9;
abyte5[12] = -9;
abyte5[13] = -5;
abyte5[14] = -9;
abyte5[15] = -9;
abyte5[16] = -9;
abyte5[17] = -9;
abyte5[18] = -9;
abyte5[19] = -9;
abyte5[20] = -9;
abyte5[21] = -9;
abyte5[22] = -9;
abyte5[23] = -9;
abyte5[24] = -9;
abyte5[25] = -9;
abyte5[26] = -9;
abyte5[27] = -9;
abyte5[28] = -9;
abyte5[29] = -9;
abyte5[30] = -9;
abyte5[31] = -9;
abyte5[32] = -5;
abyte5[33] = -9;
abyte5[34] = -9;
abyte5[35] = -9;
abyte5[36] = -9;
abyte5[37] = -9;
abyte5[38] = -9;
abyte5[39] = -9;
abyte5[40] = -9;
abyte5[41] = -9;
abyte5[42] = -9;
abyte5[43] = -9;
abyte5[44] = -9;
abyte5[46] = -9;
abyte5[47] = -9;
abyte5[48] = 1;
abyte5[49] = 2;
abyte5[50] = 3;
abyte5[51] = 4;
abyte5[52] = 5;
abyte5[53] = 6;
abyte5[54] = 7;
abyte5[55] = 8;
abyte5[56] = 9;
abyte5[57] = 10;
abyte5[58] = -9;
abyte5[59] = -9;
abyte5[60] = -9;
abyte5[61] = -1;
abyte5[62] = -9;
abyte5[63] = -9;
abyte5[64] = -9;
abyte5[65] = 11;
abyte5[66] = 12;
abyte5[67] = 13;
abyte5[68] = 14;
abyte5[69] = 15;
abyte5[70] = 16;
abyte5[71] = 17;
abyte5[72] = 18;
abyte5[73] = 19;
abyte5[74] = 20;
abyte5[75] = 21;
abyte5[76] = 22;
abyte5[77] = 23;
abyte5[78] = 24;
abyte5[79] = 25;
abyte5[80] = 26;
abyte5[81] = 27;
abyte5[82] = 28;
abyte5[83] = 29;
abyte5[84] = 30;
abyte5[85] = 31;
abyte5[86] = 32;
abyte5[87] = 33;
abyte5[88] = 34;
abyte5[89] = 35;
abyte5[90] = 36;
abyte5[91] = -9;
abyte5[92] = -9;
abyte5[93] = -9;
abyte5[94] = -9;
abyte5[95] = 37;
abyte5[96] = -9;
abyte5[97] = 38;
abyte5[98] = 39;
abyte5[99] = 40;
abyte5[100] = 41;
abyte5[101] = 42;
abyte5[102] = 43;
abyte5[103] = 44;
abyte5[104] = 45;
abyte5[105] = 46;
abyte5[106] = 47;
abyte5[107] = 48;
abyte5[108] = 49;
abyte5[109] = 50;
abyte5[110] = 51;
abyte5[111] = 52;
abyte5[112] = 53;
abyte5[113] = 54;
abyte5[114] = 55;
abyte5[115] = 56;
abyte5[116] = 57;
abyte5[117] = 58;
abyte5[118] = 59;
abyte5[119] = 60;
abyte5[120] = 61;
abyte5[121] = 62;
abyte5[122] = 63;
abyte5[123] = -9;
abyte5[124] = -9;
abyte5[125] = -9;
abyte5[126] = -9;
abyte5[127] = -9;
abyte5[128] = -9;
abyte5[129] = -9;
abyte5[130] = -9;
abyte5[131] = -9;
abyte5[132] = -9;
abyte5[133] = -9;
abyte5[134] = -9;
abyte5[135] = -9;
abyte5[136] = -9;
abyte5[137] = -9;
abyte5[138] = -9;
abyte5[139] = -9;
abyte5[140] = -9;
abyte5[141] = -9;
abyte5[142] = -9;
abyte5[143] = -9;
abyte5[144] = -9;
abyte5[145] = -9;
abyte5[146] = -9;
abyte5[147] = -9;
abyte5[148] = -9;
abyte5[149] = -9;
abyte5[150] = -9;
abyte5[151] = -9;
abyte5[152] = -9;
abyte5[153] = -9;
abyte5[154] = -9;
abyte5[155] = -9;
abyte5[156] = -9;
abyte5[157] = -9;
abyte5[158] = -9;
abyte5[159] = -9;
abyte5[160] = -9;
abyte5[161] = -9;
abyte5[162] = -9;
abyte5[163] = -9;
abyte5[164] = -9;
abyte5[165] = -9;
abyte5[166] = -9;
abyte5[167] = -9;
abyte5[168] = -9;
abyte5[169] = -9;
abyte5[170] = -9;
abyte5[171] = -9;
abyte5[172] = -9;
abyte5[173] = -9;
abyte5[174] = -9;
abyte5[175] = -9;
abyte5[176] = -9;
abyte5[177] = -9;
abyte5[178] = -9;
abyte5[179] = -9;
abyte5[180] = -9;
abyte5[181] = -9;
abyte5[182] = -9;
abyte5[183] = -9;
abyte5[184] = -9;
abyte5[185] = -9;
abyte5[186] = -9;
abyte5[187] = -9;
abyte5[188] = -9;
abyte5[189] = -9;
abyte5[190] = -9;
abyte5[191] = -9;
abyte5[192] = -9;
abyte5[193] = -9;
abyte5[194] = -9;
abyte5[195] = -9;
abyte5[196] = -9;
abyte5[197] = -9;
abyte5[198] = -9;
abyte5[199] = -9;
abyte5[200] = -9;
abyte5[201] = -9;
abyte5[202] = -9;
abyte5[203] = -9;
abyte5[204] = -9;
abyte5[205] = -9;
abyte5[206] = -9;
abyte5[207] = -9;
abyte5[208] = -9;
abyte5[209] = -9;
abyte5[210] = -9;
abyte5[211] = -9;
abyte5[212] = -9;
abyte5[213] = -9;
abyte5[214] = -9;
abyte5[215] = -9;
abyte5[216] = -9;
abyte5[217] = -9;
abyte5[218] = -9;
abyte5[219] = -9;
abyte5[220] = -9;
abyte5[221] = -9;
abyte5[222] = -9;
abyte5[223] = -9;
abyte5[224] = -9;
abyte5[225] = -9;
abyte5[226] = -9;
abyte5[227] = -9;
abyte5[228] = -9;
abyte5[229] = -9;
abyte5[230] = -9;
abyte5[231] = -9;
abyte5[232] = -9;
abyte5[233] = -9;
abyte5[234] = -9;
abyte5[235] = -9;
abyte5[236] = -9;
abyte5[237] = -9;
abyte5[238] = -9;
abyte5[239] = -9;
abyte5[240] = -9;
abyte5[241] = -9;
abyte5[242] = -9;
abyte5[243] = -9;
abyte5[244] = -9;
abyte5[245] = -9;
abyte5[246] = -9;
abyte5[247] = -9;
abyte5[248] = -9;
abyte5[249] = -9;
abyte5[250] = -9;
abyte5[251] = -9;
abyte5[252] = -9;
abyte5[253] = -9;
abyte5[254] = -9;
abyte5[255] = -9;
abyte5[256] = -9;
_ORDERED_DECODABET = abyte5;
}
}