package com.google.android.m4b.maps.ac;

import com.google.android.m4b.maps.aa.h;
import com.google.android.m4b.maps.aa.k;
import com.google.android.m4b.maps.ag.c;
import com.google.android.m4b.maps.ag.d;
import com.google.android.m4b.maps.ag.d.a;
import com.google.android.m4b.maps.ag.f;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataOutput;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Vector;

public final class a
{
  public static final Boolean a = new Boolean(false);
  public static final Boolean b = new Boolean(true);
  private static byte[] c = new byte[0];
  private static final a h = new a((byte)0);
  private b d;
  private final d e;
  private d f;
  private int g = -2147483648;

  public a(b paramb)
  {
    this.d = paramb;
    this.e = new d();
  }

  private static int a(long paramLong)
  {
    int i;
    if (paramLong < 0L)
      i = 10;
    while (true)
    {
      return i;
      i = 1;
      while (paramLong >= 128L)
      {
        i++;
        paramLong >>= 7;
      }
    }
  }

  private int a(h paramh)
  {
    d.a locala = this.e.a();
    int i2;
    for (int i = 0; locala.a(); i = i2 + i)
    {
      int j = locala.b();
      int k = k(j);
      int m = o(j);
      int n = m | j << 3;
      int i1 = 0;
      i2 = 0;
      if (i1 < k)
      {
        int i3 = i2 + a(paramh, n);
        int i4 = paramh.b();
        int i5;
        switch (m)
        {
        case 4:
        default:
          throw new IllegalArgumentException();
        case 1:
        case 5:
          long l2 = ((Long)a(j, i1, 19)).longValue();
          if (m == 5);
          for (int i9 = 4; ; i9 = 8)
            for (int i10 = 0; i10 < i9; i10++)
            {
              paramh.write((int)(0xFF & l2));
              l2 >>= 8;
            }
          i5 = 0;
          i2 = i3;
        case 0:
        case 2:
        case 3:
        }
        while (true)
        {
          if (i5 == 0)
            i2 += paramh.b() - i4;
          i1++;
          break;
          long l1 = ((Long)a(j, i1, 19)).longValue();
          if (m(j))
            l1 = b(l1);
          a(paramh, l1);
          i2 = i3;
          i5 = 0;
          continue;
          if (l(j) == 27);
          Object localObject;
          for (int i6 = 16; ; i6 = 25)
          {
            localObject = a(j, i1, i6);
            if (!(localObject instanceof byte[]))
              break label351;
            byte[] arrayOfByte = (byte[])localObject;
            a(paramh, arrayOfByte.length);
            paramh.write(arrayOfByte);
            i2 = i3;
            i5 = 0;
            break;
          }
          label351: paramh.b(paramh.b());
          int i7 = paramh.a();
          paramh.b(-1);
          int i8 = ((a)localObject).a(paramh);
          paramh.a(i7, i8);
          i2 = i3 + (i8 + a(i8));
          i5 = 1;
          continue;
          i2 = i3 + ((a)a(j, i1, 26)).a(paramh) + a(paramh, 0x4 | j << 3);
          i5 = 1;
        }
      }
    }
    return i;
  }

