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

export const IconLinux16 = 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}
                <path
                    fill={color}
                    d="M8.294 1q-.136 0-.28.012c-2.465.194-1.811 2.804-1.85 3.674-.043.637-.174 1.14-.612 1.762-.516.613-1.24 1.604-1.584 2.637-.162.485-.24.982-.167 1.452a.3.3 0 0 0-.064.079c-.152.156-.263.35-.387.49-.116.115-.283.155-.465.232-.183.08-.384.157-.504.397a.8.8 0 0 0-.077.351c0 .116.016.234.032.313.034.233.068.425.023.566-.145.396-.163.668-.062.865.102.195.313.275.549.351.472.117 1.114.079 1.618.35.54.272 1.088.39 1.526.274.307-.067.566-.27.705-.552.342-.001.717-.157 1.318-.194.408-.034.918.155 1.503.116.015.078.037.116.067.194l.001.002c.229.454.65.66 1.1.625s.928-.313 1.316-.762c.368-.446.982-.632 1.387-.877.203-.116.367-.273.379-.497.013-.234-.117-.473-.417-.803v-.056l-.002-.002c-.099-.117-.145-.312-.197-.54-.05-.234-.106-.459-.287-.61h-.001c-.035-.032-.072-.04-.11-.08a.2.2 0 0 0-.11-.037c.25-.745.153-1.487-.102-2.154-.31-.823-.854-1.54-1.269-2.032-.464-.586-.919-1.142-.91-1.965.016-1.255.138-3.578-2.067-3.581m.309 1.986h.007c.125 0 .231.036.34.116a.9.9 0 0 1 .256.31c.062.152.093.268.097.423 0-.012.004-.023.004-.035v.061l-.003-.012-.002-.014q-.001.215-.087.412a.6.6 0 0 1-.125.195l-.051-.024c-.06-.027-.115-.038-.166-.078a1 1 0 0 0-.128-.038c.03-.035.085-.078.107-.116a.7.7 0 0 0 .051-.234V3.94a.7.7 0 0 0-.035-.233c-.027-.079-.06-.117-.107-.195-.05-.038-.098-.077-.156-.077h-.01c-.054 0-.102.018-.152.077a.5.5 0 0 0-.12.195.7.7 0 0 0-.052.234v.01q0 .08.011.156c-.112-.039-.255-.078-.354-.117a1 1 0 0 1-.01-.117V3.86a1 1 0 0 1 .087-.448.63.63 0 0 1 .251-.31.57.57 0 0 1 .347-.117m-1.728.035h.02c.084 0 .158.028.234.078a.8.8 0 0 1 .2.272c.053.116.082.233.09.389v.002a1 1 0 0 1-.002.155v.047l-.048.014c-.089.032-.16.079-.23.117a.6.6 0 0 0 .002-.156V3.93c-.007-.078-.023-.117-.047-.194a.36.36 0 0 0-.097-.156.14.14 0 0 0-.107-.037h-.012c-.042.003-.076.023-.109.077a.3.3 0 0 0-.07.157.6.6 0 0 0-.013.193v.008c.007.08.021.117.047.195a.36.36 0 0 0 .096.157q.008.008.02.014c-.04.033-.068.04-.102.079a.2.2 0 0 1-.077.04 1.5 1.5 0 0 1-.16-.235 1 1 0 0 1-.09-.389q-.015-.2.046-.39a.8.8 0 0 1 .165-.312c.075-.077.152-.116.244-.116m.799.995c.194 0 .428.038.71.233.17.116.304.157.613.273h.002c.149.079.236.155.279.232v-.076a.33.33 0 0 1 .009.274c-.072.18-.301.375-.62.491v.001c-.156.08-.292.195-.452.272s-.343.17-.59.155a.7.7 0 0 1-.262-.039 2 2 0 0 1-.188-.115c-.113-.079-.211-.194-.357-.271v-.003h-.003c-.233-.144-.359-.299-.4-.414q-.06-.237.113-.35c.13-.08.221-.159.282-.197.06-.043.083-.059.102-.076h.001v-.002c.099-.117.255-.274.49-.35.08-.021.17-.038.271-.038m1.633 1.25c.21.826.698 2.026 1.012 2.609.167.311.5.967.643 1.764q.138-.004.3.037c.376-.975-.319-2.022-.636-2.314-.128-.116-.135-.195-.071-.195.344.312.796.917.96 1.608.075.312.093.644.012.974.039.017.079.035.12.04.601.311.824.547.717.896v-.025q-.052-.002-.105 0h-.01c.089-.272-.106-.481-.62-.714-.534-.233-.96-.196-1.033.271-.005.025-.008.039-.01.079-.04.013-.082.03-.123.037-.25.157-.386.39-.462.693-.076.31-.1.674-.12 1.09v.002c-.011.195-.099.489-.186.787-.875.626-2.088.897-3.12.195a1.5 1.5 0 0 0-.234-.31.9.9 0 0 0-.16-.195 1 1 0 0 0 .27-.04.36.36 0 0 0 .184-.194c.063-.156 0-.407-.201-.678-.201-.273-.543-.58-1.043-.888-.368-.233-.575-.507-.671-.814-.096-.312-.083-.633-.009-.96.143-.624.51-1.23.743-1.611.063-.038.022.078-.238.568-.23.438-.665 1.456-.07 2.248.022-.578.15-1.146.377-1.678.329-.745 1.016-2.044 1.07-3.073.029.021.127.08.17.118.126.078.22.194.343.271a.7.7 0 0 0 .511.196l.065.003c.24 0 .425-.078.581-.156.17-.078.304-.195.432-.233h.003c.272-.08.487-.235.61-.409m1.275 5.225c.021.35.2.726.514.803.343.078.837-.194 1.045-.446l.123-.006c.184-.004.337.006.494.156l.002.002c.121.116.178.31.228.511.05.233.09.455.239.622.283.307.376.528.37.665l.003-.004v.01l-.002-.006c-.009.153-.108.23-.29.346-.368.234-1.02.416-1.434.916-.36.43-.8.665-1.188.695s-.721-.117-.918-.524l-.003-.002c-.122-.233-.07-.597.033-.985.103-.39.25-.784.27-1.107.022-.417.044-.779.114-1.058.07-.271.18-.465.374-.574l.026-.013zm-6.308.028h.006a1 1 0 0 1 .091.009c.22.032.412.194.597.438l.53.97.003.003c.141.31.44.62.693.955.253.348.45.66.425.915v.004c-.033.434-.28.67-.656.755-.376.079-.887 0-1.397-.27-.565-.314-1.235-.274-1.667-.352q-.322-.059-.421-.233c-.064-.117-.066-.352.071-.718v-.002l.002-.002c.068-.195.017-.439-.016-.652-.032-.234-.049-.414.025-.549.093-.194.23-.233.402-.31.172-.08.374-.118.534-.275h.001c.15-.157.26-.351.39-.49.11-.117.222-.196.387-.196M8.45 5.226c-.254.117-.551.312-.868.312s-.566-.155-.747-.272c-.09-.078-.163-.156-.217-.195-.096-.078-.084-.194-.044-.194.064.01.076.078.117.117.056.038.125.116.21.194.17.116.396.272.68.272.283 0 .615-.156.816-.272.114-.078.26-.194.378-.272.09-.08.087-.156.163-.156.074.01.02.078-.086.194q-.194.146-.402.272m-.631-.923V4.29c-.004-.012.007-.024.017-.03.043-.024.105-.015.151.003.037 0 .094.04.088.079-.004.029-.05.038-.079.038-.032 0-.054-.025-.082-.04-.03-.01-.085-.004-.095-.037m-.322 0c-.011.034-.066.028-.097.038-.027.015-.05.04-.081.04-.03 0-.076-.012-.08-.04-.005-.038.052-.077.088-.077.047-.018.107-.028.151-.003.011.005.021.017.018.029v.012h.001"
                />
            </svg>
        );
    }
);
