/*
 * 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 Pistol: 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="pistol" ref={ref} {...props}>
            <path
                d={isLarge ? "M61.92 209.56C68.8 195.82 55.36 171.94 39.96 144.56C24.12 116.4 6.2 84.56 6.2 56.3C6.2 51.8 10.96 47.78 14.92 45.24C18.22 43.1199999999999 22.16 42.36 26.08 42.36H97.96A19.7 19.7 0 0 1 117.66 62.06C117.66 67.3 119.74 72.3 123.42 75.9999999999999L126.66 79.2399999999999A16.8 16.8 0 0 1 131.58 91.1199999999999A16.8 16.8 0 0 0 136.52 103.0199999999999L138.56 105.06A24 24 0 0 1 145.52 121.8599999999999V125.9599999999999C145.52 133.6599999999999 151.76 139.8999999999999 159.46 139.8999999999999H229.1200000000001C244.52 139.8999999999999 256.98 152.3599999999999 256.98 167.7599999999999V195.6C256.98 211 269.4600000000001 223.46 284.86 223.46H368.4400000000001C383.8400000000001 223.46 396.3200000000001 235.94 396.3200000000001 251.34V273.7C396.3200000000001 275.36 396.9800000000001 276.94 398.1600000000001 278.08A6 6 0 0 1 400 282.44V292.3A8.8 8.8 0 0 1 398.1600000000001 297.7200000000001A8.8 8.8 0 0 0 396.3200000000001 303.14V307.08A13.94 13.94 0 0 1 382.3800000000001 321.02H375.4200000000001A7 7 0 0 0 368.4400000000001 327.98A7 7 0 0 1 361.4800000000002 334.9600000000001H358.6000000000002A10 10 0 0 1 351.6200000000001 332.06L347.5600000000002 327.98A24 24 0 0 0 330.7400000000001 321.02H67.7A14 14 0 0 0 57.84 325.1A13.94 13.94 0 0 1 38.14 325.1A14 14 0 0 0 28.28 321.02H20.12A13.94 13.94 0 0 1 6.2 307.08V257.94C6.2 253.6 5.14 249.36 3.56 245.34C0.34 237.14 -3.56 223.48 6.2 223.48C8.44 223.48 11.16 223.64 14.16 223.8C29.88 224.62 53.76 225.88 61.92 209.56M153.34 153.82A6.1 6.1 0 0 0 147.42 161.42L153.42 185.48C154.32 188.98 159.46 188.34 159.46 184.74C159.46 183.06 160.82 181.7 162.52 181.7H171.28Q173.4 181.7 175.14 180.52L186.2 173.14C192.54 168.94 200.0800000000001 176.48 195.86 182.8L188.5 193.86A7 7 0 0 0 187.32 197.7400000000001V202.6C187.32 206.44 190.4400000000001 209.56 194.28 209.56H226.2400000000001A7 7 0 0 0 231.1600000000001 207.5200000000001L234.9000000000001 203.78C240.1000000000001 198.5600000000001 243.0600000000001 191.48 243.0600000000001 184.0800000000001V170.6400000000001A7 7 0 0 0 241.0200000000001 165.72L237.2800000000001 161.9800000000001A28 28 0 0 0 217.5800000000001 153.8200000000001zM45.28 275H367.76C372.76 275 375.72 269.44 372.96 265.28L368.78 259.04A6.2 6.2 0 0 0 363.58 256.24H41.1A6.24 6.24 0 0 0 35.9 265.9600000000001L40.08 272.2200000000001A6.2 6.2 0 0 0 45.28 275" : "M49.54 167.64C55.04 156.64 44.28 137.54 31.96 115.64C19.28 93.12 4.96 67.64 4.96 45.04C4.96 41.44 8.76 38.24 11.94 36.2C14.58 34.5 17.74 33.88 20.86 33.88H78.36A15.8 15.8 0 0 1 94.12 49.66C94.12 53.84 95.78 57.86 98.74 60.8L101.34 63.4A13.4 13.4 0 0 1 105.28 72.9C105.28 76.46 106.68 79.9 109.22 82.4200000000001L110.84 84.04A19 19 0 0 1 116.42 97.5V100.7600000000001C116.42 106.9200000000001 121.42 111.9200000000001 127.56 111.9200000000001H183.3C195.6 111.9200000000001 205.58 121.9 205.58 134.2000000000001V156.5C205.58 168.82 215.58 178.8 227.88 178.8H294.76C307.08 178.8 317.06 188.78 317.06 201.08V218.96C317.06 220.28 317.58 221.56 318.52 222.46A4.8 4.8 0 0 1 320 225.96V233.84A7.2 7.2 0 0 1 318.52 238.18A7.2 7.2 0 0 0 317.06 242.52V245.68A11.14 11.14 0 0 1 305.9 256.82H300.34A5.6 5.6 0 0 0 294.76 262.38A5.6 5.6 0 0 1 289.18 267.98H286.88A8 8 0 0 1 281.3 265.66L278.04 262.38A19 19 0 0 0 264.58 256.82H54.16A11.2 11.2 0 0 0 46.28 260.08A11.14 11.14 0 0 1 30.52 260.08A11.2 11.2 0 0 0 22.62 256.82H16.1A11.14 11.14 0 0 1 4.96 245.68V206.34C4.96 202.88 4.12 199.5 2.84 196.28C0.28 189.72 -2.84 178.8 4.96 178.8Q7.68 178.8 11.34 179.04C23.9 179.7 43 180.7 49.54 167.64M122.68 123.06A4.88 4.88 0 0 0 117.94 129.14L122.74 148.38C123.44 151.18 127.56 150.68 127.56 147.78C127.56 146.44 128.66 145.36 130 145.36H137.02Q138.7 145.34 140.12 144.42L148.96 138.52C154.04 135.12 160.0800000000001 141.18 156.7 146.24L150.8 155.0999999999999A6 6 0 0 0 149.86 158.18V162.08C149.86 165.16 152.36 167.64 155.44 167.64H180.98C182.46 167.64 183.88 167.04 184.92 166.02L187.92 163.02C192.1 158.8399999999999 194.44 153.18 194.44 147.26V136.5199999999999C194.44 135.0399999999999 193.84 133.62 192.8200000000001 132.58L189.82 129.58A22.4 22.4 0 0 0 174.06 123.06zM36.2 220H294.2000000000001A5 5 0 0 0 298.3400000000001 212.22L295.0000000000001 207.22A5 5 0 0 0 290.8400000000001 205H32.88A5 5 0 0 0 28.72 212.78L32.06 217.78A5 5 0 0 0 36.22 220"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
Pistol.displayName = `Blueprint6.Icon.Pistol`;
export default Pistol;
