import { forwardRef, useMemo } from 'react';
import { IconProps } from './types';

export const IconSnyk24 = forwardRef<SVGSVGElement, IconProps>(
    ({ color = 'currentColor', title, ...props }, svgRef) => {
        const titleId = useMemo(
            () =>
                title
                    ? 'title-' + Math.random().toString(36).substr(2, 9)
                    : undefined,
            [title]
        );
        return (
            <svg
                xmlns="http://www.w3.org/2000/svg"
                width={24}
                height={24}
                fill="none"
                viewBox="0 0 24 24"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <g fill={color}>
                    <path
                        fillRule="evenodd"
                        d="M16.11 9.49c.239 2.176.309 3.663.187 3.977-.108.28-.535.877-.896 1.355l.523 4.875L12 22.535 8.992 20.36l.328-3.057c-.178-.673-.222-1.407-.232-1.76l-.486 4.535-.52-.376.522-4.87c-.362-.48-.795-1.084-.904-1.366-.121-.315-.051-1.801.187-3.978l.003-.033-.762-2.07v-.041c0-.903 1.159-3.32 1.844-4.604l.334-.628.708 4.982.426.704.105-.036c.36-.122.902-.267 1.45-.267.579 0 1.161.168 1.457.268l.106.035.425-.704.708-4.982.334.628c.686 1.285 1.845 3.7 1.845 4.604v.042l-.763 2.07.004.032zm.158-2.206c-.042-.594-.655-2.017-1.24-3.215l-.144 1.01c.021.166.269 1.979 1.056 3.095l.328-.89zm-2.072 4.096c.062-.069.592-.674-.116-.674-.64 0-1.101.52-1.223.674h1.34zm-.645.705a.15.15 0 00.147-.13.153.153 0 00-.043-.129.025.025 0 00.003-.003.038.038 0 01.003-.002h-.43v.02c0 .312.25.564.558.564a.561.561 0 00.56-.563v-.021h-.426c.08.05.127.144.113.244a.247.247 0 01-.279.213.247.247 0 01-.206-.193zm-.964 6.575a1.312 1.312 0 01-.258-.133.478.478 0 01-.33.096.48.48 0 01-.33-.097 1.306 1.306 0 01-.258.133c.141.163.336.245.588.245.252 0 .446-.082.588-.244zM9.97 12.085a.151.151 0 00.103-.259c.002 0 .003-.002.004-.003l.003-.002h-.43v.02c0 .312.25.564.558.564.309 0 .56-.252.56-.563v-.021h-.426a.25.25 0 01-.166.457.247.247 0 01-.206-.193zm-.052-1.379c-.708 0-.179.605-.116.674h1.339c-.123-.154-.583-.674-1.223-.674zm-.94-6.637c-.584 1.198-1.198 2.62-1.24 3.215l.336.911c.73-1.013 1.001-2.62 1.06-3.03L8.98 4.069zm.572 11.304c0 .051.003 1.265.317 2.133.254.7.82.775 1.053.775.6 0 .844-.55.855-.573v-.28l-.004-.002s.01-.235-.023-.313c-.06-.14-.191-.107-.293.075l-.006.013a.115.115 0 01-.005.012c-.287-.21-.578-.47-.578-.67 0-.183.228-.505.237-.518l-.155-2.942-.987 1.135-.63.186c-.404-.532-.771-1.053-.845-1.223-.052-.245.038-1.852.241-3.687l.016-.143-.109-.296c.3-.345.566-.784.793-1.312l.672 1.112.482-.208c.007-.004.73-.31 1.414-.31H12v-.374h-.003c-.77 0-1.548.335-1.562.34l-.185.08-.68-1.127-.1-.699-.189.54c-.272.777-.613 1.386-1.014 1.809l-.06.064.158.427-.006.056c-.143 1.29-.33 3.474-.226 3.84l.004.012c.117.304.898 1.34 1.362 1.92l.052.065v.083zm1.297 3.373c.065.591.715.81 1.16.81.438 0 1.08-.219 1.143-.81l-.072.003c-.051 0-.102-.004-.151-.009-.199.386-.56.51-.928.51-.369 0-.732-.123-.93-.51a1.434 1.434 0 01-.149.009l-.057-.002-.016-.001zm3.6-3.456l.052-.064c.16-.2.355-.451.55-.71l-1.012-.298-.987-1.135-.155 2.942c.01.014.237.335.237.519 0 .2-.292.46-.58.669a.177.177 0 01-.003-.011l-.007-.015c-.101-.18-.232-.214-.292-.075-.034.08-.023.314-.023.314l-.005.003v.269c.017.036.264.583.856.583.232 0 .799-.075 1.052-.775.314-.867.318-2.082.318-2.133v-.083z"
                        clipRule="evenodd"
                    />
                    <path d="M11.995 7.121c-.513 0-1.015.115-1.391.23l-.233-.385-.155-1.094c.554-.038 1.152-.06 1.792-.06.688 0 1.774.058 1.774.058l-.155 1.096-.234.386a4.922 4.922 0 00-1.398-.23zM17.241 7.345c0-.266-.08-.626-.208-1.03.992.216 1.525.42 1.525.42v11.057l-2.244 1.622-.487-4.54c.45-.606.725-1.034.816-1.271.186-.48.019-2.482-.157-4.1l.755-2.05v-.108zM7.354 13.602c-.185-.48-.018-2.48.158-4.099l-.755-2.049v-.109c0-.266.08-.625.207-1.028-.992.216-1.525.418-1.525.418v11.058l2.253 1.628.486-4.536c-.453-.611-.732-1.043-.824-1.283z" />
                </g>
            </svg>
        );
    }
);
