import PropTypes from 'prop-types';
import { Icon, IconProps } from './Icon';

export const FingerprintIcon = ({
	assistiveText = 'Fingerprint',
	copyrightYear = '2020',
	size = 'medium',
	color,
	overrides,
	...props
}: Omit<IconProps, 'icon'>) => (
	<Icon
		icon="FingerprintIcon"
		assistiveText={assistiveText}
		copyrightYear={copyrightYear}
		size={size}
		color={color}
		overrides={overrides}
		{...props}
	>
		<path
			fill="currentColor"
			fillRule="evenodd"
			d="M15.2452008,23.9699311 C13.3415488,23.4431343 12.0839842,22.7324518 10.7695209,21.4421031 C9.08009938,19.7647488 8.15161172,17.5319571 8.15161172,15.1448276 C8.15161172,13.128635 9.865476,11.4916256 11.9703309,11.4916256 C14.0751859,11.4916256 15.7890501,13.128635 15.7890501,15.1448276 C15.7890501,16.310142 16.8076746,17.2610837 18.0708235,17.2610837 C19.3339725,17.2610837 20.3525969,16.310142 20.3525969,15.1448276 C20.3525969,10.7887822 16.5926717,7.24729064 11.9585083,7.24729064 C8.66455553,7.24729064 5.65561228,9.08009972 4.3035135,11.9114156 C3.85459564,12.8437834 3.62353291,13.9406002 3.62353291,15.1448276 C3.62353291,16.5035435 3.82095577,17.7947957 4.40383065,19.3491466 C4.55801258,19.7500196 4.35580234,20.1977708 3.9591154,20.3349775 C3.56273512,20.4874315 3.11343448,20.2796903 2.97270327,19.8887302 C2.3857201,18.3194487 2.09840975,16.7614565 2.09840975,15.1448276 C2.09840975,13.7032432 2.37479458,12.3881374 2.91960918,11.2379745 C4.52272447,7.87504847 8.0744351,5.69852217 11.9585083,5.69852217 C17.4344468,5.69852217 21.8895428,9.92620323 21.8895428,15.1330049 C21.8895428,17.1491975 20.1756785,18.7862069 18.0708235,18.7862069 C15.9659686,18.7862069 14.2521043,17.1491975 14.2521043,15.1330049 C14.2521043,13.9676905 13.2334799,13.0167488 11.9703309,13.0167488 C10.707182,13.0167488 9.68855754,13.9676905 9.68855754,15.1330049 C9.68855754,17.1111287 10.4525945,18.9562932 11.8467881,20.3389647 C12.9536273,21.4341529 14.0052857,22.0304282 15.6325705,22.4805523 C16.0433544,22.5870518 16.2825782,23.0128702 16.1751504,23.4110713 C16.10017,23.7559809 15.7870889,24 15.446193,24 C15.3871178,24 15.3215088,23.9890652 15.2452008,23.9699311 Z M14.0580187,20.4817689 C12.2476626,19.2546147 11.1663901,17.2607084 11.1663901,15.1448276 C11.1663901,14.715851 11.5058864,14.3763547 11.934863,14.3763547 C12.3638396,14.3763547 12.7033359,14.715851 12.7033359,15.1448276 C12.7033359,16.7559563 13.5279366,18.2718577 14.9189155,19.2067786 C15.7253537,19.7519763 16.6710589,20.0157635 17.8225477,20.0157635 C18.1358491,20.0157635 18.60117,19.9737554 19.0198126,19.9005017 C19.4380485,19.8230506 19.8363993,20.1028446 19.9121938,20.5273142 C19.9896448,20.9455501 19.7098508,21.3439009 19.286693,21.4194473 C18.7419789,21.5245676 18.2162926,21.564532 17.8225477,21.564532 C16.3788255,21.564532 15.1030374,21.1987036 14.0580187,20.4817689 Z M9.34570039,23.7517241 C9.13729082,23.7517241 8.93767779,23.668552 8.80650904,23.5224426 C7.67216381,22.3880973 7.14773141,21.7114104 6.40088685,20.3626258 C5.57189943,18.8848656 5.1368334,17.08289 5.1368334,15.1448276 C5.1368334,11.5330947 8.22156712,8.59507389 12.0057989,8.59507389 C15.7900307,8.59507389 18.8747644,11.5330947 18.8747644,15.1448276 C18.8747644,15.5738042 18.5352681,15.9133005 18.1062915,15.9133005 C17.6773149,15.9133005 17.3378186,15.5738042 17.3378186,15.1448276 C17.3378186,12.3836767 14.9480883,10.1320197 12.0057989,10.1320197 C9.06350952,10.1320197 6.67377921,12.3836767 6.67377921,15.1448276 C6.67377921,16.8201822 7.04583598,18.3619855 7.75090606,19.6103135 C8.42130815,20.8149422 8.8509643,21.3609245 9.91171015,22.4354927 C10.2013655,22.740393 10.2013655,23.2142868 9.90243055,23.5282652 C9.74258611,23.6735784 9.54722166,23.7517241 9.34570039,23.7517241 Z M1.51240817,9.3436088 C1.16082907,9.09903204 1.08058459,8.62228542 1.32701381,8.26805263 C2.51491291,6.58819532 4.02694155,5.26932003 5.82399619,4.3468324 C9.59225071,2.40270109 14.4054504,2.39598343 18.1754561,4.33484356 C19.9766441,5.25945342 21.4871851,6.56798597 22.6713876,8.23066906 C22.9205255,8.57323366 22.8387851,9.06367608 22.487367,9.30814082 C22.1342524,9.55378575 21.6575058,9.47354127 21.4142009,9.12376638 C20.3654553,7.65552257 19.0388769,6.50464997 17.4697815,5.70266779 C14.1243584,3.98915838 9.84593625,3.99243185 6.51848445,5.7143295 C4.94525801,6.52407841 3.61602962,7.68349348 2.57159573,9.14414287 C2.44745565,9.361388 2.21528381,9.4817734 1.95653783,9.4817734 C1.80154047,9.4817734 1.64935119,9.43494593 1.51240817,9.3436088 Z M18.8747644,3.27487685 C18.7482608,3.27487685 18.6235774,3.24270048 18.5215703,3.18422125 C16.276614,2.02666565 14.3418192,1.53694581 12.0176216,1.53694581 C9.69601158,1.53694581 7.50432578,2.09001552 5.51686391,3.18253454 C5.14876443,3.38192176 4.68898713,3.24586521 4.47252546,2.87461179 C4.27202395,2.50445514 4.41087066,2.03046119 4.7802863,1.83036115 C7.01156446,0.618753123 9.45337557,0 12.0176216,0 C14.5626231,0 16.7894371,0.561642557 19.2285019,1.8170453 C19.6098658,2.01535456 19.7529399,2.4779606 19.5535791,2.84581128 C19.419777,3.11341553 19.1605891,3.27487685 18.8747644,3.27487685 Z"
		/>
	</Icon>
);

