<?xml version="1.0"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
  -->
<antlib>
  <taskdef
     name="un7z"
     classname="org.apache.ant.compress.taskdefs.Un7z"
     />
  <taskdef
     name="unar"
     classname="org.apache.ant.compress.taskdefs.Unar"
     />
  <taskdef
     name="unarj"
     classname="org.apache.ant.compress.taskdefs.Unarj"
     />
  <taskdef
     name="unbrotli"
     classname="org.apache.ant.compress.taskdefs.UnBrotli"
     />
  <taskdef
     name="uncpio"
     classname="org.apache.ant.compress.taskdefs.Uncpio"
     />
  <taskdef
     name="undeflate"
     classname="org.apache.ant.compress.taskdefs.Undeflate"
     />
  <taskdef
     name="undeflate64"
     classname="org.apache.ant.compress.taskdefs.Undeflate64"
     />
  <taskdef
     name="undump"
     classname="org.apache.ant.compress.taskdefs.Undump"
     />
  <taskdef
     name="untar"
     classname="org.apache.ant.compress.taskdefs.Untar"
     />
  <taskdef
     name="unzip"
     classname="org.apache.ant.compress.taskdefs.Unzip"
     />
  <taskdef
     name="ar"
     classname="org.apache.ant.compress.taskdefs.Ar"
     />
  <taskdef
     name="cpio"
     classname="org.apache.ant.compress.taskdefs.Cpio"
     />
  <taskdef
     name="tar"
     classname="org.apache.ant.compress.taskdefs.Tar"
     />
  <taskdef
     name="zip"
     classname="org.apache.ant.compress.taskdefs.Zip"
     />
  <taskdef
     name="bunzip2"
     classname="org.apache.ant.compress.taskdefs.BUnzip2"
     />
  <taskdef
     name="gunzip"
     classname="org.apache.ant.compress.taskdefs.GUnzip"
     />
  <taskdef
     name="unlz4"
     classname="org.apache.ant.compress.taskdefs.UnLZ4"
     />
  <taskdef
     name="unlzma"
     classname="org.apache.ant.compress.taskdefs.UnLZMA"
     />
  <taskdef
     name="unpack200"
     classname="org.apache.ant.compress.taskdefs.UnPack200"
     />
  <taskdef
     name="unsnappy"
     classname="org.apache.ant.compress.taskdefs.UnSnappy"
     />
  <taskdef
     name="unxz"
     classname="org.apache.ant.compress.taskdefs.UnXZ"
     />
  <taskdef
     name="unz"
     classname="org.apache.ant.compress.taskdefs.UnZ"
     />
  <taskdef
     name="bzip2"
     classname="org.apache.ant.compress.taskdefs.BZip2"
     />
  <taskdef
     name="deflate"
     classname="org.apache.ant.compress.taskdefs.Deflate"
     />
  <taskdef
     name="gzip"
     classname="org.apache.ant.compress.taskdefs.GZip"
     />
  <taskdef
     name="pack200"
     classname="org.apache.ant.compress.taskdefs.Pack200"
     />
  <taskdef
     name="pack200normalize"
     classname="org.apache.ant.compress.taskdefs.Pack200Normalize"
     />
  <taskdef
     name="sevenz"
     classname="org.apache.ant.compress.taskdefs.SevenZ"
     />
  <taskdef
     name="snappy"
     classname="org.apache.ant.compress.taskdefs.Snappy"
     />
  <taskdef
     name="xz"
     classname="org.apache.ant.compress.taskdefs.XZ"
     />
  <taskdef
     name="lz4"
     classname="org.apache.ant.compress.taskdefs.LZ4"
     />
  <taskdef
     name="lzma"
     classname="org.apache.ant.compress.taskdefs.LZMA"
     />

  <typedef
     name="arentry"
     classname="org.apache.ant.compress.resources.ArResource"
     />
  <typedef
     name="arjentry"
     classname="org.apache.ant.compress.resources.ArjResource"
     />
  <typedef
     name="cpioentry"
     classname="org.apache.ant.compress.resources.CpioResource"
     />
  <typedef
     name="dumpentry"
     classname="org.apache.ant.compress.resources.DumpResource"
     />
  <typedef
     name="sevenzentry"
     classname="org.apache.ant.compress.resources.SevenZResource"
     />
  <typedef
     name="tarentry"
     classname="org.apache.ant.compress.resources.TarResource"
     />
  <typedef
     name="zipentry"
     classname="org.apache.ant.compress.resources.ZipResource"
     />

  <typedef
     name="arfileset"
     classname="org.apache.ant.compress.resources.ArFileSet"
     />
  <typedef
     name="arjfileset"
     classname="org.apache.ant.compress.resources.ArjFileSet"
     />
  <typedef
     name="cpiofileset"
     classname="org.apache.ant.compress.resources.CpioFileSet"
     />
  <typedef
     name="dumpfileset"
     classname="org.apache.ant.compress.resources.DumpFileSet"
     />
  <typedef
     name="sevenzfileset"
     classname="org.apache.ant.compress.resources.SevenZFileSet"
     />
  <typedef
     name="tarfileset"
     classname="org.apache.ant.compress.resources.TarFileSet"
     />
  <typedef
     name="zipfileset"
     classname="org.apache.ant.compress.resources.ZipFileSet"
     />
  <typedef
     name="archives"
     classname="org.apache.ant.compress.resources.Archives"
     />
  <typedef
     name="brotliresource"
     classname="org.apache.ant.compress.resources.BrotliResource"
     />
  <typedef
     name="bzip2resource"
     classname="org.apache.ant.compress.resources.BZip2Resource"
     />
  <typedef
     name="deflateresource"
     classname="org.apache.ant.compress.resources.DeflateResource"
     />
  <typedef
     name="deflate64resource"
     classname="org.apache.ant.compress.resources.Deflate64Resource"
     />
  <typedef
     name="gzipresource"
     classname="org.apache.ant.compress.resources.GZipResource"
     />
  <typedef
     name="lz4resource"
     classname="org.apache.ant.compress.resources.LZ4Resource"
     />
  <typedef
     name="lzmaresource"
     classname="org.apache.ant.compress.resources.LZMAResource"
     />
  <typedef
     name="pack200resource"
     classname="org.apache.ant.compress.resources.Pack200Resource"
     />
  <typedef
     name="snappyresource"
     classname="org.apache.ant.compress.resources.SnappyResource"
     />
  <typedef
     name="xzresource"
     classname="org.apache.ant.compress.resources.XZResource"
     />
  <typedef
     name="zresource"
     classname="org.apache.ant.compress.resources.ZResource"
     />

  <componentdef
     name="hasusername"
     classname="org.apache.ant.compress.conditions.HasUserName"
     />
  <componentdef
     name="hasgroupname"
     classname="org.apache.ant.compress.conditions.HasGroupName"
     />
  <componentdef
     name="hasuserid"
     classname="org.apache.ant.compress.conditions.HasUserId"
     />
  <componentdef
     name="hasgroupid"
     classname="org.apache.ant.compress.conditions.HasGroupId"
     />
  <componentdef
     name="hasmode"
     classname="org.apache.ant.compress.conditions.HasMode"
     />

  <typedef
     name="devzero"
     classname="org.apache.ant.compress.resources.DevZeroResource"
     />
</antlib>
