/*
 * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import * as React from "react";
import type { SVGIconProps } from "../../svgIconProps";
import { IconSize } from "../../iconTypes";
import { SVGIconContainer } from "../../svgIconContainer";

export const Function: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE;
    const pixelGridSize = isLarge ? IconSize.LARGE : IconSize.STANDARD;
    const translation = `${-1 * pixelGridSize / 0.05 / 2}`;
    const style = { transformOrigin: "center" };
    return (
        <SVGIconContainer iconName="function" ref={ref} {...props}>
            <path
                d={isLarge ? "M202.8 283.6H174.6C182.6 316.8 193.4 341 206.6 356.4C214.6 366 222.6 370.8 230.2 370.8C231.8 370.8 233 370.4 234 369.4S235.4 367.4 235.4 365.8C235.4 364.4 234.4 362 232.2 358.4S229 351.2 229 348C229 343.4 230.6 339.4 234 336.2A18 18 0 0 1 246.8 331.2C252.4 331.2 257 333.2 260.8 337.2S266.4 346.6 266.4 353.4C266.4 361.2 263.6 367.4 258 372.2S243.2 379.4 230.8 379.4C211.4 379.4 193.6 373.6 177.8 362C162 350.8 147 331.6 132.6 305C127.8 295.8 123 290 118.6 287.4S107.2 283.6 97.4 283.6L91 260.6H118L78.2 103.6C71.6 77.8 67 61.8 64.8 55.8C61.4 46.9999999999999 56.2 39.6 49.4 33.4A14.8 14.8 0 0 0 39.4 29.5999999999999C38.4 29.5999999999999 37.4 29.9999999999999 36.6 30.6L35.8 31.9999999999999C35.8 32.6 36.8 34 38.8 35.9999999999999S41.8 41.2 41.8 45.3999999999999C41.8 49.9999999999999 40.2 53.8 37.2 56.8C34 59.7999999999999 29.6 61.3999999999999 23.8 61.3999999999999C16.8 61.3999999999999 11.2 59.3999999999999 6.8 55.6C2.6 51.6 0.4 46.9999999999999 0.4 41.6Q0.4 32.9 8.2 26.6Q15.7 20 32.2 20C49.8 20 65.4 24.6 78.8 33.8C92.4 43.0000000000001 104.2 57.2 114.4 76.6C124.6 95.8000000000001 135 127 145.6 169.8000000000001L168.4 260.6H196zM338.8 244.6C343.8 248.6 349.0000000000001 250.4 354.4000000000001 250.4C356.4000000000001 250.4 360.2000000000001 249.6 365.6 248.2C371 246.6 375.8000000000001 246 380 246C385.8 246 390.4 248 394.4 252C398 255.8 400 261 400 267.4C400 274 398 279.4 394.2000000000001 283.4S384.8000000000001 289.2 377.8 289.2C371.4 289.2 365.4 287.6 359.8000000000001 284.6S347 274.8 338.2000000000001 264.6C331.6000000000002 257 322.0000000000001 243.6 309.4000000000001 224.6A194 194 0 0 1 283.2000000000001 289L215.2000000000001 277.2L213.8000000000001 269.8C218.8000000000001 270.8 223.2000000000001 271.4 226.6000000000001 271.4C233.4000000000001 271.4 239.0000000000001 268.4 243.4000000000001 262.6C250.4000000000001 253.4 260.2000000000001 225.6 272.6 178.8C262.8000000000001 165.6 256.2000000000001 157 252.6000000000001 152.8C246.6 146.1999999999999 241.6 142 237.8000000000001 140Q233.3000000000001 137.6 227.6000000000001 137.6C224.8000000000001 137.6 220 139.1999999999999 213.6000000000001 142.4C209.2000000000001 144.4 205.2000000000001 145.6 201.8000000000001 145.6C195.2000000000001 145.6 189.8000000000001 143.4 185.4000000000001 139.1999999999999C181.2000000000001 134.8 179.0000000000001 129.3999999999999 179.0000000000001 122.6C179.0000000000001 116.3999999999999 181.0000000000001 111.1999999999999 185.0000000000001 107.1999999999999S194.4000000000001 101.4 201.0000000000001 101.4C207.4000000000001 101.4 213.6000000000001 102.8 219.4000000000001 105.6S232.2000000000001 114.2 241.0000000000001 123.2C249.6000000000001 132.2 261.6000000000001 146.4 276.8000000000001 166C282.6 147.4 287.8000000000001 133.8 292.0000000000001 125.4S301.2000000000001 110.8 306.8000000000001 107.2000000000001C312.4000000000001 103.4 319.2000000000001 101.6 327.6 101.6C335.6 101.6 343.8 104.6 352.2000000000001 110.4C363.2000000000001 118.0000000000001 374.2000000000001 131.2000000000001 385.8000000000001 149.8000000000001L378.8 154.0000000000001C371 143.0000000000001 365.2000000000001 136.2000000000001 361.4 133.4000000000001C359 131.6000000000001 356 130.8000000000001 352.6 130.8000000000001C348.6 130.8000000000001 344.6 133.4000000000001 340.8 138.4000000000001C334.2000000000001 147.0000000000001 325.4 171.0000000000001 314.2 210.4000000000001C323.6 227.6000000000001 332 239.2000000000001 338.8 244.6000000000001" : "M162.4 225.2H139.6C146.2 251 154.6 270 165.2 282C171.8 289.4 178 293.2 184.2 293.2C185.4 293.2 186.4 292.8 187.2 292.2Q188.4 291 188.4 289.2C188.4 288.2 187.6 286.2 185.8 283.4S183.2 277.8 183.2 275.4C183.2 271.8 184.6 268.8 187.2 266.2C190 263.6 193.4 262.4 197.5999999999999 262.4C202 262.4 205.8 264 208.8 267C211.8 270.2 213.4 274.4 213.4 279.6C213.4 285.6 211.2 290.6 206.6 294.4S194.8 300 184.8 300C169.2 300 155 295.6 142.4 286.6C129.6 277.6 117.6 262.6 106.2 242C102.2 234.8 98.6 230.2 95 228.2S85.8 225.2 78 225.2L72.8 207.2H94.4L62.6 84.8C57.2 64.6 53.8 52.2 51.8 47.6C49 40.8 45 34.9999999999999 39.4 30.2C37.2 28.2 34.6 27.2 31.4 27.2A3 3 0 0 0 29.2 28L28.4 29C28.4 29.6 29.2 30.6 30.8 32.2Q33.2 34.6 33.2 39.4C33.2 43 32 46 29.4 48.2Q25.8 51.8 18.6 51.8C13 51.8 8.4 50.1999999999999 5 47.1999999999999C1.8 44.3999999999999 0 40.8 0 36.6C0 32.1999999999999 2 28.2 6.2 24.8S16.8 19.8 25.6 19.8C39.6 19.8 52 23.4 63 30.6C73.8 37.8 83.4 48.9999999999999 91.4 63.9999999999999C99.6 78.9999999999999 107.8 103.1999999999999 116.4 136.6L134.6 207.4H156.6zM271 194.8C275 197.8 279.2 199.4 283.4 199.4Q285.8 199.4 292.4 197.6T303.8 195.8C308.4 195.8 312.2 197.4 315.2 200.4C318.4 203.6 320 207.6 320 212.6C320 217.8 318.4 222 315.4 225S308 229.6000000000001 302.2 229.6000000000001C297.2 229.6000000000001 292.2 228.4000000000001 287.8 226.0000000000001C283.2 223.6000000000001 277.6 218.4 270.6 210.4C265.4 204.4 257.8 194.2000000000001 247.6 179.4C243.6 197.6000000000001 236.6 214.4 226.6 229.6000000000001L172.1999999999999 220.4L170.9999999999999 214.6000000000001Q176.9999999999999 215.8000000000001 181.1999999999999 215.8000000000001C186.5999999999999 215.8000000000001 190.9999999999999 213.6 194.5999999999999 209.0000000000001C200.1999999999999 201.8000000000001 207.9999999999999 180 217.9999999999999 143.8C210.1999999999999 133.4 204.7999999999999 126.8000000000001 201.9999999999999 123.6C197.1999999999999 118.4 193.1999999999999 115.2000000000001 190.1999999999999 113.6C187.7999999999999 112.4 185.1999999999999 111.8 181.9999999999999 111.8C179.7999999999999 111.8 175.9999999999999 113.0000000000001 170.7999999999999 115.4Q165.3999999999999 117.8 161.1999999999999 117.8C155.7999999999999 117.8 151.5999999999999 116.2 147.9999999999999 112.8C144.5999999999999 109.4 142.7999999999999 105.2 142.7999999999999 100C142.7999999999999 95 144.3999999999999 91.2 147.5999999999999 88C150.7999999999999 85 154.9999999999999 83.4 160.3999999999999 83.4C165.5999999999999 83.4 170.3999999999999 84.4 174.9999999999999 86.6S185.3999999999999 93.4 192.1999999999999 100.4C199.1999999999999 107.4 208.5999999999999 118.4 220.7999999999999 133.8C225.3999999999999 119.2 229.5999999999999 108.8 232.9999999999999 102.2S240.3999999999999 90.8 244.7999999999999 88C249.1999999999999 85 254.7999999999999 83.6 261.3999999999999 83.6C267.7999999999999 83.6 274.3999999999999 85.8 280.9999999999999 90.4C289.7999999999999 96.4 298.5999999999999 106.6 307.7999999999999 121L302.5999999999999 124C296.3999999999999 115.4 291.7999999999999 110 288.7999999999999 107.9999999999999C286.7999999999999 106.5999999999999 284.3999999999999 105.9999999999999 281.7999999999999 105.9999999999999Q276.9999999999999 105.9999999999999 272.1999999999999 111.9999999999999C266.7999999999999 118.8 259.7999999999999 137.4 250.9999999999999 168C258.9999999999999 181.5999999999999 265.5999999999999 190.6 270.9999999999999 194.8"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Function.displayName = `Blueprint6.Icon.Function`;
export default Function;