  private int a(InputStream paramInputStream, int paramInt, boolean paramBoolean, a parama)
  {
    if (paramBoolean)
    {
      this.e.d();
      this.f = null;
    }
    int i = paramInt;
    if (i > 0)
    {
      long l1 = a(paramInputStream, true, parama);
      if (l1 != -1L)
      {
        int j = i - parama.a;
        int k = 0x7 & (int)l1;
        if (k != 4)
        {
          int m = (int)(l1 >>> 3);
          if (l(m) == 16)
          {
            if (this.f == null)
              this.f = new d();
            this.f.a(m, f.a(k));
          }
          Object localObject;
          int n;
          switch (k)
          {
          case 4:
          default:
            throw new IOException("Unknown wire type " + k + ", reading garbage data?");
          case 0:
            long l3 = a(paramInputStream, false, parama);
            int i8 = j - parama.a;
            if (m(m))
              l3 = l3 >>> 1 ^ -(l3 & 1L);
            localObject = f.a(l3);
            n = i8;
          case 1:
          case 5:
            while (true)
            {
              a(m, localObject);
              i = n;
              break;
              if (k == 5);
              long l2;
              for (int i4 = 4; ; i4 = 8)
              {
                n = j - i4;
                int i5 = i4;
                int i6 = 0;
                l2 = 0L;
                while (true)
                {
                  int i7 = i5 - 1;
                  if (i5 <= 0)
                    break;
                  l2 |= paramInputStream.read() << i6;
                  i6 += 8;
                  i5 = i7;
                }
              }
              localObject = f.a(l2);
            }
          case 2:
            int i1 = (int)a(paramInputStream, false, parama);
            n = j - parama.a - i1;
            label362: int i2;
            if (i1 == 0)
            {
              localObject = c;
              i2 = 0;
            }
            while (i2 < i1)
            {
              int i3 = paramInputStream.read((byte[])localObject, i2, i1 - i2);
              if (i3 <= 0)
              {
                throw new IOException("Unexp.EOF");
                localObject = new byte[i1];
                break label362;
              }
              i2 += i3;
            }
          case 3:
          }
          if (this.d == null);
          for (b localb = null; ; localb = (b)this.d.b(m))
          {
            a locala = new a(localb);
            n = locala.a(paramInputStream, j, false, parama);
            localObject = locala;
            break;
          }
        }
        i = j;
      }
    }
    if (i < 0)
      throw new IOException();
    return i;
  }

  private static int a(OutputStream paramOutputStream, long paramLong)
  {
    for (int i = 0; ; i++)
    {
      int j;
      if (i < 10)
      {
        j = (int)(0x7F & paramLong);
        paramLong >>>= 7;
        if (paramLong == 0L)
        {
          paramOutputStream.write(j);
          i++;
        }
      }
      else
      {
        return i;
      }
      paramOutputStream.write(j | 0x80);
    }
  }

  private static int a(Object paramObject)
  {
    if (paramObject == null)
      return 0;
    if ((paramObject instanceof Vector))
      return ((Vector)paramObject).size();
    return 1;
  }

  private int a(boolean paramBoolean)
  {
    if ((this.g != -2147483648) && (paramBoolean))
      return this.g;
    d.a locala = this.e.a();
    int n;
    for (int i = 0; locala.a(); i = n)
    {
      int j = locala.b();
      int k = k(j);
      int m = 0;
      n = i;
      if (m < k)
      {
        int i1 = a(j << 3);
        Object localObject;
        int i3;
        switch (o(j))
        {
        case 2:
        case 4:
        default:
          localObject = a(j, m, 16);
          if ((localObject instanceof byte[]))
            i3 = ((byte[])localObject).length;
          break;
        case 5:
        case 1:
        case 0:
        case 3:
        }
        while (true)
        {
          int i2 = i3 + (i1 + a(i3));
          while (true)
          {
            n += i2;
            m++;
            break;
            i2 = i1 + 4;
            continue;
            i2 = i1 + 8;
            continue;
            long l = g(j, m);
            if (m(j))
              l = b(l);
            i2 = i1 + a(l);
            continue;
            i2 = i1 + (i1 + c(j, m).a(paramBoolean));
          }
          if ((localObject instanceof String))
            i3 = k.a((String)localObject, null, 0);
          else
            i3 = ((a)localObject).a(paramBoolean);
        }
      }
    }
    this.g = i;
    return this.g;
  }

  static long a(InputStream paramInputStream, boolean paramBoolean)
  {
    return a(paramInputStream, paramBoolean, h);
  }

  private static long a(InputStream paramInputStream, boolean paramBoolean, a parama)
  {
    parama.a = 0;
    long l = 0L;
    int i = 0;
    int j = 0;
    while (i < 10)
    {
      int k = paramInputStream.read();
      if (k == -1)
      {
        if ((i == 0) && (paramBoolean))
          return -1L;
        throw new IOException("EOF");
      }
      l |= (k & 0x7F) << j;
      if ((k & 0x80) == 0)
        break;
      j += 7;
      i++;
    }
    parama.a = (i + 1);
    return l;
  }

  private Object a(int paramInt1, int paramInt2, int paramInt3)
  {
    Object localObject = this.e.a(paramInt1);
    if (paramInt2 >= a(localObject))
      throw new ArrayIndexOutOfBoundsException();
    return a(paramInt1, paramInt2, paramInt3, localObject);
  }

