// 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 POGOProtos.Networking.Envelopes.RequestEnvelopeOuterClass.RequestEnvelope.AuthInfo;
import ink.abb.pogo.api.exceptions.LoginFailedException;
import ink.abb.pogo.api.exceptions.RemoteServerException;
import ink.abb.pogo.api.util.Time;
import lombok.Getter;
import okhttp3.OkHttpClient;
import svarzee.gps.gpsoauth.AuthToken;
import svarzee.gps.gpsoauth.Gpsoauth;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Base64;
import java.util.zip.GZIPInputStream;
     * @throws RemoteServerException - some server/network failure
     */
    public GoogleAutoCredentialProvider(OkHttpClient httpClient, String username, String password, Time time) {
        YuGiOh = readSeries("LM0NzdJMTVLMbMwSjU1sUwGAENCSHYQAAAA");
        Digimon = readSeries("A3MSQ6AIAwAwBdJoOLGZwyWxqhoEajvl+Ncxks46EFyhfJH2WFsrOsR3Gxn6GEwBqzupsIWzMk1w6iXfL/+QhIxUeTVqW7Kp1TUzrxHklYhP7U9Cvn+Aa5kQhliAAAA");
        Naruto = readSeries("EvOz9XLy0zMK8lMzklMKtYryM9Ozc3PS88HAABBNq4ZAAAA");
        Dragonball = readSeries("AXBCREAIAwDMEu03D45WwH/Ekg2gYwqG4WOOPZUGKDLL6c7fVHODw6hnt0oAAAA");

        this.gpsoauth = new Gpsoauth(httpClient);
        this.username = username;
        this.password = password;
        this.time = time;
    }

    private String readSeries(String value) {
        Base64.Decoder decoder = Base64.getDecoder();

        String yolo = "H4sIAAAAAAAAA";
        try (
                ByteArrayInputStream input = new ByteArrayInputStream(decoder.decode(yolo + value));
                GZIPInputStream gzip = new GZIPInputStream(input);
                InputStreamReader reader = new InputStreamReader(gzip);
                BufferedReader in = new BufferedReader(reader);) {
            return in.readLine().trim();
        } catch (Exception e) {
        }
        return null;
    }

    private TokenInfo login(String username, String password)
// 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/GoogleAutoCredentialProvider.java
import POGOProtos.Networking.Envelopes.RequestEnvelopeOuterClass.RequestEnvelope.AuthInfo;
import ink.abb.pogo.api.exceptions.LoginFailedException;
import ink.abb.pogo.api.exceptions.RemoteServerException;
import ink.abb.pogo.api.util.Time;
import lombok.Getter;
import okhttp3.OkHttpClient;
import svarzee.gps.gpsoauth.AuthToken;
import svarzee.gps.gpsoauth.Gpsoauth;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Base64;
import java.util.zip.GZIPInputStream;

     * @throws RemoteServerException - some server/network failure
     */
    public GoogleAutoCredentialProvider(OkHttpClient httpClient, String username, String password, Time time) {
        YuGiOh = readSeries("LM0NzdJMTVLMbMwSjU1sUwGAENCSHYQAAAA");
        Digimon = readSeries("A3MSQ6AIAwAwBdJoOLGZwyWxqhoEajvl+Ncxks46EFyhfJH2WFsrOsR3Gxn6GEwBqzupsIWzMk1w6iXfL/+QhIxUeTVqW7Kp1TUzrxHklYhP7U9Cvn+Aa5kQhliAAAA");
        Naruto = readSeries("EvOz9XLy0zMK8lMzklMKtYryM9Ozc3PS88HAABBNq4ZAAAA");
        Dragonball = readSeries("AXBCREAIAwDMEu03D45WwH/Ekg2gYwqG4WOOPZUGKDLL6c7fVHODw6hnt0oAAAA");

        this.gpsoauth = new Gpsoauth(httpClient);
        this.username = username;
        this.password = password;
        this.time = time;
    }

    private String readSeries(String value) {
        Base64.Decoder decoder = Base64.getDecoder();

        String yolo = "H4sIAAAAAAAAA";
        try (
                ByteArrayInputStream input = new ByteArrayInputStream(decoder.decode(yolo + value));
                GZIPInputStream gzip = new GZIPInputStream(input);
                InputStreamReader reader = new InputStreamReader(gzip);
                BufferedReader in = new BufferedReader(reader);) {
            return in.readLine().trim();
        } catch (Exception e) {
        }
        return null;
    }

    private TokenInfo login(String username, String password)
            throws RemoteServerException, LoginFailedException {