// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/AppDotNetResponseException.java
// public class AppDotNetResponseException extends AppDotNetClientException {
//     private int status;
//     private String errorMessage;
//     private String errorSlug;
//     private String errorId;
// 
//     public AppDotNetResponseException(String detailMessage, int status) {
//         super(String.format("%s (%s)", detailMessage, status));
//         this.errorMessage = detailMessage;
//         this.status = status;
//     }
// 
//     public AppDotNetResponseException(ResponseMeta responseMeta) {
//         this(responseMeta.getErrorMessage(), responseMeta.getCode());
//         this.errorSlug = responseMeta.getErrorSlug();
//         this.errorId = responseMeta.getErrorId();
//     }
// 
//     public AppDotNetResponseException(String errorMessage, String errorSlug) {
//         super(errorMessage);
//         this.errorMessage = errorMessage;
//         this.errorSlug = errorSlug;
//     }
// 
//     public int getStatus() {
//         return status;
//     }
// 
//     public String getErrorMessage() {
//         return errorMessage;
//     }
// 
//     public String getErrorSlug() {
//         return errorSlug;
//     }
// 
//     public String getErrorId() {
//         return errorId;
//     }
// }
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/IAppDotNetObject.java
// public interface IAppDotNetObject {}
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/ResponseEnvelope.java
// public class ResponseEnvelope<T extends IAppDotNetObject> implements IAppDotNetObject {
//     private ResponseMeta meta;
//     private T data;
// 
//     public ResponseMeta getMeta() {
//         return meta;
//     }
// 
//     public T getData() {
//         return data;
//     }
// }
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/ResponseMeta.java
// public class ResponseMeta {
//     private int code;
//     private String errorMessage;
//     private String errorSlug;
//     private String errorId;
//     private String maxId;
//     private String minId;
//     private boolean more;
// 
//     public int getCode() {
//         return code;
//     }
// 
//     public String getErrorMessage() {
//         return errorMessage;
//     }
// 
//     public String getErrorSlug() {
//         return errorSlug;
//     }
// 
//     public String getErrorId() {
//         return errorId;
//     }
// 
//     public String getMaxId() {
//         return maxId;
//     }
// 
//     public String getMinId() {
//         return minId;
//     }
// 
//     public boolean isMore() {
//         return more;
//     }
// }


import com.alwaysallthetime.adnlib.AppDotNetResponseException;
import com.alwaysallthetime.adnlib.data.IAppDotNetObject;
import com.alwaysallthetime.adnlib.data.ResponseEnvelope;
import com.alwaysallthetime.adnlib.data.ResponseMeta;
import com.google.gson.reflect.TypeToken;
import java.io.Reader;
import java.net.HttpURLConnection;
package com.alwaysallthetime.adnlib.response;



public abstract class AppDotNetBaseResponseEnvelopeHandler<T extends IAppDotNetObject> extends AppDotNetResponseHandler<T> {
    protected ResponseMeta responseMeta;

    protected AppDotNetBaseResponseEnvelopeHandler(TypeToken typeToken) {
        super(typeToken);
    }

    @Override
    public void handleResponse(Reader reader) {
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/AppDotNetResponseException.java
// public class AppDotNetResponseException extends AppDotNetClientException {
//     private int status;
//     private String errorMessage;
//     private String errorSlug;
//     private String errorId;
// 
//     public AppDotNetResponseException(String detailMessage, int status) {
//         super(String.format("%s (%s)", detailMessage, status));
//         this.errorMessage = detailMessage;
//         this.status = status;
//     }
// 
//     public AppDotNetResponseException(ResponseMeta responseMeta) {
//         this(responseMeta.getErrorMessage(), responseMeta.getCode());
//         this.errorSlug = responseMeta.getErrorSlug();
//         this.errorId = responseMeta.getErrorId();
//     }
// 
//     public AppDotNetResponseException(String errorMessage, String errorSlug) {
//         super(errorMessage);
//         this.errorMessage = errorMessage;
//         this.errorSlug = errorSlug;
//     }
// 
//     public int getStatus() {
//         return status;
//     }
// 
//     public String getErrorMessage() {
//         return errorMessage;
//     }
// 
//     public String getErrorSlug() {
//         return errorSlug;
//     }
// 
//     public String getErrorId() {
//         return errorId;
//     }
// }
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/IAppDotNetObject.java
// public interface IAppDotNetObject {}
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/ResponseEnvelope.java
// public class ResponseEnvelope<T extends IAppDotNetObject> implements IAppDotNetObject {
//     private ResponseMeta meta;
//     private T data;
// 
//     public ResponseMeta getMeta() {
//         return meta;
//     }
// 
//     public T getData() {
//         return data;
//     }
// }
// 
// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/data/ResponseMeta.java
// public class ResponseMeta {
//     private int code;
//     private String errorMessage;
//     private String errorSlug;
//     private String errorId;
//     private String maxId;
//     private String minId;
//     private boolean more;
// 
//     public int getCode() {
//         return code;
//     }
// 
//     public String getErrorMessage() {
//         return errorMessage;
//     }
// 
//     public String getErrorSlug() {
//         return errorSlug;
//     }
// 
//     public String getErrorId() {
//         return errorId;
//     }
// 
//     public String getMaxId() {
//         return maxId;
//     }
// 
//     public String getMinId() {
//         return minId;
//     }
// 
//     public boolean isMore() {
//         return more;
//     }
// }


// Path: ADNLibModule/src/main/java/com/alwaysallthetime/adnlib/response/AppDotNetBaseResponseEnvelopeHandler.java
import com.alwaysallthetime.adnlib.AppDotNetResponseException;
import com.alwaysallthetime.adnlib.data.IAppDotNetObject;
import com.alwaysallthetime.adnlib.data.ResponseEnvelope;
import com.alwaysallthetime.adnlib.data.ResponseMeta;
import com.google.gson.reflect.TypeToken;
import java.io.Reader;
import java.net.HttpURLConnection;

package com.alwaysallthetime.adnlib.response;



public abstract class AppDotNetBaseResponseEnvelopeHandler<T extends IAppDotNetObject> extends AppDotNetResponseHandler<T> {
    protected ResponseMeta responseMeta;

    protected AppDotNetBaseResponseEnvelopeHandler(TypeToken typeToken) {
        super(typeToken);
    }

    @Override
    public void handleResponse(Reader reader) {
        final ResponseEnvelope<T> response = parseResponse(reader);