  private Object a(int paramInt1, int paramInt2, int paramInt3, Object paramObject)
  {
    Vector localVector;
    Object localObject1;
    if ((paramObject instanceof Vector))
    {
      localVector = (Vector)paramObject;
      localObject1 = localVector.elementAt(paramInt2);
    }
    while (true)
    {
      Object localObject2 = a(localObject1, paramInt3, paramInt1);
      if ((localObject2 != localObject1) && (localObject1 != null))
      {
        if (localVector == null)
          b(paramInt1, localObject2);
      }
      else
        return localObject2;
      localVector.setElementAt(localObject2, paramInt2);
      return localObject2;
      localObject1 = paramObject;
      localVector = null;
    }
  }

  private Object a(Object paramObject, int paramInt1, int paramInt2)
  {
    switch (paramInt1)
    {
    case 17:
    case 18:
    default:
      throw new RuntimeException("Unsupp.Type");
    case 24:
      if (!(paramObject instanceof Boolean))
        break;
    case 16:
    case 19:
    case 20:
    case 21:
    case 22:
    case 23:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 25:
    case 35:
    case 28:
    case 36:
    case 26:
    case 27:
    }
    do
    {
      do
      {
        do
        {
          do
          {
            return paramObject;
            switch ((int)((Long)paramObject).longValue())
            {
            default:
              throw new IllegalArgumentException("Type mismatch");
            case 0:
              return a;
            case 1:
            }
            return b;
          }
          while (!(paramObject instanceof Boolean));
          if (((Boolean)paramObject).booleanValue());
          for (long l = 1L; ; l = 0L)
            return f.a(l);
          if ((paramObject instanceof String))
            return k.a((String)paramObject);
        }
        while (!(paramObject instanceof a));
        ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
        try
        {
          ((a)paramObject).b(localByteArrayOutputStream);
          byte[] arrayOfByte2 = localByteArrayOutputStream.toByteArray();
          return arrayOfByte2;
        }
        catch (IOException localIOException2)
        {
          throw new RuntimeException(localIOException2.toString());
        }
      }
      while (!(paramObject instanceof byte[]));
      byte[] arrayOfByte1 = (byte[])paramObject;
      return k.a(arrayOfByte1, 0, arrayOfByte1.length, true);
    }
    while (!(paramObject instanceof byte[]));
    if (paramInt2 > 0);
    try
    {
      if (this.d != null);
      for (a locala = new a((b)this.d.b(paramInt2)); ; locala = new a(null))
        return locala.a((byte[])paramObject);
    }
    catch (IOException localIOException1)
    {
      throw new RuntimeException(localIOException1.toString());
    }
  }

  private void a(int paramInt, Object paramObject)
  {
    Object localObject = this.e.a(paramInt);
    boolean bool = localObject instanceof Vector;
    Vector localVector = null;
    if (bool)
      localVector = (Vector)localObject;
    if ((localObject == null) || ((localVector != null) && (localVector.size() == 0)))
    {
      b(paramInt, paramObject);
      return;
    }
    if (localVector == null)
    {
      localVector = new Vector();
      localVector.addElement(localObject);
      this.e.a(paramInt, localVector);
    }
    localVector.addElement(paramObject);
  }

  private void a(OutputStream paramOutputStream, boolean paramBoolean)
  {
    int i = 0;
    h localh = new h();
    int j = a(localh);
    if (paramBoolean)
      ((DataOutput)paramOutputStream).writeInt(j);
    int k = localh.a();
    int m = 0;
    while (m < k)
    {
      int n = localh.a(m);
      localh.a(paramOutputStream, i, n - i);
      a(paramOutputStream, localh.a(m + 1));
      m += 2;
      i = n;
    }
    if (i < localh.b())
      localh.a(paramOutputStream, i, localh.b() - i);
  }

