// 
// Decompiled by Procyon v0.6.0
// 

package com.nimbusds.jose.util;

import java.io.InputStream;
import java.util.zip.InflaterInputStream;
import java.io.ByteArrayInputStream;
import java.util.zip.Inflater;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Deflater;
import java.io.ByteArrayOutputStream;

public class DeflateUtils
{
    private static final boolean NOWRAP = true;
    
    public static byte[] compress(final byte[] bytes) throws IOException {
        final ByteArrayOutputStream out = new ByteArrayOutputStream();
        Deflater deflater = null;
        DeflaterOutputStream def = null;
        try {
            deflater = new Deflater(8, true);
            def = new DeflaterOutputStream(out, deflater);
            def.write(bytes);
        }
        finally {
            if (def != null) {
                def.close();
            }
            if (deflater != null) {
                deflater.end();
            }
        }
        return out.toByteArray();
    }
    
    public static byte[] decompress(final byte[] bytes) throws IOException {
        Inflater inflater = null;
        InflaterInputStream inf = null;
        try {
            inflater = new Inflater(true);
            inf = new InflaterInputStream(new ByteArrayInputStream(bytes), inflater);
            final ByteArrayOutputStream out = new ByteArrayOutputStream();
            final byte[] buf = new byte[1024];
            int len;
            while ((len = inf.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            return out.toByteArray();
        }
        finally {
            if (inf != null) {
                inf.close();
            }
            if (inflater != null) {
                inflater.end();
            }
        }
    }
    
    private DeflateUtils() {
    }
}