FingerprintIcon.propTypes = {
	// ----------------------------- Warning --------------------------------
	// | These PropTypes are generated from the TypeScript type definitions |
	// |     To update them edit TypeScript types and run "yarn prop-types"  |
	// ----------------------------------------------------------------------
	/**
	 * String to use as the `aria-label` for the icon. Set to an empty string if you
	 * are rendering the icon with visible text to prevent accessibility label
	 * duplication.
	 *
	 * Defaults to the icon name e.g. `BusinessPersonIcon` --> "Business Person"
	 */
	assistiveText: PropTypes.string,
	/**
	 * The color for the icon.
	 *
	 * Defaults to the current text color.
	 */
	color: PropTypes.string,
	/**
	 * The icon SVG metadata copyright year text
	 */
	copyrightYear: PropTypes.string,
	/**
	 * The override API
	 */
	overrides: PropTypes.shape({
		Icon: PropTypes.shape({
			attributes: PropTypes.func,
			component: PropTypes.elementType,
			styles: PropTypes.func,
		}),
		Svg: PropTypes.shape({
			attributes: PropTypes.func,
			component: PropTypes.elementType,
			styles: PropTypes.func,
		}),
	}),
	/**
	 * Control the size of the icon.
	 *
	 * Defaults to "medium" --> 24px
	 */
	size: PropTypes.oneOfType([
		PropTypes.oneOf(['large', 'medium', 'small', 'xlarge', 'xsmall']),
		PropTypes.arrayOf(PropTypes.oneOf(['large', 'medium', 'small', 'xlarge', 'xsmall'])),
	]),
};