  private void a(Writer paramWriter, int paramInt)
  {
    int i = paramInt * 2;
    StringBuffer localStringBuffer = new StringBuffer();
    for (int j = 0; j < i; j++)
      localStringBuffer.append(' ');
    String str = localStringBuffer.toString();
    for (int k = 0; k <= this.e.b(); k++)
    {
      int m = 0;
      if (m < k(k))
      {
        paramWriter.append(str).append(Integer.toString(k));
        int n = l(k);
        if (n == 26)
        {
          paramWriter.append(' ');
          switch (n)
          {
          default:
            label109: paramWriter.append("UNSUPPORTED TYPE: ").append(Integer.toString(n));
          case 26:
          case 27:
          case 18:
          case 17:
          case 19:
          case 20:
          case 21:
          case 22:
          case 23:
          case 24:
          case 28:
          case 29:
          case 30:
          case 31:
          case 32:
          case 33:
          case 34:
          case 36:
          case 25:
          case 35:
          }
        }
        while (true)
        {
          paramWriter.append('\n');
          m++;
          break;
          paramWriter.append(':');
          break label109;
          paramWriter.append("{\n");
          c(k, m).a(paramWriter, paramInt + 1);
          paramWriter.append(str).append('}');
          continue;
          paramWriter.append(Float.toString(Float.intBitsToFloat(b(k, m))));
          continue;
          paramWriter.append(Double.toString(Double.longBitsToDouble(g(k, m))));
          continue;
          paramWriter.append(a(k, m, n).toString());
          continue;
          paramWriter.append(c.a((byte[])a(k, m, 25)));
        }
      }
    }
  }

  private static long b(long paramLong)
  {
    return paramLong << 1 ^ -(paramLong >>> 63);
  }

  private a b(int paramInt, Object paramObject)
  {
    if (paramInt < 0)
      throw new ArrayIndexOutOfBoundsException();
    this.e.a(paramInt, paramObject);
    return this;
  }

  private long g(int paramInt1, int paramInt2)
  {
    return ((Long)a(paramInt1, paramInt2, 19)).longValue();
  }

  private Object h(int paramInt1, int paramInt2)
  {
    Object localObject = this.e.a(paramInt1);
    int i = a(localObject);
    if (i == 0)
      return n(paramInt1);
    if (i > 1)
      throw new IllegalArgumentException();
    return a(paramInt1, 0, paramInt2, localObject);
  }

  private int l(int paramInt)
  {
    if (this.d != null);
    for (int i = this.d.a(paramInt); ; i = 16)
    {
      Integer localInteger;
      if (i == 16)
        if (this.f != null)
        {
          localInteger = (Integer)this.f.a(paramInt);
          if (localInteger == null)
            break label105;
        }
      label105: for (int j = localInteger.intValue(); ; j = i)
      {
        if ((j == 16) && (k(paramInt) > 0))
        {
          Object localObject = a(paramInt, 0, 16);
          if (((localObject instanceof Long)) || ((localObject instanceof Boolean)))
            j = 0;
        }
        else
        {
          return j;
          localInteger = null;
          break;
        }
        return 2;
      }
    }
  }

  private boolean m(int paramInt)
  {
    int i = l(paramInt);
    return (i == 33) || (i == 34);
  }

  private Object n(int paramInt)
  {
    switch (l(paramInt))
    {
    default:
      if (this.d != null)
        break;
    case 16:
    case 26:
    case 27:
      return null;
    }
    return this.d.b(paramInt);
  }

  private final int o(int paramInt)
  {
    int i = l(paramInt);
    switch (i)
    {
    case 4:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    default:
      throw new RuntimeException("Unsupp.Type:" + this.d + '/' + paramInt + '/' + i);
    case 19:
    case 20:
    case 21:
    case 24:
    case 29:
    case 30:
    case 33:
    case 34:
      i = 0;
    case 0:
    case 1:
    case 2:
    case 3:
    case 5:
    case 16:
      return i;
    case 25:
    case 27:
    case 28:
    case 35:
    case 36:
      return 2;
    case 17:
    case 22:
    case 32:
      return 1;
    case 18:
    case 23:
    case 31:
      return 5;
    case 26:
    }
    return 3;
  }

  public final int a(InputStream paramInputStream, int paramInt)
  {
    return a(paramInputStream, paramInt, true, new a((byte)0));
  }

  public final a a()
  {
    try
    {
      a locala = new a(this.d);
      locala.a(d());
      return locala;
    }
    catch (IOException localIOException)
    {
    }
    throw new RuntimeException("Could not serialize and parse ProtoBuf.");
  }

  public final a a(int paramInt)
  {
    return new a((b)this.d.b(paramInt));
  }

  public final a a(int paramInt, float paramFloat)
  {
    return a(paramInt, Float.floatToIntBits(paramFloat));
  }

