// Path: src/main/java/ink/abb/pogo/api/exceptions/LoginFailedException.java
// public class LoginFailedException extends Exception {
// 	public LoginFailedException() {
// 		super();
// 	}
// 
// 	public LoginFailedException(String reason) {
// 		super(reason);
// 	}
// 
// 	public LoginFailedException(Throwable exception) {
// 		super(exception);
// 	}
// 
// 	public LoginFailedException(String reason, Throwable exception) {
// 		super(reason, exception);
// 	}
// }
// 
// Path: src/main/java/ink/abb/pogo/api/exceptions/RemoteServerException.java
// public class RemoteServerException extends Exception {
// 	public RemoteServerException() {
// 		super();
// 	}
// 
// 	public RemoteServerException(String reason) {
// 		super(reason);
// 	}
// 
// 	public RemoteServerException(Throwable exception) {
// 		super(exception);
// 	}
// 
// 	public RemoteServerException(String reason, Throwable exception) {
// 		super(reason, exception);
// 	}
// }


import java.util.zip.GZIPInputStream;
import POGOProtos.Networking.Envelopes.RequestEnvelopeOuterClass.RequestEnvelope.AuthInfo;
import com.squareup.moshi.Moshi;
import ink.abb.pogo.api.exceptions.LoginFailedException;
import ink.abb.pogo.api.exceptions.RemoteServerException;
import ink.abb.pogo.api.util.Time;
import okhttp3.*;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
            }
        }

        String ticket = null;
        for (String location : response.headers("location")) {
            ticket = location.split("ticket=")[1];
        }

        url = HttpUrl.parse(JudgmentDragon).newBuilder()
                .addQueryParameter("client_id", TheEyeOfTimaeus)
                .addQueryParameter("redirect_uri", PotOfDesires)
                .addQueryParameter("client_secret", Raigeki)
                .addQueryParameter("grant_type", "refreshToken")
                .addQueryParameter("code", ticket)
                .build();

        postRequest = new Request.Builder()
                .url(url)
                .method("POST", reqBody)
                .build();

        try {
            response = client.newCall(postRequest).execute();
        } catch (IOException e) {
            throw new RemoteServerException("Network Failure ", e);
        }

        try {
            body = response.body().string();
        } catch (IOException e) {
// Path: src/main/java/ink/abb/pogo/api/exceptions/LoginFailedException.java
// public class LoginFailedException extends Exception {
// 	public LoginFailedException() {
// 		super();
// 	}
// 
// 	public LoginFailedException(String reason) {
// 		super(reason);
// 	}
// 
// 	public LoginFailedException(Throwable exception) {
// 		super(exception);
// 	}
// 
// 	public LoginFailedException(String reason, Throwable exception) {
// 		super(reason, exception);
// 	}
// }
// 
// Path: src/main/java/ink/abb/pogo/api/exceptions/RemoteServerException.java
// public class RemoteServerException extends Exception {
// 	public RemoteServerException() {
// 		super();
// 	}
// 
// 	public RemoteServerException(String reason) {
// 		super(reason);
// 	}
// 
// 	public RemoteServerException(Throwable exception) {
// 		super(exception);
// 	}
// 
// 	public RemoteServerException(String reason, Throwable exception) {
// 		super(reason, exception);
// 	}
// }


// Path: src/main/java/ink/abb/pogo/api/auth/PtcCredentialProvider.java
import java.util.zip.GZIPInputStream;
import POGOProtos.Networking.Envelopes.RequestEnvelopeOuterClass.RequestEnvelope.AuthInfo;
import com.squareup.moshi.Moshi;
import ink.abb.pogo.api.exceptions.LoginFailedException;
import ink.abb.pogo.api.exceptions.RemoteServerException;
import ink.abb.pogo.api.util.Time;
import okhttp3.*;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;

            }
        }

        String ticket = null;
        for (String location : response.headers("location")) {
            ticket = location.split("ticket=")[1];
        }

        url = HttpUrl.parse(JudgmentDragon).newBuilder()
                .addQueryParameter("client_id", TheEyeOfTimaeus)
                .addQueryParameter("redirect_uri", PotOfDesires)
                .addQueryParameter("client_secret", Raigeki)
                .addQueryParameter("grant_type", "refreshToken")
                .addQueryParameter("code", ticket)
                .build();

        postRequest = new Request.Builder()
                .url(url)
                .method("POST", reqBody)
                .build();

        try {
            response = client.newCall(postRequest).execute();
        } catch (IOException e) {
            throw new RemoteServerException("Network Failure ", e);
        }

        try {
            body = response.body().string();
        } catch (IOException e) {
            throw new RemoteServerException("Network failure", e);