src/main/java/com/seanchenxi/gwt/storage/client/serializer/StorageSerializationStreamWriter.java
static String longToBase64(long value) {
    // Convert to ints early to avoid need for long ops
    int low = (int) (value & 0xffffffff);
    int high = (int) (value >> 32);

    StringBuilder sb = new StringBuilder();
    boolean haveNonZero = base64Append(sb, (high >> 28) & 0xf, false);
    haveNonZero = base64Append(sb, (high >> 22) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (high >> 16) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (high >> 10) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (high >> 4) & 0x3f, haveNonZero);
    int v = ((high & 0xf) << 2) | ((low >> 30) & 0x3);
    haveNonZero = base64Append(sb, v, haveNonZero);
    haveNonZero = base64Append(sb, (low >> 24) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (low >> 18) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (low >> 12) & 0x3f, haveNonZero);
    base64Append(sb, (low >> 6) & 0x3f, haveNonZero);
    base64Append(sb, low & 0x3f, true);

    return sb.toString();
  }
static String longToBase64(long value) {
    // Convert to ints early to avoid need for long ops
    int low = (int) (value & 0xffffffff);
    int high = (int) (value >> 32);

    StringBuilder sb = new StringBuilder();
    boolean haveNonZero = base64Append(sb, (high >> 28) & 0xf, false);
    haveNonZero = base64Append(sb, (high >> 22) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (high >> 16) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (high >> 10) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (high >> 4) & 0x3f, haveNonZero);
    int v = ((high & 0xf) << 2) | ((low >> 30) & 0x3);
    haveNonZero = base64Append(sb, v, haveNonZero);
    haveNonZero = base64Append(sb, (low >> 24) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (low >> 18) & 0x3f, haveNonZero);
    haveNonZero = base64Append(sb, (low >> 12) & 0x3f, haveNonZero);
    base64Append(sb, (low >> 6) & 0x3f, haveNonZero);
    base64Append(sb, low & 0x3f, true);

    return sb.toString();
  }
static String longToBase64 ( long value ) { // Convert to ints early to avoid need for long ops int low = ( int ) ( value & 0xffffffff ) ; int high = ( int ) ( value >> 32 ) ; StringBuilder sb = new StringBuilder ( ) ; boolean haveNonZero = base64Append ( sb , ( high >> 28 ) & 0xf , false ) ; haveNonZero = base64Append ( sb , ( high >> 22 ) & 0x3f , haveNonZero ) ; haveNonZero = base64Append ( sb , ( high >> 16 ) & 0x3f , haveNonZero ) ; haveNonZero = base64Append ( sb , ( high >> 10 ) & 0x3f , haveNonZero ) ; haveNonZero = base64Append ( sb , ( high >> 4 ) & 0x3f , haveNonZero ) ; int v = ( ( high & 0xf ) << 2 ) | ( ( low >> 30 ) & 0x3 ) ; haveNonZero = base64Append ( sb , v , haveNonZero ) ; haveNonZero = base64Append ( sb , ( low >> 24 ) & 0x3f , haveNonZero ) ; haveNonZero = base64Append ( sb , ( low >> 18 ) & 0x3f , haveNonZero ) ; haveNonZero = base64Append ( sb , ( low >> 12 ) & 0x3f , haveNonZero ) ; base64Append ( sb , ( low >> 6 ) & 0x3f , haveNonZero ) ; base64Append ( sb , low & 0x3f , true ) ; return sb . toString ( ) ; }
Copy from {@link com.google.gwt.user.client.rpc.impl.AbstractSerializationStream#longToBase64(long)}

Return an optionally single-quoted string containing a base-64 encoded
version of the given long value.

Keep this synchronized with the version in Base64Utils.
Copy from { @link com . google . gwt . user . client . rpc . impl . AbstractSerializationStream#longToBase64 ( long ) }