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

export const IconPostgres16 = 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={16}
                height={16}
                fill="none"
                viewBox="0 0 16 16"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <g fill={color}>
                    <path d="M6.904 5.185c-.149-.02-.284-.001-.352.05a.13.13 0 00-.054.087c-.008.061.035.13.061.164.075.1.185.168.293.183a.334.334 0 00.047.003c.18 0 .345-.14.36-.245.017-.13-.172-.216-.355-.242zm4.942.004c-.014-.101-.195-.13-.367-.107-.172.024-.339.102-.325.204.011.08.155.215.324.215a.31.31 0 00.044-.003.419.419 0 00.236-.13c.06-.062.095-.133.088-.179z" />
                    <path d="M14.682 9.555c-.063-.191-.267-.253-.604-.183-1.002.207-1.361.064-1.479-.023a13.782 13.782 0 001.766-3.96c.163-.634.254-1.222.261-1.702.008-.527-.081-.914-.266-1.15-.746-.954-1.841-1.465-3.166-1.48-.912-.01-1.681.224-1.83.29a4.563 4.563 0 00-1.03-.133c-.684-.01-1.276.153-1.765.487a7.878 7.878 0 00-1.434-.376c-1.162-.187-2.085-.046-2.744.421-.786.557-1.149 1.553-1.079 2.959.024.473.294 1.929.719 3.323.56 1.835 1.169 2.873 1.81 3.087a.81.81 0 00.256.043c.234 0 .52-.106.818-.464.364-.436.74-.862 1.128-1.276.252.135.529.21.812.218l.001.022a6.548 6.548 0 00-.143.177c-.196.249-.236.3-.867.43-.18.037-.657.136-.664.47-.007.365.564.518.629.535.227.056.445.084.654.084.506 0 .952-.166 1.308-.488-.01 1.301.044 2.584.2 2.975.128.32.44 1.102 1.429 1.102.144 0 .304-.017.48-.055 1.03-.22 1.478-.677 1.651-1.681.093-.537.252-1.819.327-2.507.158.05.36.072.58.072.459 0 .987-.097 1.319-.251.373-.173 1.045-.597.923-.966zm-2.455-4.647a4.173 4.173 0 01-.061.58c-.032.207-.065.42-.073.68-.008.253.023.516.054.77.061.513.124 1.041-.12 1.563a2.03 2.03 0 01-.109-.224 4.336 4.336 0 00-.188-.356c-.356-.639-1.19-2.135-.763-2.745.127-.182.45-.368 1.26-.268zm-.982-3.439c1.187.026 2.127.47 2.792 1.32.51.652-.052 3.618-1.678 6.177a8.837 8.837 0 00-.05-.062l-.02-.026c.42-.694.338-1.38.265-1.99a4.77 4.77 0 01-.051-.707 5.01 5.01 0 01.068-.63 3.99 3.99 0 00.064-.782.326.326 0 00.007-.11c-.026-.281-.347-1.121-1-1.882a4.507 4.507 0 00-1.59-1.196 5.364 5.364 0 011.193-.112zM4.6 10.431c-.328.395-.555.32-.63.295-.486-.162-1.05-1.19-1.547-2.818-.43-1.41-.681-2.826-.701-3.224-.063-1.256.242-2.132.905-2.603 1.08-.766 2.856-.307 3.57-.075l-.031.03C4.995 3.22 5.023 5.24 5.026 5.362c0 .048.003.115.009.208.02.34.057.973-.043 1.689a2.135 2.135 0 00.709 1.924c-.2.215-.637.69-1.101 1.248zm1.251-1.669A1.728 1.728 0 015.4 7.315a8.738 8.738 0 00.045-1.769l-.007-.127c.171-.152.964-.577 1.53-.447.257.059.414.235.48.537.338 1.564.044 2.216-.191 2.74-.049.108-.095.21-.134.315l-.03.082c-.077.206-.149.398-.193.58a1.46 1.46 0 01-1.048-.464zm.06 2.11a.905.905 0 01-.274-.118c.05-.023.138-.055.291-.087.743-.153.857-.26 1.108-.578.057-.073.122-.156.212-.257.134-.15.196-.124.307-.078.09.037.178.15.214.275.017.058.036.17-.026.257-.523.732-1.285.723-1.833.586zm3.885 3.615c-.909.194-1.23-.269-1.442-.799-.137-.342-.204-1.884-.156-3.587a.205.205 0 00-.01-.065.86.86 0 00-.025-.12c-.07-.248-.243-.455-.45-.541a.636.636 0 00-.416-.05c.039-.16.106-.34.179-.536l.03-.082c.035-.092.078-.188.124-.29.246-.548.584-1.299.218-2.995-.138-.635-.597-.945-1.292-.873a2.98 2.98 0 00-1.102.368c.053-.64.254-1.837 1.004-2.594.473-.476 1.102-.711 1.869-.699 1.51.025 2.48.8 3.026 1.446.47.557.726 1.118.828 1.42-.766-.078-1.286.074-1.55.45-.575.822.314 2.415.74 3.18a4.7 4.7 0 01.168.314c.139.337.319.562.45.726.04.05.08.1.11.142-.232.067-.649.221-.611.993-.03.388-.248 2.201-.359 2.842-.146.847-.457 1.162-1.333 1.35zm3.79-4.338c-.237.11-.634.193-1.01.21-.417.02-.629-.046-.679-.087-.023-.481.156-.531.345-.585.03-.008.06-.016.087-.026a.71.71 0 00.058.042c.334.221.931.245 1.774.07l.01-.001a2.269 2.269 0 01-.585.377z" />
                </g>
            </svg>
        );
    }
);