  public final a a(int paramInt, long paramLong)
  {
    return b(paramInt, f.a(paramLong));
  }

  public final a a(int paramInt, boolean paramBoolean)
  {
    if (paramBoolean);
    for (Boolean localBoolean = b; ; localBoolean = a)
      return b(paramInt, localBoolean);
  }

  final a a(b paramb)
  {
    if (this.e.c() == 0);
    for (int i = 1; (i == 0) || ((this.d != null) && (paramb != null) && (paramb != this.d)); i = 0)
      throw new IllegalArgumentException();
    this.d = paramb;
    this.f = null;
    return this;
  }

  public final a a(InputStream paramInputStream)
  {
    a(paramInputStream, 2147483647);
    return this;
  }

  public final a a(byte[] paramArrayOfByte)
  {
    a(new ByteArrayInputStream(paramArrayOfByte), paramArrayOfByte.length);
    return this;
  }

  public final void a(int paramInt1, int paramInt2)
  {
    a(paramInt1, f.a(paramInt2));
  }

  public final void a(int paramInt, a parama)
  {
    a(paramInt, parama);
  }

  public final void a(int paramInt, String paramString)
  {
    a(paramInt, paramString);
  }

  public final void a(int paramInt, byte[] paramArrayOfByte)
  {
    a(2, paramArrayOfByte);
  }

  public final void a(OutputStream paramOutputStream)
  {
    a(paramOutputStream, true);
  }

  public final void a(Writer paramWriter)
  {
    a(paramWriter, 0);
  }

  public final int b(int paramInt1, int paramInt2)
  {
    return (int)((Long)a(paramInt1, paramInt2, 21)).longValue();
  }

  public final a b(int paramInt, a parama)
  {
    return b(paramInt, parama);
  }

  public final a b(int paramInt, String paramString)
  {
    return b(paramInt, paramString);
  }

  public final b b()
  {
    return this.d;
  }

  public final void b(OutputStream paramOutputStream)
  {
    a(paramOutputStream, false);
  }

  public final boolean b(int paramInt)
  {
    return ((Boolean)h(paramInt, 24)).booleanValue();
  }

  public final int c()
  {
    return a(false);
  }

  public final a c(int paramInt1, int paramInt2)
  {
    return (a)a(paramInt1, paramInt2, 26);
  }

  public final byte[] c(int paramInt)
  {
    return (byte[])h(paramInt, 25);
  }

  public final int d(int paramInt)
  {
    return (int)((Long)h(paramInt, 21)).longValue();
  }

  public final String d(int paramInt1, int paramInt2)
  {
    return (String)a(paramInt1, paramInt2, 28);
  }

  public final byte[] d()
  {
    ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
    b(localByteArrayOutputStream);
    return localByteArrayOutputStream.toByteArray();
  }

  public final long e(int paramInt)
  {
    return ((Long)h(paramInt, 19)).longValue();
  }

  public final void e(int paramInt1, int paramInt2)
  {
    int i = k(paramInt1);
    if (paramInt2 >= i)
      throw new ArrayIndexOutOfBoundsException();
    if (i == 1)
    {
      this.e.b(paramInt1);
      return;
    }
    ((Vector)this.e.a(paramInt1)).removeElementAt(paramInt2);
  }

  public final float f(int paramInt)
  {
    return Float.intBitsToFloat(d(5));
  }

  public final a f(int paramInt1, int paramInt2)
  {
    return a(paramInt1, paramInt2);
  }

  public final a g(int paramInt)
  {
    return (a)h(paramInt, 26);
  }

  public final String h(int paramInt)
  {
    return (String)h(paramInt, 28);
  }

  public final boolean i(int paramInt)
  {
    return k(paramInt) > 0;
  }

  public final boolean j(int paramInt)
  {
    return (i(paramInt)) || (n(paramInt) != null);
  }

  public final int k(int paramInt)
  {
    return a(this.e.a(paramInt));
  }

  public final String toString()
  {
    StringWriter localStringWriter = new StringWriter();
    try
    {
      a(localStringWriter);
      return localStringWriter.toString();
    }
    catch (IOException localIOException)
    {
      while (true)
        localStringWriter.write(localIOException.toString());
    }
  }

  static final class a
  {
    public int a = 0;
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.android.m4b.maps.ac.a
 * JD-Core Version:    0.6.2
 */