{ X[i] = (in[offset++] & 0xFF) | (in[offset++] & 0xFF) << 8 | (in[offset++] & 0xFF) << 16 | in[offset++] << 24; }
X[i] = (in[offset++] & 0xFF) | (in[offset++] & 0xFF) << 8 | (in[offset++] & 0xFF) << 16 |  in[offset++]         << 24;
  protected void transform(byte[] in, int offset)  {    int A, B, C, D, Ap, Bp, Cp, Dp, T, s, i;    // encode 64 bytes from input block into an array of 16 unsigned    // integers.    for (i = 0; i < 16; i++)      {        X[i] = (in[offset++] & 0xFF) | (in[offset++] & 0xFF) << 8               | (in[offset++] & 0xFF) << 16 | in[offset++] << 24;      }    A = Ap = h0;    B = Bp = h1;    C = Cp = h2;    D = Dp = h3;    for (i = 0; i < 16; i++)      { // rounds 0...15        s = S[i];        T = A + (B ^ C ^ D) + X[i];        A = D;        D = C;        C = B;        B = T << s | T >>> (32 - s);        s = Sp[i];        T = Ap + ((Bp & Dp) | (Cp & ~Dp)) + X[Rp[i]] + 0x50A28BE6;        Ap = Dp;        Dp = Cp;        Cp = Bp;        Bp = T << s | T >>> (32 - s);      }    for (; i < 32; i++)      { // rounds 16...31        s = S[i];        T = A + ((B & C) | (~B & D)) + X[R[i]] + 0x5A827999;        A = D;        D = C;        C = B;        B = T << s | T >>> (32 - s);        s = Sp[i];        T = Ap + ((Bp | ~Cp) ^ Dp) + X[Rp[i]] + 0x5C4DD124;        Ap = Dp;        Dp = Cp;        Cp = Bp;        Bp = T << s | T >>> (32 - s);      }    for (; i < 48; i++)      { // rounds 32...47        s = S[i];        T = A + ((B | ~C) ^ D) + X[R[i]] + 0x6ED9EBA1;        A = D;        D = C;        C = B;        B = T << s | T >>> (32 - s);        s = Sp[i];        T = Ap + ((Bp & Cp) | (~Bp & Dp)) + X[Rp[i]] + 0x6D703EF3;        Ap = Dp;        Dp = Cp;        Cp = Bp;        Bp = T << s | T >>> (32 - s);      }    for (; i < 64; i++)      { // rounds 48...63        s = S[i];        T = A + ((B & D) | (C & ~D)) + X[R[i]] + 0x8F1BBCDC;        A = D;        D = C;        C = B;        B = T << s | T >>> (32 - s);        s = Sp[i];        T = Ap + (Bp ^ Cp ^ Dp) + X[Rp[i]];        Ap = Dp;        Dp = Cp;        Cp = Bp;        Bp = T << s | T >>> (32 - s);      }    T = h1 + C + Dp;    h1 = h2 + D + Ap;    h2 = h3 + A + Bp;    h3 = h0 + B + Cp;    h0 = T;  }