// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/misc/ProxyGlobalConstants.java
// public final class ProxyGlobalConstants {
// 
//     public static final String APP_VERSION = ProxyBuildConfig.VERSION;
// 
//     public static final byte PROTOCOL_VERSION = 2;
// 
//     public static final int DEFAULT_SERVER_PORT = 5234;
// 
//     public static final long INIT_SEND_SPEED = 100 * 1024; //100kb/s
// 
//     public static final Charset STRING_CHARSET = StandardCharsets.UTF_8;
// 
//     public static final Charset HEADER_ADDRESS_CHARSET = StandardCharsets.US_ASCII;
// 
//     public static final short PIPE_BUFFER_SIZE = 10240;
// 
//     public static final short MAX_FRAME_SIZE = 20480;
// 
//     public static final int PASSWORD_MIN_LENGTH = 4;
// 
//     public static final int SOCKS5_PORT = 1080;
// 
//     public static final int TCP_CONNECT_TIMEOUT_MS = 4000;
// 
//     public static final String UPDATE_API_URL = "https://github.com/dragonite-network/dragonite-java/raw/master/VERSIONS";
// 
//     public static final String UPDATE_API_PRODUCT_NAME = "proxy";
// 
// }


import com.vecsight.dragonite.proxy.misc.ProxyGlobalConstants;
import java.util.Arrays;
    }

    public byte[] getAddr() {
        return addr;
    }

    public void setAddr(final byte[] addr) {
        this.addr = addr;
    }

    public int getPort() {
        return port;
    }

    public void setPort(final int port) {
        this.port = port;
    }

    public boolean isUdp() {
        return udp;
    }

    public void setUdp(final boolean udp) {
        this.udp = udp;
    }

    @Override
    public String toString() {
        return "SOCKS5Header{" +
                "isDomain=" + isDomain +
// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/misc/ProxyGlobalConstants.java
// public final class ProxyGlobalConstants {
// 
//     public static final String APP_VERSION = ProxyBuildConfig.VERSION;
// 
//     public static final byte PROTOCOL_VERSION = 2;
// 
//     public static final int DEFAULT_SERVER_PORT = 5234;
// 
//     public static final long INIT_SEND_SPEED = 100 * 1024; //100kb/s
// 
//     public static final Charset STRING_CHARSET = StandardCharsets.UTF_8;
// 
//     public static final Charset HEADER_ADDRESS_CHARSET = StandardCharsets.US_ASCII;
// 
//     public static final short PIPE_BUFFER_SIZE = 10240;
// 
//     public static final short MAX_FRAME_SIZE = 20480;
// 
//     public static final int PASSWORD_MIN_LENGTH = 4;
// 
//     public static final int SOCKS5_PORT = 1080;
// 
//     public static final int TCP_CONNECT_TIMEOUT_MS = 4000;
// 
//     public static final String UPDATE_API_URL = "https://github.com/dragonite-network/dragonite-java/raw/master/VERSIONS";
// 
//     public static final String UPDATE_API_PRODUCT_NAME = "proxy";
// 
// }


// Path: dragonite-proxy/src/main/java/com/vecsight/dragonite/proxy/network/socks5/SOCKS5Header.java
import com.vecsight.dragonite.proxy.misc.ProxyGlobalConstants;
import java.util.Arrays;

    }

    public byte[] getAddr() {
        return addr;
    }

    public void setAddr(final byte[] addr) {
        this.addr = addr;
    }

    public int getPort() {
        return port;
    }

    public void setPort(final int port) {
        this.port = port;
    }

    public boolean isUdp() {
        return udp;
    }

    public void setUdp(final boolean udp) {
        this.udp = udp;
    }

    @Override
    public String toString() {
        return "SOCKS5Header{" +
                "isDomain=" + isDomain +
                ", addr=" + (isDomain ? new String(addr, ProxyGlobalConstants.HEADER_ADDRESS_CHARSET) : Arrays.toString(addr)) +