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 0 0-.054.087c-.008.061.035.13.061.164.075.1.185.168.293.183l.047.003c.18 0 .345-.14.36-.245.017-.13-.172-.216-.355-.242m4.942.004c-.014-.101-.195-.13-.367-.107s-.339.102-.325.204c.011.08.155.215.324.215l.044-.003a.42.42 0 0 0 .236-.13c.06-.062.095-.133.088-.179" />
                    <path d="M14.682 9.555q-.097-.287-.604-.183c-1.002.207-1.361.064-1.479-.023a13.8 13.8 0 0 0 1.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.6 4.6 0 0 0-1.03-.133c-.684-.01-1.276.153-1.765.487a8 8 0 0 0-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.8.8 0 0 0 .256.043c.234 0 .52-.106.818-.464q.546-.655 1.128-1.276c.252.135.529.21.812.218l.001.022-.143.177c-.196.249-.236.3-.867.43-.18.037-.657.136-.664.47-.007.365.564.518.629.535q.34.084.654.084c.506 0 .952-.166 1.308-.488-.01 1.301.044 2.584.2 2.975.128.32.44 1.102 1.429 1.102q.216.001.48-.055c1.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-.966m-2.455-4.647a4 4 0 0 1-.061.58c-.032.207-.065.42-.073.68-.008.253.023.516.054.77.061.513.124 1.041-.12 1.563a2 2 0 0 1-.109-.224 4 4 0 0 0-.188-.356c-.356-.639-1.19-2.135-.763-2.745.127-.182.45-.368 1.26-.268m-.982-3.439c1.187.026 2.127.47 2.792 1.32.51.652-.052 3.618-1.678 6.177l-.05-.062-.02-.026c.42-.694.338-1.38.265-1.99a5 5 0 0 1-.051-.707 5 5 0 0 1 .068-.63 4 4 0 0 0 .064-.782.3.3 0 0 0 .007-.11c-.026-.281-.347-1.121-1-1.882a4.5 4.5 0 0 0-1.59-1.196 5.4 5.4 0 0 1 1.193-.112M4.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.362q0 .07.009.208c.02.34.057.973-.043 1.689a2.13 2.13 0 0 0 .709 1.924c-.2.215-.637.69-1.101 1.249m1.251-1.669A1.73 1.73 0 0 1 5.4 7.315a8.7 8.7 0 0 0 .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 0 1-1.048-.464m.06 2.11a.9.9 0 0 1-.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.586m3.885 3.615c-.909.194-1.23-.269-1.442-.799-.137-.342-.204-1.884-.156-3.587a.2.2 0 0 0-.01-.065 1 1 0 0 0-.025-.12c-.07-.248-.243-.455-.45-.541a.64.64 0 0 0-.416-.05c.039-.16.106-.34.179-.536l.03-.082q.054-.138.124-.29c.246-.548.584-1.299.218-2.995-.138-.635-.597-.945-1.292-.873a3 3 0 0 0-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.18a5 5 0 0 1 .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.35m3.79-4.338c-.237.11-.634.193-1.01.21-.417.02-.629-.046-.679-.087-.023-.481.156-.531.345-.585q.046-.011.087-.026l.058.042c.334.221.931.245 1.774.07l.01-.001a2.3 2.3 0 0 1-.585.377" />
                </g>
            </svg>
        );
    }
);
