<?xml version="1.0" encoding="utf-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>

        <!-- JpegOptim parameters -->

        <parameter key="liip_imagine.jpegoptim.binary">/usr/bin/jpegoptim</parameter>
        <parameter key="liip_imagine.jpegoptim.stripAll">true</parameter>
        <parameter key="liip_imagine.jpegoptim.max">null</parameter>
        <parameter key="liip_imagine.jpegoptim.progressive">true</parameter>
        <parameter key="liip_imagine.jpegoptim.tempDir">null</parameter>

        <!-- OptiPng parameters -->

        <parameter key="liip_imagine.optipng.binary">/usr/bin/optipng</parameter>
        <parameter key="liip_imagine.optipng.level">7</parameter>
        <parameter key="liip_imagine.optipng.stripAll">true</parameter>
        <parameter key="liip_imagine.optipng.tempDir">null</parameter>

        <!-- Pngquant parameters -->

        <parameter key="liip_imagine.pngquant.binary">/usr/bin/pngquant</parameter>

        <!-- MozJpeg parameters -->

        <parameter key="liip_imagine.mozjpeg.binary">/opt/mozjpeg/bin/cjpeg</parameter>

        <!-- cwebp parameters -->

        <parameter key="liip_imagine.cwebp.binary">/usr/bin/cwebp</parameter>
        <parameter key="liip_imagine.cwebp.tempDir">null</parameter>
        <parameter key="liip_imagine.cwebp.q">75</parameter>
        <parameter key="liip_imagine.cwebp.alphaQ">100</parameter>
        <parameter key="liip_imagine.cwebp.m">4</parameter>
        <parameter key="liip_imagine.cwebp.alphaFilter">fast</parameter>
        <parameter key="liip_imagine.cwebp.alphaMethod">1</parameter>
        <parameter key="liip_imagine.cwebp.exact">false</parameter>
        <parameter key="liip_imagine.cwebp.metadata" type="collection">
            <parameter>none</parameter>
        </parameter>

    </parameters>

    <services>

        <!-- Factory services -->
        <service id="liip_imagine.factory.config.filter.argument.point" class="Liip\ImagineBundle\Factory\Config\Filter\Argument\PointFactory"/>
        <service id="liip_imagine.factory.config.filter.argument.size" class="Liip\ImagineBundle\Factory\Config\Filter\Argument\SizeFactory"/>

        <service id="liip_imagine.factory.config.stack" class="Liip\ImagineBundle\Factory\Config\StackFactory" />
        <service id="liip_imagine.factory.config.filter.auto_rotate" class="Liip\ImagineBundle\Factory\Config\Filter\AutoRotateFactory" />
        <service id="liip_imagine.factory.config.filter.background" class="Liip\ImagineBundle\Factory\Config\Filter\BackgroundFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
        </service>
        <service id="liip_imagine.factory.config.filter.crop" class="Liip\ImagineBundle\Factory\Config\Filter\CropFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
            <argument type="service" id="liip_imagine.factory.config.filter.argument.point"/>
        </service>
        <service id="liip_imagine.factory.config.filter.downscale" class="Liip\ImagineBundle\Factory\Config\Filter\DownscaleFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
        </service>
        <service id="liip_imagine.factory.config.filter.flip" class="Liip\ImagineBundle\Factory\Config\Filter\FlipFactory" />
        <service id="liip_imagine.factory.config.filter.grayscale" class="Liip\ImagineBundle\Factory\Config\Filter\GrayscaleFactory" />
        <service id="liip_imagine.factory.config.filter.interlace" class="Liip\ImagineBundle\Factory\Config\Filter\InterlaceFactory" />
        <service id="liip_imagine.factory.config.filter.paste" class="Liip\ImagineBundle\Factory\Config\Filter\PasteFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.point"/>
        </service>
        <service id="liip_imagine.factory.config.filter.relative_resize" class="Liip\ImagineBundle\Factory\Config\Filter\RelativeResizeFactory" />
        <service id="liip_imagine.factory.config.filter.resize" class="Liip\ImagineBundle\Factory\Config\Filter\ResizeFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
        </service>
        <service id="liip_imagine.factory.config.filter.rotate" class="Liip\ImagineBundle\Factory\Config\Filter\RotateFactory" />
        <service id="liip_imagine.factory.config.filter.scale" class="Liip\ImagineBundle\Factory\Config\Filter\ScaleFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
        </service>
        <service id="liip_imagine.factory.config.filter.strip" class="Liip\ImagineBundle\Factory\Config\Filter\StripFactory" />
        <service id="liip_imagine.factory.config.filter.thumbnail" class="Liip\ImagineBundle\Factory\Config\Filter\ThumbnailFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
        </service>
        <service id="liip_imagine.factory.config.filter.upscale" class="Liip\ImagineBundle\Factory\Config\Filter\UpscaleFactory">
            <argument type="service" id="liip_imagine.factory.config.filter.argument.size"/>
        </service>
        <service id="liip_imagine.factory.config.filter.watermark" class="Liip\ImagineBundle\Factory\Config\Filter\WatermarkFactory" />

        <!-- Config services -->
        <service id="liip_imagine.config.filter_factory_collection" class="Liip\ImagineBundle\Config\FilterFactoryCollection">
            <argument type="service" id="liip_imagine.factory.config.filter.auto_rotate"/>
            <argument type="service" id="liip_imagine.factory.config.filter.background"/>
            <argument type="service" id="liip_imagine.factory.config.filter.crop"/>
            <argument type="service" id="liip_imagine.factory.config.filter.downscale"/>
            <argument type="service" id="liip_imagine.factory.config.filter.flip"/>
            <argument type="service" id="liip_imagine.factory.config.filter.grayscale"/>
            <argument type="service" id="liip_imagine.factory.config.filter.interlace"/>
            <argument type="service" id="liip_imagine.factory.config.filter.paste"/>
            <argument type="service" id="liip_imagine.factory.config.filter.relative_resize"/>
            <argument type="service" id="liip_imagine.factory.config.filter.resize"/>
            <argument type="service" id="liip_imagine.factory.config.filter.rotate"/>
            <argument type="service" id="liip_imagine.factory.config.filter.scale"/>
            <argument type="service" id="liip_imagine.factory.config.filter.strip"/>
            <argument type="service" id="liip_imagine.factory.config.filter.thumbnail"/>
            <argument type="service" id="liip_imagine.factory.config.filter.upscale"/>
            <argument type="service" id="liip_imagine.factory.config.filter.watermark"/>
        </service>
        <service id="Liip\ImagineBundle\Config\FilterFactoryCollection" alias="liip_imagine.config.filter_factory_collection"/>

        <service id="liip_imagine.config.stack_builder" class="Liip\ImagineBundle\Config\StackBuilder">
            <argument type="service" id="liip_imagine.factory.config.stack" />
            <argument type="service" id="liip_imagine.config.filter_factory_collection" />
        </service>
        <service id="Liip\ImagineBundle\Config\StackBuilder" alias="liip_imagine.config.stack_builder"/>

        <service id="liip_imagine.config.stack_collection" class="Liip\ImagineBundle\Config\StackCollection" public="true">
            <argument type="service" id="liip_imagine.config.stack_builder" />
            <argument>%liip_imagine.filter_sets%</argument>
        </service>
        <service id="Liip\ImagineBundle\Config\StackCollection" alias="liip_imagine.config.stack_collection"/>

        <!-- Utility services -->

        <service id="liip_imagine.filter.manager" class="Liip\ImagineBundle\Imagine\Filter\FilterManager" public="true">
            <argument type="service" id="liip_imagine.filter.configuration" />
            <argument type="service" id="liip_imagine" />
            <argument type="service" id="liip_imagine.binary.mime_type_guesser" />
        </service>

        <service id="liip_imagine.data.manager" class="Liip\ImagineBundle\Imagine\Data\DataManager" public="true">
            <argument type="service" id="liip_imagine.binary.mime_type_guesser" />
            <argument type="service" id="liip_imagine.extension_guesser" />
            <argument type="service" id="liip_imagine.filter.configuration" />
            <argument>%liip_imagine.binary.loader.default%</argument>
            <argument>%liip_imagine.default_image%</argument>
        </service>

        <service id="liip_imagine.cache.manager" class="Liip\ImagineBundle\Imagine\Cache\CacheManager" public="true">
            <argument type="service" id="liip_imagine.filter.configuration" />
            <argument type="service" id="router" />
            <argument type="service" id="liip_imagine.cache.signer" />
            <argument type="service" id="event_dispatcher" />
            <argument>%liip_imagine.cache.resolver.default%</argument>
            <argument>%liip_imagine.webp.generate%</argument>
        </service>

        <service id="liip_imagine.filter.configuration" class="Liip\ImagineBundle\Imagine\Filter\FilterConfiguration">
            <argument>%liip_imagine.filter_sets%</argument>
        </service>

        <service id="liip_imagine.service.filter" class="Liip\ImagineBundle\Service\FilterService">
            <argument type="service" id="liip_imagine.data.manager" />
            <argument type="service" id="liip_imagine.filter.manager" />
            <argument type="service" id="liip_imagine.cache.manager" />
            <argument>%liip_imagine.webp.generate%</argument>
            <argument>%liip_imagine.webp.options%</argument>
            <argument type="service" id="logger" on-invalid="ignore" />
        </service>

        <!-- Config -->

        <service id="liip_imagine.controller.config" class="Liip\ImagineBundle\Config\Controller\ControllerConfig" public="false">
            <argument><!-- will be injected by LiipImagineExtension --></argument>
        </service>

        <!-- Controller -->

        <service id="Liip\ImagineBundle\Controller\ImagineController" public="true">
            <argument type="service" id="liip_imagine.service.filter" />
            <argument type="service" id="liip_imagine.data.manager" />
            <argument type="service" id="liip_imagine.cache.signer" />
            <argument type="service" id="liip_imagine.controller.config" />
        </service>

        <service id="liip_imagine.controller" alias="Liip\ImagineBundle\Controller\ImagineController" public="true" />

        <service id="liip_imagine.meta_data.reader" class="Imagine\Image\Metadata\ExifMetadataReader" public="false" />

        <!-- ImagineInterface instances -->

        <service id="liip_imagine" alias="liip_imagine.gd" />

        <service id="liip_imagine.gd" class="Imagine\Gd\Imagine" public="false">
            <call method="setMetadataReader">
                <argument type="service" id="liip_imagine.meta_data.reader" />
            </call>
        </service>

        <service id="liip_imagine.imagick" class="Imagine\Imagick\Imagine" public="false">
            <call method="setMetadataReader">
                <argument type="service" id="liip_imagine.meta_data.reader" />
            </call>
        </service>

        <service id="liip_imagine.gmagick" class="Imagine\Gmagick\Imagine" public="false">
            <call method="setMetadataReader">
                <argument type="service" id="liip_imagine.meta_data.reader" />
            </call>
        </service>

        <!-- Filter loaders -->

        <service id="liip_imagine.filter.loader.relative_resize" class="Liip\ImagineBundle\Imagine\Filter\Loader\RelativeResizeFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="relative_resize" />
        </service>

        <service id="liip_imagine.filter.loader.resize" class="Liip\ImagineBundle\Imagine\Filter\Loader\ResizeFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="resize" />
        </service>

        <service id="liip_imagine.filter.loader.thumbnail" class="Liip\ImagineBundle\Imagine\Filter\Loader\ThumbnailFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="thumbnail" />
        </service>

        <service id="liip_imagine.filter.loader.crop" class="Liip\ImagineBundle\Imagine\Filter\Loader\CropFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="crop" />
        </service>

        <service id="liip_imagine.filter.loader.grayscale" class="Liip\ImagineBundle\Imagine\Filter\Loader\GrayscaleFilterLoader" public="true">
            <tag name="liip_imagine.filter.loader" loader="grayscale" />
        </service>

        <service id="liip_imagine.filter.loader.paste_image" class="Liip\ImagineBundle\Imagine\Filter\Loader\PasteFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="paste_image" />
            <argument type="service" id="liip_imagine" />
            <argument>%kernel.project_dir%</argument>
        </service>

        <!-- deprecated -->
        <!-- not officially deprecated because they are still injected and appear "used" -->
        <service id="liip_imagine.filter.loader.paste" class="Liip\ImagineBundle\Imagine\Filter\Loader\PasteFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="paste" />
            <argument type="service" id="liip_imagine" />
            <argument>%kernel.root_dir%</argument>
        </service>
        <service id="liip_imagine.filter.loader.watermark" class="Liip\ImagineBundle\Imagine\Filter\Loader\WatermarkFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="watermark" />
            <argument type="service" id="liip_imagine" />
            <argument>%kernel.root_dir%</argument>
        </service>
        <!-- end deprecated -->

        <service id="liip_imagine.filter.loader.watermark_image" class="Liip\ImagineBundle\Imagine\Filter\Loader\WatermarkFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="watermark_image" />
            <argument type="service" id="liip_imagine" />
            <argument>%kernel.project_dir%</argument>
        </service>

        <service id="liip_imagine.filter.loader.background" class="Liip\ImagineBundle\Imagine\Filter\Loader\BackgroundFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="background" />
            <argument type="service" id="liip_imagine" />
        </service>

        <service id="liip_imagine.filter.loader.strip" class="Liip\ImagineBundle\Imagine\Filter\Loader\StripFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="strip" />
        </service>

        <service id="liip_imagine.filter.loader.scale" class="Liip\ImagineBundle\Imagine\Filter\Loader\ScaleFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="scale" />
        </service>

        <service id="liip_imagine.filter.loader.upscale" class="Liip\ImagineBundle\Imagine\Filter\Loader\UpscaleFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="upscale" />
        </service>

        <service id="liip_imagine.filter.loader.downscale" class="Liip\ImagineBundle\Imagine\Filter\Loader\DownscaleFilterLoader" public="true">
            <tag name="liip_imagine.filter.loader" loader="downscale" />
        </service>

        <service id="liip_imagine.filter.loader.auto_rotate" class="Liip\ImagineBundle\Imagine\Filter\Loader\AutoRotateFilterLoader">
            <tag name="liip_imagine.filter.loader" loader="auto_rotate" />
        </service>

        <service id="liip_imagine.filter.loader.rotate" class="Liip\ImagineBundle\Imagine\Filter\Loader\RotateFilterLoader" public="true">
            <tag name="liip_imagine.filter.loader" loader="rotate" />
        </service>

        <service id="liip_imagine.filter.loader.flip" class="Liip\ImagineBundle\Imagine\Filter\Loader\FlipFilterLoader" public="true">
            <tag name="liip_imagine.filter.loader" loader="flip" />
        </service>

        <service id="liip_imagine.filter.loader.interlace" class="Liip\ImagineBundle\Imagine\Filter\Loader\InterlaceFilterLoader" public="true">
            <tag name="liip_imagine.filter.loader" loader="interlace" />
        </service>

        <service id="liip_imagine.filter.loader.resample" class="Liip\ImagineBundle\Imagine\Filter\Loader\ResampleFilterLoader" public="true">
            <argument type="service" id="liip_imagine" />
            <tag name="liip_imagine.filter.loader" loader="resample" />
        </service>

        <service id="liip_imagine.filter.loader.fixed" class="Liip\ImagineBundle\Imagine\Filter\Loader\FixedFilterLoader" public="true">
            <tag name="liip_imagine.filter.loader" loader="fixed" />
        </service>

        <!-- Data loaders -->

        <service id="liip_imagine.binary.loader.prototype.filesystem" class="Liip\ImagineBundle\Binary\Loader\FileSystemLoader">
            <argument type="service" id="liip_imagine.mime_type_guesser" />
            <argument type="service" id="liip_imagine.extension_guesser" />
            <argument><!-- will be injected by FileSystemLoaderFactory --></argument>
        </service>

        <service id="liip_imagine.binary.loader.prototype.stream" class="Liip\ImagineBundle\Binary\Loader\StreamLoader">
            <argument><!-- will be injected by StreamLoaderFactory --></argument>
            <argument><!-- will be injected by StreamLoaderFactory --></argument>
        </service>

        <service id="liip_imagine.binary.loader.prototype.flysystem" class="Liip\ImagineBundle\Binary\Loader\FlysystemLoader" abstract="true">
            <argument type="service" id="liip_imagine.extension_guesser" />
            <argument><!-- will be injected by FlysystemLoaderFactory --></argument>
        </service>

        <service id="liip_imagine.binary.loader.prototype.flysystem2" class="Liip\ImagineBundle\Binary\Loader\FlysystemV2Loader" abstract="true">
            <argument type="service" id="liip_imagine.extension_guesser" />
            <argument><!-- will be injected by FlysystemV2LoaderFactory --></argument>
        </service>

        <service id="liip_imagine.binary.loader.prototype.chain" class="Liip\ImagineBundle\Binary\Loader\ChainLoader" abstract="true">
            <argument><!-- will be injected by ChainLoaderFactory --></argument>
        </service>

        <!-- Data loader locators -->

        <service id="liip_imagine.binary.locator.filesystem" class="Liip\ImagineBundle\Binary\Locator\FileSystemLocator" public="false" shared="false">
            <argument><!-- will be injected by FilesystemLoaderFactory --></argument>
            <argument><!-- will be injected by FilesystemLoaderFactory --></argument>
            <tag name="liip_imagine.binary.locator" shared="false" />
        </service>

        <service id="liip_imagine.binary.locator.filesystem_insecure" class="Liip\ImagineBundle\Binary\Locator\FileSystemInsecureLocator" public="false" shared="false">
            <argument><!-- will be injected by FilesystemLoaderFactory --></argument>
            <argument><!-- will be injected by FilesystemLoaderFactory --></argument>
            <tag name="liip_imagine.binary.locator" shared="false" />
        </service>

        <!-- Cache resolver -->

        <service id="liip_imagine.cache.resolver.prototype.web_path" class="Liip\ImagineBundle\Imagine\Cache\Resolver\WebPathResolver" public="true" abstract="true">
            <argument type="service" id="filesystem" />
            <argument type="service" id="router.request_context" />
            <argument><!-- will be injected by WebPathResolverFactory --></argument>
            <argument><!-- will be injected by WebPathResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.prototype.aws_s3" class="Liip\ImagineBundle\Imagine\Cache\Resolver\AwsS3Resolver" public="true" abstract="true">
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.prototype.cache" class="Liip\ImagineBundle\Imagine\Cache\Resolver\CacheResolver" public="true" abstract="true">
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument><!-- will be injected by a ResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.prototype.flysystem" class="Liip\ImagineBundle\Imagine\Cache\Resolver\FlysystemResolver" public="true" abstract="true">
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument type="service" id="router.request_context" />
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument><!-- will be injected by a ResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.prototype.flysystem2" class="Liip\ImagineBundle\Imagine\Cache\Resolver\FlysystemV2Resolver" public="true" abstract="true">
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument type="service" id="router.request_context" />
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument><!-- will be injected by a ResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.prototype.proxy" class="Liip\ImagineBundle\Imagine\Cache\Resolver\ProxyResolver" public="true" abstract="true">
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
            <argument><!-- will be injected by AwsS3ResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.prototype.psr_cache" class="Liip\ImagineBundle\Imagine\Cache\Resolver\PsrCacheResolver" public="true" abstract="true">
            <argument><!-- will be injected by a ResolverFactory --></argument>
            <argument><!-- will be injected by a ResolverFactory --></argument>
        </service>

        <service id="liip_imagine.cache.resolver.no_cache_web_path" class="Liip\ImagineBundle\Imagine\Cache\Resolver\NoCacheWebPathResolver" public="true">
            <argument type="service" id="router.request_context" />
            <tag name="liip_imagine.cache.resolver" resolver="no_cache" />
        </service>

        <!-- Form types -->

        <service id="liip_imagine.form.type.image" class="Liip\ImagineBundle\Form\Type\ImageType">
            <tag name="form.type" alias="liip_imagine_image" />
        </service>

        <!-- Guessers -->

        <service id="liip_imagine.mime_type_guesser" class="Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface">
            <factory class="Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser" method="getInstance" />
        </service>

        <service id="liip_imagine.extension_guesser" class="Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface">
            <factory class="Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesser" method="getInstance" />
        </service>

        <service id="liip_imagine.binary.mime_type_guesser" class="Liip\ImagineBundle\Binary\SimpleMimeTypeGuesser">
            <argument type="service" id="liip_imagine.mime_type_guesser" />
        </service>

        <service id="liip_imagine.cache.signer" class="Liip\ImagineBundle\Imagine\Cache\Signer" public="true">
            <argument>%kernel.secret%</argument>
        </service>

        <!-- Post processors -->

        <service id="liip_imagine.filter.post_processor.jpegoptim" class="Liip\ImagineBundle\Imagine\Filter\PostProcessor\JpegOptimPostProcessor">
            <argument>%liip_imagine.jpegoptim.binary%</argument>
            <argument>%liip_imagine.jpegoptim.stripAll%</argument>
            <argument>%liip_imagine.jpegoptim.max%</argument>
            <argument>%liip_imagine.jpegoptim.progressive%</argument>
            <argument>%liip_imagine.jpegoptim.tempDir%</argument>
            <tag name="liip_imagine.filter.post_processor" post_processor="jpegoptim" />
        </service>

        <service id="liip_imagine.filter.post_processor.optipng" class="Liip\ImagineBundle\Imagine\Filter\PostProcessor\OptiPngPostProcessor">
            <argument>%liip_imagine.optipng.binary%</argument>
            <argument>%liip_imagine.optipng.level%</argument>
            <argument>%liip_imagine.optipng.stripAll%</argument>
            <argument>%liip_imagine.optipng.tempDir%</argument>
            <tag name="liip_imagine.filter.post_processor" post_processor="optipng" />
        </service>

        <service id="liip_imagine.filter.post_processor.pngquant" class="Liip\ImagineBundle\Imagine\Filter\PostProcessor\PngquantPostProcessor">
            <argument>%liip_imagine.pngquant.binary%</argument>
            <tag name="liip_imagine.filter.post_processor" post_processor="pngquant" />
        </service>

        <service id="liip_imagine.filter.post_processor.mozjpeg" class="Liip\ImagineBundle\Imagine\Filter\PostProcessor\MozJpegPostProcessor">
            <argument>%liip_imagine.mozjpeg.binary%</argument>
            <tag name="liip_imagine.filter.post_processor" post_processor="mozjpeg" />
        </service>

        <service id="liip_imagine.filter.post_processor.cwebp" class="Liip\ImagineBundle\Imagine\Filter\PostProcessor\CwebpPostProcessor">
            <argument>%liip_imagine.cwebp.binary%</argument>
            <argument>%liip_imagine.cwebp.tempDir%</argument>
            <argument>%liip_imagine.cwebp.q%</argument>
            <argument>%liip_imagine.cwebp.alphaQ%</argument>
            <argument>%liip_imagine.cwebp.m%</argument>
            <argument>%liip_imagine.cwebp.alphaFilter%</argument>
            <argument>%liip_imagine.cwebp.alphaMethod%</argument>
            <argument>%liip_imagine.cwebp.exact%</argument>
            <argument>%liip_imagine.cwebp.metadata%</argument>
            <tag name="liip_imagine.filter.post_processor" post_processor="cwebp" />
        </service>

    </services>
</container>
