#!/usr/bin/env python3
# SPDX-License-Identifier: WTFPL

import argparse
import sys
import zlib


BUFSIZE = 1 << 12


def main():
    argparser = argparse.ArgumentParser()
    argparser.add_argument("--wbits", default=0, type=int)
    argparser.add_argument("file", default="-", nargs="?")
    args = argparser.parse_args()

    if args.file == "-":
        fp = sys.stdin.buffer
    else:
        fp = open(args.file, "rb")

    z = zlib.decompressobj(args.wbits)

    while True:
        indata = fp.read(BUFSIZE)
        if not indata:
            break

        while indata:
            out = z.decompress(indata)
            sys.stdout.buffer.write(out)
            indata = z.unconsumed_tail

    out = z.flush()
    sys.stdout.buffer.write(out)


if __name__ == "__main__":
    main()
