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

export const IconFingerprint24 = 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}
                <path
                    fill={color}
                    fillRule="evenodd"
                    d="M15.794 12.06a.75.75 0 0 1 .898-.565.75.75 0 0 1 .565.898c-.72 3.168-1.617 5.72-2.967 8.15-.407.735-.847 1.44-1.317 2.13-.233.34-.7.43-1.042.198a.754.754 0 0 1-.197-1.043c.447-.655.863-1.323 1.246-2.013 1.263-2.274 2.116-4.685 2.814-7.755m-5.204 6.428a.75.75 0 0 1 1.02-.292.75.75 0 0 1 .292 1.02 27 27 0 0 1-1.982 3.028.753.753 0 0 1-1.05.152.753.753 0 0 1-.15-1.05 25 25 0 0 0 1.87-2.858m6.312-.61a.75.75 0 0 1 .971-.426.75.75 0 0 1 .426.972 28 28 0 0 1-1.619 3.447.75.75 0 0 1-1.02.291.753.753 0 0 1-.291-1.02 27 27 0 0 0 1.533-3.264m-6.848-5.394a.75.75 0 0 1 .923-.523c.399.11.633.524.523.923-.543 1.971-1.175 3.543-1.988 5.006-.609 1.096-1.325 2.142-2.193 3.258a.753.753 0 0 1-1.053.131.75.75 0 0 1-.13-1.052c.833-1.072 1.502-2.054 2.065-3.066.746-1.344 1.336-2.802 1.853-4.677m-4.243 3.35a.753.753 0 0 1 1.02-.292.75.75 0 0 1 .291 1.02c-.535.964-1.178 1.905-2.002 2.961a.753.753 0 0 1-1.053.13.753.753 0 0 1-.13-1.052c.79-1.013 1.386-1.89 1.874-2.767m14.766-9.73a.75.75 0 0 1 1.016.3 10.3 10.3 0 0 1 1.001 7.237c-.396 1.74-.856 3.372-1.428 4.94a.753.753 0 0 1-.962.448.753.753 0 0 1-.447-.962c.546-1.496.99-3.067 1.374-4.76a8.8 8.8 0 0 0-.855-6.186.753.753 0 0 1 .3-1.018m-9.46 3.635a2.118 2.118 0 0 1 3.475 2.048c-.46 2.023-.984 3.73-1.646 5.29a.753.753 0 0 1-.984.398.753.753 0 0 1-.397-.984c.618-1.457 1.119-3.076 1.564-5.037a.618.618 0 0 0-1.013-.596.753.753 0 0 1-1.059-.06.75.75 0 0 1 .06-1.059m.4-5.94a.75.75 0 0 1 .843.644.75.75 0 0 1-.644.843 6.09 6.09 0 0 0-5.12 4.683c-.557 2.45-1.143 3.968-1.863 5.265-.323.58-.699 1.167-1.165 1.809a.753.753 0 0 1-1.048.166.753.753 0 0 1-.166-1.048c.436-.6.779-1.135 1.067-1.654.634-1.142 1.177-2.52 1.712-4.871A7.59 7.59 0 0 1 11.516 3.8m1.794.69a.753.753 0 0 1 .898-.566 7.585 7.585 0 0 1 5.713 9.076 45 45 0 0 1-.677 2.629.753.753 0 0 1-.93.51.754.754 0 0 1-.51-.931 44 44 0 0 0 .654-2.541 6.084 6.084 0 0 0-4.583-7.28.753.753 0 0 1-.565-.898m-5.513 5.753a4.852 4.852 0 0 1 9.303-.542.753.753 0 0 1-.457.958.753.753 0 0 1-.957-.457 3.35 3.35 0 0 0-6.426.374 29 29 0 0 1-.865 3.098.75.75 0 0 1-.953.463.753.753 0 0 1-.464-.954c.328-.95.59-1.934.82-2.94m-4.38-3.838a.75.75 0 0 1 1.017-.302.75.75 0 0 1 .3 1.018 8.9 8.9 0 0 0-.852 2.266c-.488 2.147-.963 3.315-1.478 4.244a.75.75 0 0 1-1.02.292.753.753 0 0 1-.292-1.02c.43-.773.861-1.8 1.327-3.848a10.4 10.4 0 0 1 .997-2.65m1.388-1.966A10.35 10.35 0 0 1 14.8 1.261a10.3 10.3 0 0 1 5.407 3.178.75.75 0 0 1-.057 1.059.753.753 0 0 1-1.06-.058 8.846 8.846 0 0 0-13.169.001.753.753 0 0 1-1.058.057.753.753 0 0 1-.057-1.06"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
