{"version":3,"sources":["webpack:///./packages/core-asset/collections/singleton/attributes.ts","webpack:///./packages/core-components/Confirmation/index.ts","webpack:///./packages/core-components/FallbackMessage/fallbackMessageClasses.ts","webpack:///./packages/core-components/FallbackMessage/FallbackMessage.tsx","webpack:///./packages/core-user/utils/currentUserMeetsUserLevel.ts","webpack:///./packages/core-components/Button/Button.tsx","webpack:///./packages/core-components/Dialog/index.ts","webpack:///./node_modules/@tanstack/query-core/build/lib/utils.esm.js","webpack:///./packages/core-components/hooks/useUpdateEffect.ts","webpack:///./packages/core-components/ActionButton/ActionButton.tsx","webpack:///./packages/core-components/Alert/index.ts","webpack:///./packages/core-components/Form/SelectField/components/Select/SelectField.tsx","webpack:///./packages/core-components/PrimaryTitle/PrimaryTitle.tsx","webpack:///./packages/core-components/SecondaryTitle/SecondaryTitle.tsx","webpack:///./packages/core-components/Title/titleClasses.ts","webpack:///./packages/core-components/Title/Title.tsx","webpack:///./packages/core-components/Form/util.ts","webpack:///./packages/core-attribute/hooks/usePlaceholder.ts","webpack:///./node_modules/@mui/material/esm/SnackbarContent/snackbarContentClasses.js","webpack:///./node_modules/@mui/material/esm/SnackbarContent/SnackbarContent.js","webpack:///./node_modules/@mui/material/esm/Snackbar/snackbarClasses.js","webpack:///./node_modules/@mui/material/esm/Snackbar/Snackbar.js","webpack:///./packages/core-components/Snackbar/Snackbar.tsx","webpack:///./packages/core-components/Snackbar/SnackbarService.tsx","webpack:///./packages/core-components/Snackbar/withSnackbar.tsx","webpack:///./packages/core-components/Snackbar/index.ts","webpack:///./packages/core-asset/models/attribute.js","webpack:///./packages/core-components/Form/AutoListField/components/Option/index.tsx","webpack:///./packages/core-components/Form/AutoListField/components/Selection/index.tsx","webpack:///./packages/core-components/Form/AutoListField/locales.ts","webpack:///./packages/core-components/Form/AutoListField/util.ts","webpack:///./packages/core-components/Form/AutoListField/AutoList.tsx","webpack:///./packages/core-components/Form/AutoListField/constants.ts","webpack:///./packages/core-components/FormDialog/index.ts","webpack:///./packages/core-asset/collections/assetConstituents_.js","webpack:///./packages/core-asset/models/assetConstituent_keyframe.js","webpack:///./packages/core-asset/models/assetConstituent_layer.js","webpack:///./packages/core-asset/models/assetConstituent_page.js","webpack:///./packages/core-asset/collections/assetConstituents.js","webpack:///./packages/core-asset/collections/assetConstituents_clips.js","webpack:///./packages/core-asset/collections/assetConstituents_keyframes.js","webpack:///./packages/core-asset/collections/assetConstituents_layers.js","webpack:///./packages/core-asset/collections/assetConstituents_pages.js","webpack:///./packages/core-asset/models/asset.js","webpack:///./packages/core-components/SubmitButton/submitButtonClasses.ts","webpack:///./packages/core-components/SubmitButton/SubmitButton.tsx","webpack:///./packages/core-components/Form/TextField/textFieldClasses.ts","webpack:///./packages/core-components/Form/TextField/styledTextFieldClasses.ts","webpack:///./packages/core-components/Form/TextField/StyledTextField.tsx","webpack:///./packages/core-components/Form/TextField/TextField.tsx","webpack:///./packages/core-components/Form/TextField/index.tsx","webpack:///./packages/core-asset-expiration/utils/assetExpires.ts","webpack:///./packages/core-asset-expiration/utils/userInputToExpirationTime.ts","webpack:///./node_modules/@tanstack/react-query/build/lib/useQuery.esm.js","webpack:///./packages/core-components/Tooltip/Tooltip.tsx","webpack:///./packages/core-asset/models/assetConstituent.js","webpack:///./packages/core-asset/properties/asset.js","webpack:///./node_modules/@tanstack/query-core/build/lib/query.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/queryCache.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/mutationCache.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/queryClient.esm.js","webpack:///./packages/core-app/models/sorter.js","webpack:///./node_modules/@mui/material/esm/TableCell/tableCellClasses.js","webpack:///./node_modules/@mui/material/esm/TableCell/TableCell.js","webpack:///./node_modules/@mui/material/esm/TableHead/tableHeadClasses.js","webpack:///./node_modules/@mui/material/esm/TableHead/TableHead.js","webpack:///./node_modules/@mui/material/esm/TableRow/tableRowClasses.js","webpack:///./node_modules/@mui/material/esm/TableRow/TableRow.js","webpack:///./node_modules/@mui/material/esm/TableBody/tableBodyClasses.js","webpack:///./node_modules/@mui/material/esm/TableBody/TableBody.js","webpack:///./node_modules/@mui/material/esm/Table/tableClasses.js","webpack:///./node_modules/@mui/material/esm/Table/Table.js","webpack:///./packages/core-asset/views/assetConstituentView_clip.js","webpack:///./build-targets/theme/packages/core-asset/views/assetConstituentView_clip.js","webpack:///./packages/core-cms/services/settings/constants.ts","webpack:///./packages/core-components/Form/TextField/ReadOnlyTextField.tsx","webpack:///./packages/core-asset/models/attribute_date.js","webpack:///./packages/core-asset/models/attribute_multiselect.js","webpack:///./packages/core-asset/models/attribute_number.js","webpack:///./packages/core-asset/models/attribute_select.js","webpack:///./packages/core-asset/models/attribute_tag.js","webpack:///./packages/core-asset/models/attribute_text.js","webpack:///./packages/core-asset/collections/attributes.js","webpack:///./packages/core-asset/models/attribute_semantic.js","webpack:///./packages/core-asset/models/attribute_tagVocab.js","webpack:///./packages/core-asset/models/attribute_textarea.js","webpack:///./node_modules/@tanstack/query-core/build/lib/notifyManager.esm.js","webpack:///./packages/core-search-rules/constants.ts","webpack:///./node_modules/@mui/material/esm/internal/animate.js","webpack:///./node_modules/@mui/material/esm/Tabs/ScrollbarSize.js","webpack:///./node_modules/@mui/material/esm/TabScrollButton/tabScrollButtonClasses.js","webpack:///./node_modules/@mui/material/esm/TabScrollButton/TabScrollButton.js","webpack:///./node_modules/@mui/material/esm/Tabs/tabsClasses.js","webpack:///./node_modules/@mui/material/esm/Tabs/Tabs.js","webpack:///./packages/core-components/Tabs/Tabs.tsx","webpack:///./packages/core-components/Tabs/useTabs.tsx","webpack:///./packages/core-components/Tabs/TabsProvider.tsx","webpack:///./build-targets/theme/packages/core-asset/templates/assetConstituentView.html","webpack:///./build-targets/theme/packages/core-asset/templates/assetConstituentView_clip.html","webpack:///./packages/core-attribute/api/getSemanticObjectAutoList.ts","webpack:///./packages/core-attribute/api/metadataAutoCompleteLookup.ts","webpack:///./packages/core-attribute/api/metadataDatasetAutoList.ts","webpack:///./packages/core-attribute/api/vocabularyValueLookup.ts","webpack:///./src/js/lib/jquery.resize.js","webpack:///./packages/core-components/ActionMenu/actionMenuClasses.ts","webpack:///./packages/core-components/ActionMenu/ActionMenu.tsx","webpack:///./packages/core-components/ContextMenu/index.ts","webpack:///./packages/core-asset/enablers.js","webpack:///./packages/core-search-rules/rules/constants.ts","webpack:///./packages/core-components/MenuItem/menuItemClasses.ts","webpack:///./packages/core-components/MenuItem/MenuItem.tsx","webpack:///./packages/core-attribute/utils/actionChangesValue.ts","webpack:///./packages/core-attribute/utils/getAttributeComponent.ts","webpack:///./packages/core-attribute/utils/getTemplatesEffectedByLookup.ts","webpack:///./packages/core-attribute/utils/isSystemAttribute.ts","webpack:///./packages/core-attribute/utils/normalizeValue.ts","webpack:///./packages/core-permissions/utils/allows.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","webpack:///./packages/core-components/TabPanel/tabPanelClasses.ts","webpack:///./packages/core-components/TabPanel/TabPanel.tsx","webpack:///./node_modules/@tanstack/query-core/build/lib/subscribable.esm.js","webpack:///./packages/core-components/hooks/useUserPref.ts","webpack:///./packages/core-components/Form/SelectField/components/Input/index.tsx","webpack:///./packages/core-components/Form/SelectField/components/ListBox/index.tsx","webpack:///./packages/core-components/Confirmation/ConfirmationService.tsx","webpack:///./packages/core-components/Drawer/constants.ts","webpack:///./packages/core-components/Drawer/locales.ts","webpack:///./packages/core-components/Drawer/drawerToolbarClasses.ts","webpack:///./packages/core-components/Drawer/DrawerToolbar.tsx","webpack:///./packages/core-components/Drawer/drawerClasses.ts","webpack:///./packages/core-components/Drawer/Drawer.tsx","webpack:///./packages/core-components/Drawer/withDrawer.tsx","webpack:///./packages/core-share/properties/downloadOptions.js","webpack:///./src/js/lib/customElements/nx-time.js","webpack:///./packages/core-components/ErrorBoundary/_ErrorBoundary.tsx","webpack:///./packages/core-components/ErrorBoundary/ErrorBoundary.tsx","webpack:///./packages/core-components/ErrorBoundary/withErrorBoundary.tsx","webpack:///./packages/core-components/DialogTitle/dialogTitleClasses.ts","webpack:///./packages/core-components/DialogTitle/DialogTitle.tsx","webpack:///./packages/core-components/ToggleButton/toggleButtonClasses.ts","webpack:///./packages/core-components/ToggleButton/ToggleButton.tsx","webpack:///./packages/core-components/MenuList/MenuList.tsx","webpack:///./packages/core-components/Form/SelectField/components/Select/selectFieldClasses.ts","webpack:///./packages/core-attribute/parsers/base.ts","webpack:///./packages/core-components/ActionMenuList/ActionMenuList.tsx","webpack:///./packages/core-components/Form/Form.tsx","webpack:///./packages/core-asset/collections/singleton/attributeSets.ts","webpack:///./packages/core-components/hooks/useBackboneCollection.ts","webpack:///./packages/core-components/DragResize/constants.ts","webpack:///./packages/core-components/DownloadDialog/components/Dialog/index.tsx","webpack:///./packages/core-components/DownloadDialog/store/constants.ts","webpack:///./packages/core-components/DownloadDialog/store/reducer.ts","webpack:///./packages/core-components/DownloadDialog/store/index.tsx","webpack:///./packages/core-components/DownloadDialog/store/api/getProgressReport.ts","webpack:///./packages/core-components/DownloadDialog/store/api/setProgressReportNotify.ts","webpack:///./packages/core-components/DownloadDialog/withDownloadDialog.tsx","webpack:///./packages/core-components/ScrollShadow/useScrollAddedNodesIntoView.tsx","webpack:///./packages/core-components/ScrollShadow/ScrollShadow.tsx","webpack:///./packages/core-components/ScrollShadow/useScrollListener.tsx","webpack:///./packages/core-attribute/locales.ts","webpack:///./node_modules/nanoid/index.browser.js","webpack:///./node_modules/@mui/material/esm/Tab/tabClasses.js","webpack:///./node_modules/@mui/material/esm/Tab/Tab.js","webpack:///./packages/core-components/Tab/Tab.tsx","webpack:///./packages/core-attribute/hooks/useAttributes/constants.ts","webpack:///./packages/core-attribute/hooks/useAttributes/reducer.ts","webpack:///./packages/core-attribute/hooks/useAttributes/useAttributes.ts","webpack:///./packages/core-components/Form/withForm.tsx","webpack:///./packages/core-search-rules/rules/metadata/constants.ts","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./packages/core-components/Alert/Alert.tsx","webpack:///./packages/core-components/ContextMenu/ContextMenuService.tsx","webpack:///./packages/core-components/DialogAlert/DialogAlert.tsx","webpack:///./packages/core-components/Dialog/Dialog.tsx","webpack:///./packages/core-attribute/components/Attribute/index.tsx","webpack:///./packages/core-components/Chip/chipClasses.ts","webpack:///./node_modules/@mui/material/esm/TableContainer/tableContainerClasses.js","webpack:///./node_modules/@mui/material/esm/TableContainer/TableContainer.js","webpack:///./packages/core-components/Table/TableCell/TableCell.tsx","webpack:///./packages/core-components/Table/TableCell/ActionsTableCell.tsx","webpack:///./packages/core-components/Table/TableColumn/TableColumn.tsx","webpack:///./packages/core-components/Table/TableColumn/ResizableTableColumn.tsx","webpack:///./packages/core-components/Table/TableColumn/index.tsx","webpack:///./packages/core-components/Table/TableHead/TableHead.tsx","webpack:///./packages/core-components/Table/TableRow/TableRow.tsx","webpack:///./packages/core-components/Table/TableRow/SortableTableRowHandle.tsx","webpack:///./packages/core-components/Table/TableRow/SortableTableRow.tsx","webpack:///./packages/core-components/Table/TableRow/index.tsx","webpack:///./packages/core-components/Table/TableRow/EditableTableRow.tsx","webpack:///./packages/core-components/Table/TableBody/TableBody.tsx","webpack:///./packages/core-components/Table/TableBody/SortableTableBody.tsx","webpack:///./packages/core-components/Table/TableBody/index.tsx","webpack:///./node_modules/@mui/material/esm/TablePagination/TablePaginationActions.js","webpack:///./node_modules/@mui/material/esm/TablePagination/tablePaginationClasses.js","webpack:///./node_modules/@mui/material/esm/TablePagination/TablePagination.js","webpack:///./packages/core-components/Table/TablePagination/TablePagination.tsx","webpack:///./packages/core-components/Table/TableToolbar/TableToolbar.tsx","webpack:///./packages/core-components/Table/Table.tsx","webpack:///./packages/core-components/Table/useTableSchema.tsx","webpack:///./packages/core-components/Table/useTableActions.tsx","webpack:///./packages/core-components/AddActionButton/AddActionButton.tsx","webpack:///./packages/core-asset-expiration/utils/assetExpirationToDateString.ts","webpack:///./packages/core-cms/services/settings/utils/hasUpdatedAttributesSystem.ts","webpack:///./packages/core-components/ColoredAvatar/index.tsx","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoEditorView.html","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoEditorOperationControlsView.html","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoEditorOperationControlView_dropdown.html","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoEditorOperationControlView_range.html","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoClipEditorView.html","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoEditorClipsView.html","webpack:///./build-targets/theme/packages/core-video-editor/templates/videoEditorClipView.html","webpack:///./packages/core-components/CountChip/CountChip.tsx","webpack:///./packages/core-components/hooks/useDocumentKeyDown.ts","webpack:///./packages/core-components/DeleteActionButton/DeleteActionButton.tsx","webpack:///./packages/core-user/utils/getUserLevel.ts","webpack:///./packages/core-components/DragResize/DragResize.tsx","webpack:///./packages/core-components/DragResize/dragResizeHandleClasses.ts","webpack:///./packages/core-components/FormDialog/FormDialog.tsx","webpack:///./node_modules/@mui/material/esm/Table/Tablelvl2Context.js","webpack:///./packages/core-attribute/validators/number.ts","webpack:///./packages/core-search-rules/rules/checkouts/constants.ts","webpack:///./packages/core-search-rules/rules/date/constants.ts","webpack:///./packages/core-search-rules/rules/keyword/constants.ts","webpack:///./packages/core-components/Chip/components/Skeleton/index.tsx","webpack:///./packages/core-search-rules/rules/visual/constants.ts","webpack:///./packages/core-app/models/progress.js","webpack:///./packages/core-components/hooks/useMediaQuery.ts","webpack:///./packages/core-video-editor/actions.js","webpack:///./packages/core-video-editor/menus.js","webpack:///./packages/core-video-editor/models/videoEditorOperation.js","webpack:///./packages/core-video-editor/collections/videoEditorOperationsStack.js","webpack:///./packages/core-video-editor/config.js","webpack:///./packages/core-video-editor/models/videoEditorVideo.js","webpack:///./packages/core-video-editor/views/videoEditorOperationControlView.js","webpack:///./packages/core-video-editor/collections/videoEditorOperations.js","webpack:///./packages/core-video-editor/views/videoEditorOperationControlsView.js","webpack:///./packages/core-video-editor/views/videoEditorOperationControlView_dropdown.js","webpack:///./packages/core-video-editor/views/videoEditorOperationControlView_range.js","webpack:///./build-targets/theme/packages/core-video-editor/views/videoEditorOperationControlsView.js","webpack:///./src/js/lib/videojs/videojs-netx-rangeslider.js","webpack:///./packages/core-video-editor/views/videoEditorView.js","webpack:///./build-targets/theme/packages/core-video-editor/views/videoEditorView.js","webpack:///./packages/core-video-editor/components/ClipAttributes/index.tsx","webpack:///./packages/core-video-editor/views/videoClipEditorView_attributes.js","webpack:///./packages/core-video-editor/views/videoEditorClipView.js","webpack:///./build-targets/theme/packages/core-video-editor/views/videoEditorClipView.js","webpack:///./packages/core-video-editor/views/videoEditorClipsView.js","webpack:///./build-targets/theme/packages/core-video-editor/views/videoEditorClipsView.js","webpack:///./packages/core-video-editor/views/videoClipEditorView.js","webpack:///./build-targets/theme/packages/core-video-editor/views/videoClipEditorView.js","webpack:///./packages/core-video-editor/routes.js","webpack:///./packages/core-video-editor/controller.js","webpack:///./packages/core-video-editor/index.js","webpack:///./packages/core-asset-expiration/constants.ts","webpack:///./packages/core-components/Chip/components/Skeleton/chipSkeletonClasses.ts","webpack:///./packages/core-components/Form/SelectField/components/ValueChip/index.tsx","webpack:///./packages/core-components/Form/hooks/useErrorFocus.ts","webpack:///./packages/core-asset/models/assetAttributeSet.js","webpack:///./packages/core-search-rules/rules/fileAspect/constants.ts","webpack:///./packages/core-components/ContextMenu/contextMenuClasses.ts","webpack:///./packages/core-components/ContextMenu/ContextMenu.tsx","webpack:///./packages/core-permissions/models/participant.js","webpack:///./packages/core-attribute/components/EditableAttribute/components/Date/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/MultiSelect/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/MetadataLookup/Lookup.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/Number/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/Select/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/Semantic/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/Tag/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/TagVocab/index.tsx","webpack:///./node_modules/@mui/icons-material/esm/VpnKey.js","webpack:///./node_modules/@mui/icons-material/esm/TrackChanges.js","webpack:///./packages/core-attribute/components/EditableAttribute/components/MetadataLookup/InputAdornment.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/Text/index.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/components/Action/ClearToggle.tsx","webpack:///./packages/core-attribute/components/EditableAttribute/EditableAttribute.tsx","webpack:///./packages/core-attribute/parsers/date.ts","webpack:///./packages/core-attribute/parsers/number.ts","webpack:///./packages/core-permissions/collections/participants.js","webpack:///./packages/core-asset/collections/singleton/index.ts","webpack:///./packages/core-components/ItemManager/constants.ts","webpack:///./packages/core-components/ItemManager/store/reducers.ts","webpack:///./packages/core-components/ItemManager/ItemManagerService.tsx","webpack:///./packages/core-components/ItemManager/store/actions.ts","webpack:///./packages/core-components/ItemManager/ItemManager.tsx","webpack:///./packages/core-components/ItemManager/ItemManagerSortableHandle.tsx","webpack:///./packages/core-components/ItemManager/ItemManagerItem.tsx","webpack:///./packages/core-components/ItemManager/ItemManagerSortableItem.tsx","webpack:///./node_modules/@tanstack/query-core/build/lib/logger.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/retryer.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/focusManager.esm.js","webpack:///./packages/core-attribute/api/metadataDatasetLookup.ts","webpack:///./packages/core-attribute/utils/parseValue.ts","webpack:///./packages/core-share/models/sharedResource.js","webpack:///./packages/core-attribute/hooks/useMetadataLookupsAllowed.ts","webpack:///./packages/core-components/DragResize/dragResizeClasses.ts","webpack:///./packages/core-components/DragResize/DragResizeHandle.tsx","webpack:///./packages/core-components/DragResize/useDragResize.ts","webpack:///./packages/core-components/FormDialog/formDialogClasses.ts","webpack:///./build-targets/theme/packages/core/functionality/collapsable.js","webpack:///./packages/core-attribute/components/Dropdown/index.tsx","webpack:///./packages/core-search-rules/rules/categoryId/constants.ts","webpack:///./packages/core-components/SearchFilter/searchFilterEndAdornmentClasses.ts","webpack:///./packages/core-components/SearchFilter/SearchFilterEndAdornment.tsx","webpack:///./packages/core-components/SearchFilter/searchFilterStartAdornmentClasses.ts","webpack:///./packages/core-components/SearchFilter/SearchFilterStartAdornment.tsx","webpack:///./packages/core-components/SearchFilter/SearchFilter.tsx","webpack:///./packages/core-components/SearchFilter/searchFilterClasses.ts","webpack:///./packages/core-permissions/properties/permissions.ts","webpack:///./packages/core-asset-expiration/enablers.ts","webpack:///./packages/core-attribute/components/index.ts","webpack:///./packages/core-attribute/hooks/useAttributes/index.ts","webpack:///./packages/core-search-rules/rules/contents/constants.ts","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./packages/core-components/hooks/useRpc.ts","webpack:///./packages/core-share/collections/sharedResources.js","webpack:///./node_modules/@mui/utils/esm/scrollLeft.js","webpack:///./packages/core-permissions/models/permissionParticipant.js","webpack:///./packages/core-permissions/collections/permissionsParticipants.js","webpack:///./packages/core-permissions/collections/permissions.js","webpack:///./packages/core-permissions/models/permissionResource.js","webpack:///./packages/core-components/Form/SelectField/components/ReadOnlyMultiSelect/index.tsx","webpack:///./packages/core-components/Form/SelectField/components/ReadOnlySelect/index.tsx","webpack:///./packages/core-components/ContextMenu/withContextMenu.tsx","webpack:///./packages/core-search-rules/rules/cart/constants.ts","webpack:///./packages/core-components/Confirmation/withConfirmation.tsx","webpack:///./packages/core-components/Form/NumberField/NumberField.tsx","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./packages/core-asset/properties/assetAttributesMetadata.js","webpack:///./packages/core-asset/models/assetConstituent_clip.js","webpack:///./packages/core-attribute/hooks/useMetadataLookups.ts","webpack:///./packages/core-search-rules/rules/fileFormat/constants.ts","webpack:///./packages/core-search-rules/rules/fileSize/constants.ts","webpack:///./packages/core-search-rules/rules/user/constants.ts","webpack:///./packages/core-share/collections/downloadOptions.js","webpack:///./node_modules/array-move/index.js","webpack:///./packages/core-share/models/downloadOption.js","webpack:///./packages/core-attribute/components/AttributeSkeleton/index.tsx","webpack:///./packages/core-asset/components/Attributes/Attribute/utils.ts","webpack:///./node_modules/@mui/material/styles/createTransitions.js","webpack:///./packages/core-attribute/components/ReadOnlyAttribute/index.tsx","webpack:///./packages/core-attribute/validators/date.ts","webpack:///./packages/core-attribute/validators/multi-select.ts","webpack:///./packages/core-attribute/validators/select.ts","webpack:///./packages/core-attribute/validators/tag.ts","webpack:///./packages/core-attribute/validators/semantic.ts","webpack:///./packages/core-attribute/validators/tag-vocab.ts","webpack:///./packages/core-attribute/validators/text.ts","webpack:///./packages/core-attribute/validators/textarea.ts","webpack:///./packages/core-attribute/validators/index.ts","webpack:///./packages/core-share/models/shareable.js","webpack:///./packages/core-asset/models/assetVersion.js","webpack:///./node_modules/@tanstack/query-core/build/lib/removable.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/onlineManager.esm.js","webpack:///./packages/core-search-rules/rules/advancedRaw/constants.ts","webpack:///./packages/core-search-rules/rules/attributeHistory/constants.ts","webpack:///./packages/core-search-rules/rules/expiration/constants.ts","webpack:///./packages/core-search-rules/rules/fileFormatFamily/constants.ts","webpack:///./packages/core-search-rules/rules/savedSearch/constants.ts","webpack:///./node_modules/@mui/material/esm/internal/svg-icons/KeyboardArrowLeft.js","webpack:///./node_modules/@mui/material/esm/internal/svg-icons/KeyboardArrowRight.js","webpack:///./node_modules/@mui/material/esm/Table/TableContext.js","webpack:///./packages/core-attribute/components/Action/Search.tsx","webpack:///./packages/core-attribute/containers/Attribute/index.tsx","webpack:///./node_modules/@tanstack/query-core/build/lib/mutation.esm.js","webpack:///./node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/QueryClientProvider.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/utils.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.esm.js","webpack:///./build-targets/theme/packages/core/functionality/resizable.js","webpack:///./node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/isRestoring.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/useBaseQuery.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/suspense.esm.js","webpack:///./node_modules/@tanstack/react-query/build/lib/errorBoundaryUtils.esm.js","webpack:///./packages/core-asset/collections/attributeDatum.js","webpack:///./packages/core-asset/models/assetAttributeData.js","webpack:///./packages/core-asset/collections/assetAttributeDatum.js","webpack:///./packages/core-permissions/models/permission.js","webpack:///./packages/core-attribute/formatters/base.ts","webpack:///./packages/core-attribute/formatters/date.ts","webpack:///./packages/core-attribute/formatters/multi-select.ts","webpack:///./packages/core-attribute/formatters/number.ts","webpack:///./packages/core-attribute/formatters/select.ts","webpack:///./packages/core-attribute/formatters/tag.ts","webpack:///./packages/core-attribute/formatters/semantic.ts","webpack:///./packages/core-attribute/formatters/tag-vocab.ts","webpack:///./packages/core-attribute/formatters/text.ts","webpack:///./packages/core-attribute/formatters/textarea.ts","webpack:///./packages/core-attribute/formatters/index.ts","webpack:///./packages/core-components/Confirmation/ConfirmationDialog.tsx","webpack:///./packages/core-components/DragResize/index.ts","webpack:///./packages/core/lib/netx-query-dam.ts","webpack:///./packages/core-components/Form/ErrorField/ErrorField.tsx","webpack:///./packages/core-components/Form/DateField/DateField.tsx","webpack:///./packages/core-components/Form/hooks/useForm.ts","webpack:///./packages/core-components/Form/hooks/useFormInput.ts","webpack:///./packages/core-data-set/constants.ts","webpack:///./packages/core-attribute/constants.ts","webpack:///./packages/core-asset/models/attributeData.js","webpack:///./packages/core-components/Drawer/Fallback.tsx","webpack:///./packages/core-cms/services/settings/locales.ts","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./packages/core-components/util.ts","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./packages/core-asset/properties/attributes.js","webpack:///./node_modules/@fortawesome/pro-light-svg-icons/index.es.js","webpack:///./node_modules/@mui/material/esm/internal/svg-icons/LastPage.js","webpack:///./node_modules/@mui/material/esm/internal/svg-icons/FirstPage.js","webpack:///./packages/core-components/IconButton/iconButtonClasses.ts","webpack:///./packages/core-components/IconButton/IconButton.tsx","webpack:///./packages/core-components/hooks/useWhenChangedEffect.ts","webpack:///./packages/core-components/hooks/useSharedRef.tsx","webpack:///./packages/core-components/index.ts","webpack:///./node_modules/axios/lib/utils.js","webpack:///./packages/core-asset/collections/assetAttributeSets_.js","webpack:///./packages/core-asset/collections/assetAttributeSets_system.js","webpack:///./packages/core-asset/collections/assetAttributeSets_user.js","webpack:///./packages/core-asset/collections/assetAttributeSets_filter.js","webpack:///./packages/core-asset/collections/assetAttributeSets.js","webpack:///./packages/core-cms/services/settings/utils/getAttributesIdsForContext.ts","webpack:///./packages/core-cms/services/settings/utils/brandPortalToSettingsData.ts","webpack:///./packages/core-cms/services/settings/utils/getBrandPortalDataForModel.ts","webpack:///./packages/core-cms/services/settings/utils/settingsDataToBrandPortal.ts","webpack:///./packages/core-asset/properties/assetSets.js","webpack:///./packages/core-asset/models/assetAttributeSet_system.js","webpack:///./packages/core-asset/models/assetAttributeSet_user.js","webpack:///./packages/core-components/Form/SelectField/index.tsx","webpack:///./node_modules/use-sync-external-store/shim/index.js","webpack:///./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack:///./node_modules/invariant/browser.js","webpack:///./packages/core-asset/views/assetConstituentView.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./packages/core-components/hooks/useDragResizeElement.tsx","webpack:///./packages/core-components/hooks/useLoading.ts","webpack:///./packages/core-components/hooks/useMemoCompare.ts","webpack:///./packages/core-components/hooks/usePrevious.ts","webpack:///./packages/core-components/hooks/useRefState.ts","webpack:///./node_modules/@tanstack/query-core/build/lib/queryObserver.esm.js","webpack:///./packages/core-asset/models/assetSet.js","webpack:///./packages/core-components/Chip/Chip.tsx","webpack:///./node_modules/@webcomponents/custom-elements/custom-elements.min.js"],"names":["attributes","AttributesCollection","listenTo","dispatcher","model","isNew","this","add","sort","attributeHistoryCompletion","autocompletions","attributeHistory","on","_","debounce","data","filterByHistory","map","attr","label","getLabel","value","id","assetAttributes","filterByObjectType","clipAttributes","attributesChanged","set","models","merge","trigger","isEmpty","changed","collection","ConfirmationServiceProvider","FALLBACK_MESSAGE_CLASS_NAME","getFallbackMessageUtilityClass","slot","generateUtilityClass","fallbackMessageClasses","generateUtilityClasses","FallbackMessageRoot","styled","name","theme","alignItems","background","palette","paper","flex","display","flexDirection","justifyContent","minHeight","overflow","padding","spacing","textAlign","width","light","icon","SEVERITIES","reduce","accum","key","color","main","FallbackMessageIcon","FontAwesomeIcon","custom","onBackground","height","marginBottom","FallbackMessageBody","text","secondary","FallbackMessageHeader","primary","FallbackMessageText","Typography","FallbackMessageChildren","marginTop","FallbackMessage","children","className","message","title","classes","ownerState","severity","variant","slots","root","body","header","composeClasses","useUtilityClasses","_icon","_message","clsx","gutterBottom","React","memo","currentUserMeetsUserLevel","userLevel","getUserLevel","Button","forwardRef","ref","disabled","props","console","warn","undefined","withStyles","createStyles","outlined","contained","getButtonSeverityStyles","isServer","window","noop","functionalUpdate","updater","input","isValidTimeout","Infinity","timeUntilStale","updatedAt","staleTime","Math","max","Date","now","parseQueryArgs","arg1","arg2","arg3","isQueryKey","queryKey","queryFn","parseMutationArgs","mutationKey","mutationFn","parseFilterArgs","matchQuery","filters","query","type","exact","fetchStatus","predicate","stale","queryHash","hashQueryKeyByOptions","options","partialMatchKey","isActive","isStale","state","matchMutation","mutation","fetching","hashQueryKey","status","queryKeyHashFn","JSON","stringify","val","isPlainObject","Object","keys","result","a","b","partialDeepEqual","some","replaceEqualDeep","array","isPlainArray","aSize","length","bItems","bSize","copy","equalItems","i","shallowEqualObjects","Array","isArray","o","hasObjectPrototype","ctor","constructor","prot","prototype","hasOwnProperty","toString","call","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","callback","then","getAbortController","AbortController","replaceData","prevData","isDataEqual","structuralSharing","useUpdateEffect","effect","dependencies","isInitialMount","useRef","useEffect","current","ActionButton","onClick","onKeyDown","size","tabIndex","checked","ComponentProps","handleClick","useCallback","event","persist","preventDefault","commonProps","IconButton","MenuItem","button","role","ListItemIcon","menuIconWrapper","fixedWidth","ListItemText","ToggleButton","onToggle","IconProps","startIcon","displayName","minWidth","SelectFieldRoot","overridesResolver","styles","selectFieldClasses","multiple","inputLabelClasses","lineHeight","inputBaseClasses","shrink","transform","ListItemIconRoot","selectedIcon","AutocompleteRoot","Autocomplete","autocomplete","PopperRoot","Popper","autocompleteClasses","loading","noOptions","renderGroup","params","group","ListSubheader","component","SelectFieldInner","error","form","formFieldOptions","hideErrorMessage","labelKey","loadingValue","onChange","onSearch","optionLabels","readOnly","required","AutocompleteProps","_classes","sendProps","getSelectFieldUtilityClass","inputRef","fixedSizeListRef","useFormInput","useErrorFocus","getOptionLabel","option","handleChange","filter","setValue","renderInput","Input","inputProps","autoComplete","InputProps","renderOption","ListItem","secondaryAction","selected","faCheck","primaryTypographyProps","noWrap","renderTags","values","getTagProps","Chip","count","getSafeValues","index","ValueChip","autoHighlight","blurOnSelect","clearOnBlur","disableClearable","selectOnFocus","disableCloseOnSelect","handleHomeEndKeys","noOptionsText","i18n","t","openOnFocus","ListboxComponent","ListBox","PopperComponent","ListboxProps","SelectFieldPrimitive","SelectField","compareProps","PrimaryTitle","SkeletonProps","Skeleton","SecondaryTitlePrimitive","sekeleton","style","maxWidth","paragraph","SecondaryTitle","mode","TITLE_CLASS_NAME","getTitleUtilityClass","titleClasses","TitleRoot","TitleIcon","borderRadius","fontSize","marginRight","TitleIconArea","TitleTitleArea","TitlePrimitive","actionButton","PrimaryTitleProps","SecondaryTitleProps","iconArea","titleArea","Title","INPUT_FORM_KEYS","getInputFormObject","fromEntries","entries","includes","isEmptyValue","valuesMatch","currentValue","originalValue","multipleValues","join","match","replace","usePlaceholder","attrData","defaultPlaceholder","modifiers","cleared","disable","getPlaceholder","isMultipleField","ATTRIBUTE_MULTIPLE_VALUE_TYPES","placeholder","setPlaceholder","useState","getSnackbarContentUtilityClass","_excluded","SnackbarContentRoot","Paper","emphasis","backgroundColor","default","typography","body2","vars","SnackbarContent","getContrastText","bg","flexWrap","shape","flexGrow","breakpoints","up","SnackbarContentMessage","SnackbarContentAction","action","marginLeft","paddingLeft","inProps","useThemeProps","other","square","elevation","getSnackbarUtilityClass","_excluded2","SnackbarRoot","capitalize","anchorOrigin","vertical","horizontal","zIndex","snackbar","position","left","right","top","bottom","useTheme","defaultTransitionDuration","enter","transitions","duration","enteringScreen","exit","leavingScreen","autoHideDuration","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","onBlur","onClose","onFocus","onMouseEnter","onMouseLeave","open","resumeHideDuration","TransitionComponent","Grow","transitionDuration","TransitionProps","onEnter","onExited","timerAutoHide","exited","setExited","handleClose","useEventCallback","args","setAutoHideTimer","autoHideDurationParam","clearTimeout","handlePause","handleResume","addEventListener","removeEventListener","document","handleKeyDown","nativeEvent","defaultPrevented","ClickAwayListener","onClickAway","appear","in","direction","node","isAppearing","TransitionUp","Slide","Snackbar","isOpen","setIsOpen","reason","handleAlertClose","stopPropagation","ReactDOM","createPortal","cursor","Alert","SnackbarServiceContext","createContext","useSnackbar","useContext","SnackbarServiceProvider","snackbarOpen","setSnackbarOpen","snackbarState","setSnackbarState","nextSnackbarStateRef","lastSnackbarStateRef","handleExited","handleOpenSnackbar","Provider","withSnackbar","Component","Attribute","Base","rpc","url","Netx","URL","api","idAttribute","titleAttribute","defaults","attributeid","groupIds","facet","hasPermissions","imageid","keyDatasets","objectTypes","mandatory","modDate","multivalue","orderby","permissioned","pulldownOptions","restrictedUserLevel","semanticTypeId","spec1","spec2","targetDatasets","templateid","trackHistory","userid","attributeOptions","vocabulary","clientAttrs","methods","remove","create","opts","self","update","read","get","getAttributeVocabulary","metadataDatasetLookup","parsers","matches","attrs","resourceName","super","multivalueTypes","nativeMultivalueTypes","clone","omit","permission","resource","fetch","addObjectType","objectType","contains","$","Deferred","save","concat","extend","wait","allows","perm","has","format","truncateAt","parseInValue","substr","getAttributeOptions","attrOptions","caption","dontEscape","systemAttr","systemAttributes","find","escape","getMetadataSynced","asset","metadataSync","exportIdx","indexOf","metadataMap","exportIds","importIdx","importIds","export","exportValues","import","importValues","syncTypeOptions","regex","syncMap","v","schemaPrefix","split","schema","findWhere","metadata","optionValue","valueOptions","typeOptions","getOptions","getSafeName","toCamelCase","getSortFieldName","escapeAttributeName","getTypeId","typeIds","getTypeLabel","typeLabels","getTypeName","types","getValue","historyEnabled","getPreference","hasDefaultValue","invalid","validator","isAppendable","isFlexible","isForObjectType","isMandatory","isNativeMultivalue","parseInt","isTrueMultivalue","isValueWritable","editable","metadataLookup","duplicateQueryPolicy","compact","parseAndSave","each","isNaN","csvToArray","parsed","pick","trim","supportsFacets","typeName","updatableFields","push","apply","parseOutValue","isUndefined","isNull","isObject","isString","isCSV","permissionsEnabled","removeObjectType","without","setTypeName","Error","isNumber","facetAttributeSupport","toggleMandatory","toggleFacet","trackingHistory","__name__","StyledListItemIcon","AutoListOption","avatar","uncontrolled","ListItemAvatar","Avatar","ColoredAvatar","PlusIcon","paddingRight","AutoListSelection","getValueLabel","uncontrolledValues","_getValueLabel","uncontrolledValue","noInput","noMatches","isValidQueryInput","isInValue","toLowerCase","AutoListFieldInner","additionalOptions","clearOnClose","flexible","hideLabel","onLookup","testValueContainsInput","testValueContainsOption","_value","inputValue","setInputValue","isLoading","setIsLoading","setOpen","setOptions","searchInput","setSearchInput","setUncontrolledValue","setUncontrolledValues","useWhenChangedEffect","executeAtMount","Set","testValueCb","testValueOptionCb","testOptionsContainInputCb","newUncontrolledValues","addToArrayUnique","handleFilterOptions","unshift","handleLookup","async","str","results","uniqueArray","handleInputChange","IGNORE_INPUT_CHANGE_EVENTS","handleBlur","handleOpen","Option","Selection","labelHidden","filterOptions","filterSelectedOptions","locales","onInputChange","onOpen","AutoListFieldPrimitive","AutoListField","textOverflow","refresh","paddingTop","AssetConstituents_","xhrTrackProgress","k","reset","ucfirst","slice","AssetConstituent_Keyframe","AssetConstituent_Layer","AssetConstituent_Page","pageNumber","page","ConsituentCollections","clips","Model","keyframes","layers","pages","searchPDFPages","filtered","assetId","idx","originalPages","d","clearSearch","AssetConstituents","subCollection","displayed","properties","constituentProps","thing","things","xhr","silent","resp","addSubCollection","Asset","xhrExcludeProgress","alphaChannel","attributeIds","attributeNames","attributeValues","bitDepth","categories","categoryid","categoryPaths","checkout","checkoutUserLabel","colorProfile","constituentIds","constituentType","creationdate","description","dpi","expirationDate","file","fileFormatFamily","fileheight","fileSize2","filetype","filetypelabel","filewidth","flvPreview","geoLocationLabel","importDate","importUserLabel","inCurrentCart","latitude","locationContext","locationid","longitude","moddate","moduserid","moduserlabel","metadataAvailable","path","permissionMatrix","previewHeight","previewUrl","previewWidth","proofAvailable","rating","relatedAvailable","repurposeAvailability","reviewAvailable","statDeliveries","statPreviews","templatable","templateCustomizable","thumbUrl","versionIds","viewIds","viewNames","visible","zoomAvailable","attribute1","attribute2","attribute3","attribute4","attribute5","attribute6","attribute7","attribute8","attribute9","attribute10","attribute11","attribute12","attribute13","attribute14","attribute15","attribute16","attribute17","attribute18","attribute19","attribute20","hasChildren","parentId","activatingTemplate","deactivatingTemplate","audioUrl","videoUrl","zoomUrl","expireAsset","importAsset","reserve","addCategory","setAssetCategoryLink","link","response","resolveWith","reject","promise","removeCategory","linkCategory","setCategory","setCategories","repurpose","manualRepurpose","repurposeOtherIds","repurposeMethods","repurposeValues","resync","assetInCurrentCart","_getCarts","cancelCheckout","checkPendingTasks","checkStatus","getConstituents","getProcessListForUser","recordViewed","makeZoomTiles","activateAdBuilderTemplate","deactivateAdBuilderTemplate","uuid","batchJob","trackBatchJob","completed","cat","cats","linkCategories","log","ids","deleteWait","importAttributes","collisionStrategy","fail","rename","messageType","objectContext","repurposeId","repurposeDownloadOverride","version","AssetVersionModel","addSubModel","setMediaUrls","setChecksum","progress","ProgressModel","constituents","AssetConstituentsCollection","clear","versions","creationDate","fileSize","fileTypeId","fileTypeLabel","userId","userLabel","oldAssetId","_previousAttributes","setupCustomThumbnailListeners","setupAssetTaskListeners","template","m","cid","progressMessage","complete","clip","setupAssetCheckinListeners","parse","hasAudio","hasVideo","hasZoom","validate","canZoom","isImage","expire","dateStr","expirationTime","userInputToExpirationTime","ex","fetchConstituents","garbageCollect","getAttribute","templateId","attrModel","getSystemAttribute","getAttributeId","getAttributeValue","attrName","getTokenString","token","getToken","getWaveformJSON","getJSON","json","tokenStr","hasFormatFamily","hasMultimedia","setAttribute","arrayToCsv","attributePermissions","stopListening","delay","bind","newVersion","task","tempIconPattern","previewNow","patienceExhausted","timesPolled","pollUntil","realProgress","tasks","importTasks","eventPrefix","updating","pluploader","percent","checksumEnabled","unexpire","setCombo","vals","getCombo","moveCategory","from","to","forEach","catId","isDocument","isPDF","isLocked","lock","toAssetSet","AssetSetModel","assetSetTypes","unlock","cacheBuster","prefix","dateFromAsset","getTime","bumpModdate","date","dateToAsset","matrixIndex","matrixNames","cacheInMediaRich","mediarichCacheUrl","encodeURIComponent","session","ajax","responseJSON","responseText","jqXHR","SUBMIT_BUTTON_CLASS_NAME","getSubmitButtonUtilityClass","submitButtonClasses","SubmitButtonRoot","fullWidth","iconOnly","submitting","opacity","SubmitButtonButton","transition","SubmitButtonProgress","LinearProgress","SubmitButtonPrimitive","showWorking","SaveIcon","SubmitButton","getTextFieldUtilityClass","textFieldClasses","getStyledTextFieldUtilityClass","styledTextFieldClasses","StyledTextFieldRoot","MuiTextField","textarea","inherit","outlinedInputClasses","focused","notchedOutline","borderColor","LoadingRoot","CircularProgress","strokeWidth","StyledTextFieldPrimitive","multiline","endAdornment","StyledTextField","TextFieldRoot","TextFieldPrimitive","target","TextField","ReadOnlyTextField","assetExpires","moment","endOf","utc","tomorrow","valueOf","isValid","useQuery","parsedOptions","Tooltip","_open","listener","throttle","toggleOpen","disableInteractive","AssetConstituent","lowresUrl","rebuildType","rebuildCount","setDisplay","getAttributesByObjectType","currentAsset","arguments","canCreateLink","canEmail","typeNames","AudioTask","FFFViewTask","INDDPageTask","IWorkPageTask","KeyframesTask","MetadataTask","OfficePageTask","PDFPageTask","PostImportTask","PreviewTask","RelatedAssetTask","SWFTask","ThumbnailTask","VideoPreviewTask","WatermarkTask","ZoomTask","renderableChanges","UNKNOWN","ONLINE","NEARLINE","OFFLINE","TEMP","CHECKOUT","IMPORT_IN_PROGRESS","enableTest","notMobile","constituents_keyframes","constituents_layers","constituents_pages","detail","matrix","fileinfo","links","overview","permissions","preview","projects","publicLinks","reviews","usage","views","config","abortSignalConsumed","defaultOptions","observers","cache","logger","initialState","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","getDefaultState","meta","updateCacheTime","cacheTime","optionalRemove","setData","newData","dispatch","manual","setState","setStateOptions","cancel","_this$retryer","retryer","catch","destroy","observer","enabled","isDisabled","getObserversCount","getCurrentResult","isStaleByTime","_this$retryer2","x","shouldFetchOnWindowFocus","refetch","cancelRefetch","continue","onOnline","_this$retryer3","shouldFetchOnReconnect","addObserver","clearGcTimeout","notify","removeObserver","revert","cancelRetry","scheduleGc","invalidate","fetchOptions","_this$options$behavio","_context$fetchOptions","_this$retryer4","continueRetry","abortController","queryFnContext","pageParam","addSignalProperty","object","defineProperty","enumerable","signal","context","fetchFn","_context$fetchOptions2","behavior","onFetch","revertState","onError","_this$cache$config$on","_this$cache$config","isFetchingOptimistic","fn","abort","onSuccess","_this$cache$config$on2","_this$cache$config2","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","_action$meta","_action$dataUpdatedAt","reducer","batch","onQueryUpdate","queries","queriesMap","build","client","_options$queryHash","getLogger","defaultQueryOptions","getQueryDefaults","queryInMap","getAll","findAll","listeners","mutations","mutationId","mutationCache","defaultMutationOptions","getMutationDefaults","resumePausedMutations","pausedMutations","isPaused","queryCache","queryDefaults","mutationDefaults","mount","unsubscribeFocus","subscribe","isFocused","unsubscribeOnline","isOnline","unmount","_this$unsubscribeFocu","_this$unsubscribeOnli","isFetching","isMutating","getQueryData","_this$queryCache$find","ensureQueryData","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","cancelOptions","promises","all","invalidateQueries","_ref","_filters$refetchType","refetchType","_options$cancelRefetc","refetchPage","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","firstMatchingDefaults","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","Sorter","field","order","sortableFields","GetDefaults","sortableOrders","sorter","preferredFetchMethod","getSortDTO","setSort","getTableCellUtilityClass","TableCellRoot","align","stickyHeader","verticalAlign","borderBottom","TableCell","border","divider","pxToRem","fontWeight","fontWeightMedium","paddingCheckbox","componentProp","paddingProp","scope","scopeProp","sizeProp","sortDirection","variantProp","table","TableContext","tablelvl2","Tablelvl2Context","isHeadCell","ariaSort","as","getTableHeadUtilityClass","TableHeadRoot","defaultComponent","getTableRowUtilityClass","TableRowRoot","head","footer","outline","hover","mainChannel","selectedOpacity","hoverOpacity","getTableBodyUtilityClass","TableBodyRoot","getTableUtilityClass","TableRoot","borderCollapse","borderSpacing","captionSide","AssetConstituentView_Clip","Template","Plugins","Register","tooltip","dataAlias","container","bindModelEvents","debouncedRender","showProgress","hideProgress","preRender","Destroy","templateVars","getDuration","previewModUrl","prettyRange","getPrettyRange","thumbModUrl","postRender","$progress","$progressBar","$progressBarSr","$progressMessage","$tooltip","Initialize","$el","removeClass","hide","css","html","keyframeProgress","addClass","show","unbindModelEvents","icons","initializeIcons","faArrowDown","faPencilAlt","faTrashAlt","UPGRADED_FEATURES","GOO_SETTING_KEYS","SETTING_KEYS","ATTRIBUTE_CONTEXT","DETAIL","SORT","DEFAULT_ATTRIBUTE_IDS","ATTRIBUTE_SYSTEM_ID","ATTRIBUTE_SYSTEM","NAME","FILE_SIZE_2","FILE_TYPE_LABEL","DIMENSIONS","ENFORCE_ATTRIBUTE_IDS","FILE","limitHeightToContainer","wrapLabel","pseudoValue","displayLabel","useMemo","displayValue","mixins","margin","maxHeight","scrollable","whiteSpace","readOnlyLabel","wordBreak","skeleton","Attribute_Date","attributeTypeIds","assetExpirationToDateString","dateToHTML","padStart","search","Attribute_Multiselect","multiselect","parseNumber","locale","navigator","language","example","Intl","NumberFormat","cleanPattern","RegExp","charAt","normalized","parseFloat","n","s","useGrouping","dp","Attribute_Number","number","noLocale","maxDecimal","numberTypes","toLocaleString","maximumFractionDigits","toFixed","minimumFractionDigits","bytes","decimalPlaces","Number","valid","numberType","maxLength","decimalIndex","decimalCount","substring","whatDecimalSeparator","decimals","getDecimalCount","Attribute_Select","select","Attribute_Tag","tag","Attribute_Text","parsedInValue","parseURL","truncatedValue","urls","cutoffUrl","c","valLength","lastIndexOf","parseURLS","Models","base","BaseModel","DateModel","MultiselectModel","NumberModel","SelectModel","semantic","TagModel","tagVocab","TextModel","getPortal","isPortal","cms","portal","Attributes","xhrLoadingMessages","getAttributeTemplates","getMetadataMapJson","xhrLoadedMessages","modelId","omitSystem","pluck","comparator","attrA","attrB","detailAttributes","hasUpdatedAttributesSystem","aIndex","bIndex","keepAlphabetical","aName","bName","aOrderby","bOrderby","categoryIds","getAttributeTemplatesForCategoryContext","when","getMetadata","getMetadataMap","getAllAttributeIds","getAttributeObjects","writableOnly","getDataSetList","_getMetadataMap","setAttributeTemplateOrder","_setMetadataMap","metadataMapArgs","parseAndCorrect","datasets","filteredAttrs","assetExpirationEnabled","system","exportImagePortalBlockOnProcess","exportImagePortalBlockOnSave","modUserId","attributeAdded","attributeChanged","attributeRemoved","deleteAttributes","deleteMultiple","attribute","filterByTypes","editableOnly","editableSystemAttributes","isNumeric","where","getAttributeDatum","defaultValues","attributeDatum","AssetAttributeDatumCollection","record","at","addAttribute","getIdByName","getMandatory","withoutDefaultValues","withoutSystem","getSystemAttributes","hasMandatory","list","names","updatedVocabulary","vocabularyId","vocabularyAttributes","attributeModifySyncMetadata","syncMetadataType","syncMetadataSchema","validDirections","syncMetadataValue","splice","setMetadataMap","attributeRemoveSyncMetadata","isEqual","notifyManager","queue","transactions","notifyFn","batchNotifyFn","schedule","flush","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","SearchMatchCriteria","SearchSortOrder","DEFAULT_SEARCH_SORT_FIELD","DEFAULT_SEARCH_SORT_ORDER","ASC","DEFAULT_SEARCH_MATCH_CRITERIA","AND","MetadataSubType1","NON_SORTABLE_SEARCH_TYPES","SearchType","CUSTOM","VISUAL","SEARCH_SORT_SYSTEM_ATTRIBUTES","checksum","expireDate","dimensions","SALO_STRING_MAP","ACTIVE_TEMPLATES","ADVANCED_RAW","ATTRIBUTE_HISTORY","CART","CATEGORY_ID","CATEGORY_NAME","CHECKOUTS","CONTENTS","DATE","FILE_ASPECT","FILE_FORMAT","FILE_FORMAT_FAMILY","FILE_SIZE","KEYWORD","METADATA","SAVED_SEARCH","THESAURUS","e","f","g","h","easeInOutSin","time","sin","PI","getTabScrollButtonUtilityClass","_KeyboardArrowLeft","_KeyboardArrowRight","TabScrollButtonRoot","ButtonBase","orientation","flexShrink","isRtl","KeyboardArrowLeft","KeyboardArrowRight","getTabsUtilityClass","nextItem","item","firstChild","nextElementSibling","previousItem","lastChild","previousElementSibling","moveFocus","currentFocus","traversalFunction","wrappedOnce","nextFocus","nextFocusDisabled","hasAttribute","focus","TabsRoot","scrollButtons","scrollButtonsHideMobile","WebkitOverflowScrolling","down","TabsScroller","scroller","fixed","hideScrollbar","scrollableX","scrollableY","overflowX","scrollbarWidth","overflowY","FlexContainer","flexContainer","flexContainerVertical","centered","TabsIndicator","indicator","indicatorColor","TabsScrollbarSize","scrollbarHeight","nodeRef","setMeasurements","offsetHeight","clientHeight","handleResize","prevHeight","containerWindow","ownerWindow","defaultIndicatorStyle","ariaLabel","ariaLabelledBy","childrenProp","allowScrollButtonsMobile","ScrollButtonComponent","selectionFollowsFocus","TabIndicatorProps","TabScrollButtonProps","textColor","visibleScrollbar","scrollStart","start","end","clientSize","mounted","setMounted","indicatorStyle","setIndicatorStyle","displayScroll","setDisplayScroll","scrollerStyle","setScrollerStyle","valueToIndex","Map","tabsRef","tabListRef","getTabsMeta","tabsNode","tabsMeta","tabMeta","rect","getBoundingClientRect","clientWidth","scrollLeft","scrollTop","scrollLeftNormalized","scrollWidth","tab","updateIndicatorState","startIndicator","startValue","correction","newIndicatorStyle","dStart","abs","dSize","scroll","scrollValue","animation","property","element","cb","ease","cancelled","step","timestamp","min","requestAnimationFrame","animate","standard","moveTabsScroll","delta","getScrollSize","containerSize","totalSize","handleStartScrollClick","handleEndScrollClick","handleScrollbarSizeChange","scrollSelectedIntoView","nextScrollStart","updateScrollButtonState","scrollHeight","showStartScroll","showEndScroll","win","resizeObserver","ResizeObserver","child","observe","disconnect","handleTabsScroll","updateIndicator","updateScrollButtons","childIndex","childValue","conditionalElements","scrollbarSizeListener","scrollButtonsActive","showScrollButtons","scrollButtonStart","scrollButtonEnd","getConditionalElements","onScroll","ownerDocument","activeElement","previousItemKey","nextItemKey","MuiTabs","TabsPrimitive","tabs","useTabsProvider","activeTabIndex","Tabs","useTabs","afterChange","beforeChange","setActiveTabIndex","setTab","TabsContext","TabsProviderInner","useImperativeHandle","TabsProviderPrimitive","TabsProvider","module","exports","obj","__t","__p","__j","print","keyframeReady","getSemanticObjectAutoList","requestParams","NetxQueryDam","post","metadataAutoCompleteLookup","metadataDatasetAutoList","vocabularyValueLookup","resize","overriden","raf","attachEvent","stylesCreated","jQuery_resize","jQuery","addResizeListener","removeResize","removeResizeListener","requestFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","cancelFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","resetTriggers","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","offsetWidth","checkTriggers","__resizeLast__","scrollListener","__resizeRAF__","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","elm","createElement","animationName","animationKeyframes","animationStyle","getElementsByTagName","styleSheet","cssText","appendChild","createTextNode","getComputedStyle","innerHTML","detachEvent","removeChild","factory","ACTION_MENU_CLASS_NAME","getActionMenuUtilityClass","actionMenuClasses","ActionMenuSkeleton","fab","onActionDefault","ActionMenu","actions","alwaysUseEllipsis","buttonVariant","ActionButtonProps","onAction","anchorEl","setAnchorEl","handleShowClick","currentTarget","handleActionClick","buttonTitle","EllipsisIcon","onContextMenuCapture","Divider","colorAvatar","ContextMenuServiceProvider","assetCanRepurpose","isMobile","getViewModel","supported","assetIsPresent","assetCanReview","assetHasConstituents_clips","assetHasClips","assetHasConstituents_keyframes","assetHasConstituents_layers","assetHasConstituents_pages","assetHasDetail","assetHasLinks","assetHasMetadata","assetHasPreview","assetHasProjects","assetHasReviews","assetHasVersions","assetIsEditable","assetData","AssetModel","canEdit","assetHasViews","assetIsImage","stat","assetStatuses","assetNotCheckedOut","getViewCollection","assetNotPending","pending","assetRequestsEnabled","canCheckIn","checkedOutBy","getUser","canCheckOut","canDeleteAttribute","canDownloadVersion","canEditAttribute","canLock","canManageVersions","canRemoveAssetFromCategory","canUnlock","canZoomAsset","semanticsEnabled","canUnexpire","SearchTypeAdvancedRaw","SearchTypeAttributeHistory","SearchTypeCart","SearchTypeCategoryId","SearchTypeCheckouts","SearchTypeContents","SearchTypeDate","SearchTypeExpiration","SearchTypeFileAspect","SearchTypeFileFormat","SearchTypeFileFormatFamily","SearchTypeFileSize","SearchTypeKeyword","SearchTypeMetadata","SearchTypeSavedSearch","SearchTypeUser","SearchTypeVisual","EditableRuleTypes","USER","MENU_ITEM_CLASS_NAME","getMenuItemUtilityClass","menuItemClasses","MenuItemRoot","MuiMenuItem","severityError","contrastText","dark","MenuItemIcon","MenuItemColorAvatar","secondaryText","unstable_capitalize","actionChangesValue","ATTRIBUTE_ACTION","CLEAR","APPEND","REMOVE","getAttributeComponent","TextAttribute","SelectAttribute","DateAttribute","MultiSelectAttribute","TagAttribute","NumberAttribute","SemanticAttribute","TagVocabAttribute","getTemplatesEffectedByLookup","attributeTemplate","attributeTemplates","attributesWorking","isSystemAttribute","normalizeValue","PERMISSION_MATRIX_NAMES","_slicedToArray","arr","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","unsupportedIterableToArray","TypeError","_defineProperty","toPropertyKey","configurable","writable","_objectSpread","source","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_classCallCheck","instance","Constructor","_possibleConstructorReturn","assertThisInitialized","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_inherits","subClass","superClass","Manager","refs","getIndex","active","_this","sortableInfo","sortByIndex","_ref2","_ref3","keysToOmit","acc","events","move","vendorPrefix","documentElement","pre","OLink","toUpperCase","setInlineStyles","setTranslate3d","translate","y","setTransitionDuration","closest","el","parentNode","limit","getPixelValue","stringValue","getElementMargin","provideDisplayName","Component$$1","componentName","getScrollAdjustedBoundingClientRect","scrollDelta","boundingClientRect","getPosition","touches","pageX","pageY","changedTouches","isTouchEvent","getEdgeOffset","parent","offset","nodeOffset","offsetLeft","offsetTop","getTargetIndex","newIndex","prevIndex","oldIndex","getLockPixelOffset","lockOffset","offsetX","offsetY","unit","exec","isFinite","getLockPixelOffsets","offsets","_offsets","minLockOffset","maxLockOffset","getScrollingParent","HTMLElement","computedStyle","overflowRegex","test","isScrollable","getContainerGridGap","gridColumnGap","gridRowGap","KEYCODE","NodeType","cloneNode","selector","fields","querySelectorAll","clonedNode","tagName","getContext","drawImage","sortableHandle","WrappedComponent","_class","_temp","withRef","_React$Component","WithSortableHandle","wrappedInstance","isSortableHandle","AutoScroller","onScrollCallback","interval","clearInterval","minTranslate","maxTranslate","speed","acceleration","_this$container","isTop","isBottom","isLeft","isRight","isAutoScrolling","setInterval","propTypes","axis","oneOf","contentWindow","any","disableAutoscroll","bool","distance","getContainer","func","getHelperDimensions","helperClass","string","helperContainer","oneOfType","instanceOf","hideSortableGhost","keyboardSortingTransitionDuration","lockAxis","arrayOf","lockToContainerEdges","onSortEnd","onSortMove","onSortOver","onSortStart","pressDelay","pressThreshold","keyCodes","lift","drop","shouldCancelStart","updateBeforeSortStart","useDragHandle","useWindowAsScrollContainer","defaultKeyCodes","defaultProps","contentEditable","omittedProps","validateProps","_finallyRethrows","finalizer","sortableContainer","WithSortableContainer","_this$props","touched","nodeIsChild","sorting","_node$sortableInfo","manager","handlePress","pressTimer","_this$props2","_awaitingUpdateBeforeSortStart","combinedDelta","cancelTimer","getActive","_temp6","_temp7","_node","gridGap","containerBoundingRect","scrollContainer","_getHelperDimensions","_collection","marginOffset","_axis","offsetEdge","initialOffset","_isKeySorting","initialScroll","initialWindowScroll","pageXOffset","pageYOffset","helper","boxSizing","pointerEvents","_hideSortableGhost","sortableGhost","visibility","_useWindowAsScrollContainer","innerWidth","innerHeight","containerTop","containerLeft","containerWidth","containerBottom","containerRight","_helperClass","classList","listenerNode","handleKeyEnd","eventName","handleSortMove","handleSortEnd","sortingIndex","_onSortStart","isKeySorting","nodes","getOrderedRefs","keyMove","_this$props3","_temp8","_temp9","_wasThrown","_result","updateHelperPosition","animateNodes","autoscroll","_this$props4","_this$manager","len","_node2","edgeOffset","autoScroller","scrollX","scrollY","keyCode","_this$props5","_this$props5$keyCodes","isValidSortingTarget","keyLift","keyDrop","_node$sortableInfo2","initialFocusedNode","shift","lastIndex","targetIndex","targetNode","containerScrollDelta","targetBoundingClientRect","targetTranslate","targetPosition","shouldAdjustForSize","sizeAdjustment","ignoreTransition","handleEnd","handleMove","handleStart","_this2","containerNode","defaultView","scrollingElement","onAutoScroll","_this3","_this$props6","_this$props6$keyboard","_getLockPixelOffsets2","minOffset","maxOffset","_this$props7","windowScrollDelta","sortingOffset","_node3","mustShiftBackward","mustShiftForward","nextNode","prevNode","getWrappedInstance","isRequired","propTypes$1","omittedProps$1","sortableElement","WithSortableElement","register","prevProps","unregister","getTabPanelClass","tabPanelClasses","TabPanelRoot","pad","TabPanelPrimitive","disablePadding","keepMounted","hidden","TabPanel","Subscribable","onSubscribe","onUnsubscribe","hasListeners","useUserPref","preference","asBoolean","parseIn","parseOut","defaultValue","parseInRef","parseOutRef","prefValue","user","prefs","off","preferenceRef","setPref","setPreference","VirtualizedInput","OuterElementContext","OuterElementType","outerProps","InnerElementRoot","renderRow","cloneElement","areEqual","listRef","itemData","Children","toArray","itemCount","itemSize","innerRef","useSharedRef","innerFixedSizeListRef","justLoopedToRef","handleKeydown","prevent","activeIndex","scrollTo","capture","handleItemRendered","MouseEvent","bubbles","cancelable","querySelector","dispatchEvent","innerElementType","outerElementType","overscanCount","onItemsRendered","ConfirmationServiceContext","useConfirmation","catchOnCancel","setCatchOnCancel","confirmationState","setConfirmationState","awaitingPromiseRef","openConfirmation","handleSubmit","onSubmit","DrawerAnchor","DrawerVariant","DrawerActionLabel","COLLAPSE","CLOSE","UNCOLLAPSE","DRAWER_TOOLBAR_CLASS_NAME","getDrawerToolbarUtilityClass","drawerToolbarClasses","DrawerToolbarRoot","toolbar","anchorLeft","anchorRight","DrawerTitle","DrawerToggle","iconButtonClasses","DrawerToolbarPrimitive","anchor","cancelAsClose","onCollapseToggle","secondaryTitle","toggle","Toggle","TimesIcon","ToggleIcon","rotation","LEFT","Actions","RIGHT","DrawerToolbar","DRAWER_CLASS_NAME","getDrawerUtilityClass","drawerClasses","DrawerRoot","DragResize","resizing","dragResizeHandleClasses","willChange","content","easing","sharp","temporary","DrawerWrapper","MuiDrawer","paperClasses","DrawerContent","DrawerPrimitive","headerActions","onEntered","onResized","overflowParent","PERMANENT","setResizing","TEMPORARY","useDocumentKeyDown","handleDrawerToggle","handleDrawerClick","handleDrawerKeyDown","which","drawer","DragResizeDirection","minSize","overflowParentEl","onResizeStarted","onResizeEnded","FocusTrap","disableEnforceFocus","Drawer","withDrawer","DrawerProps","contactSheet","defaultEngine","defaultTemplates","maxAttributes","ignoreDownloadWarningTypes","original","proxy","assetView","presetProcess","historical","thumb","templateCustomization","NxTime","getTotalSeconds","newValue","parseSecondsToInputs","observedAttributes","connectedCallback","inputs","separator","separatorText","defer","attributeChangedCallback","previousValue","getChangeEvent","createEvent","initEvent","seconds","bypassChangeEvent","timeObj","hour","minute","second","millisecond","floor","round","customElements","define","ErrorBoundary","hasError","static","componentDidCatch","errorInfo","render","Fallback","ExclamationIcon","_styles","withErrorBoundary","DIALOG_TITLE_CLASS_NAME","getDialogTitleUtilityClass","dialogTitleClasses","DialogTitleRoot","MuiDialogTitle","hasIcon","DialogTitleText","DialogTitleActions","DialogTitleControls","DialogTitle","controls","edge","faTimes","TOGGLE_BUTTON_CLASS_NAME","getToggleButtonUtilityClass","toggleButtonClasses","ToggleButtonRoot","getBackgroundColor","darken","lighten","fill","ToggleButtonBackground","transformOrigin","confirm","confirmation","isOn","setIsOn","MenuList","ActionMenuList","FormInner","noValidate","FormPrimitive","Form","attributeSets","AttributesSetsCollection","assetAttributesSingleton","useBackboneCollection","fetchOnMount","act","useComponentIsMounted","setAttributes","pullAndSetData","debouncedPullAndSetData","Axis","ClientPosition","ClientDimension","ScrollDimension","OffsetDimension","DRAG_RESIZE_DEFAULT_DIRECTION","DownloadDialog","completeUrl","disableEmailWhenDone","emailWhenDoneLabel","onEmailWhenDone","Dialog","DialogContent","DialogActions","ACTIONS","success","queryClient","QueryClient","DownloadServiceContext","useDownload","DownloadServiceProviderPrimitive","useReducer","downloadState","setDownloadState","close","getProgressReport","refetchInterval","percentComplete","openDownloadLink","openDownload","getUUID","handleEmailWhenDone","setProgressReportNotify","Boolean","DownloadServiceProvider","withDownloadDialog","DownloadServiceProviderProps","childList","shadow","shadowSize","createShadow","side","backgroundRepeat","backgroundSize","overflown","scrolled","scrollEnd","isOverflown","isScrolled","reachedScrollEnd","ScrollShadowWrapper","scrollNewItemsIntoView","mutationsList","removed","added","addedNodes","removedNodes","scrollIntoView","block","scrollMode","skipOverflowHiddenElements","MutationObserver","useScrollAddedNodesIntoView","trailing","useScrollListener","handleHeight","onResize","TYPE_LABELS","ATTRIBUTE_TYPE","HIERARCHICAL","MULTISELECT","NUMBER","SELECT","SEMANTIC","TAG","TAG_VOCAB","TEXT","TEXTAREA","SYSTEM_ATTRIBUTE_LABELS","ASSET_ID","CATEGORY_PATHS","CHECKSUM","CREATION_DATE","EXPIRE_DATE","HEIGHT","IMPORT_DATE","MOD_DATE","MOD_USER","PATH","SMART_LABELS","THUMB_PATH","WIDTH","nanoid","crypto","getRandomValues","Uint8Array","byte","getTabUtilityClass","TabRoot","labelIcon","wrapped","iconPosition","paddingBottom","iconWrapper","disabledOpacity","flexBasis","disableFocusRipple","iconProp","focusRipple","Tab","hasMandatoryUserDefinedTemplates","lookups","targets","useAttributes","userDefinedOnly","attributesSingleton","dataRef","_attributes","omitReadOnly","getById","getByIds","getByName","getByNames","getByType","getLabelById","getDefaultValues","limitToIds","parseValue","lookup","lookupValue","searchValue","withForm","formOptions","refreshAt","useForm","inputForm","MetadataType","MetadataNoValueTypes","MATCH_VALUE_IS_NOT_EMPTY","MATCH_VALUE_IS_EMPTY","MetadataSingleValueTypes","EXCLUDE","MATCH_ALL_WHOLE_WORDS","MATCH_ALL_WILD_CARDS","MATCH_ANY_WHOLE_WORDS","MATCH_ANY_WILD_CARDS","MATCH_EXACTLY","excluded","sourceKeys","__esModule","utils","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","XMLHttpRequest","process","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","rawValue","parser","encoder","stringifySafely","transformResponse","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","Cancel","__CANCEL__","AlertRoot","MuiAlert","alertClasses","ContextMenuServiceContext","useContextMenu","contextMenuState","setContextMenuState","openContextMenu","contextValue","DialogAlertRoot","DialogAlertPrimitive","Severity","ERROR","DialogAlert","DialogProgress","absoluteFill","Transition","DialogPrimitive","isWorking","preventBackdropClose","DialogAlertProps","CHIP_CLASS_NAME","getChipUtilityClass","chipClasses","getTableContainerUtilityClass","TableContainerRoot","column","freezeSize","setWidth","useLayoutEffect","ActionCell","ActionMenuProps","safari","TableColumn","onSort","sortable","sorted","sortOrder","sortedAscending","sortedDescending","CaretIcon","positionSticky","dummy","dragger","borderRight","MozUserSelect","WebkitUserSelect","userSelect","ResizableTableColumn","dims","setDims","cellWidth","xStart","isDragging","setIsDragging","lastMouseDown","cellRef","mousemove","clientX","mouseup","handleMouseDown","dragging","onMouseDown","resizable","TableHead","hasActions","inEditMode","reordering","sortField","TableColumnProps","handleSort","TableRow","iconColumn","actionColumn","getRowBackgroundColor","contextActions","deleting","rowDisabled","contextMenu","menuIsOpen","setMenuIsOpen","handleAction","handleActionsMenuClose","handleActionsMenuOpen","clientY","handleContextMenu","finally","clickable","menuActive","onContextMenu","rowStyles","SortableTableRowHandle","EqualsIcon","SortableHandle","SortableElement","borderTop","boxShadow","sortableRef","setStyle","screenX","screenY","reorderable","editActions","wrapper","onCancel","onRowUpdate","submitError","setIsValid","handleCancel","clearError","setError","errors","changesRef","valuesRef","handleKeyUp","handleSubmitClick","onKeyUp","CheckIcon","editing","onEditing","onEditModeToggle","rowSorting","TableRowProps","deletingId","editingId","isEditing","setIsEditing","handleEditCancel","schemaKeys","datum","SortableTableBody","SortableContainer","TableBody","transitionProperty","onReorder","setRowSorting","handleUpdateBeforeStart","_LastPageIcon","_FirstPageIcon","_KeyboardArrowLeft2","_KeyboardArrowRight2","_FirstPageIcon2","_LastPageIcon2","backIconButtonProps","getItemAriaLabel","nextIconButtonProps","onPageChange","rowsPerPage","showFirstButton","showLastButton","LastPage","FirstPage","ceil","getTablePaginationUtilityClass","_InputBase","TablePaginationRoot","TablePaginationToolbar","Toolbar","TablePaginationSpacer","spacer","TablePaginationSelectLabel","selectLabel","TablePaginationSelect","Select","selectIcon","selectRoot","textAlignLast","TablePaginationMenuItem","menuItem","TablePaginationDisplayedRows","displayedRows","defaultLabelDisplayedRows","defaultGetAriaLabel","ActionsComponent","colSpan","colSpanProp","labelDisplayedRows","labelRowsPerPage","onRowsPerPageChange","rowsPerPageOptions","SelectProps","MenuItemComponent","native","selectId","useId","labelId","InputBase","rowsPerPageOption","isHostComponent","onChangePage","handleChangePage","hideData","filterStr","onFilter","totalRows","SearchFilter","Table","canReorder","emptyFallback","onRowClick","total","showEmptyFallback","TableBodyProps","TableHeadProps","TablePaginationProps","TableProps","TableToolbarProps","tableData","setTableData","setInEditMode","_canReorder","handleFilter","handleReorder","arrayMove","rowCount","tableContainer","emptyTable","accent","useSchema","columns","useTableActions","AddActionButton","local","upgradedFeatures","goo","AvatarRoot","strToHslColor","toLocaleUpperCase","items","CountChipRoot","CountChip","hideAvatar","onClear","deleteTabbable","deleteTitle","onDelete","USE_DOCUMENT_KEY_DOWN_DEFAULTS","cbRef","DeleteButton","TrashIcon","DragResizeRoot","DRAG_RESIZE_CLASS_NAME","dragResizeClasses","DragResizeContent","DragResizeSentinel","SIDES","TOP","BOTTOM","DragResizeInner","checkLimits","useDragResize","sentinel","getDragResizeUtilityClass","handleObserver","IntersectionObserver","threshold","registerRef","DragResizePrimitive","DRAG_RESIZE_HANDLE_CLASS_NAME","getDragResizeHandleUtilityClass","FormDialogRoot","FORM_DIALOG_CLASS_NAME","formDialogClasses","FormDialogContent","FormDialogForm","FormDialogActions","FormDialogCancelButton","submitButton","FormDialogSubmitButton","FormDialog","cancelLabel","confirmLabel","disableEscapeKeyDown","hasChanged","requiresChanges","DialogContentProps","isUncontrolled","smallScreen","useMediaQuery","isSubmitting","cancelButton","getFormDialogUtilityClass","submitEnabled","fullScreen","submissionError","ATTRIBUTE_NUMBER_MAX_DECIMAL","ATTRIBUTE_NUMBER_SPEC_2_TYPE","UNLIMITED","decimalSeparator","WHOLE","CheckoutType","DateType","DateSubType","DateNoValueTypes","LAST_MONTH","LAST_SIX_MONTHS","LAST_THREE_MONTHS","LAST_WEEK","LAST_YEAR","TODAY","YESTERDAY","DateSingleValueTypes","AFTER","BEFORE","DateSystemDefinedTypes","LAST_MODIFIED","KeywordType","ChipSkeletonRoot","CHIP_SKELETON_CLASS_NAME","ChipSkeleton","getChipSkeletonUtilityClass","VisualType","Progress","_mediaQuery","useMuiMediaQuery","mediaQuery","setMediaQuery","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","UserLevel","PRODUCER","VideoEditorOperation","originalLabel","VideoEditorOperationsStack","getClone","getData","video","isFunction","strictOrder","indexed","unindexed","updateIndex","amount","oindex","nindex","CONTAINER_ID","OPERATIONS","range","control","endTime","startTime","convertValue","VideoEditorVideo","lastOperationsStack","VideoEditorOperationsStackCollection","operationsStack","operationStackHistory","operationStackArray","updateOperations","getOperation","alias","condition","resetOperations","resetStackHistory","undo","pop","getChanges","operations","changes","currentOp","lastOp","op","customConfig","realValue","last","VideoEditorOperationControlView","change","player","updateValue","image","checkBounds","$item","_val","$target","VideoEditorOperations","dropdownValues","userOperation","userOperations","layout","po","_ChildViews","OperationControlView","dropdown","rangeUpdated","initVal","currentRange","$durationTime","$endTime","$startTime","one","ready","updateRangeTime","getTimeObject","r","pretty","details","endVal","startVal","enable","detailedRange","VideoEditorOperationControlsView","childView","viewClass","operationsUpdated","VideoEditorOperationsCollection","flippedOrientation","addOperationControl","selectedOperations","assign","operationsSelected","bindCollectionEvents","resetChildViews","$operations","$videoEditorOperations","newOperation","addedOperationControl","presetChosen","preset","presetConfirmed","removedOperationControl","swapControls","updateOperationControls","ChildViews","faPlus","videojs","getComponent","NxRange","controlBar","loopToggle","rangeSlider","rangeEndButton","rangeStartButton","seekBar","components","preventUserInteraction","progressControl","getChild","addChild","stopButton","nxrangeslider_instance","html5VideoEl","techGet_","pause","play","dispose","player_","resetRange","setRange","plugin","techName_","registerComponent","_Button","NxLoopToggle","playToggle","options_","loop","ended","el_","playPressed","controlText_","createEl","toggled","shiftKey","NxRangeEndButton","handleKeyPress","currentTime","NxRangeStartButton","_Component","NxRangeSlider","resized","updatePosition","rangeSelectionWidth","clicked","dragTimeoutId","draggingTarget","justSeeked","seekedTimeoutId","_position","_lastMouse","selection","_mouseStart","_lastPosition","translateFromTime","triggerReady","durationChanged","paused","stopped","tech_","logSeeked","playRange","stopTrackingRangePlay","startHandleEl","onMouseOver","onMouseOut","endHandleEl","rangeSelectionEl","enableTouchActivity","startHandleTooltipEl","endHandleTooltipEl","currentWidth","onMouseUp","onMouseMove","amt","positionStart","positionEnd","diff","targetName","handleMouseMove","translateToTime","trackRangePlay","playing","hasDraggingTarget","lastPosition","updated","NxStopButton","VideoEditorView","eventStr","headerTitle","removeOnHide","stageResized","cachedChanges","playerDeferred","playerReady","applyOperations","simulateProgress","$submit","$stage","operationControls","removeSubView","whenShown","skin","setSource","poster","appendTo","endProgressSimulation","nxrangeslider","addSubView","videoEditor","setElement","checkSubmit","submit","enableIf","hasOperation","outerHeight","w","outerWidth","$videojs","maxVideoWidth","maxVideoHeight","videoHeight","videoWidth","ClipAttributes","disableLookups","enforceMandatory","otherDataChanged","AttributeProps","submitData","sendValues","getSubmitData","resetOnSubmit","resetWithCurrentValues","lookupsAllowed","useMetadataLookups","attributeWorking","isMetadataLookup","isMetadataTarget","originalValues","formFooter","ThemedComponent","withTheme","getDataFromAttributes","attributeData","clipTitle","clipAttr","getAttributeById","VideoClipEditorView_Attributes","dataHasChanged","hasOutsideChanged","setHasChanges","hasChanges","setLoading","setSubmitting","updateAttributes","VideoEditorClipView","click","clipLoaded","inactive","loadClip","VideoEditorClipsView","ChildView","faAngleLeft","collapsable","collapsed","resizeDragFrom","resizeMinWidth","Collapsable","Resizable","VideoClipEditorView","clipsPanelOpen","clipData","AssetConstituentClipModel","clipAttributesView","clipsView","loadClipConfirmed","newClip","newClipConfirmed","applied","errored","clipRemoved","$attributes","$clips","loadAttributes","$input","hasAssets","faAngleRight","faSave","elSelector","resizeTargetSelector","once","NS","clipId","viewOptions","app","fsViews","showActions","location","hash","route","router","navigate","VideoEditorVideoModel","routeMatch","isRouted","bypassUpdate","excludes","affected","toRemove","VideoEditorOperationModel","initialize","routes","namespace","addMenus","menus","controller","MINIMUM_USER_LEVEL","MANAGER","chipSkeletonClasses","SearchIcon","IGNORE","nodeName","AssetAttributeSet","fetchBean","populateAttributes","attributeSet","getAttributeCount","getAttributes","unique","getMandatoryAttributes","withDefaultValue","FileAspectType","FileAspectSubType","FileAspectOrientationValue","CONTEXT_MENU_CLASS_NAME","getContextMenuUtilityClass","ContextMenuRoot","Popover","popoverClasses","ContextMenuWrapper","ContextMenuList","ContextMenuHeader","colors","getSeverityColors","headerSeverity","ContextMenu","headerIcon","headerPrimary","headerSecondary","selectedAction","handleClickAway","handleListKeyDown","anchorPosition","anchorReference","autoFocusItem","Participant","resourceId","participant","uniqueId","DateAttributeComponent","disableFolksonomy","shrinkLabel","textfieldPlaceholder","InputLabelProps","MultiSelectAttributeComponent","handleSearch","labelWrapper","textValue","setTextValue","lookupRef","testLookup","lookupString","autoList","freeSolo","NumberAttributeComponent","numberLength","decimalDigitCount","formatNumber","SelectAttributeComponent","SemanticAttributeComponent","TagAttributeComponent","TagVocabAttributeComponent","createSvgIcon","TextFieldProps","InputVariant","inputAdornmentStart","Icon","KeyIcon","TargetIcon","attributeId","Fragment","attributeName","placement","TextAttributeComponent","isTextArea","ClearToggle","setCleared","handleToggle","EditableAttributeComponent","alignActions","appendable","clearable","forceClearable","matchContainerHeight","onValueChange","fieldName","AttributeComponent","checkRequired","canAppend","ATTRIBUTE_APPENDABLE_TYPES","requiredRef","setRequired","useRefState","modeRef","lastActionRef","lastValueRef","getDisabledActions","disabledActions","setDisabledActions","setAction","newAction","lastAction","validators","errorsRef","validateField","handleClearToggle","handleValueChange","append","inputWrapper","trailingControls","EditableAttribute","leadingControls","alignSelf","isInteger","Participants","pager","getPageDTO","participants","PagerModel","SorterModel","addParticipant","filterByType","getParticipant","removeParticipant","hasMaxItems","lastId","maxItems","limitItems","onRemove","fromIndex","toIndex","ActionsContext","ItemsManagerServiceContext","useItemManagerActions","useItemManagerStore","getNewItemValues","formValues","getNewItemsValues","currentObject","ItemManagerServiceProvider","dispatchActions","addMultiple","reorder","setMaxItems","alwaysValidate","removeValueOnUnregister","addItem","setValues","addItems","removeItem","newValues","resetItems","getItems","orderedValues","pieces","getItemMatchRegExp","getItemErrors","itemErrors","getItemValues","itemValues","getItemActions","itemActions","ItemManagerWrapper","ScrollShadow","ItemManager","fallback","onRemoveClick","ItemComponent","ItemComponentProps","isSorting","setIsSorting","handleBeforeSortStart","handleRemoveClick","hasItems","DragHandle","sortInProgress","ItemManagerItem","dense","hideRemove","WebkitTouchCallout","defaultLogger","defaultRetryDelay","canFetch","CancelledError","isCancelledError","createRetryer","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","continueResolve","run","promiseOrValue","_config$retry","_config$retryDelay","shouldRetry","FocusManager","setup","cleanup","setEventListener","_this$cleanup","_this$cleanup2","setFocused","visibilityState","focusManager","dateParser","SharedResource","canManage","contentCount","isFavorite","participantCount","sendMessageBySharedResource","userSelector","setFavorite","favorite","fullBean","ParticipantsCollection","getPermissions","getParticipants","sendMessage","toggleFavorite","useMetadataLookupsAllowed","setLookupsAllowed","setEmpty","templates","keyId","targetId","DragResizeHandleRoot","borderLeft","ellipsis","DragResizeHandleEllipsis","DragResizeHandle","getDirectionAsNumber","maxSize","userPref","userPrefSize","setUserPrefSize","currentSize","setCurrentSize","isDraggingRef","initialSizeRef","lastSizeRef","pointerStartRef","lastMouseDownRef","limitSize","draggedOnce","maxSizeRef","minSizeRef","sizeDirection","X","Y","getAxisFromDirection","axisRef","recheck","setRecheck","overflowEl","scrollSize","newSize","limitToSize","RO","initialSize","startPosition","parentElement","toggleSelector","uncollapseSelector","view","collapse_plugin","onDragResizeStart","onToggleClick","simulateClickBody","onUncollapseClick","cleanUp","prepare","collapse","reEnableTouchEventsTimeout","toggleEls","uncollapseEls","collapseTargetEl","stickyUserPref","removeAttribute","purgeEls","getExcludedViews","stickyUserPrefDefault","forceEvent","uncollapse","hasFunctionality","addInitializer","getOptionSelected","AttributeDropdown","getAttributeLabelFromId","isOptionEqualToValue","filteredOptions","CategoryType","getSearchFilterEndAdornmentClassesUtilityClass","searchFilterEndAdornmentClasses","SearchFilterEndAdornmentRoot","SearchFilterEndAdornment","getSearchFilterStartAdornmentClassesUtilityClass","searchFilterStartAdornmentClasses","SearchFilterStartAdornmentRoot","SearchFilterStartAdornment","SearchFilterRoot","hideStartAdornment","searchFilterClasses","rounded","onFilteredChange","SearchFilterEndAdornmentProps","SearchFilterStartAdornmentProps","getSearchFilterUtilityClass","innerInputRef","handleClear","startAdornment","modes","write","delete","specialModes","resourceLabels","savedCart","savedSearch","canModifyAssetExpiration","PermissionMatrixName","DELETE","canExpireAsset","canUnexpireAsset","ContentsType","MapShim","entry","class_1","__entries__","ctx","_a","isBrowser","global$1","global","Function","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","timeStamp","connect_","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","_b","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","WeakMap","useRpc","rpcRef","lastMethod","Rpc","request","callsByName","SharedResources","modeFilters","fetchForUser","sharedResource","hasModeFilter","isFiltered","selectedMode","matchesFilters","getTitle","resetModeFilter","firstPage","setModeFilter","cachedType","detectScrollType","dir","getNormalizedScrollLeft","PermissionParticipant","PermissionsParticipants","groupsSynced","labelsUpdated","usersSynced","permissionsCollection","groups","GroupsCollection","users","UsersCollection","userSelectorAllToggled","userSelectorAddedGroups","userSelectorAddedUsers","addByPermission","toSet","permissionId","addPermission","addSelectorItems","toggleSelectAll","removeByPermission","removeSelectorItems","allSelected","getLexicographicName","Permissions","uniquePerms","userIds","selectors","existing","toSave","existingSelectors","newGroupIds","intersection","newUserIds","pageSize","toAdd","hasSelectors","removePromises","addPromises","savePromises","allPromises","p","PermissionResource","PermissionsCollection","permissionsUpdated","getResourceLabel","hasParticipants","ReadOnlyChips","getLabels","ReadOnlyMultiSelectField","FormLabel","ReadOnlySelectField","withContextMenu","withConfirmation","NumberField","counter","$0","getNumberWithoutDuplicateDecimals","thisArg","encode","paramsSerializer","serializedParams","parts","isDate","toISOString","hashmarkIndex","code","isAxiosError","toJSON","fileName","lineNumber","columnNumber","stack","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","onCanceled","requestData","requestHeaders","cancelToken","unsubscribe","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","statusText","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","aborted","send","config1","config2","getMergedValue","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","both","cdr","cdrinfo","cdt","crl","dc","DICOM","exif","ID3","Iptc4xmpCore","pdf","photoshop","tiff","xmp","xmpDM","xmpMM","xmpRights","invert","mapObject","AssetConstituent_Clip","_prepareDownload","constituent","progressUuid","_data","downloadOptions","getManualRepurposeOptions","setAttributesWorking","lookupResults","FileFormatType","FileSizeType","FileSizeMetric","UserType","DownloadOptions","filterTypes","originalOption","downloadOptionTypes","proxyOptions","processOptions","metadataOptions","contactSheetOptions","vppOptions","getOption","hasManualRepurposeOptions","hasOption","parseSelectedDownloadOptions","selectedDownloadOptions","selectedDownloadOptionModels","organizeContentsBy","embedMetadata","addOptions","metadataMapping","manualRepurposeOption","proxyDownloadOption","viewDownloadOption","proxies","proxyName","viewName","processes","processId","sheetOption","unset","toPick","assetListSortField","assetListSortOrder","metadataOption","setId","historicalOption","setUserSelectedDownloadOptions","opt","arrayMoveMutate","startIndex","endIndex","mutate","DownloadOption","family","requiresApproval","requiresJustification","engine","exportOptions","Collection","getPDFTemplateOptions","lvbsToObject","objectToLvbs","addObject","AttributeSkeletonComponent","textFieldHeight","textFieldSize","getTextFieldHeight","actionSize","preDecorate","postDecorate","inputWidthSubtraction","skeletonItem","preDecorator","readOnlyText","readOnlyTextTitle","readOnlyTextValue","inputArea","postDecorator","AttributeSkeleton","_interopRequireDefault","inputTransitions","mergedEasing","_extends2","mergedDuration","getAutoHeightDuration","durationOption","easingOption","easeInOut","_objectWithoutPropertiesLoose2","animatedProp","formatMs","easeOut","easeIn","shortest","shorter","short","complex","milliseconds","constant","getFormattedValue","formattedValue","formatters","href","rel","formatURLS","ReadOnlyAttributeComponent","ReadOnlyAttribute","multi_select","multiSelect","semtantic","tag_vocab","Shareable","collections","aType","cart","AssetVersion","memoId","memoText","shortMemoText","reactivateAssetVersion","assetVersion","Removable","gcTimeout","newCacheTime","OnlineManager","online","setOnline","onLine","onlineManager","Search","AttributeContainerComponent","isReadOnly","valueRef","handleValueSearch","handleValueItemSearch","AttributeContainer","Mutation","execute","executeMutation","_this$options$retry","variables","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","onMutate","onSettled","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onError","_this$options4","_this$options$onSettl2","_this$options5","failureReason","onMutationUpdate","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","pageParams","newPageParams","buildNewPages","param","previous","fetchPage","_context$signal","_context$signal2","queryFnResult","getNextPageParam","getPreviousPageParam","hasNextPage","nextPageParam","hasPreviousPage","previousPageParam","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","QueryClientProvider","Context","shouldThrowError","_useErrorBoundary","useSyncExternalStore","Props","cleanUpResizable","resizeTargets","prepareResizable","startSize","resizableGetStartSize","startHeigh","startWidth","resizeDirection","resizeUserPref","resizeStartWidth","resizeStartHeight","resizeMinHeight","resizeUsingPercent","resizeStart","originalEvent","ui","toggleResizable","resizeDisabled","extendFunctionality","dragresizestart","dragresizeend","dragresizing","dragresizereset","netxDragResize","dragFrom","resizeMaxHeight","resizeMaxWidth","usePercent","createValue","isReset","clearReset","QueryErrorResetBoundaryContext","IsRestoringContext","useBaseQuery","Observer","isRestoring","errorResetBoundary","_optimisticResults","ensureStaleTime","retryOnMount","ensurePreventErrorBoundaryRetry","useClearResetErrorBoundary","getOptimisticResult","onStoreChange","willFetch","shouldSuspend","fetchOptimistic","isError","getHasError","getCurrentQuery","notifyOnChangeProps","trackResult","AttributeDatum","clearChanges","metadataLookupComplete","invoke","hasValueChanged","attributeDataModel","getValues","getReadOnly","getWritable","autofilled","resetValues","AssetAttributeData","AttributeDatumCollection","updateAttributeDatum","getAttributeTemplate","getTemplate","AssetAttributeDatum","getAssetAttributes","assetIds","setAssetAttributes","useDefaultValues","assetAttributeDataModel","attrDataModel","getWritableAttributes","getWrtiable","getReadOnlyAttributes","hasAttributeValues","foundValue","_values","j","hasWritableAttributes","unescapeAttributeName","Permission","attributeScope","emails","none","categoryScope","resourceScopes","getResourceType","existingIds","newIds","getDefaults","removedIds","selectAll","baseParser","ConfirmationDialog","disableCancel","QueryError","QUERY_SORT_ORDER","ASCENDING","DESCENDING","sessionErrors","netxQueryDam","axios","CancelToken","_post","resetLogoutTimer","getKey","dataContext","jsonrpc","ErrorField","FormHelperText","DateTextField","DateField","getValueFromPickerDate","LocalizationProvider","dateLibInstance","dateAdapter","AdapterMoment","DatePicker","inputFormat","mask","minDate","textFieldProps","helperText","inputLabel","DEFAULT_OPTIONS","resetWithOriginalValues","submitLabel","shouldAct","optionsRef","lastFormOptionsRef","equal","multiFieldsRef","fieldRef","isSubmittingRef","setIsSubmitting","submissionErrorRef","setSubmissionError","formMultipleValues","formMultipleValuesRef","setFormMultipleValues","formValuesRef","setFormValues","originalValuesRef","setOriginalValues","formActions","formActionsRef","setFormActions","formChanges","formChangesRef","setFormChanges","formErrors","formErrorsRef","setFormErrors","hasChangedRef","setHasChanged","isValidRef","lastValuesRef","getAction","inErrors","fieldNames","checkFieldChanged","clearAction","_actions","newErrors","resetActions","withAction","resetChanges","setChange","_changes","currentValues","validationFailed","fieldOptions","removeAction","updateOptions","withValues","withMultipleValues","onReset","actionsRef","multipleValuesRef","setMultipleValues","_fieldName","OVERWRITE","SET_IF_BLANK","ATTRIBUTE_ACCESS_FILTER_TYPES","ATTRIBUTE_EDITABLE_TYPES","ONE_DECIMAL","TWO_DECIMALS","THREE_DECIMALS","SORTABLE","ATTRIBUTE_OBJECT_TYPE","ASSET","CLIP","ATTRIBUTE_SYSTEM_PROPERTIES","SEMANTICS_ENABLED","DATA_MANAGER_ENABLED","VIDEO_CLIPS_ENABLED","VOCABULARY_ENABLED","AttributeData","valuesCollection","metadataLookupEnabled","populateValuesCollection","lastModel","addValue","createValueModelAttributes","hasValue","attrTemplate","useOriginalValues","dontMerge","removeValue","valueModel","ATTRIBUTE_CONTEXT_LABELS","ATTRIBUTE_MESSAGES","NO_ATTRIBUTES","DEFAULT_SEARCH_PLACEHOLDER","Axios","mergeConfig","createInstance","defaultConfig","instanceConfig","isCancel","VERSION","spread","ignoreProps","nextProps","lastProps","preventContextMenu","combineRefs","InterceptorManager","dispatchRequest","interceptors","configOrUrl","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","expires","domain","secure","cookie","toGMTString","decodeURIComponent","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","line","originURL","msie","userAgent","urlParsingNode","resolveURL","protocol","host","hostname","port","pathname","requestURL","deprecatedWarnings","formatMessage","desc","allowUnknown","executor","resolvePromise","_listeners","l","onfulfilled","_resolve","payload","hierarchical","defaultAttributeColumns","warning","dataManagerEnabled","vocabularyEnabled","attributeTypeKeys","attributeTypes","textTypes","faArrowRight","iconName","faEllipsisV","getIconButtonUtilityClass","ICON_BUTTON_SIZE_VALUE","small","medium","large","ICON_SIZE_VALUE","IconButtonRoot","MuiIconButton","shadows","muiIconButtonClasses","borderWidth","borderStyle","white","IconButtonIconRoot","IconButtonPrimitive","TooltipProps","thingThatMightChange","thingThatMightChangeRef","ranOnceRef","callbackRef","oldValue","onlyOnUpdate","initialValue","refsToShare","sharingRef","resolvableRef","ArrayBuffer","isView","pipe","product","assignValue","stripBOM","charCodeAt","AssetAttributeSets_","attributeSetsChanged","allAttributeIds","attrSet","flat","deleteAttributeSets","selectableSets","forEditing","AssetAttributeSets_System","getIds","getObjects","collectionIds","collectionid","AssetAttributeSets_User","getSharedResources","AssetAttributeSets_Filter","AssetAttributeSets","localeCompare","fetchSets","systemSets","userSets","PORTAL_ATTRIBUTE_CONTEXT","portalContextAttrIds","getAttributesIdsForContext","attrId","PORTAL_ATTRIBUTE_CONTEXT_LABELS","_attributeNames","_attributeIds","mandatoryAttrs","hasMandatoryAttributes","SystemAssetAttributeSetsCollection","UserAssetAttributeSetsCollection","FilterAttributeSetCollection","syncedOnce","updateMandatory","defaultKeys","getGenericAttributes","isModel","getMandatoryAttributeNames","attrIds","brandPortalToSettingsData","brandPortal","getBrandPortalDataForModel","categoryName","categoryPath","rest","searchCategoryName","searchCategoryPath","sendGoo","settingsDataToBrandPortal","settingsData","category","assetSet","organizeByTypes","fileType","folderPath","AssetAttributeSet_System","triggerIds","triggerType","attributeIdsUpdated","AssetAttributeSet_User","saveAttributeFieldSet","FieldInner","Field","is","useDebugValue","getSnapshot","u","inst","argIndex","framesToPop","AssetConstituentView","webpackContext","req","webpackContextResolve","__webpack_require__","DEFAULT_WIDTH","makeStyles","useLoading","onLoading","onLoaded","loadingRef","useMemoCompare","compare","previousRef","usePrevious","stateRef","_setState","newState","QueryObserver","trackedProps","selectError","bindMethods","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOn","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","notifyOptions","prevOptions","prevQuery","updateQuery","shouldFetchOptionally","updateResult","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","createResult","currentResult","trackedResult","_fetchOptions$cancelR","staleTimeoutId","_this$options$refetch","nextInterval","refetchIntervalId","refetchIntervalInBackground","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","isPlaceholderData","fetchOptionally","keepPreviousData","isSuccess","selectFn","selectResult","placeholderData","isInitialLoading","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","includedProps","typedKey","shouldNotifyListeners","shouldLoadOnMount","refetchOnMount","AssetSet","recursive","assetCount","getAssetIdsInSets","getDownloadWarnings","getDownloadOptions","prepareDownload","archiveName","justification","toCollection","DownloadOptionsCollection","ParseError","downloadOption","displayedDownloadOptionTypes","warnings","messageCount","assetsUnavailableCount","progressMessages","objectId","getCurrentCart","getTotal","saved","toShareable","sType","ShareableModel","ChipRoot","MuiChip","meshAvatar","muiChipClasses","deleteIcon","ChipDeleteIcon","deleteIconColor","alpha","outlineStyle","ChipIconWrapper","ChipInner","deleteIconRef","disableTitle","setDisableTitle","handleFocus","handleDeleteIconKeydown","onEntering","TimesCircleIcon","Document","createElementNS","aa","importNode","ba","prepend","ca","da","DocumentFragment","ea","q","Node","insertBefore","replaceChild","attachShadow","z","A","B","C","D","getAttributeNS","E","setAttributeNS","F","removeAttributeNS","G","insertAdjacentElement","H","insertAdjacentHTML","fa","ha","ia","before","ja","after","ka","replaceWith","la","ma","I","na","oa","pa","qa","ra","J","isConnected","__CE_isImportDocument","ShadowRoot","K","nextSibling","nodeType","ELEMENT_NODE","L","M","localName","__CE_shadowRoot","N","O","noDocumentConstructionObserver","shadyDomFastWalk","P","ShadyDom","inUse","nativeMethods","Q","R","__CE_patched","S","__CE_state","T","U","disconnectedCallback","V","upgrade","__CE_registry","__CE_documentLoadHandled","W","constructionStack","constructorFunction","__CE_definition","hasAttributes","ua","namespaceURI","HTMLUnknownElement","sourceURL","ErrorEvent","initErrorEvent","filename","lineno","colno","va","wa","xa","ya","SyntaxError","Aa","adoptedCallback","za","Z","Da","previousSibling","String","ta","childNodes","Ca","whenDefined","polyfillWrapFlushCallback","CustomElementRegistry","polyfillDefineLazy","Ea","Ha","Fa","Ba","TEXT_NODE","sa","COMMENT_NODE","textContent","Ga","forcePolyfill","__CE_installPolyfill"],"mappings":"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","file":"31.bundle.min.js?2.22.11.78cb48d1.1676942939545","sourcesContent":["import AttributesCollection from '../attributes';\nimport AttributeModel from '../../models/attribute';\nimport _ from 'underscore';\nimport {dispatcher} from '@netx/core/bootstrap';\n\nimport {completions as autocompletions} from '@netx/core-app/properties/autocomplete';\n\nexport const attributes = new AttributesCollection([]);\nattributes.listenTo(dispatcher, 'system:attribute:edit:success', function (\n\tmodel,\n\tisNew,\n) {\n\t// Add the model attributes so that we get the proper attribute model type\n\t// when creating a new attribute the model is just the generic base model\n\tif (isNew) {\n\t\tthis.add(model.attributes);\n\t\tthis.sort();\n\t}\n});\n\n// Update autocompletions\nconst attributeHistoryCompletion = autocompletions.attributeHistory;\nattributes.on(\n\t'add remove sync',\n\t_.debounce(function () {\n\t\tattributeHistoryCompletion.data = this.filterByHistory().map(function (\n\t\t\tattr: AttributeModel,\n\t\t) {\n\t\t\treturn {label: attr.getLabel(), value: attr.id};\n\t\t});\n\t}, 50),\n);\n\n// Keeping clip and asset attributes together in the same call with wholly different needs was\n// kinf of a mistake\nexport const assetAttributes = attributes.filterByObjectType('asset');\nexport const clipAttributes = attributes.filterByObjectType('clip');\n\n// Update our sub attribute collections\nconst attributesChanged = _.debounce(() => {\n\tassetAttributes.set(attributes.filterByObjectType('asset').models, {\n\t\tmerge: true,\n\t});\n\tclipAttributes.set(attributes.filterByObjectType('clip').models, {\n\t\tmerge: true,\n\t});\n\tdispatcher.trigger('asset:attributes:updated', attributes);\n}, 25);\n\nattributes\n\t.on('add remove', attributesChanged)\n\t.on('change', (model) => {\n\t\t!_.isEmpty(model.changed) && attributesChanged();\n\t})\n\t.on('sync', (collection) => {\n\t\tcollection === attributes && attributesChanged();\n\t});\n\nexport default attributes;\n","import {ConfirmationServiceProvider} from './ConfirmationService';\nexport * from './withConfirmation';\nexport * from './ConfirmationService';\nexport default ConfirmationServiceProvider;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const FALLBACK_MESSAGE_CLASS_NAME = 'FallbackMessage';\nexport const FALLBACK_MESSAGE_CLASS_SLOTS = [\n\t'root',\n\t'children',\n\t'header',\n\t'icon',\n\t'body',\n\t'text',\n] as const;\n\nexport type FallbackMessageClassSlot = typeof FALLBACK_MESSAGE_CLASS_SLOTS[number];\n\nexport interface FallbackMessageClasses {\n\t/** styles applied to the root element */\n\troot: string;\n\tchildren: string;\n\theader: string;\n\tbody: string;\n\ticon: string;\n\ttext: string;\n\n\t// severities\n\terror: string;\n\tinfo: string;\n\tsuccess: string;\n\twarning: string;\n\n\t// variants\n\tlight: string;\n}\n\nexport type FallbackMessageClassKey = keyof FallbackMessageClasses;\n\nexport const getFallbackMessageUtilityClass = (\n\tslot: FallbackMessageClassSlot,\n) => generateUtilityClass(FALLBACK_MESSAGE_CLASS_NAME, slot);\n\nexport const fallbackMessageClasses: FallbackMessageClasses = generateUtilityClasses(\n\tFALLBACK_MESSAGE_CLASS_NAME,\n\t[\n\t\t'root',\n\t\t'body',\n\t\t'children',\n\t\t'header',\n\t\t'icon',\n\t\t'text',\n\t\t'light',\n\t\t'error',\n\t\t'info',\n\t\t'success',\n\t\t'warning',\n\t],\n);\n\nexport default fallbackMessageClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {Typography} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {CSSProperties} from '@mui/styles/withStyles';\nimport {\n\tSEVERITIES,\n\tSeverity,\n\tSeverityCSSProperties,\n\tTheme,\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n} from '@netx/core-components/Theme';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport type {IconDefinition} from '@fortawesome/fontawesome-svg-core';\n\nimport {\n\tfallbackMessageClasses,\n\tFallbackMessageClasses,\n\tgetFallbackMessageUtilityClass,\n\tFALLBACK_MESSAGE_CLASS_NAME,\n} from './fallbackMessageClasses';\n\ntype FallbackMessageUtiltiyClassProps = WithClasses<\n\tFallbackMessageClasses,\n\t{\n\t\tseverity?: Severity;\n\t\tvariant?: 'default' | 'light';\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: FallbackMessageUtiltiyClassProps) => {\n\tconst {classes, severity, variant} = ownerState;\n\tconst slots = {\n\t\troot: ['root', variant],\n\t\ticon: ['icon', variant, severity],\n\t\ttext: ['text', variant, severity],\n\t\tchildren: ['children'],\n\t\tbody: ['body'],\n\t\theader: ['header', variant],\n\t};\n\treturn composeClasses(slots, getFallbackMessageUtilityClass, classes);\n};\n\nconst FallbackMessageRoot = styled('div', {\n\tname: FALLBACK_MESSAGE_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\talignItems: 'center',\n\tbackground: theme.palette.background.paper,\n\tflex: '1 1 auto',\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tjustifyContent: 'center',\n\tminHeight: 0,\n\toverflow: 'hidden',\n\tpadding: theme.spacing(3),\n\ttextAlign: 'center',\n\twidth: '100%',\n\t[`&.${fallbackMessageClasses.light}`]: {\n\t\t[`& .${fallbackMessageClasses.icon}`]: {\n\t\t\t...SEVERITIES.reduce((accum, key) => {\n\t\t\t\treturn key === 'default'\n\t\t\t\t\t? accum\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t...accum,\n\t\t\t\t\t\t\t[`&.${key}`]: {\n\t\t\t\t\t\t\t\tcolor: theme.palette[key].light,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t };\n\t\t\t}, {}),\n\t\t},\n\t},\n\t[`&:not(.${fallbackMessageClasses.light})`]: {\n\t\t[`& .${fallbackMessageClasses.icon}`]: {\n\t\t\t...SEVERITIES.reduce((accum, key) => {\n\t\t\t\treturn key === 'default'\n\t\t\t\t\t? accum\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t...accum,\n\t\t\t\t\t\t\t[`&.${key}`]: {\n\t\t\t\t\t\t\t\tcolor: theme.palette[key].main,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t };\n\t\t\t}, {}),\n\t\t},\n\t},\n}));\n\nconst FallbackMessageIcon = styled(FontAwesomeIcon, {\n\tname: FALLBACK_MESSAGE_CLASS_NAME,\n\tslot: 'Icon',\n})(({theme}) => ({\n\tcolor: theme.palette.custom.icon.onBackground,\n\theight: '75px !important',\n\twidth: '75px !important',\n\tmarginBottom: theme.spacing(2),\n}));\n\nconst FallbackMessageBody = styled('div', {\n\tname: FALLBACK_MESSAGE_CLASS_NAME,\n\tslot: 'Body',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\tcolor: theme.palette.text.secondary,\n\twidth: '100%',\n}));\n\nconst FallbackMessageHeader = styled('div', {\n\tname: FALLBACK_MESSAGE_CLASS_NAME,\n\tslot: 'Header',\n})(({theme}) => ({\n\t[`&:not(.${fallbackMessageClasses.light}) .${fallbackMessageClasses.text}`]: {\n\t\tcolor: theme.palette.text.primary,\n\t},\n}));\n\nconst FallbackMessageText = styled(Typography, {\n\tname: FALLBACK_MESSAGE_CLASS_NAME,\n\tslot: 'Text',\n})(({theme}) => ({\n\t[`&.${fallbackMessageClasses.light}`]: {\n\t\tcolor: theme.palette.text.secondary,\n\t},\n}));\n\nconst FallbackMessageChildren = styled('div', {\n\tname: FALLBACK_MESSAGE_CLASS_NAME,\n\tslot: 'Children',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\tmarginTop: theme.spacing(3),\n\twidth: '100%',\n}));\n\nexport type FallbackMessageProps = WithClasses<\n\tFallbackMessageClasses,\n\tReact.PropsWithChildren<{\n\t\ticon?: IconDefinition;\n\t\ttitle?: string;\n\t\tmessage?: string;\n\t\tseverity?: Severity;\n\t\tvariant?: 'default' | 'light';\n\t}>\n>;\n\n/**\n * A uniformed way to show fallback messages in the app \\\n * It will size to whatever container it is put in - it will not influence the size of the parent container\n */\nexport const FallbackMessage = ({\n\tchildren,\n\tclassName,\n\ticon,\n\tmessage,\n\ttitle,\n\t...props\n}: FallbackMessageProps) => {\n\tconst classes = useUtilityClasses(props);\n\n\tconst _icon = icon ? (\n\t\t\n\t) : null;\n\tconst _message =\n\t\tmessage != null ? (\n\t\t\t\n\t\t\t\t{message}\n\t\t\t\n\t\t) : null;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{_icon}\n\t\t\t\t{title ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\t\n\t\t\t\t{_message}\n\n\t\t\t\t{children ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default React.memo(FallbackMessage);\n","import type {UserLevel} from '../constants';\nimport {getUserLevel} from './getUserLevel';\nexport {UserLevel} from '../constants';\n\nexport const currentUserMeetsUserLevel = (userLevel: UserLevel) =>\n\tgetUserLevel() >= userLevel;\n\nexport default currentUserMeetsUserLevel;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tButton as MuiButton,\n\tButtonProps as MuiButtonProps,\n\tTypography,\n} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport {getButtonSeverityStyles, Severity, Theme} from '../Theme';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tflex: '0 0 auto',\n\t\t},\n\t\tdisabled: {},\n\t\toutlined: {},\n\t\tcontained: {},\n\t\ttext: {},\n\t\t...getButtonSeverityStyles(theme),\n\t});\n\nexport interface ButtonProps extends MuiButtonProps {\n\tseverity?: Severity;\n}\n\nconst Button = React.forwardRef<\n\tHTMLButtonElement,\n\tWithStyles & ButtonProps\n>(\n\t(\n\t\t{\n\t\t\tclasses,\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\tclassName,\n\t\t\tseverity = 'default',\n\t\t\tvariant = 'text',\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tif (props.color != null && severity !== 'default') {\n\t\t\tconsole.warn(\n\t\t\t\t'unsetting `color` prop; do not use `color` and `severity` in tandem',\n\t\t\t);\n\t\t\tprops.color = undefined;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport default withStyles(styles)(Button);\n","export {default} from './Dialog';\nexport * from '@mui/material/Dialog/dialogClasses';\nexport {default as dialogClasses} from '@mui/material/Dialog/dialogClasses';\nexport * from './Dialog';\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => array2.indexOf(x) === -1);\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.esm.js.map\n","import {useRef, useEffect} from 'react';\n\nexport const useUpdateEffect = (\n\teffect: Function,\n\tdependencies?: React.DependencyList,\n) => {\n\tconst isInitialMount = useRef(true);\n\n\tuseEffect(() => {\n\t\tif (isInitialMount.current) {\n\t\t\tisInitialMount.current = false;\n\t\t\treturn;\n\t\t}\n\t\treturn effect();\n\t}, dependencies);\n};\n\nexport default useUpdateEffect;\n","import React, {useCallback} from 'react';\n\nimport {ListItemIcon, ListItemText, MenuItem, Typography} from '@mui/material';\nimport IconButton, {IconButtonProps} from '@netx/core-components/IconButton';\nimport Button, {ButtonProps} from '@netx/core-components/Button';\nimport {MenuItemProps} from '@mui/material/MenuItem';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {IconProp} from '@fortawesome/fontawesome-svg-core';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport ToggleButton, {ToggleButtonProps} from '../ToggleButton';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {},\n\t\tmenuIconWrapper: {\n\t\t\t// It is just too darn wide\n\t\t\tminWidth: 42,\n\t\t},\n\t});\n\ntype ComponentProps = {\n\t'data-testid'?: string;\n} & (\n\t| Partial>\n\t| Partial>\n\t| Partial>\n\t| Partial>\n);\n\nexport interface ActionButtonProps {\n\tcolor?: string;\n\tclassName?: string;\n\tdisabled?: boolean;\n\ticon?: IconProp;\n\tlabel: string;\n\tonClick(...args: any[]): void;\n\tonKeyDown?: (...args: any[]) => void;\n\tvariant?: 'fab' | 'icon' | 'menu' | 'standard' | 'toggle';\n\ttabIndex?: number;\n\tsize?: ButtonProps['size'];\n\tchecked?: boolean;\n\tComponentProps?: ComponentProps;\n}\n\nconst ActionButton: React.FunctionComponent<\n\tWithStyles & ActionButtonProps\n> = ({\n\tclasses,\n\n\tclassName,\n\tdisabled,\n\ticon,\n\tlabel,\n\tonClick,\n\tonKeyDown,\n\tvariant,\n\tsize,\n\ttabIndex,\n\tchecked = false,\n\tComponentProps,\n}) => {\n\tvariant = variant == null ? 'standard' : variant;\n\tComponentProps = ComponentProps || {};\n\n\tconst handleClick = useCallback(\n\t\t(event) => {\n\t\t\tevent.persist && event.persist();\n\t\t\tevent.preventDefault && event.preventDefault();\n\t\t\tonClick(event);\n\t\t},\n\t\t[onClick],\n\t);\n\n\tconst commonProps = {\n\t\tclassName,\n\t\tdisabled,\n\t\tonClick: handleClick,\n\t\tonKeyDown,\n\t};\n\n\tswitch (variant) {\n\t\tcase 'fab':\n\t\tcase 'icon':\n\t\t\treturn icon ? (\n\t\t\t\t)}\n\t\t\t\t\tvariant={variant === 'icon' ? undefined : variant}\n\t\t\t\t/>\n\t\t\t) : null;\n\t\tcase 'menu':\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{icon ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase 'toggle':\n\t\t\tif (!icon) return null;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t//case 'standard':\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\t) : undefined\n\t\t\t\t\t}\n\t\t\t\t\ttabIndex={tabIndex != null ? tabIndex : undefined}\n\t\t\t\t\t{...commonProps}\n\t\t\t\t\t{...(ComponentProps as Partial)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t{label}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t}\n};\n\nActionButton.displayName = 'ActionButton';\n\nexport default withStyles(styles, {\n\tname: 'ActionButton',\n})(React.memo(ActionButton));\n","export {default} from './Alert';\nexport * from './Alert';\nexport * from '@mui/material/Alert/alertClasses';\nexport {default as alertClasses} from '@mui/material/Alert/alertClasses';\n","import React, {useCallback, useRef} from 'react';\nimport clsx from 'clsx';\nimport type {FixedSizeList} from 'react-window';\nimport {i18n} from '@netx/core/i18n';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faCheck} from '@fortawesome/pro-solid-svg-icons';\nimport {\n\tListItem,\n\tListItemText,\n\tListSubheader,\n\tAutocompleteValue,\n\tPopper,\n} from '@mui/material';\nimport Autocomplete, {\n\tAutocompleteProps,\n\tautocompleteClasses,\n} from '@mui/material/Autocomplete';\nimport {inputBaseClasses} from '@mui/material/InputBase';\nimport {inputLabelClasses} from '@mui/material/InputLabel';\nimport {ChipSkeleton} from '@netx/core-components/Chip';\nimport {composeClasses, styled} from '@netx/core-components/Theme';\nimport {compareProps} from '@netx/core-components/util';\nimport selectFieldClasses, {\n\tgetSelectFieldUtilityClass,\n\tSelectFieldClasses,\n} from './selectFieldClasses';\nimport Input from '../Input';\nimport ListBox from '../ListBox';\nimport ValueChip from '../ValueChip';\nimport {useErrorFocus} from '../../../hooks/useErrorFocus';\nimport {\n\tCommonFieldPropsWithTextField,\n\tErrorField,\n\tuseFormInput,\n} from '../../../';\n\nexport type SelectFieldElement = HTMLDivElement;\nexport type SelectFieldRef = React.ForwardedRef;\n\nconst useUtilityClasses = (ownerState) => {\n\tconst {classes, multiple} = ownerState;\n\tconst slots = {\n\t\troot: ['root', multiple && 'multiple'],\n\t\tautocomplete: ['autocomplete'],\n\t\tselectedIcon: ['selectedIcon'],\n\t};\n\treturn composeClasses(\n\t\tslots,\n\t\tgetSelectFieldUtilityClass,\n\t\tclasses as typeof selectFieldClasses,\n\t);\n};\n\nconst SelectFieldRoot = styled('div', {\n\tname: 'SelectField',\n\tslot: 'Root',\n\toverridesResolver: (props, styles) => styles.root,\n})(({theme}) => ({\n\tdisplay: 'inline-flex',\n\tflexDirection: 'column',\n\twidth: '100%',\n\t// TODO: this is related to our size override for fa icons in theme\n\t// need to better handle this issue as using `important` is code smell\n\t// at this stage\n\t'& .MuiSvgIcon-root': {\n\t\tminWidth: `8px !important`,\n\t\tminHeight: `8px !important`,\n\t},\n\t[`&.${selectFieldClasses.multiple}`]: {\n\t\t// Make the input area minimum size match the size it would be if it had a value\n\t\t// otherwise we wind up with the interface jumping slightly betweem value and no\n\t\t// value\n\t\t[`& .${inputLabelClasses.root}`]: {\n\t\t\tlineHeight: '1rem',\n\t\t},\n\t\t[`& .${inputBaseClasses.root}`]: {\n\t\t\tminHeight: 50,\n\t\t\t[`& .${inputBaseClasses.input}`]: {\n\t\t\t\tminHeight: 28,\n\t\t\t},\n\t\t},\n\t\t[`& .${inputLabelClasses.outlined}:not(${inputLabelClasses.shrink})`]: {\n\t\t\ttransform: 'translate(14px, 18px) scale(1)',\n\t\t},\n\t},\n}));\n\nconst ListItemIconRoot = styled(FontAwesomeIcon, {\n\tname: 'SelectField',\n\tslot: 'SelectedIcon',\n\toverridesResolver: (props, styles) => styles.selectedIcon,\n})(({theme}) => ({\n\tcolor: theme.palette.secondary.main,\n}));\n\nconst AutocompleteRoot = styled(Autocomplete, {\n\tname: 'SelectField',\n\tslot: 'Autocomplete',\n\toverridesResolver: (props, styles) => styles.autocomplete,\n})(({theme}) => ({\n\twidth: '100%',\n})) as <\n\tT,\n\tMultiple extends boolean | undefined = undefined,\n\tDisableClearable extends boolean | undefined = undefined,\n\tFreeSolo extends boolean | undefined = undefined,\n>(\n\tprops: AutocompleteProps,\n) => JSX.Element;\n\nconst PopperRoot = styled(Popper)(({theme}) => ({\n\t[`& .${autocompleteClasses.loading}, & .${autocompleteClasses.noOptions}`]: {\n\t\tcolor: theme.palette.text.primary,\n\t},\n}));\n\nexport interface SelectFieldProps<\n\tT,\n\tMultiple extends boolean | undefined,\n\tDisableClearable extends boolean | undefined,\n\tFreeSolo extends boolean | undefined,\n> extends Omit, 'value' | 'onChange'> {\n\tclasses?: Partial;\n\tlabelKey?: string;\n\tmultiple?: Multiple;\n\tonChange?: (\n\t\tvalue: [DisableClearable] extends [true]\n\t\t\t? AutocompleteValue\n\t\t\t: AutocompleteValue | null,\n\t) => void;\n\toptions?: T[];\n\toptionLabels?: Record;\n\tvalue: AutocompleteValue | undefined;\n\tAutocompleteProps?: Partial<\n\t\tOmit<\n\t\t\tAutocompleteProps,\n\t\t\t| 'className'\n\t\t\t| 'onChange'\n\t\t\t| 'options'\n\t\t\t| 'renderInput'\n\t\t\t| 'value'\n\t\t\t| 'multiple'\n\t\t>\n\t>;\n}\n\nconst getSafeValues = (values?: any[]) =>\n\tvalues && Array.isArray(values) ? values : [];\n\nconst renderGroup = (params) => [\n\tparams.group !== '' ? (\n\t\t\n\t\t\t{params.group}\n\t\t\n\t) : null,\n\tparams.children,\n];\n\nconst SelectFieldInner = <\n\tT,\n\tMultiple extends boolean | undefined,\n\tDisableClearable extends boolean | undefined,\n\tFreeSolo extends boolean | undefined,\n>(\n\tprops: SelectFieldProps,\n\tref: SelectFieldRef,\n) => {\n\tconst {\n\t\tchanged,\n\t\tclassName,\n\t\tdisabled,\n\t\terror,\n\t\tform,\n\t\tformFieldOptions,\n\t\thideErrorMessage,\n\t\tlabelKey,\n\t\tloading,\n\t\tloadingValue,\n\t\tmultiple,\n\t\tname,\n\t\tonChange,\n\t\tonSearch,\n\t\toptions,\n\t\toptionLabels,\n\t\treadOnly,\n\t\trequired,\n\t\tvalue,\n\n\t\tAutocompleteProps,\n\t\tclasses: _classes,\n\t\t...sendProps\n\t} = props;\n\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t\tmultiple,\n\t});\n\n\tconst inputRef = useRef();\n\tconst fixedSizeListRef = useRef();\n\n\tuseFormInput(name, value, form, {required, ...formFieldOptions});\n\tuseErrorFocus({\n\t\terror,\n\t\tinputRef,\n\t});\n\n\tconst getOptionLabel = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['getOptionLabel']\n\t>(\n\t\t(option) => {\n\t\t\tif (loading) return 'loading...';\n\t\t\treturn labelKey\n\t\t\t\t? option[labelKey]\n\t\t\t\t: optionLabels\n\t\t\t\t? optionLabels[option as unknown as string]\n\t\t\t\t: option;\n\t\t},\n\t\t[optionLabels, loading],\n\t);\n\n\tconst handleChange = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['onChange']\n\t>(\n\t\t(event, value) => {\n\t\t\tif (!event) return;\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tvalue = value.filter(\n\t\t\t\t\t(value) => value !== '' && value != null,\n\t\t\t\t) as AutocompleteValue;\n\t\t\t}\n\t\t\tform?.setValue(name, value);\n\t\t\tonChange?.(value);\n\t\t},\n\t\t[form?.setValue, name, onChange],\n\t);\n\n\tconst renderInput = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['renderInput']\n\t>(\n\t\t(params) => (\n\t\t\t\n\t\t),\n\t\t[error, loading, loadingValue, name, required, sendProps],\n\t);\n\n\tconst renderOption = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['renderOption']\n\t>(\n\t\t(props, option, state) => (\n\t\t\t\n\t\t\t\t\t) : null\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\t[optionLabels, AutocompleteProps?.getOptionLabel],\n\t);\n\n\tconst renderTags = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['renderTags']\n\t>(\n\t\t(values, getTagProps) =>\n\t\t\tloadingValue ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\tgetSafeValues(values).map((value, index) => {\n\t\t\t\t\tconst label = optionLabels ? optionLabels[value] : value;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t),\n\t\t[disabled, loadingValue, optionLabels, onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tref={ref}\n\t\t\t\tautoHighlight\n\t\t\t\tblurOnSelect={!multiple}\n\t\t\t\tclearOnBlur\n\t\t\t\t// Yeah, kind of breaking the generic typing here to hard\n\t\t\t\t// enforce this for required fields\n\t\t\t\tdisableClearable={required as any}\n\t\t\t\t// auto select input text when field is focused\n\t\t\t\t// for easier filtering/value replacement\n\t\t\t\t// non multiselect only\n\t\t\t\tselectOnFocus={!multiple}\n\t\t\t\tdisableCloseOnSelect={multiple}\n\t\t\t\tgetOptionLabel={getOptionLabel}\n\t\t\t\t// We handle this in the `ListBox`\n\t\t\t\thandleHomeEndKeys={false}\n\t\t\t\tmultiple={multiple}\n\t\t\t\tnoOptionsText={i18n.t('i18n.noMatches')}\n\t\t\t\topenOnFocus\n\t\t\t\trenderGroup={renderGroup}\n\t\t\t\trenderInput={renderInput}\n\t\t\t\trenderOption={renderOption}\n\t\t\t\trenderTags={renderTags}\n\t\t\t\t{...AutocompleteProps}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tdisabled={disabled || loadingValue}\n\t\t\t\tid={props.id}\n\t\t\t\tloading={loading || loadingValue}\n\t\t\t\t// This is a hack to show loading state when values are being \"loaded\"\n\t\t\t\t// the autocomplete will not run `renderTags` if there is no value\n\t\t\t\toptions={options || []}\n\t\t\t\tvalue={multiple && loadingValue ? ([''] as any) : value}\n\t\t\t\tListboxComponent={ListBox}\n\t\t\t\tPopperComponent={PopperRoot}\n\t\t\t\tListboxProps={{\n\t\t\t\t\t...AutocompleteProps?.ListboxProps,\n\t\t\t\t\t// TODO: the typing changed here in v5-alpha\n\t\t\t\t\t// there is no way (that i know of atm) to get\n\t\t\t\t\t// it to recognize the `props` of `ListBox` as\n\t\t\t\t\t// valid `props` to pass to `ListboxComponent`\n\t\t\t\t\t// https://github.com/mui-org/material-ui/issues/26342\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tfixedSizeListRef,\n\t\t\t\t\tinputRef,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{!hideErrorMessage ? (\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};\n\nexport const SelectFieldPrimitive = React.forwardRef(SelectFieldInner) as <\n\tT,\n\tMultiple extends boolean | undefined,\n\tDisableClearable extends boolean | undefined,\n\tFreeSolo extends boolean | undefined,\n>(\n\tprops: SelectFieldProps,\n) => React.ReactElement;\n\nexport const SelectField = React.memo(SelectFieldPrimitive, compareProps()) as <\n\tT,\n\tMultiple extends boolean | undefined,\n\tDisableClearable extends boolean | undefined,\n\tFreeSolo extends boolean | undefined,\n>(\n\tprops: SelectFieldProps,\n) => JSX.Element;\n\nexport default SelectField;\n","import React from 'react';\n\nimport {\n\tSkeleton,\n\tSkeletonProps,\n\tTypography,\n\tTypographyProps,\n} from '@mui/material';\n\nexport interface PrimaryTitleProps extends TypographyProps {\n\tloading?: boolean;\n\tSkeletonProps?: SkeletonProps;\n}\n\n/**\n * NetX Primary Title\n */\nconst PrimaryTitlePrimitive = ({\n\tloading,\n\tSkeletonProps,\n\t...props\n}: PrimaryTitleProps) => {\n\tif (loading && !props.children)\n\t\treturn ;\n\treturn ;\n};\n\nexport const PrimaryTitle = PrimaryTitlePrimitive;\nexport default PrimaryTitle;\n","import React from 'react';\n\nimport {\n\tSkeleton,\n\tSkeletonProps,\n\tTypography,\n\tTypographyProps,\n} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nconst styles = ({palette}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tcolor:\n\t\t\t\tpalette.mode === 'light'\n\t\t\t\t\t? 'rgba(0, 0, 0, 0.55)'\n\t\t\t\t\t: palette.text.secondary,\n\t\t},\n\t});\n\nexport interface SecondaryTitleProps extends TypographyProps {\n\tloading?: boolean;\n\tsekeleton?: React.ReactNode;\n\tSkeletonProps?: Partial;\n}\n\n/**\n * NetX Secondary Title\n */\nconst SecondaryTitlePrimitive = ({\n\tclasses,\n\tchildren,\n\tloading,\n\tsekeleton,\n\tvariant = 'body2',\n\tSkeletonProps,\n}: WithStyles & SecondaryTitleProps) => {\n\tif (loading)\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{sekeleton || (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport const SecondaryTitle = withStyles(styles)(\n\tReact.memo(SecondaryTitlePrimitive),\n);\nexport default SecondaryTitle;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const TITLE_CLASS_NAME = 'Title';\nexport const TITLE_CLASS_SLOTS = [\n\t'root',\n\t'icon',\n\t'iconArea',\n\t'titleArea',\n] as const;\n\nexport type TitleClassSlot = typeof TITLE_CLASS_SLOTS[number];\n\nexport interface TitleClasses {\n\troot: string;\n\ticon: string;\n\ticonArea: string;\n\ttitleArea: string;\n}\n\nexport type TitleClassKey = keyof TitleClasses;\n\nexport const getTitleUtilityClass = (slot: TitleClassSlot) =>\n\tgenerateUtilityClass(TITLE_CLASS_NAME, slot);\n\nexport const titleClasses: TitleClasses = generateUtilityClasses(\n\tTITLE_CLASS_NAME,\n\t['root', 'icon', 'iconArea', 'titleArea'],\n);\n\nexport default titleClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport type {Variant} from '@mui/material/styles/createTypography';\nimport {composeClasses, styled, WithClasses} from '@netx/core-components/Theme';\n\nimport PrimaryTitle, {PrimaryTitleProps} from '../PrimaryTitle';\nimport SecondaryTitle, {SecondaryTitleProps} from '../SecondaryTitle';\n\nimport {\n\tFontAwesomeIconProps,\n\tFontAwesomeIcon,\n} from '@fortawesome/react-fontawesome';\n\nimport {\n\ttitleClasses,\n\tgetTitleUtilityClass,\n\tTitleClasses,\n\tTITLE_CLASS_NAME,\n} from './titleClasses';\n\ntype TitleUtiltiyClassProps = WithClasses;\n\nconst useUtilityClasses = (ownerState: TitleUtiltiyClassProps) => {\n\tconst {classes} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t\ticon: ['icon'],\n\t\ticonArea: ['iconArea'],\n\t\ttitleArea: ['titleArea'],\n\t};\n\treturn composeClasses(slots, getTitleUtilityClass, classes);\n};\n\nconst TitleRoot = styled('div', {\n\tname: TITLE_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\talignItems: 'center',\n\tminWidth: 0,\n}));\n\nconst TitleIcon = styled('div', {\n\tname: TITLE_CLASS_NAME,\n\tslot: 'Icon',\n})(({theme}) => ({\n\tflex: '0 0 auto',\n\tborderRadius: '100%',\n\tbackground: theme.palette.primary.main,\n\theight: 42,\n\twidth: 42,\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'center',\n\tcolor: theme.palette.background.paper,\n\tfontSize: 18,\n\tmarginRight: 16,\n}));\n\nconst TitleIconArea = styled('div', {\n\tname: TITLE_CLASS_NAME,\n\tslot: 'IconArea',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '0 0 auto',\n\talignItems: 'center',\n}));\n\nconst TitleTitleArea = styled('div', {\n\tname: TITLE_CLASS_NAME,\n\tslot: 'TitleArea',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tflex: '1 1 auto',\n\toverflow: 'hidden',\n}));\n\nexport interface TitleProps\n\textends WithClasses<\n\t\tTitleClasses,\n\t\t{\n\t\t\tactionButton?: React.ReactElement;\n\t\t\ticon?: FontAwesomeIconProps['icon'];\n\t\t\tloading?: boolean;\n\t\t\tprimary: React.ReactNode;\n\t\t\tsecondary?: React.ReactNode;\n\t\t\tPrimaryTitleProps?: PrimaryTitleProps;\n\t\t\tSecondaryTitleProps?: SecondaryTitleProps;\n\t\t\tvariant?: Variant;\n\t\t}\n\t> {}\n\n/**\n * NetX Title\n */\nexport const TitlePrimitive = ({\n\tclasses: _classes,\n\tclassName,\n\tactionButton,\n\ticon,\n\tloading,\n\tprimary,\n\tsecondary,\n\tPrimaryTitleProps,\n\tSecondaryTitleProps,\n\t...props\n}: TitleProps) => {\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t});\n\n\treturn (\n\t\t\n\t\t\t{actionButton ? (\n\t\t\t\t\n\t\t\t\t\t{actionButton}\n\t\t\t\t\n\t\t\t) : icon ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{primary}\n\t\t\t\t\n\t\t\t\t{secondary != null ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{secondary}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n};\n\nexport const Title = React.memo(TitlePrimitive);\n\nexport default Title;\n","import {FormType, InputForm} from './';\n\nconst INPUT_FORM_KEYS = [\n\t'register',\n\t'unregister',\n\t'setError',\n\t'clearError',\n\t'setAction',\n\t'setValue',\n\t'setChange',\n\t'updateOptions',\n\t'errorsRef',\n\t'valuesRef',\n\t'validateField',\n] as const;\n\n/**\n * Get form items needed to run an input\n * By not passing the whole form object to an input we have much\n * better control over inputs rendering (and better performance)\n * The methods used are wrapped in useCallback\n */\nexport const getInputFormObject = = FormType>(\n\tform: T,\n): InputForm => {\n\treturn Object.fromEntries(\n\t\tObject.entries(form).filter(([key]) =>\n\t\t\tINPUT_FORM_KEYS.includes(key as any),\n\t\t),\n\t) as InputForm;\n};\n\n/** Check if attribute value is empty/undefined */\nexport const isEmptyValue = (value: any): boolean => {\n\tif (value === void 0 || value == null) return true;\n\tif (value.length === 0) return true;\n\t// if (typeof value === 'string' && !value.trim().length) return true;\n\treturn false;\n};\n\n/** Check attribute values match */\nexport const valuesMatch = (\n\tcurrentValue: any,\n\toriginalValue: any,\n\tmultipleValues = false,\n): boolean => {\n\tcurrentValue = Array.isArray(currentValue)\n\t\t? currentValue.join()\n\t\t: currentValue;\n\toriginalValue = Array.isArray(originalValue)\n\t\t? originalValue.join()\n\t\t: originalValue;\n\n\t// Overriding mutliple values with a value\n\tif (multipleValues && currentValue != null) return false;\n\n\t// Treat null as empty\n\tif (currentValue === '' && originalValue == null) return true;\n\n\t// Difference in how java sends back dates mm/dd/yyyy\n\t// and we send/manage in yyyy-mm-dd\n\tif (\n\t\toriginalValue &&\n\t\toriginalValue.toString().match(/^\\d{2}\\/\\d{2}\\/\\d{4}$/)\n\t) {\n\t\toriginalValue = originalValue.replace(/(..).(..).(....)/, '$3-$1-$2');\n\t}\n\tif (currentValue && currentValue.toString().match(/^\\d{2}\\/\\d{2}\\/\\d{4}$/)) {\n\t\tcurrentValue = currentValue.replace(/(..).(..).(....)/, '$3-$1-$2');\n\t}\n\n\tif (currentValue == null && originalValue == null) return true;\n\tif (currentValue == null && originalValue != null) return false;\n\tif (currentValue != null && originalValue == null) return false;\n\n\treturn JSON.stringify(currentValue) === JSON.stringify(originalValue);\n};\n","import React, {useState} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {useUpdateEffect} from '@netx/core-components/hooks';\nimport {isEmptyValue} from '@netx/core-components/Form';\n\nimport {AttributeAttributes} from '@netx/core-asset/models/attribute';\nimport {ATTRIBUTE_MULTIPLE_VALUE_TYPES} from '../constants';\n\nexport interface Modifiers {\n\tcleared?: boolean;\n\tdisable?: boolean;\n\tmultipleValues?: boolean;\n\treadOnly?: boolean;\n\tvalue?: any;\n}\n\nexport const usePlaceholder = (\n\tattrData: AttributeAttributes,\n\tdefaultPlaceholder = '',\n\tmodifiers: Modifiers = {\n\t\tcleared: false,\n\t\tdisable: false,\n\t\tmultipleValues: false,\n\t\treadOnly: false,\n\t},\n): string => {\n\tconst getPlaceholder = () => {\n\t\tconst isMultipleField = ATTRIBUTE_MULTIPLE_VALUE_TYPES.includes(\n\t\t\tattrData.type as typeof ATTRIBUTE_MULTIPLE_VALUE_TYPES[number],\n\t\t);\n\t\treturn modifiers.disable || !isEmptyValue(modifiers.value)\n\t\t\t? ''\n\t\t\t: modifiers.cleared\n\t\t\t? i18n.t('i18n.tagPanelEmptiedValue')\n\t\t\t: (modifiers.multipleValues && i18n.t('i18n.tagPanelMultipleValues')) ||\n\t\t\t (modifiers.readOnly && '(none)') ||\n\t\t\t defaultPlaceholder ||\n\t\t\t (isMultipleField ? i18n.t('i18n.makeSelection') : '');\n\t};\n\n\tconst [placeholder, setPlaceholder] = useState(getPlaceholder());\n\n\tuseUpdateEffect(() => {\n\t\tsetPlaceholder(getPlaceholder());\n\t}, [attrData.type, defaultPlaceholder, modifiers]);\n\n\treturn placeholder;\n};\n\nexport default usePlaceholder;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSnackbarContentUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbarContent', slot);\n}\nconst snackbarContentClasses = generateUtilityClasses('MuiSnackbarContent', ['root', 'message', 'action']);\nexport default snackbarContentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"className\", \"message\", \"role\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { emphasize } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Paper from '../Paper';\nimport { getSnackbarContentUtilityClass } from './snackbarContentClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n action: ['action'],\n message: ['message']\n };\n return composeClasses(slots, getSnackbarContentUtilityClass, classes);\n};\n\nconst SnackbarContentRoot = styled(Paper, {\n name: 'MuiSnackbarContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => {\n const emphasis = theme.palette.mode === 'light' ? 0.8 : 0.98;\n const backgroundColor = emphasize(theme.palette.background.default, emphasis);\n return _extends({}, theme.typography.body2, {\n color: theme.vars ? theme.vars.palette.SnackbarContent.color : theme.palette.getContrastText(backgroundColor),\n backgroundColor: theme.vars ? theme.vars.palette.SnackbarContent.bg : backgroundColor,\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: '6px 16px',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n flexGrow: 1,\n [theme.breakpoints.up('sm')]: {\n flexGrow: 'initial',\n minWidth: 288\n }\n });\n});\nconst SnackbarContentMessage = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0'\n});\nconst SnackbarContentAction = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n});\nconst SnackbarContent = /*#__PURE__*/React.forwardRef(function SnackbarContent(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSnackbarContent'\n });\n\n const {\n action,\n className,\n message,\n role = 'alert'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SnackbarContentRoot, _extends({\n role: role,\n square: true,\n elevation: 6,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SnackbarContentMessage, {\n className: classes.message,\n ownerState: ownerState,\n children: message\n }), action ? /*#__PURE__*/_jsx(SnackbarContentAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SnackbarContent.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The message to display.\n */\n message: PropTypes.node,\n\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes\n /* @typescript-to-proptypes-ignore */\n .string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default SnackbarContent;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSnackbarUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbar', slot);\n}\nconst snackbarClasses = generateUtilityClasses('MuiSnackbar', ['root', 'anchorOriginTopCenter', 'anchorOriginBottomCenter', 'anchorOriginTopRight', 'anchorOriginBottomRight', 'anchorOriginTopLeft', 'anchorOriginBottomLeft']);\nexport default snackbarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onEnter\", \"onExited\"],\n _excluded2 = [\"action\", \"anchorOrigin\", \"autoHideDuration\", \"children\", \"className\", \"ClickAwayListenerProps\", \"ContentProps\", \"disableWindowBlurListener\", \"message\", \"onBlur\", \"onClose\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport ClickAwayListener from '@mui/base/ClickAwayListener';\nimport styled from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport useEventCallback from '../utils/useEventCallback';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport SnackbarContent from '../SnackbarContent';\nimport { getSnackbarUtilityClass } from './snackbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchorOrigin\n } = ownerState;\n const slots = {\n root: ['root', `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`]\n };\n return composeClasses(slots, getSnackbarUtilityClass, classes);\n};\n\nconst SnackbarRoot = styled('div', {\n name: 'MuiSnackbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const center = {\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)'\n };\n return _extends({\n zIndex: (theme.vars || theme).zIndex.snackbar,\n position: 'fixed',\n display: 'flex',\n left: 8,\n right: 8,\n justifyContent: 'center',\n alignItems: 'center'\n }, ownerState.anchorOrigin.vertical === 'top' ? {\n top: 8\n } : {\n bottom: 8\n }, ownerState.anchorOrigin.horizontal === 'left' && {\n justifyContent: 'flex-start'\n }, ownerState.anchorOrigin.horizontal === 'right' && {\n justifyContent: 'flex-end'\n }, {\n [theme.breakpoints.up('sm')]: _extends({}, ownerState.anchorOrigin.vertical === 'top' ? {\n top: 24\n } : {\n bottom: 24\n }, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' && {\n left: 24,\n right: 'auto'\n }, ownerState.anchorOrigin.horizontal === 'right' && {\n right: 24,\n left: 'auto'\n })\n });\n});\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSnackbar'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n\n const {\n action,\n anchorOrigin: {\n vertical,\n horizontal\n } = {\n vertical: 'bottom',\n horizontal: 'left'\n },\n autoHideDuration = null,\n children,\n className,\n ClickAwayListenerProps,\n ContentProps,\n disableWindowBlurListener = false,\n message,\n onBlur,\n onClose,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n open,\n resumeHideDuration,\n TransitionComponent = Grow,\n transitionDuration = defaultTransitionDuration,\n TransitionProps: {\n onEnter,\n onExited\n } = {}\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n const ownerState = _extends({}, props, {\n anchorOrigin: {\n vertical,\n horizontal\n }\n });\n\n const classes = useUtilityClasses(ownerState);\n const timerAutoHide = React.useRef();\n const [exited, setExited] = React.useState(true);\n const handleClose = useEventCallback((...args) => {\n if (onClose) {\n onClose(...args);\n }\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose(null, 'timeout');\n }, autoHideDurationParam);\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]); // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n\n const handlePause = () => {\n clearTimeout(timerAutoHide.current);\n }; // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n\n\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n\n handlePause();\n };\n\n const handleMouseEnter = event => {\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n\n handlePause();\n };\n\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n\n handleResume();\n };\n\n const handleMouseLeave = event => {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n\n handleResume();\n };\n\n const handleClickAway = event => {\n if (onClose) {\n onClose(event, 'clickaway');\n }\n };\n\n const handleExited = node => {\n setExited(true);\n\n if (onExited) {\n onExited(node);\n }\n };\n\n const handleEnter = (node, isAppearing) => {\n setExited(false);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n };\n\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, open]);\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n\n\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n if (onClose) {\n onClose(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [exited, open, onClose]); // So we only render active snackbars.\n\n if (!open && exited) {\n return null;\n }\n\n return /*#__PURE__*/_jsx(ClickAwayListener, _extends({\n onClickAway: handleClickAway\n }, ClickAwayListenerProps, {\n children: /*#__PURE__*/_jsx(SnackbarRoot, _extends({\n className: clsx(classes.root, className),\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ownerState: ownerState,\n ref: ref // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n ,\n role: \"presentation\"\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n direction: vertical === 'top' ? 'down' : 'up',\n onEnter: handleEnter,\n onExited: handleExited\n }, TransitionProps, {\n children: children || /*#__PURE__*/_jsx(SnackbarContent, _extends({\n message: message,\n action: action\n }, ContentProps))\n }))\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n\n /**\n * The anchor of the `Snackbar`.\n * On smaller screens, the component grows to occupy all the available width,\n * the horizontal alignment is ignored.\n * @default { vertical: 'bottom', horizontal: 'left' }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n\n /**\n * The number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n * @default null\n */\n autoHideDuration: PropTypes.number,\n\n /**\n * Replace the `SnackbarContent` component.\n */\n children: PropTypes.element,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Props applied to the `ClickAwayListener` element.\n */\n ClickAwayListenerProps: PropTypes.object,\n\n /**\n * Props applied to the [`SnackbarContent`](/material-ui/api/snackbar-content/) element.\n */\n ContentProps: PropTypes.object,\n\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n * @default false\n */\n disableWindowBlurListener: PropTypes.bool,\n\n /**\n * When displaying multiple consecutive Snackbars from a parent rendering a single\n * , add the key prop to ensure independent treatment of each message.\n * e.g. , otherwise, the message may update-in-place and\n * features such as autoHideDuration may be canceled.\n */\n key: () => null,\n\n /**\n * The message to display.\n */\n message: PropTypes.node,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Snackbar;","import React, {useCallback, useEffect, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n\tSlide,\n\tSlideProps,\n\tSnackbar as MuiSnackbar,\n\tSnackbarProps as MuiSnackbarProps,\n} from '@mui/material';\n\nimport {TransitionProps} from '@mui/material/transitions';\nimport Alert, {AlertProps} from '../Alert';\n\nexport interface SnackbarOptions\n\textends Omit,\n\t\tPick {}\n\nexport interface SnackbarProps extends SnackbarOptions {\n\topen: boolean;\n}\n\ntype MuiSnackbarMethods = Required>;\n\nconst TransitionUp: React.FunctionComponent = React.forwardRef<\n\tHTMLElement,\n\tSlideProps\n>(function Transition(props, ref) {\n\treturn ;\n});\n\nexport const Snackbar: React.FunctionComponent> = ({\n\tonClick,\n\tmessage,\n\topen,\n\tseverity = 'info',\n\tvariant = 'filled',\n\t...props\n}) => {\n\tconst [isOpen, setIsOpen] = useState(open);\n\n\tuseEffect(() => {\n\t\tsetIsOpen(open);\n\t}, [open]);\n\n\tconst handleClose = useCallback(\n\t\t(event, reason) => {\n\t\t\tif (reason === 'clickaway') return;\n\t\t\tsetIsOpen(false);\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleAlertClose = useCallback(\n\t\t(event: React.SyntheticEvent) => {\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsOpen(false);\n\t\t},\n\t\t[],\n\t);\n\n\treturn ReactDOM.createPortal(\n\t\t {\n\t\t\t\t\t\t\tonClick(event);\n\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\t{...props}\n\t\t\tstyle={{\n\t\t\t\tcursor: onClick ? 'pointer' : undefined,\n\t\t\t\t...props.style,\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\t{message}\n\t\t\t\n\t\t,\n\t\tdocument.body,\n\t);\n};\n","import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {Snackbar, SnackbarOptions} from './Snackbar';\nexport type {SnackbarOptions} from './Snackbar';\n\nconst SnackbarServiceContext = createContext<\n\t(options: SnackbarOptions) => void\n>(() => {});\n\nexport const useSnackbar = () => useContext(SnackbarServiceContext);\n\nexport const SnackbarServiceProvider = ({children}) => {\n\tconst [snackbarOpen, setSnackbarOpen] = useState(false);\n\tconst [snackbarState, setSnackbarState] = useState();\n\tconst nextSnackbarStateRef = useRef();\n\tconst lastSnackbarStateRef = useRef();\n\n\tuseEffect(() => {\n\t\tlastSnackbarStateRef.current = snackbarState;\n\t}, [snackbarState]);\n\n\tconst handleExited = useCallback(() => {\n\t\tsetSnackbarState(nextSnackbarStateRef.current || undefined);\n\t\tsetSnackbarOpen(nextSnackbarStateRef.current != null);\n\t\tnextSnackbarStateRef.current = undefined;\n\t}, []);\n\n\tconst handleOpenSnackbar = useCallback((options: SnackbarOptions) => {\n\t\tif (lastSnackbarStateRef.current != null) {\n\t\t\tnextSnackbarStateRef.current = options;\n\t\t\tsetSnackbarOpen(false);\n\t\t\treturn;\n\t\t}\n\t\tsetSnackbarOpen(true);\n\t\tsetSnackbarState(options);\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport {SnackbarServiceProvider} from './SnackbarService';\n\n/**\n * wrap component in snack bar provider\n * @example\n\tconst WrappedComponenet = withSnackbar(Componenet);\n */\nexport const withSnackbar = function (\n\tComponent: C,\n) {\n\treturn (\n\t\tprops: JSX.IntrinsicAttributes &\n\t\t\tJSX.LibraryManagedAttributes>,\n\t) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n};\n\nexport default withSnackbar;\n// Type '\n// IntrinsicAttributes & LibraryManagedAttributes>\n// is not assignable to type\n// LibraryManagedAttributes>>\n","import {SnackbarServiceProvider} from './SnackbarService';\nexport * from './withSnackbar';\nexport * from './SnackbarService';\nexport default SnackbarServiceProvider;\n","/**\n * @classdesc\n * Attribute template model\n *\n * @property {reference} attributeTypes - Available search types\n * @property {number} attributeTypes.UNKNOWN - 0\n * @property {number} attributeTypes.TEXT - 1\n * @property {number} attributeTypes.TEXTAREA - 2\n * @property {number} attributeTypes.PULLDOWN - 3 (select)\n * @property {number} attributeTypes.DATE - 4\n * @property {number} attributeTypes.COMBO - 5 (multiselect)\n * @property {number} attributeTypes.TAGS - 6\n * @property {number} attributeTypes.NUMERIC - 7\n * @property {number} attributeTypes.HIERARCHICAL - 8 (deprecated)\n * @property {number} attributeTypes.TAGSET - 9 (deprecated)\n * @property {number} attributeTypes.AUTOCOMPLETE - 10 (deprecated)\n * @property {number} attributeTypes.DATALOOKUP - 11 (deprecated)\n * @property {number} attributeTypes.SEMANTIC - 12 (deprecated)\n *\n * @class\n * @extends Netx.Models.PermissionResource\n */\nimport Base from '@netx/core-permissions/models/permissionResource';\n\nimport {\n\teditable,\n\tfacetAttributeSupport,\n\tids as typeIds,\n\tsystemAttributes,\n\ttypeLabels,\n\ttypes,\n} from '../properties/attributes';\nimport {\n\tmap as syncMap,\n\ttypeOptions as syncTypeOptions,\n} from '../properties/assetAttributesMetadata';\n\nimport {escapeAttributeName} from '@netx/core/lib/underscore-netx';\n\nexport default class Attribute extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {string} */\n\tget idAttribute() {\n\t\t// DEVNOTE: the capitalization of 'id' is particularly haphazard in this object.\n\t\t// groupIds is capital I, the others are all lowercase i. This is mirroring the\n\t\t// object on the server ... which should be fixed!\n\t\t// TODO: could we regularize that on the client side, or would be there be trouble?\n\t\treturn 'attributeid';\n\t}\n\t/** @override */\n\tget titleAttribute() {\n\t\treturn 'name';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.attributeid - ID (someone has explicitely set this to 0 without any reasoning - the `isNew` method has been adjusted accordingly. https://confluence.netx.net/display/DEV/Avoid+setting+default+IDs+in+X7+models)\n\t * @property {array} defaults.groupIds - Group ids (Unknown use - possibly permission oriented, and should be deprecated with the new permission system)\n\t * @property {boolean} defaults.facet - Is this attribute a faceted attribute\n\t * @property {boolean} defaults.hasPermissions - Does this attribute have permission records?\n\t * @property {number} defaults.imageid - Image id (Unknown use)\n\t * @property {array} defaults.keyDatasets - Datasets attribute is tied to\n\t * @property {number} defaults.mandatory - Mandatory value (boolean as number)\n\t * @property {string} defaults.modDate - Modification date\n\t * @property {boolean} defaults.multivalue - Multivalue attribute\n\t * @property {string} defaults.name - Attribute name\n\t * @property {array} defaults.objectTypes - Object types (asset/clip)\n\t * @property {number} defaults.orderby - Order by (auto-increments when attribute is added - currently we do not respect this, we order the collection by `name`)\n\t * @property {boolean} default.permissioned\t\t\t - New permission system enabled\n\t * @property {array} defaults.pulldownOptions - Pulldown options (for select/multiselect)\n\t * @property {number} defaults.restrictedUserLevel - Restricted user level (Should be deprecated with the new permission system)\n\t * @property {number} defaults.semanticTypeId - Semantic type id (only used if `type` is 12 - semantic)\n\t * @property {number} defaults.spec1 - Use dependent on the attribute type ( number - format, tag - dateSet id )\n\t * @property {number} defaults.spec2 - Use dependent on the attribute type\n\t * @property {array} defaults.targetDatasets - Ids of datasets that use this attribute as the key for a metadata lookup\n\t * @property {number} defaults.templateid - Attribute template id (the exact same as the `attributeid` - must be legacy code)\n\t * @property {number} defaults.type - Attribute type (as defined in module:asset/properties/attributes#types)\n\t * @property {boolean} defaults.trackHistory - Track attribute history (must have `metadata.history.enabled`)\n\t * @property {number} defaults.userid - ID of creating user\n\t * @property {mixed} defaults.value - Default attribute value\n\t *\n\t * @property {object} defaults.attributeOptions - Attribute options for fields\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\tattributeid: 0,\n\t\t\tgroupIds: [],\n\t\t\tfacet: false,\n\t\t\thasPermissions: true,\n\t\t\timageid: 0,\n\t\t\tkeyDatasets: [],\n\t\t\tobjectTypes: ['asset'],\n\t\t\tmandatory: 0,\n\t\t\tmodDate: '',\n\t\t\tmultivalue: false,\n\t\t\tname: '',\n\t\t\torderby: 0,\n\t\t\tpermissioned: false,\n\t\t\tpulldownOptions: [],\n\t\t\trestrictedUserLevel: 0,\n\t\t\tsemanticTypeId: 0,\n\t\t\tspec1: 0,\n\t\t\tspec2: 0,\n\t\t\ttargetDatasets: [],\n\t\t\ttemplateid: 0,\n\t\t\ttrackHistory: false,\n\t\t\ttype: 1,\n\t\t\tuserid: 0,\n\t\t\tvalue: '',\n\n\t\t\t// Client attributes\n\t\t\t// For things like upload asset request to get their custom labels/placeholders/captions to the view\n\t\t\t// rendering the attribute field\n\t\t\tattributeOptions: {},\n\t\t\tvocabulary: null,\n\t\t};\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn ['attributeOptions', 'vocabulary'];\n\t}\n\n\t/**\n\t * @property {object} methods - Methods for this model\n\t * @property {method} methods.metadataDatasetLookup - Metadata dataset lookup\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tremove: ['deleteAttribute', 'attributeid'],\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate(opts) {\n\t\t\t\treturn ['setAttributeObject', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tupdate(opts) {\n\t\t\t\treturn ['setAttributeObject', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\treturn ['getAttributeObjects', [this.get('attributeid')]];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAttributeVocabulary: (opts) => {\n\t\t\t\treturn ['getAttributeVocabulary', this.get('spec1')];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {string} val Value\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tmetadataDatasetLookup(val, opts) {\n\t\t\t\treturn ['metadataDatasetLookup', this.get('name'), val];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Parsers for this model\n\t * @property {method} parsers.metadataDatasetLookup - Parse response of metadata dataset lookup\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * We do not have a call specifically to fetch a single record\n\t\t\t * But we can pass ids and get a single record back wrapped in an array\n\t\t\t * @function\n\t\t\t * @param {array} data Attribute data\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(data, opts) {\n\t\t\t\treturn _.isArray(data) && data.length ? data[0] : null;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} data Vocabulary\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAttributeVocabulary(data, opts) {\n\t\t\t\tif (!data) return;\n\t\t\t\tthis.set('vocabulary', data);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} match Matches\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tmetadataDatasetLookup(matches, opts) {\n\t\t\t\t// This API call sometimes returns nulls\n\t\t\t\t// Some csvs can contain empty label/values as well\n\t\t\t\treturn _.filter(matches, (match) => match && match.label !== '');\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\t/**\n\t\t * Shared resource type name\n\t\t * @type {string}\n\t\t */\n\t\topts.resourceName = 'attribute';\n\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * Though multiselects/tags/semantics are multivalue, they are not dealt with the same\n\t\t * @memberof Netx.Models.Attribute\n\t\t * @alias multivalueTypes\n\t\t * @type {array}\n\t\t */\n\t\tthis.multivalueTypes = [1, 2, 3, 4, 7];\n\n\t\t/**\n\t\t * multiselects/tags/semantics arenative multivalues, but they are not dealt with the same as other mutlivalues\n\t\t * @memberof Netx.Models.Attribute\n\t\t * @alias multivalueTypes\n\t\t * @type {array}\n\t\t */\n\t\tthis.nativeMultivalueTypes = [5, 6, 12, 13];\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(dispatcher, 'system:attribute:edit:success', (model) => {\n\t\t\t// See Netx.Models.AttributeData for the reasoning behind the `templateId` check\n\t\t\tif (\n\t\t\t\t(model.id === this.id || model.id === this.get('templateId')) &&\n\t\t\t\tmodel !== this\n\t\t\t) {\n\t\t\t\tthis.set(\n\t\t\t\t\t_.clone(_.omit(model.attributes, 'attributeid', 'templateid')),\n\t\t\t\t);\n\t\t\t}\n\t\t})\n\t\t\t// Listen for permission changes and refetch the attribute model\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'permissions:permission:edit:success permissions:permission:delete:success',\n\t\t\t\t(permission) => {\n\t\t\t\t\tconst resource = permission.get('resource');\n\t\t\t\t\tif (resource.type === 'attribute' && resource.id === this.id) {\n\t\t\t\t\t\tthis.fetch();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t}\n\n\t/**\n\t * Add object type to attribute\n\t * @method\n\t * @param {string} objectType Object type (asset/clip)\n\t * @type {object} opts Request options\n\t */\n\taddObjectType(objectType, opts) {\n\t\tconst objectTypes = this.get('objectTypes');\n\n\t\tif (_.contains(objectTypes, objectType)) {\n\t\t\treturn new $.Deferred().resolve();\n\t\t}\n\n\t\treturn this.save(\n\t\t\t{objectTypes: objectTypes.concat([objectType])},\n\t\t\t_.extend({wait: true}, opts),\n\t\t);\n\t}\n\n\t/**\n\t * For when an attribute template model has been amalgamated with an attribute data model\n\t * @method\n\t * @return {boolean}\n\t * @see Netx.Models.AttributeData\n\t */\n\tallows(perm) {\n\t\tif (perm == null) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!this.has('permission')) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst permission = this.get('permission');\n\t\tswitch (perm) {\n\t\t\tcase 'delete':\n\t\t\t\treturn permission === 'd';\n\t\t\tcase 'edit':\n\t\t\tcase 'write':\n\t\t\t\treturn permission === 'd' || permission === 'w';\n\t\t\tcase 'read':\n\t\t\t\treturn permission === 'd' || permission === 'w' || permission === 'r';\n\t\t\tdefault:\n\t\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @param {number} truncateAt Truncate at index\n\t * @return {mixed}\n\t */\n\tformat(value, truncateAt) {\n\t\tvalue = this.parseInValue(value);\n\n\t\tif (_.isArray(value)) {\n\t\t\tvalue = value.join(', ');\n\t\t}\n\n\t\tif (typeof value === 'string') {\n\t\t\tvalue = value.replace(//g, '>');\n\t\t}\n\n\t\tif (value != null && truncateAt && value.length > truncateAt) {\n\t\t\tvalue = value.substr(0, truncateAt) + '...';\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * @method\n\t * @return {object} Attribute options\n\t */\n\tgetAttributeOptions() {\n\t\tconst attrOptions = {...(this.get('attributeOptions') || {})};\n\t\tif (attrOptions.required != null) {\n\t\t\tattrOptions.required = attrOptions.required === true;\n\t\t}\n\n\t\tif (!attrOptions.caption) delete attrOptions.caption;\n\t\tif (!attrOptions.placeholder) delete attrOptions.placeholder;\n\n\t\treturn attrOptions;\n\t}\n\n\t/** @override */\n\tgetLabel(dontEscape = false) {\n\t\tif (this.get('system')) {\n\t\t\tconst systemAttr = systemAttributes.find((attr) => attr.id === this.id);\n\t\t\treturn systemAttr ? systemAttr.name : i18n.t('i18n.' + this.get('name'));\n\t\t}\n\t\treturn !dontEscape ? _.escape(super.getLabel()) : super.getLabel();\n\t}\n\n\t/**\n\t * Get metadata sync info for this attribute\n\t * @method\n\t * @return {object} Metadata sync data\n\t */\n\tgetMetadataSynced() {\n\t\tconst attributes = Netx.asset.attributes;\n\n\t\tconst metadataSync = {}; //this.model.syncMetadata;\n\n\t\t// Look for this attribute's id in the metadataMap\n\t\tconst exportIdx = _.indexOf(attributes.metadataMap.exportIds, this.id);\n\t\tconst importIdx = _.indexOf(attributes.metadataMap.importIds, this.id);\n\n\t\t// Assign values if found\n\t\tmetadataSync.export =\n\t\t\texportIdx > -1 ? attributes.metadataMap.exportValues[exportIdx] : null;\n\t\tmetadataSync.import =\n\t\t\timportIdx > -1 ? attributes.metadataMap.importValues[importIdx] : null;\n\n\t\t// Options\n\t\tconst syncMetadataTypeOptions = syncTypeOptions;\n\n\t\t// Create pattern for custom input - no mapped schema prifixes allowed\n\t\tmetadataSync.regex = [\n\t\t\t'^(?!',\n\t\t\t_.map(_.keys(syncMap), (v) => v + ':').join('|'),\n\t\t\t').*',\n\t\t].join('');\n\n\t\t// Get selected sync type and value\n\t\t// Both\n\t\tif (metadataSync.import && metadataSync.export) {\n\t\t\tmetadataSync.direction = 'both';\n\t\t\tmetadataSync.value = metadataSync.import;\n\t\t}\n\t\t// Import\n\t\telse if (metadataSync.import) {\n\t\t\tmetadataSync.direction = 'import';\n\t\t\tmetadataSync.value = metadataSync.import;\n\t\t}\n\t\t// Export\n\t\telse if (metadataSync.export) {\n\t\t\tmetadataSync.direction = 'export';\n\t\t\tmetadataSync.value = metadataSync.export;\n\t\t}\n\n\t\tif (metadataSync.value) {\n\t\t\t// Get schema prefix\n\t\t\tconst schemaPrefix = metadataSync.value.split(':')[0];\n\t\t\t// Check that it exists in the map\n\t\t\tmetadataSync.schema = syncMap[schemaPrefix];\n\t\t\t// Assume custom schema\n\t\t\tif (metadataSync.value.indexOf(':') < 0 || !metadataSync.schema) {\n\t\t\t\tmetadataSync.schema = 'Custom';\n\t\t\t}\n\t\t\t// Mapped shema\n\t\t\telse {\n\t\t\t\tconst schema = _.findWhere(Netx.asset.attributes.metadata, {\n\t\t\t\t\tlabel: metadataSync.schema,\n\t\t\t\t});\n\t\t\t\tif (schema) {\n\t\t\t\t\tconst optionValue = _.findWhere(schema.options, {\n\t\t\t\t\t\tvalue: metadataSync.value,\n\t\t\t\t\t});\n\t\t\t\t\tif (optionValue) {\n\t\t\t\t\t\t// Top level sync shema label\n\t\t\t\t\t\tmetadataSync.schema = schema.label;\n\t\t\t\t\t\t// Sync schema options\n\t\t\t\t\t\tmetadataSync.valueOptions = schema.options;\n\t\t\t\t\t\t// We can only export\n\t\t\t\t\t\tif (optionValue.direction === 'export') {\n\t\t\t\t\t\t\tmetadataSync.typeOptions = _.omit(\n\t\t\t\t\t\t\t\tsyncTypeOptions,\n\t\t\t\t\t\t\t\t'both',\n\t\t\t\t\t\t\t\t'import',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// We can only import\n\t\t\t\t\t\telse if (optionValue.direction === 'import') {\n\t\t\t\t\t\t\tmetadataSync.typeOptions = _.omit(\n\t\t\t\t\t\t\t\tsyncTypeOptions,\n\t\t\t\t\t\t\t\t'both',\n\t\t\t\t\t\t\t\t'export',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn metadataSync;\n\t}\n\n\t/**\n\t * Return the option values of an attribute pulldown\n\t * @method\n\t * @return {array} Pulldown values\n\t */\n\tgetOptions() {\n\t\treturn this.get('pulldownOptions');\n\t}\n\n\t/**\n\t * @method\n\t * @return camelCased name without special characters\n\t */\n\tgetSafeName() {\n\t\treturn _.toCamelCase(this.get('name'));\n\t}\n\n\t/**\n\t * Get attribute sort field name\n\t * User defined attributes are passed as they are named but system attributes are different\n\t * ie: Modification Date -> moddate\n\t * @method\n\t * @param {boolean} escape Escape attribute name (makes it safe for data attrs etc)\n\t * @return {string}\n\t */\n\tgetSortFieldName(escape) {\n\t\tconst name = this.get('name');\n\t\treturn escape ? escapeAttributeName(name) : name;\n\t}\n\n\t/**\n\t * Get attribute type id by name\n\t * @method\n\t * @param {string} name Attribute type name\n\t * @return {number} Attribute type id\n\t */\n\tgetTypeId(name) {\n\t\treturn typeIds[name];\n\t}\n\n\t/**\n\t * Get attribute english name from attribute type id\n\t * @method\n\t * @param {number}\n\t * @return {string} Attribute type english name\n\t * @todo Rename to getEnglis\n\t */\n\tgetTypeLabel(type) {\n\t\treturn typeLabels[this.getTypeName(type)];\n\t}\n\n\t/**\n\t * Get attribute type name from number\n\t * @method\n\t * @param {number} type Type id (if not provided this.attributes.type will be used)\n\t * @return {string} Attribute name\n\t */\n\tgetTypeName(type) {\n\t\tif (type == null) {\n\t\t\ttype = this.get('type');\n\t\t}\n\t\treturn types[type];\n\t}\n\n\t/**\n\t * For when an attribute template model has been amalgamated with an attribute data model\n\t * @method\n\t * @return {array|mixed} Value(s)\n\t * @see Netx.Models.AttributeData\n\t */\n\tgetValue() {\n\t\tif (!this.has('values')) return;\n\n\t\t// Is not a multivalue type attribute\n\t\tif (!this.get('multivalue')) {\n\t\t\treturn this.get('values')[0] || '';\n\t\t}\n\n\t\treturn this.get('values');\n\t}\n\n\t/**\n\t * History enabled\n\t * @method\n\t * @return {boolean}\n\t */\n\thistoryEnabled() {\n\t\treturn Netx.getPreference('metadata.history.enabled', true);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Has default value\n\t */\n\thasDefaultValue() {\n\t\treturn this.get('value') != null && this.get('value') !== '';\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {boolean} Invalid\n\t */\n\tinvalid(value) {\n\t\treturn this.validator(value) !== true;\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Value is appendable\n\t */\n\tisAppendable() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * isFlexible() returns true if this attribute is defined as having 'folksonomy'\n\t * and will therefore allow users to add terms via the select2 tagging system.\n\t * @method\n\t * @return {boolean} Is flexible\n\t */\n\tisFlexible() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Test whether this attribute can be valid for a given object type, by\n\t * checking the objectTypes array\n\t * @method\n\t * @param {string} objectType\n\t * @return {boolean}\n\t */\n\tisForObjectType(objectType) {\n\t\treturn _.contains(this.get('objectTypes'), objectType);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\tisMandatory() {\n\t\treturn this.get('mandatory') === 1;\n\t}\n\n\t/**\n\t * We set the default id to 0\n\t * @override\n\t * @return {boolean} Is new\n\t * @todo Someone explain why we have to set attributeid to 0 by default?\n\t */\n\tisNew() {\n\t\treturn !this.has(this.idAttribute) || this.id === 0;\n\t}\n\n\t/**\n\t * Are we a native multivalue attribute (see `this.nativeMultivalueTypes`)\n\t * @method\n\t * @param {number} type Type\n\t * @return {boolean}\n\t */\n\tisNativeMultivalue(type) {\n\t\ttype = (type && parseInt(type)) || this.get('type');\n\t\treturn _.contains(this.nativeMultivalueTypes, type);\n\t}\n\n\t/**\n\t * Are we a true multivalue attribute (see `this.multivalueTypes`)\n\t * @method\n\t * @return {boolean}\n\t */\n\tisTrueMultivalue() {\n\t\treturn (\n\t\t\tthis.get('multivalue') &&\n\t\t\t_.contains(this.multivalueTypes, this.get('type'))\n\t\t);\n\t}\n\n\t/**\n\t * Can values be written to for this attribute template\n\t * @method\n\t * @return {boolean}\n\t */\n\tisValueWritable() {\n\t\treturn !(\n\t\t\tthis.get('system') ||\n\t\t\tthis.get('readOnly') ||\n\t\t\t!_.contains(editable, this.get('type'))\n\t\t);\n\t}\n\n\t/**\n\t * Try to perform an auto-complete of attributes (DAM-6749)\n\t * @method\n\t */\n\tmetadataLookup(value) {\n\t\tif (!this.get('keyDatasets').length) return new $.Deferred().resolve([]);\n\n\t\treturn this.metadataDatasetLookup(value, {\n\t\t\tduplicateQueryPolicy: 'abort',\n\t\t}).then((matches) => {\n\t\t\treturn _.compact(matches);\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} data Data\n\t * @param {object} opts Request options\n\t */\n\tparseAndSave(data, opts) {\n\t\t// these should all be numbers, not strings.\n\t\t_.each(\n\t\t\t[\n\t\t\t\t'restrictedUserLevel',\n\t\t\t\t'spec1-number',\n\t\t\t\t'spec2-number',\n\t\t\t\t'spec1-tag',\n\t\t\t\t'spec1-vocab',\n\t\t\t\t'type',\n\t\t\t],\n\t\t\t(a) => {\n\t\t\t\tdata[a] = parseInt(data[a]);\n\t\t\t\t// Save some grief\n\t\t\t\tif (isNaN(data[a])) {\n\t\t\t\t\tdata[a] = 0;\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\n\t\t// Set attribute object type\n\t\tlet objectTypes = _.csvToArray(data.objectTypes);\n\t\t// Defaults to `asset`\n\t\tif (!objectTypes || !objectTypes.length) {\n\t\t\tobjectTypes = ['asset'];\n\t\t}\n\n\t\t// Clip only attributes are not mandatory\n\t\tif (!_.contains(objectTypes, 'asset')) {\n\t\t\tdata.mandatory = false;\n\t\t}\n\n\t\t// These fields are applied the same way for all types:\n\t\tlet parsed = _.extend({}, _.pick(data, 'type', 'restrictedUserLevel'), {\n\t\t\tname: data.name.trim(),\n\t\t\tfacet: data.facet && this.supportsFacets(data.type),\n\t\t\tmandatory: data.mandatory ? 1 : 0,\n\t\t\tmultivalue: data.multivalue,\n\t\t\tobjectTypes: objectTypes,\n\t\t\ttrackHistory: data.trackHistory && this.historyEnabled(),\n\t\t});\n\n\t\tconst typeName = this.getTypeName(data.type);\n\t\t// Adjust depending on type\n\t\tswitch (typeName) {\n\t\t\tcase 'text':\n\t\t\t\tparsed.value = data['value-text'];\n\t\t\t\tbreak;\n\n\t\t\tcase 'textarea':\n\t\t\t\tparsed.value = data['value-textarea'];\n\t\t\t\tbreak;\n\n\t\t\tcase 'select':\n\t\t\tcase 'multiselect':\n\t\t\t\tif (Netx.getPreference('metadata.vocabulary.enabled', true)) {\n\t\t\t\t\tparsed.spec1 = data['spec1-vocab'];\n\t\t\t\t} else {\n\t\t\t\t\tparsed.pulldownOptions = data.pulldownOptions.split('\\n');\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date':\n\t\t\t\tparsed.value = data['value-date'];\n\t\t\t\tbreak;\n\n\t\t\tcase 'number':\n\t\t\t\t_.extend(parsed, {\n\t\t\t\t\tvalue: data['value-number'],\n\t\t\t\t\tspec1: data['spec1-number'],\n\t\t\t\t\tspec2: data['spec2-number'],\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'semantic':\n\t\t\t\tparsed.semanticTypeId = parseInt(data.semanticTypeId);\n\t\t\t\tbreak;\n\t\t\tcase 'tag':\n\t\t\t\tparsed.spec1 = data['spec1-tag'];\n\t\t\t\tparsed.spec2 = data['spec2-tag'] === true ? 1 : 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 'tagVocab':\n\t\t\t\tparsed.spec1 = data['spec1-vocab'];\n\t\t\t\t// Intentionally piggy backing off of regular tag spec2 here\n\t\t\t\tparsed.spec2 = data['spec2-tag'] === true ? 1 : 0;\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// We only allow certain edits to existing attributes\n\t\tif (!this.isNew()) {\n\t\t\tconst updatableFields = [\n\t\t\t\t'name',\n\t\t\t\t'facet',\n\t\t\t\t'mandatory',\n\t\t\t\t'pulldownOptions',\n\t\t\t\t'restrictedUserLevel',\n\t\t\t\t'trackHistory',\n\t\t\t\t'value',\n\t\t\t];\n\n\t\t\tif (['tag', 'tagVocab'].includes(typeName)) {\n\t\t\t\tupdatableFields.push('spec2');\n\t\t\t}\n\n\t\t\tparsed = _.pick.apply(_, [parsed].concat(updatableFields));\n\t\t}\n\n\t\t// Set and save\n\t\treturn this.save(parsed, _.extend({wait: true}, opts));\n\t}\n\n\t/**\n\t * Parse in value for this attribute\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {mixed}\n\t */\n\tparseInValue(value) {\n\t\t// Our asset beans still use csv\n\t\t// So gross\n\t\tif (\n\t\t\tthis.isTrueMultivalue() &&\n\t\t\tvalue != null &&\n\t\t\t!_.isArray(value) &&\n\t\t\tvalue.includes('\"')\n\t\t) {\n\t\t\treturn _.csvToArray(value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Parse out value for this attribute\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {mixed}\n\t */\n\tparseOutValue(value) {\n\t\t// Not worth the effort\n\t\tif (_.isUndefined(value) || _.isNull(value) || value === '') {\n\t\t\treturn value;\n\t\t}\n\n\t\t// True multivalue\n\t\tif (this.isTrueMultivalue()) {\n\t\t\tif (_.isObject(value)) {\n\t\t\t\t// Strip out any empty/null/undefined values\n\t\t\t\t// Cannot use _.compact since it strips `false` and `0`\n\t\t\t\tvalue = _.filter(\n\t\t\t\t\t_.values(value),\n\t\t\t\t\t(v) => v !== '' && !_.isNull(v) && !_.isUndefined(v),\n\t\t\t\t);\n\t\t\t} else if (_.isString(value)) {\n\t\t\t\tvalue = _.csvToArray(value);\n\t\t\t}\n\t\t} else if (this.isCSV && _.isString(value)) {\n\t\t\tvalue = _.csvToArray(value);\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n\t * Are permissions for this resource enabled\n\t * @override\n\t * @return {boolean}\n\t */\n\tpermissionsEnabled() {\n\t\treturn Netx.getPreference('permission.attributesEnabled', true);\n\t}\n\n\t/**\n\t * Remove object type from attribute\n\t * @method\n\t * @param {string} objectType Object type (asset/clip)\n\t * @type {object} opts Request options\n\t */\n\tremoveObjectType(objectType, opts) {\n\t\tconst objectTypes = this.get('objectTypes');\n\n\t\tif (!_.contains(objectTypes, objectType)) {\n\t\t\treturn new $.Deferred().resolve();\n\t\t}\n\n\t\treturn this.save(\n\t\t\t{objectTypes: _.without(objectTypes, objectType)},\n\t\t\t_.extend({wait: true}, opts),\n\t\t);\n\t}\n\n\t/**\n\t * Set the attribute type (integer) by its english name\n\t * @method\n\t * @param {string} name Attribute type name\n\t * @param {object} opts Options\n\t * @see module:asset/properties/attributes\n\t */\n\tsetTypeName(name, opts) {\n\t\tif (!this.isNew()) {\n\t\t\tthrow new Error('Cannot modify existing attribute type');\n\t\t}\n\n\t\tconst type = this.getTypeId(name);\n\t\tif (!_.isNumber(type)) {\n\t\t\tthrow new Error(`Nonexistent attribute type \"${name}\"`);\n\t\t}\n\n\t\tthis.set({type: type});\n\t}\n\n\t/**\n\t * Test whether this attribute supports facets\n\t * @method\n\t * @param {number} type Attribute type\n\t * @return {boolean} Supports facets\n\t */\n\tsupportsFacets(type) {\n\t\tif (_.isUndefined(type)) {\n\t\t\ttype = this.get('type');\n\t\t}\n\n\t\treturn (\n\t\t\tfacetAttributeSupport != null && _.contains(facetAttributeSupport, type)\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {boolean} on Toggle facet on\n\t * @param {object} opts Options\n\t */\n\ttoggleMandatory(on, opts) {\n\t\t// Clip only attributes cannot be mandatory\n\t\tif (!this.isForObjectType('asset')) {\n\t\t\ton = false;\n\t\t}\n\n\t\ton = on != null ? on === true : !this.get('mandatory');\n\n\t\t// If it is the same there is nothing to do\n\t\tif (on === this.get('mandatory')) {\n\t\t\treturn new $.Deferred().resolve();\n\t\t}\n\n\t\treturn this.save({mandatory: on ? 1 : 0}, _.extend({wait: true}, opts));\n\t}\n\n\t/**\n\t * @method\n\t * @param {boolean} on Toggle facet on\n\t * @param {object} opts Options\n\t */\n\ttoggleFacet(on, opts) {\n\t\tif (!_.contains(facetAttributeSupport, this.get('type'))) {\n\t\t\ton = false;\n\t\t}\n\n\t\ton = on != null ? on === true : !this.get('facet');\n\n\t\t// If it is the same there is nothing to do\n\t\tif (on === this.get('facet')) {\n\t\t\treturn new $.Deferred().resolve();\n\t\t}\n\n\t\treturn this.save({facet: on}, _.extend({wait: true}, opts));\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\ttrackingHistory() {\n\t\treturn this.historyEnabled() && this.get('trackHistory');\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {boolean} Valid\n\t */\n\tvalidator(value) {\n\t\treturn true;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute';\n\t}\n}\n","import React from 'react';\n\nimport {\n\tAvatar,\n\tListItem,\n\tListItemAvatar,\n\tListItemText,\n\tListItemIcon,\n} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport ColoredAvatar from '@netx/core-components/ColoredAvatar';\n\nimport {\n\tFontAwesomeIcon,\n\tFontAwesomeIconProps,\n} from '@fortawesome/react-fontawesome';\nimport {faBookMedical as PlusIcon} from '@fortawesome/pro-solid-svg-icons';\n\nconst StyledListItemIcon = withStyles((theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tminWidth: 36,\n\t\t},\n\t}),\n)(ListItemIcon);\n\nconst styles = ({palette, spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\talignItems: 'center',\n\t\t\toverflow: 'hidden',\n\t\t\tpadding: spacing(1, 2),\n\t\t},\n\t\tavatar: {\n\t\t\tflex: '0 0 auto',\n\t\t\tmarginRight: 16,\n\t\t\theight: 32,\n\t\t\twidth: 32,\n\t\t\tfontSize: 18,\n\t\t},\n\t\ticon: {\n\t\t\tflex: '0 0 auto',\n\t\t\tlineHeight: 1,\n\t\t\tpaddingRight: spacing(1),\n\t\t\t'& svg': {\n\t\t\t\tcolor: palette.primary.main,\n\t\t\t\theight: 20,\n\t\t\t},\n\t\t},\n\t\ttext: {\n\t\t\tflex: '1 1 auto',\n\t\t},\n\t});\n\nexport interface AutoListOptionProps {\n\tavatar?: boolean;\n\ticon?: FontAwesomeIconProps['icon'];\n\tvalue: T;\n\tuncontrolled?: boolean;\n}\n\nconst AutoListOption = ({\n\tclasses,\n\tavatar,\n\ticon,\n\tuncontrolled,\n\tvalue,\n\t...props\n}: WithStyles & AutoListOptionProps) => {\n\treturn (\n\t\t\n\t\t\t{avatar ? (\n\t\t\t\t\n\t\t\t\t\t{icon ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t{uncontrolled ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(React.memo(AutoListOption)) as <\n\tT extends string\n>(\n\tprops: Omit, 'classes'>,\n) => JSX.Element;\n","import React, {useCallback} from 'react';\n\nimport type {AutocompleteGetTagProps} from '@mui/material';\nimport ValueChip from '../../../SelectField/components/ValueChip';\nimport {ChipSkeleton} from '@netx/core-components/Chip';\n\nexport interface AutoListSelectionProps {\n\tdisabled?: boolean;\n\tgetTagProps: AutocompleteGetTagProps;\n\tgetValueLabel?: (value: T) => string;\n\tloading?: boolean;\n\tonSearch?: (value: string) => void;\n\tuncontrolledValues: string[];\n\tvalues: T[];\n}\n\nconst AutoListSelection = ({\n\tgetTagProps,\n\tgetValueLabel,\n\tloading,\n\tonSearch,\n\tuncontrolledValues,\n\tvalues,\n\t...props\n}: AutoListSelectionProps) => {\n\tconst _getValueLabel = useCallback(\n\t\t(value: T) => {\n\t\t\tif (getValueLabel) return getValueLabel(value);\n\t\t\treturn typeof value === 'string' ? value : '';\n\t\t},\n\t\t[getValueLabel],\n\t);\n\n\tif (loading) return ;\n\n\treturn (\n\t\t<>\n\t\t\t{values.map((value, index) => {\n\t\t\t\tconst label = _getValueLabel(value);\n\t\t\t\tconst uncontrolledValue = uncontrolledValues.includes(label);\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t\n\t);\n};\n\nexport default React.memo(AutoListSelection) as (\n\tprops: AutoListSelectionProps,\n) => JSX.Element;\n","import {i18n} from '@netx/core/i18n';\n\nexport const noInput = i18n.t('i18n.startTypingForOptions');\nexport const noMatches = i18n.t('i18n.noMatches');\n\nexport default {\n\tnoInput,\n\tnoMatches,\n};\n","export const isValidQueryInput = (input?: string) =>\n\ttypeof input === 'string' && input.trim() !== '';\n\nexport const isValidUncontrolledInput = (input: string) =>\n\tisValidQueryInput(input) && input !== '\"' && input !== '\"\"';\n","import React, {useCallback, useEffect, useState} from 'react';\nimport clsx from 'clsx';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\nimport type {AutocompleteProps, AutocompleteValue} from '@mui/material';\n\nimport {addToArrayUnique} from '@netx/core/lib/utils';\nimport {useWhenChangedEffect} from '@netx/core-components/hooks';\nimport {compareProps} from '@netx/core-components/util';\n\nimport {Option, Selection} from './components';\n\nexport {\n\tOption,\n\tAutoListOptionProps,\n\tSelection,\n\tAutoListSelectionProps,\n} from './components';\n\nimport locales from './locales';\nimport {IGNORE_INPUT_CHANGE_EVENTS} from './';\nimport SelectField, {SelectFieldProps} from '../SelectField';\n\nimport {uniqueArray} from '@netx/core/utils';\nimport {isValidQueryInput, isValidUncontrolledInput} from './util';\n\nexport type AutoListRef = React.ForwardedRef;\n\nconst isInValue = (\n\tinput: string | null,\n\tvalue: string | string[] | null,\n\tgetValueLabel?: (value: any) => string,\n) => {\n\t// Check that the normalizedValue is not already selected\n\t// values are not case-sensitive on the server and so not case-sensitive\n\t// in the values\n\tif (getValueLabel) input = getValueLabel(input);\n\n\tinput = input == null ? '' : input.toLowerCase();\n\t// The selection is multiple and the option is already in the array\n\tif (Array.isArray(value))\n\t\treturn value.some(\n\t\t\t(val) =>\n\t\t\t\t(getValueLabel ? getValueLabel(val) : val)?.toLowerCase() === input,\n\t\t);\n\t// Loose check for numbers/strings\n\treturn (getValueLabel ? getValueLabel(value) : value)?.toLowerCase() == input;\n};\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {},\n\t\tnoOptions: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\talignItems: 'center',\n\t\t\twidth: '100%',\n\t\t},\n\t\tnoOptionsText: {\n\t\t\tflex: '1 1 auto',\n\t\t\toverflow: 'hidden',\n\t\t\tpaddingRight: theme.spacing(1),\n\t\t\ttextOverflow: 'ellipsis',\n\t\t},\n\t\trefresh: {\n\t\t\tflex: '0 0 auto',\n\t\t},\n\t\tlabelHidden: {\n\t\t\t'& .MuiInputBase-root.MuiFilledInput-root': {\n\t\t\t\tpaddingTop: 0,\n\t\t\t\theight: 48,\n\t\t\t},\n\t\t},\n\t});\n\nexport type CommenExtendProps<\n\tT,\n\tMultiple extends boolean = true,\n\tDisableClearable extends boolean = false,\n\tFreeSolo extends boolean = false,\n> = Pick<\n\tAutoListFieldProps,\n\t| 'clearOnClose'\n\t| 'disabled'\n\t| 'error'\n\t| 'hiddenLabel'\n\t| 'onChange'\n\t| 'placeholder'\n\t| 'loading'\n\t| 'loadingValue'\n\t| 'label'\n\t| 'multiple'\n\t| 'required'\n\t| 'style'\n\t| 'variant'\n\t| 'value'\n\t| 'InputLabelProps'\n\t| 'InputProps'\n\t| 'inputProps'\n> & {\n\thideLabel?: boolean;\n\tname?: string;\n\tAutocompleteProps?: Omit<\n\t\tAutoListFieldProps<\n\t\t\tT,\n\t\t\tMultiple,\n\t\t\tDisableClearable,\n\t\t\tFreeSolo\n\t\t>['AutocompleteProps'],\n\t\t'multiple'\n\t>;\n};\n\nexport type AutolistLookupResults =\n\tPromise[]>;\nexport interface AutoListFieldProps<\n\tT,\n\tMultiple extends boolean = true,\n\tDisableClearable extends boolean = false,\n\tFreeSolo extends boolean = false,\n> extends Omit<\n\t\tSelectFieldProps,\n\t\t'value'\n\t> {\n\t/** For cases where we have cached options in some way */\n\tadditionalOptions?: T[];\n\t/** User can input uncontrolled values */\n\tflexible?: boolean;\n\thideLabel?: boolean;\n\tgetValueLabel?: (value: T) => string;\n\tclearOnClose?: boolean;\n\tonLookup(value: string): Promise;\n\tonSearch?: (value: string) => void;\n\ttestValueContainsInput?: (\n\t\tinput: string | null,\n\t\tvalue?: AutocompleteValue,\n\t) => boolean;\n\ttestValueContainsOption?: (\n\t\toption: T,\n\t\tvalue?: AutocompleteValue,\n\t) => boolean;\n\tvalue?: AutocompleteValue;\n}\n\nconst AutoListFieldInner = <\n\tT,\n\tMultiple extends boolean = true,\n\tDisableClearable extends boolean = false,\n\tFreeSolo extends boolean = false,\n>(\n\t{\n\t\tclasses,\n\t\tclassName,\n\t\tadditionalOptions,\n\t\tchanged,\n\t\tclearOnClose,\n\t\tdisabled,\n\t\tflexible,\n\t\thideLabel,\n\t\tlabel,\n\t\tloading,\n\t\t// Multiple is opt out as single selection is used far less for lookups\n\t\t// at least for now anyways\n\t\t// And this is a pita to type out properly... still investigating what I might be missing\n\t\tmultiple = true as any,\n\t\trequired,\n\t\tonLookup,\n\t\tonSearch,\n\t\ttestValueContainsInput,\n\t\ttestValueContainsOption,\n\t\tvalue,\n\n\t\tAutocompleteProps,\n\t\t...props\n\t}: WithStyles &\n\t\tAutoListFieldProps,\n\tref: AutoListRef,\n) => {\n\tlet _value = !multiple\n\t\t? AutocompleteProps?.getOptionLabel\n\t\t\t? AutocompleteProps?.getOptionLabel(value as any)\n\t\t\t: value\n\t\t: '';\n\tif (_value == null) _value = '';\n\n\tconst [inputValue, setInputValue] = useState(_value);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [open, setOpen] = useState(false);\n\tconst [options, setOptions] = useState([]);\n\tconst [searchInput, setSearchInput] = useState('');\n\t// These are atrings regardless of whatever value(s)\n\t// There is no mechanism, currently, for allowing the input of any\n\t// uncontrolled value that is more complex than a string\n\tconst [uncontrolledValue, setUncontrolledValue] = useState('');\n\tconst [uncontrolledValues, setUncontrolledValues] = useState([]);\n\n\tuseWhenChangedEffect(\n\t\t[value, multiple] as const,\n\t\tuseCallback(\n\t\t\t([value, multiple]) => {\n\t\t\t\tif (multiple) return;\n\t\t\t\tlet _value = AutocompleteProps?.getOptionLabel\n\t\t\t\t\t? AutocompleteProps?.getOptionLabel(value as any)\n\t\t\t\t\t: value;\n\t\t\t\tif (_value == null) _value = '';\n\t\t\t\tsetInputValue(_value);\n\t\t\t},\n\t\t\t[AutocompleteProps?.getOptionLabel],\n\t\t),\n\t\t{\n\t\t\texecuteAtMount: true,\n\t\t},\n\t);\n\n\t// Combine and make unique\n\tuseEffect(() => {\n\t\tsetOptions((options) => [\n\t\t\t...new Set(options.concat(additionalOptions || [])),\n\t\t]);\n\t}, [additionalOptions]);\n\n\t// When our `changed` prop changes, reset the uncontrolled values\n\t// When the data is saved the `changed` prop is reset\n\tuseEffect(() => {\n\t\tsetUncontrolledValues([]);\n\t}, [changed]);\n\n\tconst testValueCb = (\n\t\tinput: string,\n\t\tvalue?: AutocompleteValue,\n\t) => {\n\t\tif (testValueContainsInput) return testValueContainsInput(input, value);\n\t\treturn (\n\t\t\tArray.isArray(value) &&\n\t\t\tisInValue(input, value, AutocompleteProps?.getOptionLabel)\n\t\t);\n\t};\n\n\tconst testValueOptionCb = (\n\t\toption: T,\n\t\tvalue?: AutocompleteValue,\n\t) => {\n\t\tif (testValueContainsOption) return testValueContainsOption(option, value);\n\t\treturn (\n\t\t\ttypeof option === 'string' &&\n\t\t\ttypeof value === 'string' &&\n\t\t\tisInValue(option, value)\n\t\t);\n\t};\n\n\tconst testOptionsContainInputCb = (inputValue: string, options: T[]) => {\n\t\treturn options.some((option) =>\n\t\t\ttestValueOptionCb(option, inputValue as any),\n\t\t);\n\t};\n\n\t// When value changes check what of those values should be considered uncontrolled\n\tuseWhenChangedEffect(\n\t\tvalue,\n\t\tuseCallback(\n\t\t\t(value) => {\n\t\t\t\t// Reset input since we already have the options for the value\n\t\t\t\t// and we do not want a false positive when all options have been selected\n\t\t\t\tsetSearchInput('');\n\t\t\t\tif (multiple) setInputValue('');\n\n\t\t\t\tsetUncontrolledValues((uncontrolledValues) => {\n\t\t\t\t\t// Remove any uncontrolled values that no longer exist in or as `value`\n\t\t\t\t\tconst newUncontrolledValues = uncontrolledValues.filter(\n\t\t\t\t\t\t(uncontrolledValue) => testValueCb(uncontrolledValue, value),\n\t\t\t\t\t);\n\t\t\t\t\t// Check and see if our last uncontrolled value was responsible for `value` or any value within\n\t\t\t\t\treturn isValidQueryInput(uncontrolledValue) &&\n\t\t\t\t\t\ttestValueCb(uncontrolledValue, value)\n\t\t\t\t\t\t? addToArrayUnique(newUncontrolledValues, uncontrolledValue)\n\t\t\t\t\t\t: newUncontrolledValues;\n\t\t\t\t});\n\n\t\t\t\t// If there are no unselected options left, close the dropdwon\n\t\t\t\tif (\n\t\t\t\t\t!options.filter(\n\t\t\t\t\t\t(option) => multiple && !testValueOptionCb(option, value),\n\t\t\t\t\t).length\n\t\t\t\t)\n\t\t\t\t\tsetOpen(false);\n\t\t\t},\n\t\t\t[uncontrolledValue, options, testValueCb, testValueOptionCb, multiple],\n\t\t),\n\t);\n\n\tconst handleClose = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['onClose']\n\t>(() => {\n\t\tsetOpen(false);\n\t\t// When the dropdown is closed, empty the options\n\t\t// TODO: when we get websockets we can subscribe to our data changing on the server and not have\n\t\t// to empty and refresh\n\t\tsetOptions([]);\n\t\tif (clearOnClose) {\n\t\t\tsetInputValue('');\n\t\t} else {\n\t\t\t!multiple && setInputValue(_value != null ? _value : '');\n\t\t}\n\t}, [clearOnClose, multiple, _value]);\n\n\t// Custom options filter\n\t// Note: `filterSelectedOptions` is separate from this and takes precedence\n\tconst handleFilterOptions = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['filterOptions']\n\t>(\n\t\t(options, state) => {\n\t\t\tif (isLoading) return options;\n\n\t\t\tconst inputValue = state.inputValue.trim();\n\n\t\t\tif (\n\t\t\t\tflexible &&\n\t\t\t\tisValidUncontrolledInput(inputValue) &&\n\t\t\t\t// Not already in options\n\t\t\t\t!testOptionsContainInputCb(inputValue, options) &&\n\t\t\t\t// Not already in values\n\t\t\t\t!testValueCb(inputValue, value)\n\t\t\t) {\n\t\t\t\t// Store our inputted value for tracking what selected options were\n\t\t\t\t// controlled and which were uncontrolled\n\t\t\t\tsetUncontrolledValue(inputValue);\n\t\t\t\t// Add to the top of the options list\n\t\t\t\toptions.unshift(inputValue as any);\n\t\t\t} else {\n\t\t\t\tsetUncontrolledValue('');\n\t\t\t}\n\n\t\t\treturn options.filter(\n\t\t\t\t(option) =>\n\t\t\t\t\t!multiple || !testValueCb(option as unknown as string, value),\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\tflexible,\n\t\t\tisLoading,\n\t\t\ttestValueCb,\n\t\t\ttestOptionsContainInputCb,\n\t\t\tmultiple,\n\t\t\tvalue,\n\t\t],\n\t);\n\n\t// Run lookup on server\n\tconst handleLookup = useCallback(\n\t\tasync (str?: string) => {\n\t\t\t// If not a valid input, just search it all\n\t\t\tif (!isValidQueryInput(str)) {\n\t\t\t\tstr = '\"\"';\n\t\t\t\tsetSearchInput('');\n\t\t\t} else {\n\t\t\t\tsetSearchInput(str as string);\n\t\t\t}\n\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst results = await onLookup(str as string);\n\t\t\tsetOptions(\n\t\t\t\tuniqueArray(results.concat((additionalOptions as any[]) || [])).filter(\n\t\t\t\t\t(result) =>\n\t\t\t\t\t\t(typeof result !== 'string' || isValidQueryInput(result)) &&\n\t\t\t\t\t\t(!multiple || !testValueCb(result as unknown as string, value)),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tsetIsLoading(false);\n\t\t},\n\t\t[additionalOptions, onLookup, testValueCb, value, multiple],\n\t);\n\n\t// When the input changes, run the lookup\n\tconst handleInputChange = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['onInputChange']\n\t>(\n\t\t(event, str) => {\n\t\t\tif (\n\t\t\t\t!event ||\n\t\t\t\tIGNORE_INPUT_CHANGE_EVENTS.includes(\n\t\t\t\t\tevent.type as typeof IGNORE_INPUT_CHANGE_EVENTS[number],\n\t\t\t\t)\n\t\t\t)\n\t\t\t\treturn;\n\t\t\tsetInputValue(str);\n\t\t\thandleLookup(str);\n\t\t},\n\t\t[handleLookup],\n\t);\n\n\tconst handleBlur = useCallback(() => {\n\t\tmultiple && setInputValue('');\n\t}, [multiple, _value]);\n\n\tconst handleOpen = useCallback(() => {\n\t\tsetOpen(true);\n\t\t// (Re-)Query all values on server\n\t\thandleLookup();\n\t}, [handleLookup]);\n\n\tconst renderOption = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['renderOption']\n\t>(\n\t\t(props, option, state) => (\n\t\t\t\n\t\t),\n\t\t[uncontrolledValue, AutocompleteProps?.getOptionLabel],\n\t);\n\n\tconst renderTags = useCallback<\n\t\tRequired<\n\t\t\tAutocompleteProps\n\t\t>['renderTags']\n\t>(\n\t\t(value, getTagProps) => {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tgetTagProps={getTagProps}\n\t\t\t\t\tgetValueLabel={AutocompleteProps?.getOptionLabel}\n\t\t\t\t\tonSearch={onSearch}\n\t\t\t\t\tloading={props.loadingValue}\n\t\t\t\t\tvalues={value}\n\t\t\t\t\tuncontrolledValues={uncontrolledValues}\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t\t[disabled, props.loadingValue, uncontrolledValues, value, onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\tdata-testid=\"auto-list-field-autocomplete\"\n\t\t\tref={ref}\n\t\t\t{...props}\n\t\t\tclassName={clsx(classes.root, className, {\n\t\t\t\t[classes.labelHidden]: hideLabel,\n\t\t\t})}\n\t\t\tlabel={hideLabel ? undefined : label}\n\t\t\tchanged={changed}\n\t\t\tdisabled={disabled}\n\t\t\tloading={isLoading || loading}\n\t\t\tmultiple={multiple}\n\t\t\toptions={options}\n\t\t\trequired={required}\n\t\t\tvalue={value}\n\t\t\tAutocompleteProps={{\n\t\t\t\tonBlur: handleBlur,\n\t\t\t\tfilterOptions: handleFilterOptions,\n\t\t\t\t// Even though we filter out already selected option\n\t\t\t\t// when running the query, we still need to filter out\n\t\t\t\t// selected options in between queries\n\t\t\t\tfilterSelectedOptions: false,\n\t\t\t\tinputValue: inputValue as string,\n\t\t\t\tnoOptionsText: searchInput === '' ? locales.noInput : locales.noMatches,\n\t\t\t\tonClose: handleClose,\n\t\t\t\tonInputChange: handleInputChange,\n\t\t\t\tonOpen: handleOpen,\n\t\t\t\topen,\n\t\t\t\trenderOption,\n\t\t\t\trenderTags,\n\t\t\t\t...AutocompleteProps,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const AutoListFieldPrimitive = React.forwardRef(AutoListFieldInner) as <\n\tT,\n\tMultiple extends boolean,\n\tDisableClearable extends boolean = false,\n\tFreeSolo extends boolean = false,\n>(\n\tprops: AutoListFieldProps<\n\t\tAutoListFieldProps\n\t>,\n\tref: AutoListRef,\n) => JSX.Element;\n\nexport const AutoListField = withStyles(styles)(\n\tReact.memo(AutoListFieldPrimitive, compareProps()),\n) as <\n\tT,\n\tMultiple extends boolean,\n\tDisableClearable extends boolean = false,\n\tFreeSolo extends boolean = false,\n>(\n\tprops: Omit<\n\t\tAutoListFieldProps,\n\t\t'classes'\n\t>,\n) => JSX.Element;\n\nexport default AutoListField;\n","export const IGNORE_INPUT_CHANGE_EVENTS = ['blur', 'click', 'keydown'];\n","export {default} from './FormDialog';\nexport * from './FormDialog';\nexport * from './formDialogClasses';\nexport * from './withFormDialog';\nexport * from './types';\n","/**\n * For when you want to just deal with a single type of constituent (like doc viewer)\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\n\nexport default class AssetConstituents_ extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {method} methods.read - Fetch constituents\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/** @method */\n\t\t\tread: ['getConstituentsForAsset', 'assetId'],\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.read - Parse the results of fetch\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Data\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(data, opts) {\n\t\t\t\t// Where k could be\n\t\t\t\t// clips\n\t\t\t\t// keyframes\n\t\t\t\t// layers\n\t\t\t\t// pages\n\t\t\t\t_.each(data, (v, k) => {\n\t\t\t\t\tif (k === this.type) {\n\t\t\t\t\t\tthis.reset(v);\n\t\t\t\t\t\tthis['original' + _.ucfirst(k)] = v.slice();\n\t\t\t\t\t}\n\t\t\t\t\tdelete data[k];\n\t\t\t\t});\n\t\t\t\t// Return nothing - not doing so will result in rpc setting the return for us\n\t\t\t\treturn null;\n\t\t\t},\n\t\t};\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituents_';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituent';\n\nexport default class AssetConstituent_Keyframe extends Base {\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.type - Default type (1 = keyframe)\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\ttype: 1,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituent_Keyframe';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituent';\n\nexport default class AssetConstituent_Layer extends Base {\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.type - Default type (2 = layer)\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\ttype: 2,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituent_Layer';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituent';\n\nexport default class AssetConstituent_Page extends Base {\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.type - Default type (3 = page)\n\t * @property {number} defaults.pageNumber - The default page number (client side)\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\ttype: 3,\n\t\t\t// Client attributes\n\t\t\tpageNumber: 0,\n\t\t});\n\t}\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn ['pageNumber'];\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attr Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts) {\n\t\tsuper(attrs, opts);\n\n\t\t// Internationalize the title for pages\n\t\tvar title = this.get('title');\n\t\tif (title) {\n\t\t\t// \"Page n\"\n\t\t\ttitle = title.split(' ');\n\t\t\tif (title.length > 1) {\n\t\t\t\tthis.attributes.title = i18n.t('i18n.pageAndNumber', {\n\t\t\t\t\tpage: title[1],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituent_Page';\n\t}\n}\n","/**\n * AssetConstituents collection\n * We now get a return with objects - the key representing the constituent type.\n * There is currently no individual call to get the constituents of a type for an asset.\n * This collection makes the fetch and splits off the return into the appropriate constituent sub collection.\n * Each collection may need a different comparator and definitely needs its own model type (looking at you clips)\n * The alternative is that we get in a mess of declaring all these collections within a controller and then have a\n * specific call for each - why not just fetch here and get it all for free?\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/assetConstituent';\n\nimport Clips from './assetConstituents_clips';\nimport Keyframes from './assetConstituents_keyframes';\nimport Layers from './assetConstituents_layers';\nimport Pages from './assetConstituents_pages';\n\nimport {constituents as constituentProps} from '../properties/asset';\n\nconst ConsituentCollections = {\n\tclips: Clips,\n\tkeyframes: Keyframes,\n\tlayers: Layers,\n\tpages: Pages,\n};\n\nexport default class AssetConstituents extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {method} methods.read - Fetch constituents\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tread: ['getConstituentsForAsset', 'assetId'],\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.read - Parse the results of fetch\n\t */\n\tget parsers() {\n\t\treturn _.extend(super.parsers, {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Data\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(data, opts) {\n\t\t\t\t// Where k could be\n\t\t\t\t// clips\n\t\t\t\t// keyframes\n\t\t\t\t// layers\n\t\t\t\t// pages\n\t\t\t\t_.each(data, (v, k) => {\n\t\t\t\t\tconst subCollection = this[k];\n\n\t\t\t\t\t// Set models for sub colelction\n\t\t\t\t\tsubCollection.set(v);\n\n\t\t\t\t\t// Check for selected constituent and store it\n\t\t\t\t\tconst selected = subCollection.findWhere({display: 1});\n\t\t\t\t\tif (selected) {\n\t\t\t\t\t\tthis.displayed = selected;\n\t\t\t\t\t}\n\n\t\t\t\t\tdelete data[k];\n\t\t\t\t});\n\n\t\t\t\treturn data;\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attirbutes\n\t * @param {object} options Options\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * AssetId that the constituents reference\n\t\t * @type {Number}\n\t\t * @default\n\t\t */\n\t\tthis.assetId = opts.assetId || 0;\n\n\t\t/**\n\t\t * The currently selected constituent for display\n\t\t * @memberOf Netx.Collections.AssetConstituents\n\t\t * @alias displayed\n\t\t * @type {module:asset/models/assetConstituent}\n\t\t */\n\t\tthis.displayed = null;\n\n\t\t/**\n\t\t * @memberOf Netx.Collections.AssetConstituents\n\t\t * @alias properties\n\t\t * @type {object}\n\t\t */\n\t\tthis.properties = opts.properties || constituentProps;\n\n\t\t// Our clip types\n\t\t// this.clips = new Netx.Collections.AssetConstituents_clips\n\t\t// this.keyframes = new Netx.Collections.AssetConstituents_keyframes\n\t\t// this.layers = new Netx.Collections.AssetConstituents_layers\n\t\t// this.pages = new Netx.Collections.AssetConstituents_pages\n\t\t_.each(this.properties.types, (thing, id) => {\n\t\t\tconst things = new ConsituentCollections[`${thing}s`]([]);\n\n\t\t\tthings\n\t\t\t\t// The subcollections should mirror the read events of the parent collections, as they're all fetched as one:\n\t\t\t\t.listenTo(this, 'request:read', (collection, xhr, opts) => {\n\t\t\t\t\tif (collection !== this) return;\n\t\t\t\t\t!opts.silent && things.trigger('request:read', things, xhr, opts);\n\t\t\t\t})\n\t\t\t\t// When it syncs we sync\n\t\t\t\t.listenTo(this, 'sync', (collection, resp, opts) => {\n\t\t\t\t\tif (collection !== this) return;\n\t\t\t\t\t!opts.silent && things.trigger('sync', things, resp, opts);\n\t\t\t\t});\n\n\t\t\tthis.listenTo(things, 'sync', collection => {\n\t\t\t\tif (collection !== things) return;\n\t\t\t\tconst displayed = this.findWhere({display: 1});\n\t\t\t\tif (displayed) {\n\t\t\t\t\tthis.displayed = displayed;\n\t\t\t\t}\n\t\t\t}).listenTo(things, 'change:display', (model, display) => {\n\t\t\t\tif (display && this.displayed !== model) {\n\t\t\t\t\tthis.displayed && this.displayed.set('display', 0);\n\t\t\t\t\tthis.displayed = model;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis[thing + 's'] = things;\n\t\t\tthis.addSubCollection(things);\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituents';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituents_';\nimport Model from '../models/assetConstituent_clip';\n\nexport default class AssetConstituents_Clips extends Base {\n\t/** @type {string} */\n\tget type() {\n\t\treturn 'clips';\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\t\tsuper(models, opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituents_Clips';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituents_';\nimport Model from '../models/assetConstituent_keyframe';\n\nexport default class AssetConstituents_Keyframes extends Base {\n\t/** @type {string} */\n\tget type() {\n\t\treturn 'keyframes';\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\t\tsuper(models, opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituents_Keyframes';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituents_';\nimport Model from '../models/assetConstituent_layer';\n\nexport default class AssetConstituents_Layers extends Base {\n\t/** @type {string} */\n\tget type() {\n\t\treturn 'layers';\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\t\tsuper(models, opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituents_Layers';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './assetConstituents_';\nimport Model from '../models/assetConstituent_page';\n\nexport default class AssetConstituents_Pages extends Base {\n\t/** @type {string} */\n\tget type() {\n\t\treturn 'pages';\n\t}\n\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {method} methods.read - Search pages\n\t */\n\tget methods() {\n\t\treturn _.extend(super.methods, {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {string} str Search fragment\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsearchPDFPages(str, opts) {\n\t\t\t\tthis.filtered = true;\n\t\t\t\treturn ['searchPDFPages', this.assetId, str];\n\t\t\t},\n\t\t});\n\t}\n\n\t/*\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.read - Parse the results of fetch\n\t * @property {function} parsers.searchPDFPages - Parse the results of search\n\t */\n\tget parsers() {\n\t\treturn _.extend(super.parsers, {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Data\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(data, opts) {\n\t\t\t\t// Set page number - cannot be certain of this with the ref/id\n\t\t\t\t_.each(data.pages, (page, idx) => {\n\t\t\t\t\tpage.pageNumber = idx + 1;\n\t\t\t\t});\n\t\t\t\tthis.originalPages = data.pages.slice();\n\t\t\t\treturn data.pages;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Data\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsearchPDFPages(data, opts) {\n\t\t\t\tthis.reset(\n\t\t\t\t\t_.map(data, (d, idx) => {\n\t\t\t\t\t\td.pageNumber = idx + 1;\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * Store original pages (for search results)\n\t\t * @memberOf Netx.Collections.Pages\n\t\t * @alias originalPages\n\t\t * @type {array}\n\t\t */\n\t\tthis.originalPages = this.originalPages || [];\n\t}\n\n\t/**\n\t * Clear search\n\t * @method\n\t */\n\tclearSearch() {\n\t\t// No longer filtered\n\t\tthis.filtered = false;\n\t\tthis.reset(this.originalPages);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituents_Pages';\n\t}\n}\n","/**\n * Asset model.\n *\n * @classdesc This model is the client-side representation of the DAM 'assetBean' object, containing all DAM info on an asset.\n * It has a variety of RPC methods for operating on a single asset. The object is quite complete, and not all fields\n * are used for all assets.\n *\n * @class\n * @extends Netx.Model\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport AssetConstituentsCollection from '../collections/assetConstituents';\nimport AssetVersionModel from './assetVersion';\nimport AssetSetModel from './assetSet';\nimport ProgressModel from '@netx/core-app/models/progress';\n\nimport {userInputToExpirationTime} from '@netx/core-asset-expiration/utils';\nimport {matrixNames} from '@netx/core-permissions/properties/assetPermissions';\nimport {importTasks} from '../properties/asset';\nimport {types as assetSetTypes} from '../properties/assetSets';\n\nimport Netx, {dispatcher} from '@netx/core/bootstrap';\n\nimport moment from 'moment';\nimport {checksumEnabled} from '../enablers';\n\nexport default class Asset extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'assetId';\n\t}\n\n\tget titleAttribute() {\n\t\treturn 'name';\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/** @type {array} */\n\tget xhrExcludeProgress() {\n\t\treturn ['recordViewed'];\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.assetId - ID\n\t * @property {string} defaults.alphsChannel - Alpha channel\n\t * @property {array} defaults.attributeIds - Attribute IDs\n\t * @property {array} defaults.attributeNames - Attribute names\n\t * @property {array} defaults.attributeValues - Attribute values\n\t * @property {number} defaults.bitDepth - Bit depth\n\t * @property {array} defaults.categories - Category IDs\n\t * @property {number} defaults.categoryid - Primary category ID\n\t * @property {array} defaults.categoryPaths - Category paths\n\t * @property {number} defaults.checkout - If checked out, ID of user who checked it out\n\t * @property {string} defaults.checkoutUserLabel - Name of user that has this asset currently checked out\n\t * @property {string} defaults.colorProfile - Color profile\n\t * @property {array} defaults.constituentIds - Array of ids for all of the assets constituents\n\t * @property {string} defaults.constituentType - Type of constituent the asset has (keyframes, pages, layers)\n\t * @property {string} defaults.creationDate - Creation date (YYYY-MM-DD hh:mm:ss)\n\t * @property {string} defaults.description - Description\n\t * @property {number} defaults.dpi - DPI\n\t * @property {number} defaults.duration - Audio/video duration (seconds)\n\t * @property {number} defaults.expirationDate - Expiration date (Unix timestamp)\n\t * @property {string} defaults.file - Filename\n\t * @property {array} defaults.fileFormatFamily - File format families (types)\n\t * @property {number} defaults.fileheight - File height (pixels)\n\t * @property {number} defaults.filesize - Deprecated. See `fileSize2`\n\t * @property {number} defaults.fileSize2 - File size in bytes\n\t * @property {number} defaults.fileType - ID of file format type\n\t * @property {string} defaults.fileTypeLabel - File type name (usually the file extension)\n\t * @property {number} defaults.filewidth - File width (pixels)\n\t * @property {boolean} defaults.flvAvailable - FLV preview is available\n\t * @property {string} defaults.geoLocationLabel - Geo location label\n\t * @property {boolean} defaults.hasChildren - Deprecated\n\t * @property {number} defaults.hidden - Controls visibility of assets in search results if the asset is part of a group of related assets (this is a way to only show one asset from a group of related assets in search results)\n\t * @property {string} defaults.importDate - Import date (YYYY-MM-DD hh:mm:ss)\n\t * @property {string} defaults.importUserLabel - Name of user that imported this asset\n\t * @property {boolean} defaults.inCurrentCart - In current cart (selection)\n\t * @property {number} defaults.latitude - Latitude (gelocation)\n\t * @property {number} defaults.locationid - Storage location ID\n\t * @property {string} defaults.locationContext - Description of storage location\n\t * @property {number} defaults.longitude - Longitude (gelocation)\n\t * @property {boolean} defaults.metadataAvailable - Embedded metadata available (XMP, DC, ID3, etc)\n\t * @property {string} defaults.moddate - Modification date (YYYY-MM-DD hh:mm:ss)\n\t * @property {number} defaults.moduserid - ID of last user to modify the asset\n\t * @property {string} defaults.moduserlabel - Name of last user to modify the asset\n\t * @property {string} defaults.name - Name\n\t * @property {string} defaults.path - Path and filename of the asset in the repository\n\t * @property {number} defaults.parentId - Deprecated\n\t * @property {array} defaults.permissionMatrix - Assets permission matrix -- see {module:permissions/properties/assetPermissions#matrixNames} for the 6 permission types\n\t * @property {number} defaults.previewHeight - Preview height (pixels)\n\t * @property {string} defaults.previewUrl - Relative URL of preview image\n\t * @property {number} defaults.previewWidth - Preview width (pixels)\n\t * @property {boolean} defaults.proofAvailable - Proofs available for the asset\n\t * @property {number} defaults.rating - Rating (range is 1 - 100)\n\t * @property {boolean} defaults.readOnly - Flag indicating whether the asset is read only\n\t * @property {boolean} defaults.relatedAvailable - Related assets are available\n\t * @property {number} defaults.repurposeAvailability - Repurpose availability flag\n\t * @property {boolean} defaults.reviewAvailable - Reviews available for the asset\n\t * @property {number} defaults.statDeliveries - Number of times asset has been downloaded (as defined in Statistics Module)\n\t * @property {number} defaults.statPreviews - Number of times asset has been viewed (as defined in Statistics Module)\n\t * @property {number} defaults.status - Indicates availability of asset file\n\t * @property {string} defaults.thumbUrl - Relative URL of thumbnail image\n\t * @property {number} defaults.timeScale - Frames per second\n\t * @property {array} defaults.versionIds - An array of version ids, for any/all versions of the asset\n\t * @property {array} defaults.viewIds - Array of ids for all of the views belonging to the asset\n\t * @property {array} defaults.viewNames - Array of names of all of the views belonging to the asset\n\t * @property {number} defaults.visible - Visibility flag (1 indicates visible). If set to 0, the asset will only be seen by admins, regardless of permissions\n\t * @property {boolean} defaults.zoomAvailable - Zoom image is available\n\t *\n\t * @property {boolean} defaults.activatingTemplate - Activating template (adBuilder)\n\t * @property {string} defaults.audioUrl - If asset is of type audio, this is the url to the audio (client only)\n\t * @property {boolean} defaults.deactivatingTemplate - Deactivating template (adBuilder)\n\t * @property {boolean} defaults.templatable\t\t\t\t\t\t - Indicates whether asset can be activated as a template\n\t * @property {boolean} defaults.template - adBuilder template\n\t * @property {boolean} defaults.templateCustomizable - adBuilder template customizable\n\t * @property {string} defaults.videoUrl - Video URL (client only)\n\t * @property {string} defaults.zoomUrl - Zoom image (not to be mistaken for zoom tiles) (client only)\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\t// assetId: 0,\n\t\t\talphaChannel: '',\n\t\t\t// metadata is stored in these three parallel arrays\n\t\t\tattributeIds: [],\n\t\t\tattributeNames: [],\n\t\t\tattributeValues: [],\n\t\t\tbitDepth: 0,\n\t\t\tcategories: [],\n\t\t\tcategoryid: 0,\n\t\t\tcategoryPaths: [],\n\t\t\tcheckout: 0,\n\t\t\tcheckoutUserLabel: '',\n\t\t\tcolorProfile: '',\n\t\t\tconstituentIds: [],\n\t\t\tconstituentType: '',\n\t\t\tcreationdate: '',\n\t\t\tdescription: '',\n\t\t\tdpi: 0,\n\t\t\tduration: 0,\n\t\t\texpirationDate: 0,\n\t\t\tfile: '',\n\t\t\tfileFormatFamily: [],\n\t\t\tfileheight: 0,\n\t\t\tfileSize2: 0,\n\t\t\tfiletype: 0,\n\t\t\tfiletypelabel: '',\n\t\t\tfilewidth: 0,\n\t\t\tflvPreview: false,\n\t\t\tgeoLocationLabel: '',\n\t\t\timportDate: '',\n\t\t\timportUserLabel: '',\n\t\t\tinCurrentCart: false,\n\t\t\tlatitude: 0.0,\n\t\t\tlocationContext: '',\n\t\t\tlocationid: 0,\n\t\t\tlongitude: 0.0,\n\t\t\tmoddate: '',\n\t\t\tmoduserid: 0,\n\t\t\tmoduserlabel: '',\n\t\t\tmetadataAvailable: false,\n\t\t\tname: '',\n\t\t\tpath: '',\n\t\t\tpermissionMatrix: [1, 1, 1, 1, 1, 1],\n\t\t\tpreviewHeight: 0,\n\t\t\tpreviewUrl: '',\n\t\t\tpreviewWidth: 0,\n\t\t\tproofAvailable: false,\n\t\t\trating: 0,\n\t\t\treadOnly: 0,\n\t\t\trelatedAvailable: false,\n\t\t\trepurposeAvailability: 0,\n\t\t\treviewAvailable: false,\n\t\t\tstatDeliveries: 0,\n\t\t\tstatPreviews: 0,\n\t\t\tstatus: 0,\n\t\t\ttemplatable: false,\n\t\t\ttemplateCustomizable: false,\n\t\t\tthumbUrl: '',\n\t\t\tversionIds: [],\n\t\t\tviewIds: [],\n\t\t\tviewNames: [],\n\t\t\tvisible: 1,\n\t\t\tzoomAvailable: false,\n\n\t\t\t// Deprecated fields -- do not use!\n\t\t\timageid: 0,\n\t\t\tmetadata: '',\n\t\t\tattribute1: '',\n\t\t\tattribute2: '',\n\t\t\tattribute3: '',\n\t\t\tattribute4: '',\n\t\t\tattribute5: '',\n\t\t\tattribute6: '',\n\t\t\tattribute7: '',\n\t\t\tattribute8: '',\n\t\t\tattribute9: '',\n\t\t\tattribute10: '',\n\t\t\tattribute11: '',\n\t\t\tattribute12: '',\n\t\t\tattribute13: '',\n\t\t\tattribute14: '',\n\t\t\tattribute15: '',\n\t\t\tattribute16: '',\n\t\t\tattribute17: '',\n\t\t\tattribute18: '',\n\t\t\tattribute19: '',\n\t\t\tattribute20: '',\n\t\t\thasChildren: false,\n\t\t\tparentId: 0,\n\n\t\t\t// Client attributes\n\t\t\tactivatingTemplate: false,\n\t\t\tdeactivatingTemplate: false,\n\t\t\taudioUrl: '',\n\t\t\tvideoUrl: '',\n\t\t\tzoomUrl: '',\n\t\t};\n\t}\n\t/**\n\t * @type {array}\n\t */\n\tget clientAttrs() {\n\t\treturn [\n\t\t\t'activatingTemplate',\n\t\t\t'audioUrl',\n\t\t\t'customThumbnailFile',\n\t\t\t'progress',\n\t\t\t'thumbnailUpdating',\n\t\t\t'videoUrl',\n\t\t\t'zoomUrl',\n\t\t];\n\t}\n\n\t/**\n\t * The following RPC methods cause the DAM to operate on the asset described in the model.\n\t * All manipulation takes place in the DAM; the browser does not directly manipulate image\n\t * data, files or the database.\n\t * @rpcs\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * fetch(): load the asset described by 'assetId' from the DAM\n\t\t\t * api method: getAssetBean\n\t\t\t * @method fetch\n\t\t\t */\n\t\t\tread: ['getAssetBean', 'assetId'],\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {Object} opts Backbone options object, passed to the internal persistence methods.\n\t\t\t */\n\t\t\tupdate(opts) {\n\t\t\t\treturn ['setAsset', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * destroy(): delete this asset from the DAM.\n\t\t\t * api method: deleteAsset\n\t\t\t * @method destroy\n\t\t\t */\n\t\t\tremove: ['deleteAsset', 'assetId', 'deleteWait'],\n\t\t\t/**\n\t\t\t * This works for both expiring and unexpiring\n\t\t\t * Unexpireing just means setting 0 on expirationDate\n\t\t\t * @method\n\t\t\t */\n\t\t\texpireAsset: ['expireAsset', 'assetId', 'expirationDate'],\n\t\t\t/**\n\t\t\t * Import a previously uploaded asset to the DAM\n\t\t\t * @method\n\t\t\t */\n\t\t\timportAsset: [\n\t\t\t\t'importAsset2',\n\t\t\t\t'file',\n\t\t\t\t'categoryid',\n\t\t\t\t'locationid',\n\t\t\t\t'importAttributes',\n\t\t\t],\n\t\t\t/*\n\t\t\t * reserve: reserve an asset ID from the DAM for an asset to be imported.\n\t\t\t * api method: reserveAssetIds\n\t\t\t * NOTE: not tested. Use Netx.Collections.Assets.reserve() instead, to reserve N asset IDs at a time.\n\t\t\t * @private\n\t\t\t * @method\n\t\t\t */\n\t\t\treserve: ['reserveAssetIds', 1],\n\t\t\t/**\n\t\t\t * addCategory: add this asset to a DAM category.\n\t\t\t * api method: setAssetCategoryLink\n\t\t\t * @method\n\t\t\t * @todo We do not get back an error response, just a boolean\n\t\t\t */\n\t\t\taddCategory(opts) {\n\t\t\t\tconst d = new $.Deferred();\n\t\t\t\tthis.setAssetCategoryLink(_.extend({}, opts, {link: true})).then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t? d.resolveWith(this, [response])\n\t\t\t\t\t\t\t: d.reject(new Error(i18n.t('assetAddToCategoryError')));\n\t\t\t\t\t},\n\t\t\t\t\td.reject,\n\t\t\t\t);\n\t\t\t\treturn d.promise();\n\t\t\t},\n\t\t\t/**\n\t\t\t * removeCategory: remove this asset from a DAM category.\n\t\t\t * api method: setAssetCategoryLink\n\t\t\t * @method\n\t\t\t * @todo We do not get back an error response, just a boolean\n\t\t\t */\n\t\t\tremoveCategory(opts) {\n\t\t\t\tconst d = new $.Deferred();\n\t\t\t\tthis.setAssetCategoryLink(_.extend({}, opts, {link: false})).then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tresponse\n\t\t\t\t\t\t\t? d.resolveWith(this, [response])\n\t\t\t\t\t\t\t: d.reject(new Error(i18n.t('assetRemoveFromCategoryError')));\n\t\t\t\t\t},\n\t\t\t\t\td.reject,\n\t\t\t\t);\n\t\t\t\treturn d.promise();\n\t\t\t},\n\t\t\t/**\n\t\t\t * setAssetCategoryLink: add/remove this asset to/from a DAM category.\n\t\t\t * api method: setAssetCategoryLink\n\t\t\t * @method\n\t\t\t * @todo determine & describe the default collision strategy here.\n\t\t\t * @todo explain what happens when you remove the last category from an asset\n\t\t\t * @todo We do not get back an error response, just a boolean\n\t\t\t */\n\t\t\tsetAssetCategoryLink(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'setAssetCategoryLink',\n\t\t\t\t\tthis.id,\n\t\t\t\t\tthis.linkCategory,\n\t\t\t\t\topts.link || false,\n\t\t\t\t];\n\t\t\t},\n\t\t\t/**\n\t\t\t * setCategory: place the asset in exactly one (specified) category, removing it from all others. (Alias of setCategories())\n\t\t\t * api method: setAssetCategories\n\t\t\t * @method\n\t\t\t */\n\t\t\tsetCategory(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'setAssetCategories',\n\t\t\t\t\tthis.id,\n\t\t\t\t\t[this.linkCategory],\n\t\t\t\t\t'collisionStrategy.rename',\n\t\t\t\t];\n\t\t\t},\n\t\t\t/**\n\t\t\t * setCategories: place the asset in exactly the specified list of categories, removing it from all others.\n\t\t\t * api method: setAssetCategories\n\t\t\t * @method\n\t\t\t */\n\t\t\tsetCategories: [\n\t\t\t\t'setAssetCategories',\n\t\t\t\t'assetId',\n\t\t\t\t'linkCategories',\n\t\t\t\t'collisionStrategy.rename',\n\t\t\t],\n\t\t\t/**\n\t\t\t * repurpose: run a preset repurposing algorithm on this asset. (When finished, use the Sharing architecture to get the result.)\n\t\t\t * api method: repurposeAssetsWithPresetProcess\n\t\t\t * @method\n\t\t\t */\n\t\t\trepurpose(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'repurposeAssetsWithPresetProcess',\n\t\t\t\t\t[this.id],\n\t\t\t\t\t'repurposeOtherIds',\n\t\t\t\t\t'repurposeId',\n\t\t\t\t\t'repurposeDownloadOverride',\n\t\t\t\t];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t */\n\t\t\tmanualRepurpose(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'repurposeAssets',\n\t\t\t\t\t[this.id],\n\t\t\t\t\tthis.repurposeOtherIds,\n\t\t\t\t\tthis.repurposeMethods,\n\t\t\t\t\tthis.repurposeValues,\n\t\t\t\t];\n\t\t\t},\n\t\t\t/**\n\t\t\t * resync: resync this asset in the DAM\n\t\t\t * DAM-5726\n\t\t\t * api method: batchResyncAssets\n\t\t\t * @method resync\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tresync(opts) {\n\t\t\t\t//rpc needs an *array* of ids (single in this case)\n\t\t\t\treturn ['batchResyncAssets', [this.id], 'all'];\n\t\t\t},\n\t\t\t/*\n\t\t\t * @deprecated\n\t\t\t * assetInCurrentCart: tests if this asset is in the current cart.\n\t\t\t * api method: assetsInCurrentCart\n\t\t\t * @method\n\t\t\t * @private\n\t\t\t *\n\t\t\t * @todo this method has no parser and appears unused, perhaps untested ... deprecate?\n\t\t\t * miniAssets have an inCurrentCart attribute from the DAM, which we use instead of this method.\n\t\t\t * We also flip it manually when adding items to the cart (or we should).\n\t\t\t * This method might actually have some purpose on a miniAsset, but it's here instead ... my bad, I'm sure ...\n\t\t\t */\n\t\t\tassetInCurrentCart(opts) {\n\t\t\t\treturn ['assetsInCurrentCart', [this.id]];\n\t\t\t},\n\t\t\t/**\n\t\t\t * getCarts: returns a set of savedCart objects representing the saved carts in the DAM which\n\t\t\t * contain this asset.\n\t\t\t * api method: getCartsForAsset\n\t\t\t * @deprecated\n\t\t\t * @method\n\t\t\t */\n\t\t\t_getCarts: ['getCartsForAsset', 'assetId'],\n\t\t\t/**\n\t\t\t * checkout: 'checks out' the asset, manipulating its state in various ways, and prepares a download of the asset file.\n\t\t\t * api method: checkoutAsset\n\t\t\t * @method\n\t\t\t */\n\t\t\tcheckout: ['checkoutAsset', 'assetId'],\n\t\t\t/**\n\t\t\t * cancelCheckout: checks-in without file\n\t\t\t * api method: checkinAsset\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcancelCheckout(opts) {\n\t\t\t\treturn ['checkinAsset', this.id, this.get('file'), '', true];\n\t\t\t},\n\t\t\t/**\n\t\t\t * checkPendingTasks: track the DAM tasks that fire on asset import\n\t\t\t * @method\n\t\t\t */\n\t\t\tcheckPendingTasks: ['getImportPendingTasks', 'assetId'],\n\t\t\t/**\n\t\t\t * checkStatus: check the status of various import tasks.\n\t\t\t */\n\t\t\tcheckStatus: ['getMessage', 'messageType', 'assetId', 'objectContext'],\n\n\t\t\t/** @todo this method does nothing, because it has no parser. Remove? The constituents are normally fetched by Netx.asset.current.constituents ... */\n\t\t\tgetConstituents: ['getConstituentObjectsForAsset', 'assetId'],\n\t\t\t/**\n\t\t\t * Gets the process list (repurpose) for this asset\n\t\t\t */\n\t\t\tgetProcessListForUser: ['getProcessListForUser', 'assetId'],\n\t\t\t/**\n\t\t\t * recordViewed: tell the DAM statistics package that this asset was viewed once.\n\t\t\t * api method: recordAssetView\n\t\t\t * @method\n\t\t\t */\n\t\t\trecordViewed: ['recordAssetView', 'assetId'],\n\t\t\t/**\n\t\t\t * makeZoomTiles: tell the DAM to begin making the set of image tiles needed by the asset zoom view.\n\t\t\t * Once begun, progress on the tile generation is reported by getProgressReport().\n\t\t\t * api method: generateZoomifyTiles\n\t\t\t * @method\n\t\t\t */\n\t\t\tmakeZoomTiles: ['generateZoomifyTiles', 'assetId'],\n\n\t\t\t/**\n\t\t\t * adBuilder template methods:\n\t\t\t * ingest a 'template' asset (an .indd file with specific script labels configured)\n\t\t\t * to become the framework of an adBuilder template.\n\t\t\t * @method\n\t\t\t */\n\t\t\tactivateAdBuilderTemplate: ['activateAdBuilderTemplate', 'id'],\n\t\t\tdeactivateAdBuilderTemplate: ['deactivateAdBuilderTemplate', 'id'],\n\t\t};\n\t}\n\t/** @type {object} */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @deprecated\n\t\t\t * @param {boolean} response Response\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tassetInCurrentCart(response, opts) {\n\t\t\t\tif (this.inCurrentCart !== response[0]) {\n\t\t\t\t\tthis.inCurrentCart = response[0];\n\t\t\t\t\tthis.set('inCurrentCart', this.inCurrentCart, opts);\n\t\t\t\t\t!opts.silent && this.trigger('sync', this, opts);\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {string} uuid UUID\n\t\t\t * @param {object} opts Request options\n\t\t\t * @todo We get back a UUID because technically we call checkinAsset and pass `true` to\n\t\t\t * checkin without a file. The checkin is immediate in this case and we should probably get\n\t\t\t * a call specifically for cancelling checkout so that we get back the updated bean instead\n\t\t\t * of tracking a UUID that is finished immediately.\n\t\t\t * Also, the fact we have to pass more than just our asset id to cancel a checkout is messy\n\t\t\t */\n\t\t\tcancelCheckout(uuid, opts) {\n\t\t\t\tif (!uuid) return false;\n\n\t\t\t\t// Custom events for resyncing\n\t\t\t\tthis.trigger('cancellingCheckOut', this);\n\n\t\t\t\t// Poll\n\t\t\t\tconst batchJob = this.trackBatchJob(uuid, undefined, 500);\n\n\t\t\t\t// When completed\n\t\t\t\tbatchJob.completed.then(() => {\n\t\t\t\t\tthis.trigger('cancelledCheckedOut', this);\n\t\t\t\t\tthis.fetch();\n\t\t\t\t});\n\n\t\t\t\treturn batchJob;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {string} uuid Response (we need to get full beans back as we refactor things)\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcheckout(uuid, opts) {\n\t\t\t\tif (!uuid) return false;\n\n\t\t\t\t// Custom events for resyncing\n\t\t\t\tthis.trigger('checkingOut', this);\n\n\t\t\t\t// Poll\n\t\t\t\tconst batchJob = this.trackBatchJob(uuid, undefined, 500);\n\n\t\t\t\t// When completed\n\t\t\t\tbatchJob.completed.then(() => {\n\t\t\t\t\tthis.trigger('checkedOut', this);\n\t\t\t\t\tthis.fetch();\n\t\t\t\t});\n\n\t\t\t\treturn batchJob;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {number} assetId Asset id\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\timportAsset(assetId, opts) {\n\t\t\t\tif (!assetId) {\n\t\t\t\t\t// NOTE: there is an outstanding bug with this returning zero, which is never right.\n\t\t\t\t\tconsole.warn('importReservedAsset returned ' + assetId); // DEBUG;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.set({assetId: assetId});\n\t\t\t\t// Tell category system that we added an asset.\n\t\t\t\t// TODO: the category system could just as easily respond to an 'asset:imported' event, which would be more generic & meaningful.\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'asset:category:added',\n\t\t\t\t\tthis.id,\n\t\t\t\t\tthis.get('categoryid'),\n\t\t\t\t\tthis,\n\t\t\t\t\t'import',\n\t\t\t\t);\n\n\t\t\t\treturn assetId;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {boolean} response Response\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetAssetCategoryLink(response, opts) {\n\t\t\t\tif (response != true) return;\n\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'asset:category:added',\n\t\t\t\t\tthis.id,\n\t\t\t\t\tthis.linkCategory,\n\t\t\t\t\tthis,\n\t\t\t\t\t'setLink',\n\t\t\t\t);\n\t\t\t\t// Track index tasks.\n\t\t\t\t// DAM-21440?: if just linking, no need to track (hopefully)\n\t\t\t\topts?.link == null && dispatcher.trigger('asset:tasks:track', this);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {boolean} response Response\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tremoveCategory(response, opts) {\n\t\t\t\tconst cat = this.linkCategory;\n\t\t\t\tdispatcher.trigger('asset:category:removed', this.id, cat, this);\n\t\t\t\tdispatcher.trigger('asset:tasks:track', this);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} cats Category IDs\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetCategories(cats, opts) {\n\t\t\t\t// server should have given us back the list of ids we gave it\n\t\t\t\tif (cats.join('') != this.linkCategories.join('')) {\n\t\t\t\t\tconsole.log('warning: setCategories failed to set categories');\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} ids Asset IDs\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\treserve(ids, opts) {\n\t\t\t\tthis.set('assetId', ids[0]);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {string} uuid UUID\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tresync(uuid, opts) {\n\t\t\t\tif (!uuid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Custom events for resyncing\n\t\t\t\tthis.trigger('resyncing', this);\n\n\t\t\t\t// Poll\n\t\t\t\tconst batchJob = this.trackBatchJob(uuid);\n\n\t\t\t\t// When completed\n\t\t\t\tbatchJob.completed.then(() => {\n\t\t\t\t\tthis.trigger('resynced', this);\n\t\t\t\t});\n\n\t\t\t\treturn batchJob;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Internally, the Asset model uses another model, 'metadata', to store DAM metadata attributes.\n\t * (Backbone.Model uses the key 'attributes' in this object to store all other model data.)\n\t * We override the constructor to add that object when the model is created.\n\t * @override\n\t */\n\tconstructor(attr, opts = {}) {\n\t\tsuper(attr, opts);\n\n\t\t/**\n\t\t * Seperate from the asset model's attributes (which describe DAM data) are the following asset model properties\n\t\t * which inform the various RPC methods of this model.\n\t\t *\n\t\t * For remove():\n\t\t * deleteWait determines if deleteAsset() method will block until the DAM is done deleting.\n\t\t * @type {boolean}\n\t\t * @todo No we wont\n\t\t */\n\t\tthis.deleteWait = opts.deleteWait !== true;\n\n\t\t/**\n\t\t * importAttributes: an array of LabelValue objects to set as asset metadata attributes upon import\n\t\t * @type {Array}\n\t\t */\n\t\tthis.importAttributes = opts.importAttributes || [];\n\n\t\t/*\n\t\t * cache of our cart state; 'undefined' means we know nothing.\n\t\t *\n\t\t * @todo As of 7.6.0 assetBeans have inCurrentCart as a property\n\t\t * we need to deprecate all usage of the model property inCurrentCart\n\t\t * in favor of the model attribute inCurrentCart\n\t\t */\n\t\tthis.inCurrentCart = undefined;\n\n\t\t/**\n\t\t * For addCategory, removeCategory, setCategory:\n\t\t * linkCategory is the category ID these calls operate on.\n\t\t * @type {number}\n\t\t */\n\t\tthis.linkCategory = opts.linkCategory || 0;\n\n\t\t/**\n\t\t * for setAssetCategories:\n\t\t * linkCategories is a list of category Ids to set on the asset.\n\t\t * @type {array}\n\t\t */\n\t\tthis.linkCategories = opts.linkCategories || [];\n\t\t/*\n\t\t * collisionStrategy defines ways setAssetCategories can handle a filename collision.\n\t\t * Filenames must be unique within categories. A collision occurs when\n\t\t * we try to move an asset into a category where the asset's filename is already in use.\n\t\t * (Multiple uploads of the same asset are the most common example.) This integer argument to the\n\t\t * setCategoryAssets() API call specifies how to handle that. This object maps those\n\t\t * integers to meaningful labels, but we don't allow API users to change the default strategy,\n\t\t * which is collisionStrategy.rename .\n\t\t * @private\n\t\t */\n\t\tthis.collisionStrategy = _.extend(\n\t\t\t{\n\t\t\t\tfail: 0, // block the category change; leave the asset in its current category.\n\t\t\t\trename: 1, // rename the file we're recategorizing\n\t\t\t},\n\t\t\topts.collisionStrategy,\n\t\t);\n\n\t\t//\n\t\t// for getMessage, a nearly-but-not-quite-deprecated API call which we use to track reimports:\n\t\t// messageType: 4 = messages about asset reimport. Other values unknown.\n\t\t// objectContext: always null for us.\n\t\t// @private\n\t\t//\n\t\tthis.messageType = opts.messageType != null ? opts.messageType : 4;\n\t\t/** @type {string} */\n\t\tthis.objectContext = opts.objectContext || '';\n\n\t\t/**\n\t\t * for repurpose():\n\t\t * repurposeId is the ID of the preset repurposing process to apply with 'repurpose' method. (Netx.asset.processes contains the complete set of those processes, and is indexed by ID.)\n\t\t * @type {number}\n\t\t */\n\t\tthis.repurposeId = opts.repurposeId || 0;\n\n\t\t/**\n\t\t * repurposeOtherIds: meaning varies by process.\n\t\t * @type {array}\n\t\t */\n\t\tthis.repurposeOtherIds = opts.repurposeOtherIds || [];\n\t\tthis.repurposeMethods = opts.repurposeMethods || [];\n\t\tthis.repurposeValues = opts.repurposeValues || [];\n\n\t\t// according to FlexService.java, this field is 100% ignored.\n\t\tthis.repurposeDownloadOverride = opts.repurposeDownloadOverride || '';\n\n\t\t// Keep a model of the current version\n\t\tthis.version = new AssetVersionModel();\n\t\tthis.addSubModel(this.version);\n\n\t\tthis.setMediaUrls();\n\t\tthis.setChecksum();\n\n\t\t/**\n\t\t * @memberof module:asset/models/asset\n\t\t * @alias progress\n\t\t * @type {module:app/models/progress}\n\t\t */\n\t\tthis.progress = new ProgressModel();\n\t\tthis.addSubModel(this.progress);\n\n\t\t/**\n\t\t * @memberof module:asset/models/asset\n\t\t * @alias constituents\n\t\t * @type {module:asset/collections/assetConstituents}\n\t\t */\n\t\tthis.constituents = new AssetConstituentsCollection([]);\n\t\tthis.addSubCollection(this.constituents);\n\n\t\t// Hey, listen!\n\t\tthis\n\t\t\t// Make necessary updates when the id changes\n\t\t\t.listenTo(this, 'change:assetId', (model, assetId, options) => {\n\t\t\t\t// Update this.version when the asset changes id - sync doesn't work in most of our cases as the data is being\n\t\t\t\t// set by the cursor change in the controller with data from an asset collection\n\t\t\t\t// TODO: the asset mimics a sync now when we put it on the cursor - see if this is all still necessary\n\t\t\t\t// and if there may be a better place to put it\n\t\t\t\tthis.version.clear();\n\t\t\t\tif (this.id) {\n\t\t\t\t\tconst versions = this.get('versionIds');\n\t\t\t\t\tif (versions && versions.length > 1) {\n\t\t\t\t\t\tthis.version.set('versionId', versions[0]);\n\t\t\t\t\t\tthis.version.fetch();\n\t\t\t\t\t} else if (versions) {\n\t\t\t\t\t\t// Fake it 'til they make it\n\t\t\t\t\t\tthis.version.set({\n\t\t\t\t\t\t\tcreationDate: this.get('creationdate'),\n\t\t\t\t\t\t\tfileSize: this.get('fileSize2'),\n\t\t\t\t\t\t\tfileTypeId: this.get('filetype'),\n\t\t\t\t\t\t\tfileTypeLabel: this.get('filetypelabel'),\n\t\t\t\t\t\t\tassetId: this.get('imageid'),\n\t\t\t\t\t\t\tuserId: this.get('moduserid'),\n\t\t\t\t\t\t\tuserLabel: this.get('moduserlabel'),\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// Mimic a sync\n\t\t\t\t\t\tthis.version.trigger('sync', this.version);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Custom thumbnail progress listeners\n\t\t\t\tconst oldAssetId = this._previousAttributes.assetId;\n\t\t\t\tthis.setupCustomThumbnailListeners(oldAssetId);\n\t\t\t\tthis.setupAssetTaskListeners(oldAssetId);\n\t\t\t\tthis.setMediaUrls();\n\t\t\t\tthis.setChecksum();\n\t\t\t})\n\t\t\t////////////////////////////\n\t\t\t// ADBUILDER\n\t\t\t////////////////////////////\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'adBuilder:activate:asset:error',\n\t\t\t\t(error, asset) => {\n\t\t\t\t\tasset &&\n\t\t\t\t\t\tasset.id === this.id &&\n\t\t\t\t\t\tthis.set({\n\t\t\t\t\t\t\tactivatingTemplate: false,\n\t\t\t\t\t\t\ttemplate: false,\n\t\t\t\t\t\t\ttemplateCustomizable: false,\n\t\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t)\n\t\t\t.listenTo(dispatcher, 'adBuilder:activate:asset:start', (asset) => {\n\t\t\t\tasset &&\n\t\t\t\t\tasset.id === this.id &&\n\t\t\t\t\tthis.set({\n\t\t\t\t\t\tactivatingTemplate: true,\n\t\t\t\t\t\tdeactivatingTemplate: false,\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.listenTo(dispatcher, 'adBuilder:activate:asset:succeeded', (asset) => {\n\t\t\t\tasset &&\n\t\t\t\t\tasset.id === this.id &&\n\t\t\t\t\tthis.set({\n\t\t\t\t\t\tactivatingTemplate: false,\n\t\t\t\t\t\ttemplate: true,\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'adBuilder:deactivate:asset:error',\n\t\t\t\t(error, asset) => {\n\t\t\t\t\tasset &&\n\t\t\t\t\t\tasset.id === this.id &&\n\t\t\t\t\t\tthis.set({\n\t\t\t\t\t\t\tdeactivatingTemplate: false,\n\t\t\t\t\t\t\ttemplate: true,\n\t\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t)\n\t\t\t.listenTo(dispatcher, 'adBuilder:deactivate:asset:start', (asset) => {\n\t\t\t\tasset &&\n\t\t\t\t\tasset.id === this.id &&\n\t\t\t\t\tthis.set({\n\t\t\t\t\t\tactivatingTemplate: false,\n\t\t\t\t\t\tdeactivatingTemplate: true,\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.listenTo(dispatcher, 'adBuilder:deactivate:asset:succeeded', (asset) => {\n\t\t\t\tasset &&\n\t\t\t\t\tasset.id === this.id &&\n\t\t\t\t\tthis.set({\n\t\t\t\t\t\tdeactivatingTemplate: false,\n\t\t\t\t\t\ttemplate: false,\n\t\t\t\t\t\ttemplateCustomizable: false,\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t////////////////////////////\n\t\t\t// !ADBUILDER\n\t\t\t////////////////////////////\n\n\t\t\t////////////////////////////\n\t\t\t// ATTRIBUTES (METADATA)\n\t\t\t////////////////////////////\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'asset:submit:save asset:info:edit:success asset:attributes:submit:success',\n\t\t\t\t(m) => {\n\t\t\t\t\tif (m.cid !== this.cid && m.id === this.id) {\n\t\t\t\t\t\tthis.set(m.attributes);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t)\n\t\t\t////////////////////////////\n\t\t\t// !ATTRIBUTES (METADATA)\n\t\t\t////////////////////////////\n\n\t\t\t////////////////////////////////\n\t\t\t// CART STATUS\n\t\t\t////////////////////////////////\n\t\t\t// Tracking whether we're in the current cart:\n\t\t\t// If we are added to the cart, we know we're in it\n\t\t\t.listenTo(dispatcher, 'cart:added', (ids) => {\n\t\t\t\tif (ids.indexOf(this.id) < 0) return;\n\n\t\t\t\tif (this.has('inCurrentCart')) {\n\t\t\t\t\tthis.set('inCurrentCart', true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.inCurrentCart = true;\n\t\t\t\tthis.trigger('change');\n\t\t\t})\n\t\t\t// If we are removed, we know we're not in it\n\t\t\t.listenTo(dispatcher, 'cart:removed', (ids) => {\n\t\t\t\tif (ids.indexOf(this.id) < 0) return;\n\n\t\t\t\tif (this.has('inCurrentCart')) {\n\t\t\t\t\tthis.set('inCurrentCart', false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.inCurrentCart = false;\n\t\t\t\tthis.trigger('change');\n\t\t\t})\n\t\t\t// If the cart is cleared, we know we're not in it.\n\t\t\t.listenTo(dispatcher, 'cart:cleared', () => {\n\t\t\t\tif (this.has('inCurrentCart')) {\n\t\t\t\t\tthis.set('inCurrentCart', false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.inCurrentCart = false;\n\t\t\t\tthis.trigger('change');\n\t\t\t})\n\t\t\t////////////////////////////////\n\t\t\t// !CART STATUS\n\t\t\t////////////////////////////////\n\n\t\t\t// When a checkout & checkin happens, update our status & checked-out-ness\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'asset:checkout:success asset:checkout:cancel:success',\n\t\t\t\t(asset) => {\n\t\t\t\t\t// we are us!\n\t\t\t\t\t// we are not a duplicate model for the same DAM asset\n\t\t\t\t\tif (asset === this || asset.id !== this.id) return;\n\n\t\t\t\t\tthis.set({\n\t\t\t\t\t\tstatus: asset.get('status'),\n\t\t\t\t\t\tcheckout: asset.get('checkout'),\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t)\n\t\t\t// Batch jobs\n\t\t\t.listenTo(this, 'progress', (model, batchJob, progress) => {\n\t\t\t\tconst progressMessage = (batchJob && batchJob.get('details')) || '';\n\t\t\t\tthis.progress.update(progress, progressMessage);\n\t\t\t})\n\t\t\t.listenTo(this, 'complete', (model, batchJob) => {\n\t\t\t\tthis.progress.complete();\n\t\t\t})\n\t\t\t// When asset sybcs\n\t\t\t.listenTo(this, 'sync', (model) => {\n\t\t\t\tif (model !== this) return;\n\t\t\t\tthis.progress.reset();\n\t\t\t})\n\t\t\t// When a clip is created/updated\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'asset:constituent:clip:edit:success',\n\t\t\t\t(asset, clip, isNew) => {\n\t\t\t\t\tif (asset.id !== this.id) return;\n\n\t\t\t\t\tthis.constituents.clips.add(clip);\n\t\t\t\t},\n\t\t\t);\n\n\t\t// Custom thumbnail progress listeners\n\t\tthis.setupCustomThumbnailListeners();\n\t\tthis.setupAssetTaskListeners();\n\t\tthis.setupAssetCheckinListeners();\n\t}\n\n\t/**\n\t * The parse() method converts the contents of the AssetBean's attributeNames & attributeValues arrays\n\t * into the internal metadata model.\n\t * @override\n\t * @param {object} resp Asset bean\n\t * @param {object} opts Request options\n\t * @return {object} the unmodified attributes. (The internal attribute* arrays will still be updated from this data.)\n\t */\n\tparse(resp, opts) {\n\t\t// Set media urls\n\t\treturn _.extend(_.omit(resp, 'validationData', 'id'), {\n\t\t\taudioUrl: this.hasAudio(resp) || '',\n\t\t\tvideoUrl: this.hasVideo(resp) || '',\n\t\t\tzoomUrl: this.hasZoom(resp) || '',\n\t\t});\n\t}\n\n\t/**\n\t * the self() method translates the metadata object back into arrays,\n\t * being careful to preserve the same order as the attributeNames array.\n\t * @override\n\t * @return {object}\n\t */\n\tself() {\n\t\treturn _.omit.apply(\n\t\t\t_,\n\t\t\t[\n\t\t\t\tthis.attributes,\n\t\t\t\t'attributeValues',\n\t\t\t\t'attributeNames',\n\t\t\t\t'attributeIds',\n\t\t\t].concat(this.clientAttrs),\n\t\t);\n\t}\n\n\t/** @method */\n\tvalidate(attrs) {\n\t\tif (!_.isNumber(attrs.assetId)) {\n\t\t\treturn 'Must pass a number';\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Can zoom\n\t */\n\tcanZoom() {\n\t\treturn (\n\t\t\tthis.isImage() &&\n\t\t\tthis.get('filewidth') > 0 &&\n\t\t\tthis.get('fileheight') > 0 &&\n\t\t\tthis.get('zoomAvailable') &&\n\t\t\t(Netx.getPreference('zoom.tiles.enabled', true) ||\n\t\t\t\t(Netx.getPreference('equilibrium.enabled', true) &&\n\t\t\t\t\tNetx.getPreference('equilibrium.zoomEnabled', true)))\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} dateStr Date (yyyy-mm-dd)\n\t */\n\texpire(dateStr) {\n\t\ttry {\n\t\t\tconst expirationTime = userInputToExpirationTime(dateStr);\n\t\t\treturn this.set('expirationDate', expirationTime).expireAsset();\n\t\t} catch (ex) {\n\t\t\treturn new $.Deferred().reject(ex);\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} opts Request options\n\t */\n\tfetchConstituents(opts) {\n\t\tvar constituents = this.constituents;\n\n\t\tif (constituents.assetId === this.id) {\n\t\t\treturn new $.Deferred().resolveWith(constituents);\n\t\t}\n\n\t\tconstituents.assetId = this.id;\n\t\treturn constituents.fetch(\n\t\t\t_.extend(\n\t\t\t\t{\n\t\t\t\t\tduplicateQueryPolicy: 'abort',\n\t\t\t\t\treset: true,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t),\n\t\t);\n\t}\n\n\tgarbageCollect() {\n\t\tsuper.garbageCollect();\n\t\tdelete this.progress;\n\t\tdelete this.version;\n\t\tdelete this.constituents;\n\t}\n\n\t/**\n\t * getAttribute() and setAttribute() are the preferred interface to the DAM's internal representation of asset attributes.\n\t * @method\n\t * @param {number} templateId Template id\n\t * @param {string} name Template name\n\t * @param {object} opts Options\n\t * @return {mixed}\n\t */\n\tgetAttribute(templateId, name, opts = {}) {\n\t\tconst attrModel = Netx.getAttribute(templateId, name);\n\t\tlet value;\n\n\t\tif (attrModel) {\n\t\t\tvalue =\n\t\t\t\tattrModel.get('system') &&\n\t\t\t\tattrModel.id !== -119 && // Smart labels\n\t\t\t\tattrModel.id !== -120 // dimensions\n\t\t\t\t\t? this.getSystemAttribute(attrModel.id)\n\t\t\t\t\t: this.get('attributeValues')[\n\t\t\t\t\t\t\t_.indexOf(this.get('attributeIds'), attrModel.id)\n\t\t\t\t\t ];\n\n\t\t\tvalue = opts.format\n\t\t\t\t? attrModel.format(value, opts)\n\t\t\t\t: attrModel.parseInValue(value);\n\t\t}\n\n\t\treturn value != null ? value : '';\n\t}\n\n\t/**\n\t * Get attribute template id by name\n\t * @param {string} name Attribute name\n\t * @return {number}\n\t */\n\tgetAttributeId(name) {\n\t\treturn Netx.getAttributeId(name);\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} templateId Template id\n\t * @param {object} opts Options\n\t * @return {mixed}\n\t * @deprecated see `this.getAttribute`\n\t */\n\tgetAttributeValue(templateId, opts) {\n\t\treturn this.getAttribute(templateId, null, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} templateId Attribute template id\n\t * @return {mixed}\n\t */\n\tgetSystemAttribute(templateId, name) {\n\t\tconst attrModel = Netx.getAttribute(templateId, name);\n\n\t\tlet value;\n\t\tif (attrModel) {\n\t\t\tvar attrName = attrModel.get('name');\n\t\t\t// Normalize\n\t\t\tswitch (attrModel.get('name')) {\n\t\t\t\tcase 'creationDate':\n\t\t\t\t\tattrName = 'creationdate';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'expireDate':\n\t\t\t\t\tattrName = 'expirationDate';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'fileSize':\n\t\t\t\t\tattrName = 'fileSize2';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'fileType':\n\t\t\t\t\tattrName = 'filetypelabel';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'folderPath':\n\t\t\t\t\tattrName = 'categoryPaths';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'height':\n\t\t\t\t\tattrName = 'fileheight';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'modDate':\n\t\t\t\t\tattrName = 'moddate';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'width':\n\t\t\t\t\tattrName = 'filewidth';\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvalue = this.get(attrName);\n\t\t\tif (_.isArray(value)) {\n\t\t\t\tvalue.join(', ');\n\t\t\t}\n\t\t}\n\n\t\treturn value != null ? value : '';\n\t}\n\n\t/**\n\t * @method\n\t * @return {string} Token string if it exists\n\t */\n\tgetTokenString() {\n\t\tconst token = Netx.getToken();\n\t\treturn token ? '?token=' + token : '';\n\t}\n\n\t/**\n\t * @method\n\t * @return {array} Waveform JSON\n\t */\n\tgetWaveformJSON() {\n\t\treturn $.getJSON(\n\t\t\t`/file/asset/${this.id}/view/previewWaveformJSON${this.getTokenString()}`,\n\t\t).then((json) => {\n\t\t\treturn json.data;\n\t\t});\n\t}\n\n\t/**\n\t * Does asset have audio, get the audio url\n\t * @method\n\t * @param {object} attrs Attributes to use (rather than `this.get`)\n\t * @return {boolean}\n\t */\n\thasAudio(attrs = {}) {\n\t\tconst id = attrs.assetId || this.id;\n\t\tif (\n\t\t\t_.indexOf(\n\t\t\t\tattrs.fileFormatFamily || this.get('fileFormatFamily'),\n\t\t\t\t'audio',\n\t\t\t) < 0\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet url = false;\n\t\tconst tokenStr = this.getTokenString();\n\t\t// Check in view names\n\t\tif (\n\t\t\t_.indexOf(attrs.viewNames || this.get('viewNames'), 'previewMp3') > -1\n\t\t) {\n\t\t\turl = [\n\t\t\t\t'/file/asset/',\n\t\t\t\tid,\n\t\t\t\t'/view/previewMp3/a_',\n\t\t\t\tid,\n\t\t\t\t'.mp3',\n\t\t\t\ttokenStr,\n\t\t\t].join('');\n\t\t}\n\t\t// Check in file type label\n\t\telse if ((attrs.filetypelabel || this.get('filetypelabel')) === 'mp3') {\n\t\t\turl = ['/file/asset/', id, '/original/a_', id, '.mp3', tokenStr].join('');\n\t\t}\n\n\t\treturn url;\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} format Format\n\t * @return {boolean} Has format family\n\t */\n\thasFormatFamily(format) {\n\t\treturn _.contains(this.get('fileFormatFamily'), format);\n\t}\n\n\t/**\n\t * Does asset have any multimedia (audio/video)\n\t * @method\n\t * @return {boolean|string} Audio url or false\n\t */\n\thasMultimedia() {\n\t\treturn this.hasAudio() || this.hasVideo();\n\t}\n\n\t/**\n\t * Does asset have video, get the video url\n\t * @method\n\t * @param {object} attrs Attributes to use (rather than `this.get`)\n\t * @return {boolean|string} Video url or false\n\t */\n\thasVideo(attrs = {}) {\n\t\tconst id = attrs.assetId || this.id;\n\t\tconst tokenStr = this.getTokenString();\n\n\t\tif (\n\t\t\t_.indexOf(\n\t\t\t\tattrs.fileFormatFamily || this.get('fileFormatFamily'),\n\t\t\t\t'video',\n\t\t\t) < 0\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet url = false;\n\t\tif (\n\t\t\t_.indexOf(attrs.viewNames || this.get('viewNames'), 'previewH264') !== -1\n\t\t) {\n\t\t\turl = [\n\t\t\t\t'/file/asset/',\n\t\t\t\tid,\n\t\t\t\t'/view/previewH264/v_',\n\t\t\t\tid,\n\t\t\t\t'.mp4',\n\t\t\t\ttokenStr,\n\t\t\t].join('');\n\t\t}\n\t\t// Check in file type label\n\t\telse if ((attrs.filetypelabel || this.get('filetypelabel')) === 'mp4') {\n\t\t\turl = ['/file/asset/', id, '/original/v_', id, '.mp4', tokenStr].join('');\n\t\t}\n\n\t\treturn url;\n\t}\n\n\t/**\n\t * Does asset have a zoom view (Longest side is 1000), get the zoom url\n\t * @method\n\t * @param {object} attrs Attributes to use (rather than `this.get`)\n\t * @return {boolean|string} Zoom url or false\n\t */\n\thasZoom(attrs = {}) {\n\t\tconst id = attrs.assetId || this.id;\n\t\tconst filetypelabel = attrs.filetypelabel || this.get('filetypelabel');\n\t\treturn `/file/asset/${id}/zoom/${id}.${filetypelabel}`;\n\t}\n\n\t/**\n\t * Only for use in updating attribute values locally (like after a change from elsewhere)\n\t * Once we get websockets this will be deprecated\n\t * @method\n\t * @param {number|string} templateId Attribute template id\n\t * @param {string} val Value of the attribute to set\n\t */\n\tsetAttribute(templateId, val, opts) {\n\t\tconst id = _.isString(templateId) ? null : templateId;\n\t\tconst name = _.isString(templateId) ? templateId : null;\n\t\tconst attrModel = Netx.getAttribute(id, name);\n\n\t\tif (!attrModel) return this;\n\n\t\tconst idx = _.indexOf(this.get('attributeIds'), attrModel.id);\n\n\t\tif (attrModel.isCSV || attrModel.isTrueMultivalue()) {\n\t\t\tval = _.arrayToCsv(val);\n\t\t}\n\n\t\tif (idx > -1) {\n\t\t\tconst attributeValues = _.clone(this.get('attributeValues'));\n\t\t\tattributeValues[idx] = val;\n\t\t\treturn this.set(\n\t\t\t\t{\n\t\t\t\t\tattributeValues: attributeValues,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t);\n\t\t}\n\n\t\treturn this.set(\n\t\t\t{\n\t\t\t\tattributeIds: this.get('attributeIds').concat([attrModel.id]),\n\t\t\t\tattributeNames: this.get('attributeNames').concat([attrModel.name]),\n\t\t\t\tattributePermissions: this.get('attributePermissions').concat(['r']),\n\t\t\t\tattributeValues: this.get('attributeValues').concat([val]),\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @listens module:upload#upload:asset:checkin:complete\n\t * @listens module:upload#upload:asset:checkin:progress\n\t * @listens module:upload#upload:asset:checkin:error\n\t */\n\tsetupAssetCheckinListeners() {\n\t\tthis.stopListening(dispatcher, 'upload:asset:checkin:progress')\n\t\t\t.stopListening(dispatcher, 'upload:asset:checkin:complete')\n\t\t\t.stopListening(dispatcher, 'upload:asset:checkin:error')\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'upload:asset:checkin:progress',\n\t\t\t\t(assetId, progress, progressMessage, file) => {\n\t\t\t\t\tif (assetId !== this.id) return;\n\n\t\t\t\t\tthis.trigger('checkingIn', this, file);\n\t\t\t\t\tthis.progress.update(progress, progressMessage);\n\t\t\t\t},\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'upload:asset:checkin:complete',\n\t\t\t\t(assetId, file) => {\n\t\t\t\t\tif (assetId !== this.id) return;\n\n\t\t\t\t\tthis.trigger('checkedIn', this, file);\n\t\t\t\t\tthis.progress.complete();\n\t\t\t\t\t// Delay slightly so the progress removal does not seem so abrupt\n\t\t\t\t\t_.delay(_.bind(this.fetch, this), 1000);\n\t\t\t\t},\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'upload:asset:checkin:error',\n\t\t\t\t(error, assetId, file) => {\n\t\t\t\t\tthis.trigger('checkedIn', this, file);\n\t\t\t\t\tthis.progress.complete();\n\t\t\t\t},\n\t\t\t)\n\t\t\t.stopListening(dispatcher, 'asset:versions:reactivate:progress')\n\t\t\t.stopListening(dispatcher, 'asset:versions:reactivate:succeeded')\n\t\t\t.stopListening(dispatcher, 'asset:versions:reactivate:error')\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'asset:versions:reactivate:progress',\n\t\t\t\t(assetId, progress, progressMessage) => {\n\t\t\t\t\tif (assetId !== this.id) return;\n\t\t\t\t\tthis.progress.update(progress, progressMessage);\n\t\t\t\t},\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'asset:versions:reactivate:succeeded',\n\t\t\t\t(newVersion) => {\n\t\t\t\t\tif (newVersion.get('assetId') !== this.id) return;\n\t\t\t\t\tthis.progress.complete();\n\t\t\t\t},\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'asset:versions:reactivate:error',\n\t\t\t\t(error, newVersion) => {\n\t\t\t\t\tif (newVersion.get('assetId') !== this.id) return;\n\t\t\t\t\tthis.progress.complete();\n\t\t\t\t},\n\t\t\t);\n\t}\n\n\t/**\n\t * Setup asset task listeners (cleans up any old listeners as well)\n\t * @method\n\t * @param {number} oldAssetId Old asset id\n\t */\n\tsetupAssetTaskListeners(oldAssetId) {\n\t\tif (oldAssetId) {\n\t\t\t// asset:task:complete:\n\t\t\tthis.stopListening(dispatcher, 'asset:task:complete:' + oldAssetId);\n\t\t\tthis.stopListening(dispatcher, 'asset:task:' + oldAssetId + ':status');\n\t\t}\n\n\t\tif (!this.id) return;\n\n\t\t// Task completion\n\t\tthis.listenTo(dispatcher, 'asset:task:complete:' + this.id, (task) => {\n\t\t\t// HACKETY-HACK-SMACK-HACK for EIGHT-549:\n\t\t\tconst tempIconPattern = /\\/icons\\/.*\\.png$/;\n\t\t\tlet previewNow = this.get('previewUrl');\n\n\t\t\t// If we currently have no previewUrl, or a temporary icon preview ...\n\t\t\tif (!previewNow || previewNow.match(tempIconPattern)) {\n\t\t\t\t// ... then poll until the DAM generates a proper preview, or we run out of patience.\n\t\t\t\tconst patienceExhausted = 4; // only try this many times.\n\t\t\t\tlet timesPolled = 0;\n\t\t\t\tthis.pollUntil(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tpreviewNow = this.get('previewUrl'); // possibly updated?\n\t\t\t\t\t\ttimesPolled++;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t(previewNow && !previewNow.match(tempIconPattern)) ||\n\t\t\t\t\t\t\ttimesPolled >= patienceExhausted\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\t2000,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.progress.complete();\n\t\t\tthis.trigger('taskComplete', this, task);\n\t\t})\n\t\t\t// Task status\n\t\t\t.listenTo(dispatcher, 'asset:task:' + this.id + ':status', (task) => {\n\t\t\t\t// Shows our import tasks percentage as the second half of our total import progress;\n\t\t\t\t// therefore, we divide by 2 and add 50.\n\t\t\t\tconst realProgress = task.get('percentComplete') / 2 + 50;\n\t\t\t\tconst tasks = task.get('tasks') || [];\n\t\t\t\tthis.progress.update(\n\t\t\t\t\trealProgress,\n\t\t\t\t\timportTasks[tasks[0]] || i18n.t('i18n.processing'),\n\t\t\t\t);\n\t\t\t\tthis.trigger('taskStatus', this, task);\n\t\t\t});\n\t}\n\n\t/**\n\t * Cleans up old listeners (if any) and adds new listeners for all your custom thumbnail needs\n\t * @method\n\t * @param {number} oldAssetId Old asset id\n\t */\n\tsetupCustomThumbnailListeners(oldAssetId) {\n\t\t// NOTE: normalized the 'error' event as we have many a use for a good 'ol lower cased error event\n\t\t// Its return will not be the same as pluploads - it will return an error message and an assetId (if it can get itoff the details)\n\t\tlet eventPrefix;\n\t\t// Clean up any old listeners (really only an issue with Netx.asset.current)\n\t\tif (oldAssetId) {\n\t\t\teventPrefix = 'upload:asset:customThumbnail:' + oldAssetId;\n\t\t\t// asset:customThumbnail:upload::error\n\t\t\t// asset:customThumbnail:upload::FilesAdded\n\t\t\t// asset:customThumbnail:upload::UploadProgress\n\t\t\t// asset:customThumbnail:upload::polling\n\t\t\t// asset:customThumbnail:upload::success\n\t\t\tthis.stopListening(dispatcher, eventPrefix + ':error');\n\t\t\tthis.stopListening(dispatcher, eventPrefix + ':FilesAdded');\n\t\t\tthis.stopListening(dispatcher, eventPrefix + ':UploadProgress');\n\t\t\tthis.stopListening(dispatcher, eventPrefix + ':progress');\n\t\t\tthis.stopListening(dispatcher, eventPrefix + ':success');\n\t\t}\n\n\t\tif (!this.id) return;\n\n\t\t// Events for custom thumbnail\n\t\teventPrefix = 'upload:asset:customThumbnail:' + this.id;\n\n\t\tthis\n\t\t\t// Listen for error\n\t\t\t// asset:customThumbnail:upload::error\n\t\t\t.listenTo(dispatcher, eventPrefix + ':error', (error) => {\n\t\t\t\tthis.set({\n\t\t\t\t\tprogress: 0,\n\t\t\t\t\tupdating: false,\n\t\t\t\t});\n\t\t\t})\n\t\t\t// Listen for FilesAdded\n\t\t\t// This basically means that a new custom thumbnail is being uploaded\n\t\t\t// asset:customThumbnail:upload::FilesAdded\n\t\t\t.listenTo(dispatcher, eventPrefix + ':FilesAdded', (pluploader, file) => {\n\t\t\t\tthis.progress.update(0, i18n.t('i18n.addingCustomThumbnail'));\n\t\t\t})\n\t\t\t// Listen for UploadProgress\n\t\t\t// Half the progress since this is a two part process\n\t\t\t// asset:customThumbnail:upload::UploadProgress\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\teventPrefix + ':UploadProgress',\n\t\t\t\t(pluploader, file) => {\n\t\t\t\t\tthis.progress.update(\n\t\t\t\t\t\tparseInt(file.percent / 2),\n\t\t\t\t\t\ti18n.t('i18n.uploadingCustumThumbnail'),\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t)\n\t\t\t// Listen for polling\n\t\t\t// Thumbnail has been uploaded and the job is running on the server\n\t\t\t// Half the progress and add 50 (two part process and we are the second part)\n\t\t\t// asset:customThumbnail:upload::polling\n\t\t\t.listenTo(dispatcher, eventPrefix + ':progress', (batchJob, progress) => {\n\t\t\t\tthis.progress.update(\n\t\t\t\t\t50 + parseInt(progress / 2),\n\t\t\t\t\ti18n.t('i18n.settingCustomThumbnail'),\n\t\t\t\t);\n\t\t\t})\n\t\t\t// Listen for suceess\n\t\t\t// Thumbnail uploaded and job complete\n\t\t\t// asset:customThumbnail:upload::success\n\t\t\t.listenTo(dispatcher, eventPrefix + ':success', (file) => {\n\t\t\t\tthis.progress.complete();\n\t\t\t\t// If we did not have a thumbUrl at all, just ignore as we are some sort of dummy asset model\n\t\t\t\tif (!this.get('thumbUrl')) return;\n\n\t\t\t\t// Delay slightly since this could have gone way too fast (avoid janky progress)\n\t\t\t\t_.delay(() => {\n\t\t\t\t\tthis.fetch().then(() => {\n\t\t\t\t\t\t// TODO: Need to discuss the DAM updating the moddate when a custom thumbnail is selected\n\t\t\t\t\t\tthis.trigger('thumbnailUpdated', file);\n\t\t\t\t\t});\n\t\t\t\t}, 1000);\n\t\t\t});\n\t}\n\n\t/**\n\t * Deduces the url required to access asset media (video, audio, zoom)\n\t * You know, so we are not repeating this logic all over the place in views etc\n\t * This makes the change silently as nothing abotu the asset has actually changed or needed to come from the server\n\t * These attributes are defined in clientAttrs and cleaned up when this.self is called\n\t * @method\n\t */\n\tsetMediaUrls(attrs) {\n\t\tif (!this.id) return;\n\n\t\t// Check and see if we are video, audio etc and set proper urls\n\t\tthis.set('audioUrl', this.hasAudio(attrs) || '');\n\t\tthis.set('videoUrl', this.hasVideo(attrs) || '');\n\t\tthis.set('zoomUrl', this.hasZoom(attrs) || '');\n\t}\n\n\t/**\n\t * Pretend this is a thing\n\t * @method\n\t */\n\tsetChecksum() {\n\t\tif (checksumEnabled()) {\n\t\t\tthis.set('checksum', this.get('attribute4'));\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t */\n\tunexpire() {\n\t\treturn this.set('expirationDate', 0).expireAsset();\n\t}\n\n\t/**\n\t * @deprecated\n\t * setCombo() and getCombo() interface with the DAM's internal representation of a choice list, aka a Pulldown,\n\t * as used for attributes of type 'select', 'multiselect' and 'tags'.\n\t *\n\t * setCombo: Encode a combo attribute as CSV before setting. A subsequent save() will write changes to the DAM.\n\t * @method\n\t * @param {String} name Name of the attribute to set choices for.\n\t * @param {Array} vals An array of strings: new values for the attribute. This can be empty, to clear the list.\n\t */\n\tsetCombo(name, vals) {\n\t\tthis.setAttribute(name, _.arrayToCsv(vals));\n\t}\n\n\t/**\n\t * @deprecated\n\t * Decode a combo attribute from CSV before getting\n\t * @method\n\t * @param {String} name Name of the attribute to get choices for.\n\t * @return {Array} a list of strings.\n\t */\n\tgetCombo(name) {\n\t\treturn _.csvToArray(this.getAttribute(null, name));\n\t}\n\n\t/**\n\t * moveCategory: Move an asset from one category to another, triggering events 'asset:category:removed', 'asset:category:added' and 'asset:category:moved'.\n\t * This method calls setAssetCategories(), so other categories may be removed in the process.\n\t * @param {number} from ID of category to leave (if not provided, will remove from all other categories)\n\t * @param {number} to ID of category to enter\n\t *\n\t * @todo this is too sloppy. We need these events in order to do proper UI feedback for recategorization.\n\t * Both 'from' and 'to' should be arrays ... but really 'from' should go away & we should look at asset.categories instead.\n\t * We should then trigger asset:category:removed for every one of those that's not in 'to' .\n\t */\n\tmoveCategory(from, to) {\n\t\tif (from == to) {\n\t\t\t// no-op!\n\t\t\treturn new $.Deferred().resolve();\n\t\t}\n\n\t\tif (from == null || isNaN(from)) from = this.get('categories');\n\t\tif (!Array.isArray(from)) from = [from];\n\t\tthis.linkCategories = _.without\n\t\t\t.apply(_, [this.get('categories')].concat(from))\n\t\t\t.concat([to]);\n\n\t\treturn this.setCategories().then(() => {\n\t\t\treturn this.fetch().then(() => {\n\t\t\t\t// Success\n\t\t\t\tfrom.forEach((catId) => {\n\t\t\t\t\tdispatcher.trigger('asset:category:removed', this.id, catId, this);\n\t\t\t\t\tdispatcher.trigger('asset:category:moved', this.id, catId, to, this);\n\t\t\t\t});\n\t\t\t\tdispatcher.trigger('asset:category:added', this.id, to, this);\n\n\t\t\t\t// DAM-21440: What tasks are there to track on a single asset move?\n\t\t\t\t// this _defer is a hack around a DAM bug ...\n\t\t\t\t// but which one?\n\t\t\t\t// _.defer(() => {\n\t\t\t\t// \tdispatcher.trigger('asset:tasks:track', this.id);\n\t\t\t\t// });\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Is document\n\t */\n\tisDocument() {\n\t\treturn (\n\t\t\t(this.get('constituentIds').length > 0 && this.isPDF()) ||\n\t\t\tthis.get('fileFormatFamily').includes('document')\n\t\t);\n\t}\n\t/**\n\t * Check if we are an image\n\t * @method\n\t * @return {boolean}\n\t */\n\tisImage() {\n\t\tconst fileFormatFamily = this.get('fileFormatFamily');\n\t\treturn (\n\t\t\tfileFormatFamily.includes('image') ||\n\t\t\tfileFormatFamily.includes('raw') ||\n\t\t\tfileFormatFamily.includes('cameraRaw')\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Is locked\n\t */\n\tisLocked() {\n\t\treturn this.get('readOnly') === 1;\n\t}\n\n\t/**\n\t * Check if we are a PDF\n\t * @method\n\t * @return {boolean}\n\t */\n\tisPDF() {\n\t\treturn (\n\t\t\t_.indexOf(this.get('viewNames'), 'previewPDF') !== -1 ||\n\t\t\tthis.get('filetypelabel') === 'pdf'\n\t\t);\n\t}\n\n\t/**\n\t * Lock an asset (previously set asset to \"read-only\")\n\t * @method\n\t */\n\tlock(opts) {\n\t\t// Why we need the bean returned on updates\n\t\t// Fetching to get the appropriate permission matrix\n\t\treturn this.save({readOnly: 1}, {wait: true, ...opts}).then(() => {\n\t\t\treturn this.fetch(opts);\n\t\t});\n\t}\n\n\t/**\n\t * Return an assetSet object defining the set that contains just this asset.\n\t * @method\n\t * @return {module:asset/models/assetSet} AssetSet model\n\t */\n\ttoAssetSet() {\n\t\treturn new AssetSetModel({\n\t\t\ttype: assetSetTypes.asset,\n\t\t\tids: [this.id],\n\t\t\tmodels: [this],\n\t\t\tlabel: this.get('name'),\n\t\t});\n\t}\n\n\t/**\n\t * Unlock an asset (previously unset asset from \"read-only\")\n\t * @method\n\t */\n\tunlock(opts) {\n\t\t// Why we need the bean returned on updates\n\t\t// Fetching to get the appropriate permission matrix\n\t\treturn this.save({readOnly: 0}, {wait: true, ...opts}).then(() => {\n\t\t\treturn this.fetch(opts);\n\t\t});\n\t}\n\n\t/**\n\t * return a cache-busting string for the asset preview; this string should change every time the asset preview changes.\n\t * @method\n\t * @return string\n\t */\n\tcacheBuster(prefix) {\n\t\t// If this model doesn't have moddate set, use the current time.\n\t\tconst timeStr = this.get('moddate')\n\t\t\t? _.dateFromAsset(this.get('moddate')).getTime()\n\t\t\t: new Date().getTime();\n\n\t\t// A new checkin will change the preview image without modifying the moddate.\n\t\t// Therefore, encode both versionIds and moddate in the buster-string\n\t\treturn (\n\t\t\t'?' +\n\t\t\t(prefix ? prefix + '&' : '') +\n\t\t\t't=' +\n\t\t\ttimeStr +\n\t\t\t'&v=' +\n\t\t\tthis.get('versionIds')\n\t\t);\n\t}\n\n\t/**\n\t * @deprecated\n\t * Force a local update of the asset's moddate property, so that this.cacheBuster() will return a new string,\n\t * and so that any change listeners for moddate will be jingled.\n\t * Moddate is a read-only property, so any future fetch will reset it to the DAM's value.\n\t * But this method is useful in situations where the client already knows a change has happened,\n\t * and doesn't want to re-fetch.\n\t *\n\t * @method\n\t * @param {Date} date A date object specifying the time to stamp (if undefined, we use the current moment)\n\t */\n\tbumpModdate(date) {\n\t\tdate = date || new Date();\n\t\tthis.set({moddate: _.dateToAsset(date)});\n\t}\n\n\t/**\n\t * Check our permissionMatrix for whether a particular named bit is set.\n\t * @param {string} perm One of the permissions in {module:permissions/properties/assetPermissions#matrixNames}\n\t * @returns {mixed} returns true or false, or undefined (which is falsy) if the argument is undefined.\n\t * @method\n\t */\n\t// DEVNOTE: module:asset/models/asset & Netx.Models.Category use the same method. Change it here, change it there.\n\t// Until we have a better include/export scheme we won't know whether asset or category module inits first,\n\t// so we can't define one of these in terms of the other.\n\t//\n\t//allows: module:asset/models/asset.prototype.allows\n\tallows(perm) {\n\t\tif (perm == null) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst matrixIndex = matrixNames.indexOf(perm);\n\n\t\tif (matrixIndex < 0) {\n\t\t\tthrow new Error(\"Unknown permission '\" + perm + \"'\");\n\t\t}\n\n\t\t// We need the DAM to return appropriate permissions for readOnly assets (even for admins)\n\t\tif (this.get('readOnly') === 1) {\n\t\t\tswitch (perm) {\n\t\t\t\tcase 'delete':\n\t\t\t\tcase 'modify':\n\t\t\t\tcase 'all':\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// The actual test of the actual value in the actual matrix (cast to bool):\n\t\treturn this.get('permissionMatrix')[matrixIndex] ? true : false;\n\t}\n\n\t/**\n\t * Methods for MediaRich zoom feature (if enabled):\n\t *\n\t * This non-standard API call is proxied from the DAM to a connected MediaRich server,\n\t * and tells the MR server to cache the asset from the DAM.\n\t *\n\t * @method\n\t * @returns {promise} resolves/rejects when complete.\n\t */\n\tcacheInMediaRich() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst mediarichCacheUrl =\n\t\t\t\t// server target (proxied to MS server):\n\t\t\t\t'/mgen/NetX.ms?f=LoadAndCache&assetPath=' +\n\t\t\t\t// URL to original asset, with sessionKey added for authentication:\n\t\t\t\tencodeURIComponent(\n\t\t\t\t\tNetx.URL.asset +\n\t\t\t\t\t\t'/' +\n\t\t\t\t\t\tthis.id +\n\t\t\t\t\t\t'/original/' +\n\t\t\t\t\t\tthis.get('file') +\n\t\t\t\t\t\t'?sessionKey=' +\n\t\t\t\t\t\tNetx.session.get('sessionKey'),\n\t\t\t\t) +\n\t\t\t\t// Session key again, because sessions are key:\n\t\t\t\t'&sessionKey=' +\n\t\t\t\tNetx.session.get('sessionKey');\n\n\t\t\t$.ajax(mediarichCacheUrl).then((responseJSON, responseText, jqXHR) => {\n\t\t\t\t// response must be 200 (ok)\n\t\t\t\tif (jqXHR && jqXHR.status != 200) {\n\t\t\t\t\treturn reject(`Bad response from MediaRich server: ${responseText}`);\n\t\t\t\t} else if (\n\t\t\t\t\ttypeof responseJSON === 'string' &&\n\t\t\t\t\tresponseJSON.includes('not found on NetX')\n\t\t\t\t) {\n\t\t\t\t\treturn reject(responseJSON);\n\t\t\t\t}\n\t\t\t\tresolve(responseJSON);\n\t\t\t}, reject);\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Asset';\n\t}\n}\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const SUBMIT_BUTTON_CLASS_NAME = 'SubmitButton';\nexport const SUBMIT_BUTTON_CLASS_SLOTS = [\n\t'root',\n\t'button',\n\t'progress',\n] as const;\n\nexport type SubmitButtonClassSlot = typeof SUBMIT_BUTTON_CLASS_SLOTS[number];\n\nexport interface SubmitButtonClasses {\n\troot: string;\n\tbutton: string;\n\tprogress: string;\n\tfullWidth: string;\n\ticonOnly: string;\n\tsubmitting: string;\n}\n\nexport type SubmitButtonClassKey = keyof SubmitButtonClasses;\n\nexport const getSubmitButtonUtilityClass = (slot: SubmitButtonClassSlot) =>\n\tgenerateUtilityClass(SUBMIT_BUTTON_CLASS_NAME, slot);\n\nexport const submitButtonClasses: SubmitButtonClasses = generateUtilityClasses(\n\tSUBMIT_BUTTON_CLASS_NAME,\n\t['root', 'button', 'progress', 'fullWidth', 'iconOnly', 'submitting'],\n);\n\nexport default submitButtonClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faSave as SaveIcon} from '@fortawesome/pro-solid-svg-icons';\nimport {Button, ButtonProps, LinearProgress} from '@mui/material';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport {\n\tsubmitButtonClasses,\n\tgetSubmitButtonUtilityClass,\n\tSubmitButtonClasses,\n\tSUBMIT_BUTTON_CLASS_NAME,\n} from './submitButtonClasses';\n\ntype SubmitButtonUtiltiyClassProps = WithClasses<\n\tSubmitButtonClasses,\n\t{\n\t\tfullWidth?: boolean;\n\t\ticonOnly?: boolean;\n\t\tsubmitting?: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: SubmitButtonUtiltiyClassProps) => {\n\tconst {classes, fullWidth, iconOnly, submitting} = ownerState;\n\tconst slots = {\n\t\troot: [\n\t\t\t'root',\n\t\t\tfullWidth && 'fullWidth',\n\t\t\ticonOnly && 'iconOnly',\n\t\t\tsubmitting && 'submitting',\n\t\t],\n\t\tprogress: ['actions'],\n\t\tbutton: ['button'],\n\t};\n\treturn composeClasses(slots, getSubmitButtonUtilityClass, classes);\n};\n\nconst SubmitButtonRoot = styled('div', {\n\tname: SUBMIT_BUTTON_CLASS_NAME,\n\tslot: 'Root',\n})(({theme, ownerState}) => {\n\tconst {\n\t\tfullWidth,\n\t\ticonOnly,\n\t\tsubmitting,\n\t} = ownerState as SubmitButtonUtiltiyClassProps;\n\treturn {\n\t\twidth: fullWidth ? '100%' : undefined,\n\t\t[`& .${submitButtonClasses.button}`]: {\n\t\t\t...(iconOnly\n\t\t\t\t? {\n\t\t\t\t\t\theight: 48,\n\t\t\t\t\t\t'& svg': {\n\t\t\t\t\t\t\theight: '20px !important',\n\t\t\t\t\t\t\twidth: 20,\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: null),\n\t\t\t...(submitting\n\t\t\t\t? {\n\t\t\t\t\t\topacity: 0,\n\t\t\t\t }\n\t\t\t\t: null),\n\t\t},\n\t};\n});\n\nconst SubmitButtonButton = styled(Button, {\n\tname: SUBMIT_BUTTON_CLASS_NAME,\n\tslot: 'Button',\n})(({theme}) => ({\n\ttransition: theme.transitions.create('opacity'),\n}));\n\nconst SubmitButtonProgress = styled(LinearProgress, {\n\tname: SUBMIT_BUTTON_CLASS_NAME,\n\tslot: 'Progress',\n})(({theme}) => ({\n\tposition: 'absolute',\n\ttop: '50%',\n\tmarginTop: -2,\n\tleft: theme.spacing(1),\n\tright: theme.spacing(1),\n}));\n\nexport interface SubmitButtonProps\n\textends Omit, 'classes'>,\n\t\tWithClasses {\n\ticonOnly?: boolean;\n\tlabel?: string;\n\tprogress?: number | null;\n\tshowWorking?: boolean;\n}\n\nexport const SubmitButtonPrimitive = React.memo(\n\t({\n\t\tclasses: _classes,\n\t\tclassName,\n\t\tdisabled,\n\t\tfullWidth,\n\t\ticonOnly,\n\t\tlabel,\n\t\tprogress,\n\t\tshowWorking,\n\t\t...props\n\t}: SubmitButtonProps) => {\n\t\tconst ownerState: SubmitButtonUtiltiyClassProps = {\n\t\t\tclasses: _classes,\n\t\t\tfullWidth,\n\t\t\ticonOnly,\n\t\t\tsubmitting: showWorking,\n\t\t};\n\n\t\tconst classes = useUtilityClasses(ownerState);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{iconOnly ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tlabel || i18n.t('i18n.submit')\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{showWorking ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport const SubmitButton = SubmitButtonPrimitive;\n\nexport default SubmitButton;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface TextFieldClasses {\n\t/** styles applied to the root element */\n\troot: string;\n}\n\nexport function getTextFieldUtilityClass(slot: string) {\n\treturn generateUtilityClass('TextField', slot);\n}\n\nconst textFieldClasses = generateUtilityClasses(\n\t'TextField',\n\t['root'],\n);\nexport default textFieldClasses;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface StyledTextFieldClasses {\n\t/** styles applied to the root element */\n\troot: string;\n\tloading: string;\n\ttextarea: string;\n\tinherit: string;\n}\n\nexport function getStyledTextFieldUtilityClass(slot: string) {\n\treturn generateUtilityClass('StyledTextField', slot);\n}\n\nconst styledTextFieldClasses = generateUtilityClasses<\n\tkeyof StyledTextFieldClasses\n>('StyledTextField', ['root', 'inherit', 'loading', 'textarea']);\nexport default styledTextFieldClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tCircularProgress,\n\tTextField as MuiTextField,\n\tTextFieldProps as MuiTextFieldProps,\n} from '@mui/material';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\n\nimport textFieldClasses, {\n\tgetStyledTextFieldUtilityClass,\n} from './styledTextFieldClasses';\nimport {outlinedInputClasses} from '@mui/material/OutlinedInput';\n\nconst useUtilityClasses = (ownerState) => {\n\tconst {classes, inherit, multiline} = ownerState;\n\tconst slots = {\n\t\troot: ['root', multiline && 'textarea', inherit && 'inherit'],\n\t\tloading: ['loading'],\n\t};\n\treturn composeClasses(\n\t\tslots,\n\t\tgetStyledTextFieldUtilityClass,\n\t\tclasses as typeof textFieldClasses,\n\t);\n};\n\nconst StyledTextFieldRoot = styled(MuiTextField, {\n\tname: 'StyledTextField',\n\tslot: 'Root',\n\toverridesResolver: (props, styles) => styles.root,\n})(({theme}) => ({\n\t[`&.${textFieldClasses.textarea} textarea`]: {\n\t\tminHeight: 42,\n\t},\n\t[`&.${textFieldClasses.inherit}`]: {\n\t\tcolor: 'inherit',\n\t\t[`& .${outlinedInputClasses.root}`]: {\n\t\t\tbackground: `rgba(0, 0, 0, 0.16)`,\n\t\t\tpaddingRight: 8,\n\t\t\tcolor: 'inherit',\n\t\t\t[`&.${outlinedInputClasses.focused}`]: {\n\t\t\t\t[`& .${outlinedInputClasses.notchedOutline}`]: {\n\t\t\t\t\tborderColor: `rgba(0, 0, 0, 0.32)`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t[`&:not(.${outlinedInputClasses.focused})`]: {\n\t\t\t\t[`& .${outlinedInputClasses.notchedOutline}`]: {\n\t\t\t\t\tborderColor: 'transparent',\n\t\t\t\t},\n\t\t\t},\n\t\t\t[`& .${outlinedInputClasses.input}`]: {\n\t\t\t\tpaddingLeft: 8,\n\t\t\t\ttextAlign: 'center',\n\t\t\t\tcolor: 'inherit',\n\t\t\t},\n\t\t},\n\t},\n}));\n\nconst LoadingRoot = styled(CircularProgress, {\n\tname: 'StyledTextField',\n\tslot: 'Loading',\n\toverridesResolver: (props, styles) => styles.loading,\n})(({theme}) => ({\n\tposition: 'absolute',\n\tright: 10,\n\ttop: 10,\n\t'& circle': {\n\t\tstrokeWidth: 2,\n\t},\n}));\n\nexport type StyledTextFieldProps = WithMuiPropOverrides & {\n\t// TODO: this currently only supports outlined inputs\n\tinherit?: boolean;\n\tloadingValue?: boolean;\n\treadOnly?: boolean;\n};\n\nexport const StyledTextFieldPrimitive = (props: StyledTextFieldProps) => {\n\tconst {\n\t\tclassName,\n\t\tloadingValue,\n\t\tdisabled,\n\t\tinherit,\n\t\treadOnly,\n\t\t...sendProps\n\t} = props;\n\n\tconst classes = useUtilityClasses({\n\t\t...sendProps,\n\t\tinherit,\n\t});\n\n\treturn (\n\t\t\n\t\t\t\t\t\t{loadingValue ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t{sendProps.InputProps?.endAdornment}\n\t\t\t\t\t\n\t\t\t\t),\n\t\t\t}}\n\t\t\tinputProps={{\n\t\t\t\tautoComplete: 'off',\n\t\t\t\treadOnly,\n\t\t\t\t...sendProps.inputProps,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const StyledTextField = React.memo(StyledTextFieldPrimitive);\nexport default StyledTextField;\n","import React, {useCallback, useRef} from 'react';\n\nimport {composeClasses, styled} from '@netx/core-components/Theme';\n\nimport textFieldClasses, {getTextFieldUtilityClass} from './textFieldClasses';\nimport {StyledTextField} from './StyledTextField';\nimport {CommonFieldPropsWithTextField, ErrorField, useFormInput} from '..';\nimport {useErrorFocus} from '../hooks/useErrorFocus';\n\nconst useUtilityClasses = (ownerState) => {\n\tconst {classes} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t};\n\treturn composeClasses(\n\t\tslots,\n\t\tgetTextFieldUtilityClass,\n\t\tclasses as typeof textFieldClasses,\n\t);\n};\n\nconst TextFieldRoot = styled('div', {\n\tname: 'TextField',\n\tslot: 'Root',\n\toverridesResolver: (props, styles) => styles.root,\n})(({theme}) => ({\n\tdisplay: 'inline-flex',\n\tflexDirection: 'column',\n\twidth: '100%',\n}));\n\nexport interface TextFieldProps extends CommonFieldPropsWithTextField {\n\tonChange?: (value: string) => void;\n\tinherit?: boolean;\n}\n\nconst TextFieldPrimitive = ({\n\tchanged,\n\tdisabled,\n\terror,\n\tform,\n\tformFieldOptions,\n\thideErrorMessage,\n\tloadingValue,\n\tname,\n\tonChange,\n\treadOnly,\n\trequired,\n\tvalue,\n\n\t...props\n}: TextFieldProps) => {\n\tvalue = value == null ? '' : value;\n\n\tconst classes = useUtilityClasses(props);\n\n\tconst inputRef = useRef(null);\n\n\tuseFormInput(name, value, form, {required, ...formFieldOptions});\n\n\tuseErrorFocus({\n\t\terror,\n\t\tinputRef,\n\t});\n\n\tconst handleChange = useCallback(\n\t\t(event: React.ChangeEvent) => {\n\t\t\t// Sometimes a change event will come through that was not related to\n\t\t\t// interacting directly with the input\n\t\t\t// I cannot seem to recreate this in the tests yet, but this is an\n\t\t\t// important chack\n\t\t\tif (!event) return;\n\n\t\t\tconst {value} = event.target;\n\t\t\tform && form.setValue(name, value);\n\t\t\tonChange && onChange(value);\n\t\t},\n\t\t[form?.setValue, name, onChange],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{!hideErrorMessage ? (\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};\n\nexport const TextField = React.memo(TextFieldPrimitive);\nexport default TextField;\n","import React from 'react';\n\nimport TextField, {TextFieldProps} from './TextField';\nimport ReadOnlyTextField, {ReadOnlyTextFieldProps} from './ReadOnlyTextField';\n\nexport {default as ReadOnlyTextField} from './ReadOnlyTextField';\nexport * from './ReadOnlyTextField';\n\nexport {default as TextField} from './TextField';\nexport * from './TextField';\n\ntype ExternalProps = TextFieldProps | ReadOnlyTextFieldProps;\n\ntype InternalProps = {\n\treadOnly?: boolean;\n};\n\nexport default function ({readOnly, ...props}: InternalProps & ExternalProps) {\n\treturn !readOnly ? (\n\t\t\n\t) : (\n\t\t\n\t);\n}\n","import {AssetGalleryAsset} from '@netx/core-asset-gallery/types';\nexport const assetExpires = (asset: AssetGalleryAsset) =>\n\t!!asset.expirationDate;\nexport default assetExpires;\n","import moment from 'moment';\n\nexport const userInputToExpirationTime = (expirationDate: string) => {\n\tconst date = moment(expirationDate).endOf('day');\n\tdate.utc();\n\n\tconst tomorrow = moment().utc(false).add(1, 'day').valueOf();\n\n\t// Make sure date is valid and that it is greater than or equal to tomorrow\n\tif (!date.isValid() || date.valueOf() < tomorrow) {\n\t\tthrow new Error('Invalid expiration date');\n\t}\n\n\treturn date.valueOf();\n};\n\nexport default userInputToExpirationTime;\n","import { parseQueryArgs, QueryObserver } from '@tanstack/query-core';\nimport { useBaseQuery } from './useBaseQuery.esm.js';\n\nfunction useQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}\n\nexport { useQuery };\n//# sourceMappingURL=useQuery.esm.js.map\n","import React, {FunctionComponent, useEffect, useState} from 'react';\n\nimport _ from 'underscore';\n\nimport {Tooltip as MuiTooltip, TooltipProps} from '@mui/material';\nimport {useUpdateEffect} from '../hooks/useUpdateEffect';\nexport type {TooltipProps} from '@mui/material';\n\n/**\n * Wrapper for MUI Tolltip\n *\n * Dismiss tooltip on scroll\n */\nexport const Tooltip: FunctionComponent<\n\tTooltipProps & {\n\t\tdisabled?: boolean;\n\t}\n> = ({disabled, children, title, open: _open, ...props}) => {\n\tconst [open, setOpen] = useState(_open || false);\n\n\tuseEffect(() => {\n\t\tif (!open) return;\n\n\t\tconst listener = _.throttle(() => {\n\t\t\tsetOpen(false);\n\t\t}, 50);\n\n\t\twindow.addEventListener('scroll', listener, true);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', listener, true);\n\t\t};\n\t}, [open]);\n\n\tconst toggleOpen = (open: boolean) => () => setOpen(disabled ? false : open);\n\n\tuseUpdateEffect(() => {\n\t\t_open != null && setOpen(_open);\n\t}, [_open]);\n\n\tuseUpdateEffect(() => {\n\t\tdisabled && setOpen(false);\n\t}, [disabled]);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default Tooltip;\n","/**\n * Asset constituent model\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport AssetSetModel from './assetSet';\n\nimport {types as assetSetTypes} from '../properties/assetSets';\n\nexport default class AssetConstituent extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/**\n\t * The unique ID for this model is \"id\"\n\t * @type {string}\n\t */\n\tget idAttribute() {\n\t\treturn 'constituentId';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.constituentId - Constituent id (Never set the id in defaults)\n\t * @property {number} defaults.display - Display constituent (boolean as number)\n\t * @property {number} defaults.assetId - Asset id (the asset I am a constituent of)\n\t * @property {string} defaults.lowresUrl - Low resolution image (unused?)\n\t * @property {string} defaults.modDate - Modification date string\n\t * @property {string} defaults.previewUrl - Preview image\n\t * @property {number} defaults.rebuildCount - ??? Rebuild count\n\t * @property {number} defaults.rebuildType - ??? Rebuild type\n\t * @property {number} defaults.ref - ???\n\t * @property {string} defaults.thumbUrl - Thumbnail image\n\t * @property {string} defaults.title - Title\n\t * @property {number} defaults.type - 1 = time (keyframe), 2 = layer, 3 = page, 4 = clips\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\t// constituentId : 0,\n\t\t\tattributes: [],\n\t\t\tdisplay: 0,\n\t\t\tassetId: 0,\n\t\t\tlowresUrl: '',\n\t\t\tmodDate: '',\n\t\t\tpreviewUrl: '',\n\t\t\trebuildType: 0,\n\t\t\trebuildCount: 0,\n\t\t\tref: 1,\n\t\t\tthumbUrl: '',\n\t\t\ttitle: '',\n\t\t\ttype: 0,\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} methods - Model RPC methods\n\t * @property {function|array} methods.read - Fetch constituent\n\t * @property {function|array} methods.setDisplay - Tell the dam to use this constituent as the image thumbnail/preview\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tread: ['getConstituentObject', 'constituentId'],\n\t\t\tsetDisplay: ['setConstituentDisplay', 'constituentId'],\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Model parsers\n\t * @property {function} parsers.setDisplay - Parse the return of our fetch, it is an array with a single record\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {null} result Result (returns `null` - very helpful)\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetDisplay(result, opts) {\n\t\t\t\tthis.set({display: 1});\n\t\t\t\treturn result;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * @memberof module:asset/models/assetConstituent\n\t\t * @alias clipAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.clipAttributes =\n\t\t\topts.clipAttributes || Netx.getAttributesByObjectType('clip');\n\t}\n\n\t/**\n\t * Check our permissionMatrix for whether a particular named bit is set.\n\t * Pipes through the asset we belong to\n\t * @method\n\t * @param {string} perm One of the permissions in {module:permissions/properties/assetPermissions#matrixNames}\n\t * @returns {mixed} returns true or false, or undefined (which is falsy) if the argument is undefined.\n\t */\n\tallows(perm) {\n\t\t// TODO: better way to handle the contituents having access to the asset bean they belong to\n\t\t// Maybe, rather than passing an assetId to constituents we passa full on bean - that way when it updates\n\t\t// we update and have proper permission matrix rather than relying that the constituent's asset will always\n\t\t// be Netx.asset.current\n\t\tvar currentAsset = Netx.asset.current;\n\t\treturn currentAsset && currentAsset.allows.apply(currentAsset, arguments);\n\t}\n\n\t/**\n\t * Return an assetSet object defining the set that contains just this constituent.\n\t * @method\n\t * @return {module:asset/models/assetSet} AssetSet model\n\t */\n\ttoAssetSet() {\n\t\treturn new AssetSetModel({\n\t\t\ttype: assetSetTypes.asset,\n\t\t\tids: [this.get('assetId')],\n\t\t\tmodels: [this],\n\t\t\tlabel: this.get('title'),\n\t\t\tcanCreateLink: false,\n\t\t\tcanEmail: false,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituent';\n\t}\n}\n","import {i18n} from '@netx/core/i18n';\nimport {notMobile} from '@netx/core/lib/netx-enablers';\n\nexport let constituents = {\n\ttypes: {\n\t\t1: 'keyframe',\n\t\t2: 'layer',\n\t\t3: 'page',\n\t\t4: 'clip',\n\t},\n\ttypeNames: {\n\t\t1: 'asset:i18n.consituentsKeyframes',\n\t\t2: 'asset:i18n.consituentsLayers',\n\t\t3: 'asset:i18n.consituentsPages',\n\t\t4: 'asset:i18n.consituentsClips',\n\t},\n};\n\nexport let dragUserLevel = 8;\n\n// Tasks that run on assets at import\nexport let importTasks = {\n\tAudioTask: i18n.t('i18n.performingTaskAudio'),\n\tFFFViewTask: i18n.t('i18n.performingTaskFFFView'),\n\tINDDPageTask: i18n.t('i18n.performingTaskINDDPage'),\n\tIWorkPageTask: i18n.t('i18n.performingTaskIWorkPage'),\n\tKeyframesTask: i18n.t('i18n.performingTaskKeyframes'),\n\tMetadataTask: i18n.t('i18n.performingTaskMetadata'),\n\tOfficePageTask: i18n.t('i18n.performingTaskOfficePage'),\n\tPDFPageTask: i18n.t('i18n.performingTaskPDFPage'),\n\tPostImportTask: i18n.t('i18n.performingTaskPostImport'),\n\tPreviewTask: i18n.t('i18n.performingTaskPreview'),\n\tRelatedAssetTask: i18n.t('i18n.performingTaskRelatedAssets'),\n\tSWFTask: i18n.t('i18n.performingTaskSWF'),\n\tThumbnailTask: i18n.t('i18n.performingTaskThumbnail'),\n\tVideoPreviewTask: i18n.t('i18n.performingTaskVideoPeview'),\n\tWatermarkTask: i18n.t('i18n.performingTaskWatermark'),\n\tZoomTask: i18n.t('i18n.performingTaskZoom'),\n};\n\nexport let renderableChanges = [\n\t'attributeIds',\n\t'attributeNames',\n\t'attributeValues',\n\t'checkout',\n\t'creationdate',\n\t'expirationDate',\n\t'file',\n\t'fileSize2',\n\t'fileheight',\n\t'filesize',\n\t'filetype',\n\t'filetypelabel',\n\t'filewidth',\n\t'geoLocationLabel',\n\t'imageid',\n\t'importDate',\n\t'locationContext',\n\t'locationid',\n\t'moddate',\n\t'moduserid',\n\t'moduserlabel',\n\t'name',\n\t'path',\n\t'permissionMatrix',\n\t'previewHeight',\n\t'previewUrl',\n\t'previewWidth',\n\t'readOnly',\n\t'repurposeAvailability',\n\t'status',\n\t'thumb',\n\t'thumbUrl',\n\t'versionIds',\n\t'viewIds',\n\t'viewNames',\n\t'zoomAvailable',\n];\n\nexport let status = {\n\tUNKNOWN: 0,\n\tONLINE: 1,\n\tNEARLINE: 2,\n\tOFFLINE: 3,\n\tTEMP: 4,\n\tCHECKOUT: 5,\n\tIMPORT_IN_PROGRESS: 6,\n};\n\nexport let things = {\n\tattributeHistory: {\n\t\tlabel: i18n.t('i18n.attributeHistory'),\n\t\tuserLevel: 4,\n\t\tenableTest: notMobile,\n\t},\n\tattributes: {\n\t\tlabel: i18n.t('i18n.attributes'),\n\t\tuserLevel: 1,\n\t},\n\tcategories: {\n\t\tlabel: i18n.t('i18n.categories'),\n\t\tuserLevel: 2,\n\t},\n\tclips: {\n\t\tlabel: i18n.t('i18n.constituentsClips'),\n\t\tuserLevel: 2,\n\t},\n\tconstituents_keyframes: {\n\t\tlabel: i18n.t('i18n.constituentsKeyframes'),\n\t\tuserLevel: 7,\n\t},\n\tconstituents_layers: {\n\t\tlabel: i18n.t('i18n.constituentsLayers'),\n\t\tuserLevel: 7,\n\t},\n\tconstituents_pages: {\n\t\tlabel: i18n.t('i18n.constituentsPages'),\n\t\tuserLevel: 7,\n\t},\n\tdetail: {\n\t\tlabel: i18n.t('i18n.detail'),\n\t\tmatrix: 'read',\n\t\tuserLevel: 2,\n\t},\n\tfileinfo: {\n\t\tlabel: i18n.t('i18n.fileinfo'),\n\t\tuserLevel: 1,\n\t},\n\tindex: {\n\t\tlabel: i18n.t('i18n.index'),\n\t\tuserLevel: 9,\n\t},\n\tlinks: {\n\t\tlabel: i18n.t('i18n.links'),\n\t\tuserLevel: 2,\n\t},\n\tmetadata: {\n\t\tlabel: i18n.t('i18n.metadata'),\n\t\tuserLevel: 2,\n\t},\n\toverview: {\n\t\tlabel: i18n.t('i18n.overview'),\n\t\tuserLevel: 2,\n\t},\n\tpermissions: {\n\t\tlabel: i18n.t('i18n.permissions'),\n\t\tuserLevel: 8,\n\t},\n\tpreview: {\n\t\tlabel: i18n.t('i18n.preview'),\n\t\tuserLevel: 1,\n\t},\n\tprojects: {\n\t\tlabel: i18n.t('i18n.projects'),\n\t\tuserLevel: 1,\n\t\tenableTest: notMobile,\n\t},\n\tpublicLinks: {\n\t\tlabel: i18n.t('i18n.publicLinks'),\n\t\tuserLevel: 7,\n\t},\n\treviews: {\n\t\tlabel: i18n.t('i18n.reviews'),\n\t\tuserLevel: 1,\n\t\tenableTest: notMobile,\n\t},\n\tusage: {\n\t\tlabel: i18n.t('i18n.usage'),\n\t\tuserLevel: 7,\n\t},\n\tversions: {\n\t\tlabel: i18n.t('i18n.versions'),\n\t\tuserLevel: 4,\n\t},\n\tviews: {\n\t\tlabel: i18n.t('i18n.views'),\n\t\tuserLevel: 2,\n\t},\n};\n\nexport default {\n\tconstituents,\n\tdragUserLevel,\n\timportTasks,\n\trenderableChanges,\n\tstatus,\n\tthings,\n};\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.esm.js';\nimport { defaultLogger } from './logger.esm.js';\nimport { notifyManager } from './notifyManager.esm.js';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.esm.js';\nimport { Removable } from './removable.esm.js';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on2, _this$cache$config2;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error('undefined'));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, data, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.esm.js.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.esm.js';\nimport { Query } from './query.esm.js';\nimport { notifyManager } from './notifyManager.esm.js';\nimport { Subscribable } from './subscribable.esm.js';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.esm.js.map\n","import { notifyManager } from './notifyManager.esm.js';\nimport { Mutation } from './mutation.esm.js';\nimport { matchMutation, noop } from './utils.esm.js';\nimport { Subscribable } from './subscribable.esm.js';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.esm.js.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.esm.js';\nimport { QueryCache } from './queryCache.esm.js';\nimport { MutationCache } from './mutationCache.esm.js';\nimport { focusManager } from './focusManager.esm.js';\nimport { onlineManager } from './onlineManager.esm.js';\nimport { notifyManager } from './notifyManager.esm.js';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.esm.js';\nimport { defaultLogger } from './logger.esm.js';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.esm.js.map\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nclass Sorter extends Base {\n\t/**\n\t * @property {object} defaults - Model defaults\n\t * @property {string} defaults.field - Sort field\n\t * @property {string} defaults.sortOrder - Sort order (asc, desc)\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\tfield: '',\n\t\t\torder: 'desc',\n\t\t};\n\t}\n\n\t/** @override */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * If not provided, the keys of the collection's models will be used\n\t\t * @memberof module:app/models/sorter\n\t\t * @alias sortableFields\n\t\t * @type {array}\n\t\t */\n\t\tthis.sortableFields =\n\t\t\topts.sortableFields || _.keys(this.collection.model.GetDefaults());\n\n\t\t/**\n\t\t * @memberof module:app/models/sorter\n\t\t * @alias sortableOrders\n\t\t * @type {array}\n\t\t */\n\t\tthis.sortableOrders = opts.sortableOrders || ['asc', 'desc'];\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tthis,\n\t\t\t'change',\n\t\t\t_.debounce((sorter, opts) => {\n\t\t\t\tthis.collection[this.collection.preferredFetchMethod || 'fetch'](\n\t\t\t\t\t_.extend({duplicateQueryPolicy: 'abort'}, opts),\n\t\t\t\t);\n\t\t\t}, 15),\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @return {object}\n\t */\n\tgetSortDTO() {\n\t\treturn this.self();\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} field Field\n\t * @param {string} order Order\n\t */\n\tsetSort(field, order) {\n\t\torder = order || 'desc';\n\t\t// Normalize\n\t\tif (order === 'descending') order = 'desc';\n\t\tif (order === 'ascending') order = 'asc';\n\n\t\tif (!_.contains(this.sortableFields, field)) {\n\t\t\tthrow new Error('Invalid sort `field` \"' + field + '\"');\n\t\t}\n\t\tif (!_.contains(this.sortableOrders, order)) {\n\t\t\tthrow new Error('Invalid sort `order` \"' + order + '\"');\n\t\t}\n\n\t\treturn this.set({\n\t\t\tfield: field,\n\t\t\torder: order,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Sorter';\n\t}\n}\n\nexport default Sorter;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableCellUtilityClass(slot) {\n return generateUtilityClass('MuiTableCell', slot);\n}\nconst tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);\nexport default tableCellClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"padding\", \"scope\", \"size\", \"sortDirection\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { darken, alpha, lighten } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport TableContext from '../Table/TableContext';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport tableCellClasses, { getTableCellUtilityClass } from './tableCellClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n align,\n padding,\n size,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', variant, stickyHeader && 'stickyHeader', align !== 'inherit' && `align${capitalize(align)}`, padding !== 'normal' && `padding${capitalize(padding)}`, `size${capitalize(size)}`]\n };\n return composeClasses(slots, getTableCellUtilityClass, classes);\n};\n\nconst TableCellRoot = styled('td', {\n name: 'MuiTableCell',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.padding !== 'normal' && styles[`padding${capitalize(ownerState.padding)}`], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.stickyHeader && styles.stickyHeader];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body2, {\n display: 'table-cell',\n verticalAlign: 'inherit',\n // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n borderBottom: theme.vars ? `1px solid ${theme.vars.palette.TableCell.border}` : `1px solid\n ${theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)}`,\n textAlign: 'left',\n padding: 16\n}, ownerState.variant === 'head' && {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: theme.typography.pxToRem(24),\n fontWeight: theme.typography.fontWeightMedium\n}, ownerState.variant === 'body' && {\n color: (theme.vars || theme).palette.text.primary\n}, ownerState.variant === 'footer' && {\n color: (theme.vars || theme).palette.text.secondary,\n lineHeight: theme.typography.pxToRem(21),\n fontSize: theme.typography.pxToRem(12)\n}, ownerState.size === 'small' && {\n padding: '6px 16px',\n [`&.${tableCellClasses.paddingCheckbox}`]: {\n width: 24,\n // prevent the checkbox column from growing\n padding: '0 12px 0 16px',\n '& > *': {\n padding: 0\n }\n }\n}, ownerState.padding === 'checkbox' && {\n width: 48,\n // prevent the checkbox column from growing\n padding: '0 0 0 4px'\n}, ownerState.padding === 'none' && {\n padding: 0\n}, ownerState.align === 'left' && {\n textAlign: 'left'\n}, ownerState.align === 'center' && {\n textAlign: 'center'\n}, ownerState.align === 'right' && {\n textAlign: 'right',\n flexDirection: 'row-reverse'\n}, ownerState.align === 'justify' && {\n textAlign: 'justify'\n}, ownerState.stickyHeader && {\n position: 'sticky',\n top: 0,\n zIndex: 2,\n backgroundColor: (theme.vars || theme).palette.background.default\n}));\n/**\n * The component renders a `` element when the parent context is a header\n * or otherwise a `` element.\n */\n\nconst TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableCell'\n });\n\n const {\n align = 'inherit',\n className,\n component: componentProp,\n padding: paddingProp,\n scope: scopeProp,\n size: sizeProp,\n sortDirection,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const table = React.useContext(TableContext);\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n let component;\n\n if (componentProp) {\n component = componentProp;\n } else {\n component = isHeadCell ? 'th' : 'td';\n }\n\n let scope = scopeProp;\n\n if (!scope && isHeadCell) {\n scope = 'col';\n }\n\n const variant = variantProp || tablelvl2 && tablelvl2.variant;\n\n const ownerState = _extends({}, props, {\n align,\n component,\n padding: paddingProp || (table && table.padding ? table.padding : 'normal'),\n size: sizeProp || (table && table.size ? table.size : 'medium'),\n sortDirection,\n stickyHeader: variant === 'head' && table && table.stickyHeader,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n let ariaSort = null;\n\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n return /*#__PURE__*/_jsx(TableCellRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n \"aria-sort\": ariaSort,\n scope: scope,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Sets the padding applied to the cell.\n * The prop defaults to the value (`'default'`) inherited from the parent Table component.\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n\n /**\n * Specify the size of the cell.\n * The prop defaults to the value (`'medium'`) inherited from the parent Table component.\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * Specify the cell type.\n * The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components.\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['body', 'footer', 'head']), PropTypes.string])\n} : void 0;\nexport default TableCell;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableHeadUtilityClass } from './tableHeadClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableHeadUtilityClass, classes);\n};\n\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n\n const {\n className,\n component = defaultComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableHead;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableRowUtilityClass(slot) {\n return generateUtilityClass('MuiTableRow', slot);\n}\nconst tableRowClasses = generateUtilityClasses('MuiTableRow', ['root', 'selected', 'hover', 'head', 'footer']);\nexport default tableRowClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\", \"hover\", \"selected\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport tableRowClasses, { getTableRowUtilityClass } from './tableRowClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n selected,\n hover,\n head,\n footer\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', hover && 'hover', head && 'head', footer && 'footer']\n };\n return composeClasses(slots, getTableRowUtilityClass, classes);\n};\n\nconst TableRowRoot = styled('tr', {\n name: 'MuiTableRow',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.head && styles.head, ownerState.footer && styles.footer];\n }\n})(({\n theme\n}) => ({\n color: 'inherit',\n display: 'table-row',\n verticalAlign: 'middle',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n [`&.${tableRowClasses.hover}:hover`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover\n },\n [`&.${tableRowClasses.selected}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity)\n }\n }\n}));\nconst defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\n\nconst TableRow = /*#__PURE__*/React.forwardRef(function TableRow(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableRow'\n });\n\n const {\n className,\n component = defaultComponent,\n hover = false,\n selected = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const tablelvl2 = React.useContext(Tablelvl2Context);\n\n const ownerState = _extends({}, props, {\n component,\n hover,\n selected,\n head: tablelvl2 && tablelvl2.variant === 'head',\n footer: tablelvl2 && tablelvl2.variant === 'footer'\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableRowRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n role: component === defaultComponent ? null : 'row',\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableRow.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Should be valid children such as `TableCell`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * If `true`, the table row will shade on hover.\n * @default false\n */\n hover: PropTypes.bool,\n\n /**\n * If `true`, the table row will have the selected shading.\n * @default false\n */\n selected: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableRow;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableBodyUtilityClass(slot) {\n return generateUtilityClass('MuiTableBody', slot);\n}\nconst tableBodyClasses = generateUtilityClasses('MuiTableBody', ['root']);\nexport default tableBodyClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableBodyUtilityClass } from './tableBodyClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableBodyUtilityClass, classes);\n};\n\nconst TableBodyRoot = styled('tbody', {\n name: 'MuiTableBody',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-row-group'\n});\nconst tablelvl2 = {\n variant: 'body'\n};\nconst defaultComponent = 'tbody';\nconst TableBody = /*#__PURE__*/React.forwardRef(function TableBody(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableBody'\n });\n\n const {\n className,\n component = defaultComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableBodyRoot, _extends({\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableBody.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableBody;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableUtilityClass(slot) {\n return generateUtilityClass('MuiTable', slot);\n}\nconst tableClasses = generateUtilityClasses('MuiTable', ['root', 'stickyHeader']);\nexport default tableClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"padding\", \"size\", \"stickyHeader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport TableContext from './TableContext';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableUtilityClass } from './tableClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', stickyHeader && 'stickyHeader']\n };\n return composeClasses(slots, getTableUtilityClass, classes);\n};\n\nconst TableRoot = styled('table', {\n name: 'MuiTable',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.stickyHeader && styles.stickyHeader];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'table',\n width: '100%',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n '& caption': _extends({}, theme.typography.body2, {\n padding: theme.spacing(2),\n color: (theme.vars || theme).palette.text.secondary,\n textAlign: 'left',\n captionSide: 'bottom'\n })\n}, ownerState.stickyHeader && {\n borderCollapse: 'separate'\n}));\nconst defaultComponent = 'table';\nconst Table = /*#__PURE__*/React.forwardRef(function Table(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTable'\n });\n\n const {\n className,\n component = defaultComponent,\n padding = 'normal',\n size = 'medium',\n stickyHeader = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n padding,\n size,\n stickyHeader\n });\n\n const classes = useUtilityClasses(ownerState);\n const table = React.useMemo(() => ({\n padding,\n size,\n stickyHeader\n }), [padding, size, stickyHeader]);\n return /*#__PURE__*/_jsx(TableContext.Provider, {\n value: table,\n children: /*#__PURE__*/_jsx(TableRoot, _extends({\n as: component,\n role: component === defaultComponent ? null : 'table',\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Table.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the table, normally `TableHead` and `TableBody`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Allows TableCells to inherit padding of the Table.\n * @default 'normal'\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n\n /**\n * Allows TableCells to inherit size of the Table.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * Set the header sticky.\n *\n * ⚠️ It doesn't work with IE11.\n * @default false\n */\n stickyHeader: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Table;","/**\n * Displays a single asset clip constituent\n * @class\n */\nimport Base from './assetConstituentView';\nimport Template from '../templates/assetConstituentView_clip.html';\n\nexport default class AssetConstituentView_Clip extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\n\t\t/**\n\t\t * @memberOf Netx.Views.AssetConstituentView_clip\n\t\t * @property {object} Plugins - Plugins for this view\n\t\t * @property {object} Plugins.tooltip - Tooltip\n\t\t */\n\t\tthis.Plugins.Register({\n\t\t\ttooltip: {\n\t\t\t\tname: 'tooltip',\n\t\t\t\tdataAlias: 'bs.tooltip',\n\t\t\t\tmultiple: false,\n\t\t\t\toptions: {\n\t\t\t\t\tcontainer: 'body',\n\t\t\t\t\ttemplate:\n\t\t\t\t\t\t'
',\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @override */\n\tbindModelEvents() {\n\t\tsuper.bindModelEvents();\n\n\t\tthis.stopListening(this.model, 'change');\n\t\treturn (\n\t\t\tthis.listenTo(\n\t\t\t\tthis.model,\n\t\t\t\t'change:startTime change:endTime change:title change:keyframeReady change:display',\n\t\t\t\tthis.debouncedRender,\n\t\t\t)\n\t\t\t\t// Keyframe progress\n\t\t\t\t.listenTo(this.model.progress, 'change', progress => {\n\t\t\t\t\tprogress.get('active')\n\t\t\t\t\t\t? this.showProgress(progress)\n\t\t\t\t\t\t: this.hideProgress();\n\t\t\t\t})\n\t\t);\n\t}\n\n\t/** @override */\n\tpreRender() {\n\t\t// Cleanup\n\t\tthis.Plugins.Destroy('tooltip');\n\n\t\tsuper.preRender();\n\n\t\tconst model = this.model;\n\t\tconst cacheBuster = model.cacheBuster();\n\t\t// Set on template vars\n\t\t_.extend(this.templateVars, {\n\t\t\tduration: model.getDuration(),\n\t\t\tpreviewModUrl: model.get('previewUrl') + cacheBuster,\n\t\t\tprettyRange: model.getPrettyRange(),\n\t\t\tthumbModUrl: model.get('thumbUrl') + cacheBuster,\n\t\t\tpercent: this.model.progress.get('percent'),\n\t\t\tprogressMessage: this.model.progress.get('message'),\n\t\t});\n\t}\n\n\t/** @override */\n\tpostRender() {\n\t\tsuper.postRender();\n\n\t\t// Cache\n\t\tthis.$progress = this.$('.progress');\n\t\tthis.$progressBar = this.$progress.find('.progress-bar');\n\t\tthis.$progressBarSr = this.$progressBar.find('.sr-only');\n\t\tthis.$progressMessage = this.$progress.find('.nx-progress-message');\n\t\tthis.$tooltip = this.$('[data-toggle=\"tooltip\"]');\n\n\t\t// Initilaize tooltip\n\t\tthis.Plugins.Initialize('tooltip', this.$tooltip);\n\n\t\t// Active progress\n\t\tif (this.model.progress.get('active')) {\n\t\t\tthis.showProgress(this.model.progress);\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t */\n\thideProgress() {\n\t\tthis.$el.removeClass('has-progress');\n\n\t\tthis.$progress && this.$progress.hide();\n\t\tthis.$progressBar &&\n\t\t\tthis.$progressBar.css('width', '0%').attr('aria-valuenow', 0);\n\t\tthis.$progressBarSr &&\n\t\t\tthis.$progressBarSr.html(i18n.t('i18n.percentLoaded', {percent: 0}));\n\t}\n\n\t/**\n\t * Show clip keyframe progress\n\t * @method\n\t * @param {module:asset/models/assetConstituent_clip} model Clip model\n\t * @param {number} progress Keyframe progress\n\t */\n\tkeyframeProgress(model, progress) {\n\t\tthis.$progress && this.$progress.css('width', progress + '%');\n\t}\n\n\t/**\n\t * @method\n\t * @param {Netx.Models.Progress} progress Progress model\n\t */\n\tshowProgress(progress) {\n\t\tthis.$progressMessage &&\n\t\t\tthis.$progressMessage.html(progress.get('message'));\n\t\tconst percent = progress.get('percent');\n\n\t\tif (_.isNumber(percent)) {\n\t\t\tthis.$el.addClass('has-progress');\n\t\t\tthis.$progress && this.$progress.show();\n\n\t\t\tthis.$progressBar &&\n\t\t\t\tthis.$progressBar\n\t\t\t\t\t.css('width', percent + '%')\n\t\t\t\t\t.attr('aria-valuenow', percent);\n\t\t\tthis.$progressBarSr &&\n\t\t\t\tthis.$progressBarSr.html(\n\t\t\t\t\ti18n.t('i18n.percentLoaded', {percent: percent}),\n\t\t\t\t);\n\t\t}\n\t}\n\n\t/** @override */\n\tunbindModelEvents() {\n\t\tsuper.unbindModelEvents();\n\n\t\treturn this.stopListening(this.model.progress);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituentView_Clip';\n\t}\n}\n","import Base from '@netx/core-asset/views/assetConstituentView_clip';\n\nimport {\n\tfaArrowDown,\n\tfaPencilAlt,\n\tfaTrashAlt,\n} from '@fortawesome/pro-solid-svg-icons';\nconst icons = Base.initializeIcons({\n\tfaArrowDown,\n\tfaPencilAlt,\n\tfaTrashAlt,\n});\n\nexport default class AssetConstituentView_Clip extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.icons = {...icons, ...opts.icons};\n\t\tsuper(opts);\n\t}\n}\n","import {\n\tATTRIBUTE_SYSTEM_ID,\n\tATTRIBUTE_SYSTEM,\n} from '@netx/core-attribute/constants';\n\nexport const UPGRADED_FEATURES = ['attributes'];\n\nexport const GOO_SETTING_KEYS = [\n\t'contactMessage',\n\t'detailAttributes',\n\t'googleAnalyticsEnabled',\n\t'googleAnalyticsId',\n\t'homeRoute',\n\t'logoutUrl',\n\t'requireLogin',\n\t'searchCategory',\n\t'searchCategoryName',\n\t'searchCategoryPath',\n\t'sortAttributes',\n\t'ssoLabel',\n\t'ssoLoginEnabled',\n\t'ssoUrl',\n\t'upgradedFeatures',\n];\nexport const SETTING_KEYS = [\n\t'attributeIds',\n\t'category',\n\t'categoryName',\n\t'categoryPath',\n\t'displayCatDescriptions',\n\t'label',\n\t'path',\n\t'searchPlaceholder',\n\t'userLevel',\n];\n\nexport const ATTRIBUTE_CONTEXT = {\n\tDETAIL: 'detailAttributes',\n\tSORT: 'sortAttributes',\n};\n\nexport const DEFAULT_ATTRIBUTE_IDS = [\n\tATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.NAME],\n\tATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE_SIZE_2],\n\tATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE_TYPE_LABEL],\n\tATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.DIMENSIONS],\n];\n\nexport const ENFORCE_ATTRIBUTE_IDS = [\n\tATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE],\n\tATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.NAME],\n];\n","import React, {useMemo} from 'react';\nimport clsx from 'clsx';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {FormLabel, Skeleton} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport type {TextFieldProps} from './TextField';\nimport {isEmptyValue} from '@netx/core-components/Form';\n\nconst styles = ({mixins, palette, spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tmargin: spacing(0.75, 0),\n\t\t\tpadding: spacing(0, 1.75),\n\t\t\twidth: '100%',\n\t\t\t'&.disabled': {\n\t\t\t\t...mixins.disabled,\n\t\t\t},\n\t\t\t'&.pseudoValue': {\n\t\t\t\t'& $value': {\n\t\t\t\t\tcolor: palette.text.secondary,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&$limitHeightToContainer': {\n\t\t\t\tmaxHeight: '100%',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t'& $label': {\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t},\n\t\t\t\t'& $value': {\n\t\t\t\t\t...mixins.scrollable,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&$wrapLabel $label': {\n\t\t\t\twhiteSpace: 'initial',\n\t\t\t},\n\t\t},\n\t\tlabel: {\n\t\t\t...mixins.readOnlyLabel,\n\t\t},\n\t\tlimitHeightToContainer: {},\n\t\tvalue: {\n\t\t\t// for \\n etc (no need to parse a string and add
s etc)\n\t\t\twhiteSpace: 'pre-wrap',\n\t\t\twidth: '100%',\n\t\t\twordBreak: 'break-word',\n\t\t},\n\t\tskeleton: {},\n\t\twrapLabel: {},\n\t});\n\nexport interface ReadOnlyTextFieldProps\n\textends Omit {\n\tlimitHeightToContainer?: boolean;\n\twrapLabel?: boolean;\n}\n\nconst ReadOnlyTextField = ({\n\tclasses,\n\tclassName,\n\tdisabled,\n\tlabel = '',\n\tlimitHeightToContainer,\n\tloading,\n\tloadingValue,\n\tmultipleValues,\n\twrapLabel,\n\tvalue,\n}: WithStyles & ReadOnlyTextFieldProps) => {\n\tvalue = value == null ? '' : value;\n\n\tconst pseudoValue = isEmptyValue(value) || multipleValues;\n\n\tconst displayLabel = useMemo(() => {\n\t\tif (label == null || label === '') return null;\n\t\tif (loading) return ;\n\t\treturn (\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t);\n\t}, [label]);\n\n\tconst displayValue = useMemo(() => {\n\t\tif (loading || loadingValue)\n\t\t\treturn ;\n\t\tif (multipleValues) return i18n.t('i18n.multipleValues');\n\t\tif (value === '') return '(none)';\n\t\treturn value;\n\t}, [loading, loadingValue, multipleValues, value]);\n\n\treturn (\n\t\t\n\t\t\t{displayLabel}\n\t\t\t
{displayValue}
\n\t\t\n\t);\n};\n\nexport default withStyles(styles, {\n\tname: 'ReadOnlyTextField',\n})(React.memo(ReadOnlyTextField));\n","/**\n * @class\n */\nimport Base from './attribute';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\nimport {assetExpirationToDateString} from '@netx/core-asset-expiration/utils';\n\nexport default class Attribute_Date extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.date,\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @param {number} truncateAt Truncate at index\n\t * @return {mixed} Formatted value\n\t */\n\tformat(value, truncateAt) {\n\t\t// In all cases (currently), except one, we want `yyyy-mm-dd`\n\t\t// The dam will sometimes send us mm/dd/yyyy and we want to normalize this\n\t\t// except for `expirationDate` - which is a time and a time that we want to\n\t\t// show in a relative format\n\t\tif (this.get('system') && this.get('name') === 'expirationDate') {\n\t\t\tif (value) {\n\t\t\t\tvalue = `${i18n.t('i18n.expires')}: ${assetExpirationToDateString(\n\t\t\t\t\tvalue,\n\t\t\t\t)}`;\n\t\t\t}\n\t\t\treturn value === 0 ? '' : value;\n\t\t}\n\n\t\tvalue = this.parseInValue(value);\n\t\treturn super.format(value);\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @return {mixed} Parsed in value\n\t */\n\tparseInValue(value) {\n\t\tvalue = super.parseInValue(value);\n\n\t\tif (_.isArray(value)) {\n\t\t\tvalue = _.map(value, (v) => {\n\t\t\t\tif (v.includes('/')) {\n\t\t\t\t\tv = _.dateToHTML(v);\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t});\n\t\t} else if (value && (_.isNumber(value) || value.includes('/'))) {\n\t\t\tvalue = _.dateToHTML(value);\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @return {mixed} Parsed out value\n\t */\n\tparseOutValue(value) {\n\t\tvalue = super.parseOutValue(value);\n\n\t\tif (_.isArray(value)) {\n\t\t\tvalue = _.map(value, (d) => {\n\t\t\t\tif (_.isNumber(d)) {\n\t\t\t\t\treturn d;\n\t\t\t\t}\n\t\t\t\treturn d.replace(/(\\d+)-(\\d+)-(\\d+)/, '$2/$3/$1');\n\t\t\t});\n\t\t} else if (value) {\n\t\t\tvalue = _.isNumber(value)\n\t\t\t\t? value\n\t\t\t\t: value.replace(/(\\d+)-(\\d+)-(\\d+)/, '$2/$3/$1');\n\t\t}\n\n\t\t// Ensure leading zero's or server side validation will fail\n\t\tif (_.isString(value) && value.length) {\n\t\t\tvalue = value\n\t\t\t\t.split('/')\n\t\t\t\t.map((v) => {\n\t\t\t\t\treturn v.padStart(2, '0');\n\t\t\t\t})\n\t\t\t\t.join('/');\n\t\t}\n\t\treturn value;\n\t}\n\n\t/** @method */\n\tvalidator(val) {\n\t\tif (val === '' || val == null) return true;\n\n\t\tconst valid =\n\t\t\tval.search(/\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d/) > -1 ||\n\t\t\tval.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/) > -1;\n\n\t\tif (!valid) return new Error('Invalid date');\n\t\treturn true;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Date';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_Multiselect extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.multiselect,\n\t\t};\n\t}\n\n\t/** @type {boolean} */\n\tget isCSV() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @return {mixed} Parsed in value\n\t */\n\tparseInValue(value) {\n\t\t// DAM-15267 - if there are no commas, one value, the regex in csvToArray()\n\t\t// will return null if the single value contains a single apostrophe\n\t\tif (_.isString(value) && value.indexOf(',') > -1) {\n\t\t\tvalue = _.csvToArray(value);\n\t\t}\n\t\treturn super.parseInValue(value) || [];\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @return {mixed} Parsed out value\n\t */\n\tparseOutValue(value) {\n\t\treturn super.parseOutValue(value) || [];\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Multiselect';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute';\n\nimport {ids as attributeTypeIds, numberTypes} from '../properties/attributes';\n\n// Polyfill\n// Safari did not have this prior to version 10 (currently at v11 but just to be safe)\nif (!window.Intl) {\n\twindow.Intl = {\n\t\tNumberFormat(locale, options) {\n\t\t\tconst digits = '0123456789';\n\t\t\tthis.format = n => {\n\t\t\t\tlet s = n.toString();\n\t\t\t\tif (\n\t\t\t\t\t!options ||\n\t\t\t\t\toptions.useGrouping === undefined ||\n\t\t\t\t\toptions.useGrouping\n\t\t\t\t) {\n\t\t\t\t\tvar dp = s.indexOf('.');\n\t\t\t\t\tif (dp < 0) {\n\t\t\t\t\t\tdp = s.length;\n\t\t\t\t\t}\n\t\t\t\t\twhile ((dp -= 3) > 0 && digits.indexOf(s[dp - 1]) >= 0) {\n\t\t\t\t\t\ts = s.substr(0, dp) + ',' + s.substr(dp);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t};\n\t\t},\n\t};\n}\n/**\n * @function\n * @param {number} value Value\n * @return {number} Decimals\n */\nfunction getDecimalCount(value) {\n\tvalue = value + '';\n\n\tconst decimalSeparator = whatDecimalSeparator();\n\tconst decimals = value.split('.');\n\n\tif (!decimals[1]) {\n\t\treturn 0;\n\t}\n\n\treturn decimals[1].length;\n}\n/**\n * https://stackoverflow.com/questions/11665884/how-can-i-parse-a-string-with-a-comma-thousand-separator-to-a-number\n * @function\n * @param {mixed} value Value\n * @param {string} locale Locale\n * @return {number}\n */\nfunction parseNumber(value, locale) {\n\tvalue = value.toString();\n\tlocale = locale || navigator.language;\n\tconst example = Intl.NumberFormat(locale).format('1.1');\n\tconst cleanPattern = new RegExp('[^-+0-9' + example.charAt(1) + ']', 'g');\n\tconst cleaned = value.replace(cleanPattern, '');\n\tconst normalized = cleaned.replace(example.charAt(1), '.');\n\n\treturn parseFloat(normalized);\n}\n/**\n * @function\n * @return {string} Decimal separator for locale\n */\nfunction whatDecimalSeparator() {\n\tlet n = 1.1;\n\tn = n.toLocaleString().substring(1, 2);\n\treturn n;\n}\n\nexport default class Attribute_Number extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.number,\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @param {object} opts Options\n\t * @return {mixed} Formatted value\n\t */\n\tformat(value, opts = {}) {\n\t\tvalue = this.parseInValue(value);\n\n\t\t// Do not parse into locale string\n\t\tconst noLocale = opts.noLocale === true;\n\t\tconst numberType = numberTypes[this.get('spec2')] || {};\n\t\tconst maxDecimal = numberType.maxDecimal || 0;\n\n\t\t/**\n\t\t * @function\n\t\t * @param {number} value Value\n\t\t * @return Parsed number\n\t\t */\n\t\tconst parse = value => {\n\t\t\tvalue = parseNumber(value);\n\n\t\t\t// `Unlimited` number type\n\t\t\tif (maxDecimal === Infinity) {\n\t\t\t\treturn noLocale\n\t\t\t\t\t? value.toString()\n\t\t\t\t\t: value.toLocaleString(undefined, {\n\t\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\t\tmaximumFractionDigits: 20, // Maximum allowed by`toLocaleString`\n\t\t\t\t\t });\n\t\t\t} else {\n\t\t\t\treturn noLocale\n\t\t\t\t\t? value.toFixed(maxDecimal)\n\t\t\t\t\t: value.toLocaleString(undefined, {\n\t\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\t\tminimumFractionDigits: maxDecimal,\n\t\t\t\t\t\t\tmaximumFractionDigits: maxDecimal,\n\t\t\t\t\t });\n\t\t\t}\n\t\t};\n\n\t\tif (this.get('system')) {\n\t\t\t// Normalize\n\t\t\tswitch (this.get('name')) {\n\t\t\t\tcase 'fileSize':\n\t\t\t\tcase 'fileSize2':\n\t\t\t\t\tvalue = _.bytes(value, true);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if (value) {\n\t\t\tvalue = _.isArray(value) ? _.map(value, parse) : parse(value);\n\t\t}\n\n\t\treturn super.format(value);\n\t}\n\n\t/**\n\t * Fix for displaying floats with zeros\n\t * @override\n\t * @param {object|string} key The key or an object of key values\n\t * @param {mixed} value Either the value, or if the key is an object, the options\n\t * @param {object} opts Either the options, or if the key is an object, undefined\n\t */\n\tset(key, value, opts) {\n\t\t// Make life easier\n\t\tlet attrs;\n\t\tif (_.isObject(key)) {\n\t\t\tattrs = key;\n\t\t\topts = value;\n\t\t} else {\n\t\t\tattrs = {\n\t\t\t\t[key]: value,\n\t\t\t};\n\t\t}\n\n\t\tif (attrs.value) {\n\t\t\t// Check if we are enforcing decimals via spec2 (a value of 4 means it is free - whole/decimal whatever)\n\t\t\tconst decimalPlaces = attrs.spec2 || this.get('spec2');\n\t\t\tif (decimalPlaces && decimalPlaces <= 3) {\n\t\t\t\tattrs.value = Number(attrs.value).toFixed(decimalPlaces);\n\t\t\t}\n\t\t}\n\n\t\t// Super\n\t\treturn super.set(attrs, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {boolean} Invalid\n\t */\n\tinvalid(value) {\n\t\tlet valid = this.validator(value);\n\n\t\tif (valid === true) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (valid instanceof Error) {\n\t\t\treturn valid.message;\n\t\t}\n\n\t\treturn i18n.t('i18n.invalid');\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {boolean} Valid\n\t */\n\tvalidator(value) {\n\t\t// Empty values are fine\n\t\t// TODO: check for mandatory\n\t\tif (_.isNull(value) || _.isUndefined(value) || value === '') {\n\t\t\treturn true;\n\t\t}\n\n\t\tvalue = value.toString();\n\n\t\tconst numberType = numberTypes[this.get('spec2')] || false;\n\t\tconst maxDecimal = numberType && numberType.maxDecimal;\n\t\tconst maxLength =\n\t\t\tnumberType.key === 'whole' ? this.get('spec1') : undefined;\n\n\t\tconst decimalIndex = value.indexOf('.');\n\t\tif (decimalIndex > -1 && decimalIndex + 1 === value.length) {\n\t\t\treturn new Error('Invalid number');\n\t\t}\n\n\t\tif (maxLength && value.length > maxLength) {\n\t\t\treturn new Error(`Exceeds max length of ${maxLength}`);\n\t\t}\n\n\t\tif (isNaN(parseNumber(value))) {\n\t\t\treturn new Error('Invalid number format');\n\t\t}\n\n\t\t// Negative numbers are not allowed by the DAM\n\t\tif (numberType.key === 'unlimited' && value < 0) {\n\t\t\treturn new Error('Negative numbers are not allowed');\n\t\t}\n\n\t\tconst decimalCount = getDecimalCount(value);\n\t\tif (decimalCount > maxDecimal) {\n\t\t\treturn new Error(`Exceeds max decimals of ${maxDecimal}`);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Number';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_Select extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.select,\n\t\t};\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Select';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute_multiselect';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_Tag extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.tag,\n\t\t};\n\t}\n\n\t/**\n\t * isFlexible() returns true if this attribute is defined as having 'folksonomy'\n\t * and will therefore allow users to add terms via the select2 tagging system.\n\t * @override\n\t * @return {boolean} Is flexible\n\t */\n\tisFlexible() {\n\t\treturn this.get('spec2') === 1;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Tag';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_Text extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.text,\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @param {object} opts Options\n\t * @return {mixed} Formatted value\n\t */\n\tformat(value, opts) {\n\t\topts = opts || {};\n\n\t\tconst parsedInValue = this.parseInValue(value);\n\t\tvalue = parsedInValue != null ? parsedInValue : '';\n\n\t\tvar parseURL = opts.parseURL !== false,\n\t\t\ttruncateAt = opts.truncateAt;\n\n\t\tif (_.isArray(value)) {\n\t\t\tvalue = value.join(', ');\n\t\t}\n\n\t\tvalue = value.replace(//g, '>');\n\n\t\t// Truncate value\n\t\tif (truncateAt && truncateAt !== Infinity && value.length > truncateAt) {\n\t\t\tvar truncatedValue = value.substr(0, truncateAt).trim();\n\n\t\t\tif (parseURL) {\n\t\t\t\tvar urls = value.match(/(https?:\\/\\/.*?[^\\s]+)/g);\n\t\t\t\t// We need to check if any urls started prior to truncation that did not complete\n\t\t\t\t// before truncation\n\t\t\t\tif (urls) {\n\t\t\t\t\tvar valLength = truncatedValue.length,\n\t\t\t\t\t\tcutoffUrl,\n\t\t\t\t\t\tc,\n\t\t\t\t\t\ti,\n\t\t\t\t\t\tidx;\n\n\t\t\t\t\tfor (i = 0, c = urls.length; i < c; i++) {\n\t\t\t\t\t\tconst url = urls[i];\n\t\t\t\t\t\tidx = value.lastIndexOf(url);\n\t\t\t\t\t\tif (idx < valLength && idx + url.length > valLength) {\n\t\t\t\t\t\t\tcutoffUrl = url;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ttruncatedValue = cutoffUrl\n\t\t\t\t\t\t? _.parseURLS(truncatedValue.substr(0, idx)) +\n\t\t\t\t\t\t '' +\n\t\t\t\t\t\t truncatedValue.substr(idx) +\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: _.parseURLS(truncatedValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn truncatedValue + '...';\n\t\t}\n\n\t\treturn parseURL ? _.parseURLS(value) || '' : value;\n\t}\n\n\t/**\n\t * Value only appendable if not a multivalue attribute\n\t * @override\n\t * @return {boolean} Value is appendable\n\t */\n\tisAppendable() {\n\t\treturn !this.isTrueMultivalue();\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Text';\n\t}\n}\n","/**\n * Attribute templates collection\n * This collection contains ALL attributes\n * It creates two sub collections of asset and clip attributes and maintains the two\n * No need to add to them individually - just add to this collection and they will get to where they need to be\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\n\nimport Netx from '@netx/core/bootstrap';\n\nimport AssetAttributeDatumCollection from './assetAttributeDatum';\n\nimport BaseModel from '../models/attribute';\nimport DateModel from '../models/attribute_date';\nimport MultiselectModel from '../models/attribute_multiselect';\nimport NumberModel from '../models/attribute_number';\nimport SelectModel from '../models/attribute_select';\nimport SemanticModel from '../models/attribute_semantic';\nimport TagModel from '../models/attribute_tag';\nimport TagVocabModel from '../models/attribute_tagVocab';\nimport TextModel from '../models/attribute_text';\nimport TextareaModel from '../models/attribute_textarea';\n\nimport {checksumEnabled} from '@netx/core-asset/enablers';\nimport {ENFORCE_ATTRIBUTE_IDS} from '@netx/core-cms/services/settings/constants';\nimport hasUpdatedAttributesSystem from '@netx/core-cms/services/settings/utils/hasUpdatedAttributesSystem';\nimport {isPortal} from '@netx/core/lib/utils';\nimport {assetExpirationEnabled} from '@netx/core-asset-expiration/enablers';\n\nconst Models = {\n\tbase: BaseModel,\n\tdate: DateModel,\n\tmultiselect: MultiselectModel,\n\tnumber: NumberModel,\n\tselect: SelectModel,\n\tsemantic: SemanticModel,\n\ttag: TagModel,\n\ttagVocab: TagVocabModel,\n\ttext: TextModel,\n\ttextarea: TextareaModel,\n};\n\nimport {isEmptyValue} from '@netx/core/lib/underscore-netx';\nimport {\n\tids as typeIds,\n\ttypes,\n\tvocabularyAttributes,\n} from '../properties/attributes';\n\nconst getPortal = () => isPortal() && Netx.cms?.portal?.id && Netx.cms?.portal;\n\nexport default class Attributes extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/** @type {object} */\n\tget xhrLoadingMessages() {\n\t\treturn {\n\t\t\tgetAttributeTemplates: 'Loading attributes',\n\t\t\tgetMetadataMapJson: 'Loading metadata maps',\n\t\t};\n\t}\n\n\t/** @type {object} */\n\tget xhrLoadedMessages() {\n\t\treturn {\n\t\t\tgetAttributeTemplates: 'Loaded attributes',\n\t\t\tgetMetadataMapJson: 'Loaded metadata maps',\n\t\t};\n\t}\n\n\t/**\n\t * Since we are overriding the model proeprty as a method\n\t * we need to point backbone into the right direction with model prototype accessing\n\t * This is the only method in all of the backbone collection code that relys on getting the a property from the model prototype\n\t * @override\n\t * @param {object} attrs Attributes\n\t * @return {mixed} Model id\n\t */\n\tmodelId(attrs) {\n\t\treturn attrs[Models.base.prototype.idAttribute || 'id'];\n\t}\n\n\t/**\n\t * Return an array of the IDs of the models in this collection.\n\t * Se note about `this.modelId` - this is an override of code in module:core/lib/netx-collection\n\t * @override\n\t * @param {boolean} omitSystem Omit system attributes\n\t * @return {array} Array of model ids\n\t */\n\tids(omitSystem) {\n\t\tconst ids = this.pluck(Models.base.prototype.idAttribute || 'id');\n\t\tif (!omitSystem) return ids;\n\n\t\t// Omit system attributes\n\t\treturn ids.filter((id) => id > 0);\n\t}\n\n\t/** @method */\n\tcomparator(attrA, attrB) {\n\t\t// DAM-20153: if there is a portal, sort by attributeIds array\n\t\tconst portal = getPortal();\n\t\tif (portal) {\n\t\t\tconst attributeIds = portal.get('attributeIds');\n\t\t\tconst detailAttributes = portal.get('detailAttributes') || [];\n\t\t\t// maintain order of detailAttributes if portal has not been\n\t\t\t// edited since attributes upgrade\n\t\t\tif (\n\t\t\t\t!hasUpdatedAttributesSystem(portal.attributes) &&\n\t\t\t\tdetailAttributes.length\n\t\t\t) {\n\t\t\t\tconst aIndex = detailAttributes.indexOf(attrA.id);\n\t\t\t\tconst bIndex = detailAttributes.indexOf(attrB.id);\n\t\t\t\tif (aIndex < 0 && bIndex > -1) return 1;\n\t\t\t\tif (aIndex > -1 && bIndex < 0) return -1;\n\t\t\t\tif (aIndex < 0 && bIndex < 0)\n\t\t\t\t\treturn (\n\t\t\t\t\t\tattributeIds.indexOf(attrA.id) - attributeIds.indexOf(attrB.id)\n\t\t\t\t\t);\n\t\t\t\treturn aIndex - bIndex;\n\t\t\t}\n\n\t\t\t// Edited since upgrade, use the explicit order in the portal\n\t\t\tif (hasUpdatedAttributesSystem(portal.attributes)) {\n\t\t\t\treturn attributeIds.indexOf(attrA.id) - attributeIds.indexOf(attrB.id);\n\t\t\t}\n\n\t\t\t// Not edited since upgrade and there are no detailAttributes defined\n\t\t\t// use the explicit order in the portal, except force `file` to the top like we would have in old portals\n\t\t\t// NOTE: if we just fall through to the classic comparator here, we do not line up with the list the user\n\t\t\t// would see when editing their portal. And any edit made (without explictely going in and managing the attrs)\n\t\t\t// would then cause us to hit the `if` just above and now your attributes are in an unpredictable order based\n\t\t\t// on what you would have just seen (in portal proper) prior to an edit.\n\t\t\tif (attrA.id === -101) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (attrB.id === -101) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn attributeIds.indexOf(attrA.id) - attributeIds.indexOf(attrB.id);\n\t\t}\n\n\t\t// DAM-11580\n\t\t// If attrA is `file` it comes before\n\t\tif (attrA.id === -101) {\n\t\t\treturn -1;\n\t\t}\n\t\t// If attrB is `file`, attrA comes after\n\t\tif (attrB.id === -101) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (this.keepAlphabetical) {\n\t\t\tconst aName = attrA.get('name').toLowerCase();\n\t\t\tconst bName = attrB.get('name').toLowerCase();\n\t\t\t// This is then the standard sort you would expect by `name`\n\t\t\tif (aName < bName) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (bName < aName) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t} else {\n\t\t\tconst aOrderby = attrA.get('orderby');\n\t\t\tconst bOrderby = attrB.get('orderby');\n\t\t\t// This is then the standard sort you would expect by `orderby`\n\t\t\tif (aOrderby < bOrderby) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (bOrderby < aOrderby) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\t// Equal\n\t\treturn 0;\n\t}\n\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {method} methods.read - Fetch attribute templates, metadata and metadata maps\n\t *\n\t * @property {method} methods.getAttributeTemplatesForCategoryContext - Provided an array of category ids, fetch all attribute templates, for those categories, that have editing permissions.\n\t * @property {method} methods.getAttributeTemplates - Fetch attribute templates\n\t * @property {method} methods.getAttributeObjects - Fetch attribute templates by id\n\t * @property {method} methods.getAllAttributeIds - Fetch attribute templates ids\n\t * @property {method} methods.getDataSetList - Fetch datasets (deprecated)\n\t * @property {method} methods.setAttributeTemplateOrder - Set new attribute template order\n\t * @property {method} methods.getMetadataMapJson - Fetch metadata map json\n\t * @property {method} methods._getMetadataMap - Fetch metadata map\n\t * @property {method} methods._setMetadataMap - Update metadata map\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\t// First get the templates\n\t\t\t\treturn (this.categoryIds.length\n\t\t\t\t\t? this.getAttributeTemplatesForCategoryContext\n\t\t\t\t\t: this.getAttributeTemplates)(opts).then((attrs) => {\n\t\t\t\t\tthis.set(attrs);\n\t\t\t\t\t// Get all other pertinent attribute data\n\t\t\t\t\treturn this.when(\n\t\t\t\t\t\tthis.getMetadata(opts),\n\t\t\t\t\t\tthis.getMetadataMap(opts),\n\t\t\t\t\t).then(() => {\n\t\t\t\t\t\t// Resolve\n\t\t\t\t\t\treturn attrs;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t/** @method */\n\t\t\tgetAllAttributeIds: ['getAllAttributeIds'],\n\t\t\t/** @method */\n\t\t\tgetAttributeObjects: ['getAttributeObjects', 'attributeIds'],\n\t\t\t/** @method */\n\t\t\tgetAttributeTemplatesForCategoryContext() {\n\t\t\t\t// See @todo in constructor\n\t\t\t\tlet categoryIds = this.categoryIds;\n\t\t\t\tif (categoryIds.length > 1) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'multiple ids are not actually supported for `getAttributeTemplatesForCategoryContext`. Ignoring all but the first id.',\n\t\t\t\t\t);\n\t\t\t\t\tcategoryIds = [categoryIds[0]];\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\t'getAttributeTemplatesForCategoryContext',\n\t\t\t\t\tcategoryIds,\n\t\t\t\t\tthis.writableOnly,\n\t\t\t\t];\n\t\t\t},\n\t\t\t/** @method */\n\t\t\tgetAttributeTemplates: ['getAttributeTemplates'],\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t * @deprecated\n\t\t\t * @see parsers.getDataSetList\n\t\t\t */\n\t\t\tgetDataSetList(opts) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'Do not fetch datasets via the attributes collection. Method will be removed in 9.0 and will result in an error.',\n\t\t\t\t);\n\t\t\t\treturn ['getDataSetList', ''];\n\t\t\t},\n\t\t\t/** @method */\n\t\t\t_getMetadataMap: ['getMetadataMap'],\n\t\t\t/** @method */\n\t\t\tgetMetadataMapJson: ['getMetadataMapJson'],\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {array} ids IDs\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetAttributeTemplateOrder(ids, opts) {\n\t\t\t\treturn ['setAttributeTemplateOrder', ids, false];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\t_setMetadataMap(opts) {\n\t\t\t\treturn ['setMetadataMap', this.metadataMapArgs];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.getAllAttributeIds - Parse fetch of attribute ids\n\t * @property {function} parsers.getAttributeObjects - Parse fetch of attribute templates\n\t * @property {function} parsers.getAttributeTemplates - Parse fetch of attribute templates\n\t * @property {function} parsers.getAttributeTemplatesForCategoryContext - Parse fetch of attribute templates\n\t * @property {function} parsers.getDataSetList - Parse fetch of datasets (deprecated)\n\t * @property {function} parsers._getMetadataMap - Parse fetch of metadata map\n\t * @property {function} parsers.getMetadataMapJson - Parse fetch of metadata map json\n\t * @property {function} parsers.setAttributeTemplateOrder - Parse update of attribute template order\n\t * @property {function} parsers._setMetadataMap - parse update of metadata map\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} ids Attribute ids\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAllAttributeIds(ids, opts) {\n\t\t\t\t// NOTE: the attribute object's returned id field is 'attributeid', all lower case,\n\t\t\t\t// while the RPC call is getAllAttributeIds() (uppercase I).\n\t\t\t\t// I'm keeping with the somewhat standard \"Ids\" format used in the rest of the codebase.\n\t\t\t\tthis.attributeIds = ids;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} attributes Attribute templates\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAttributeObjects(attributes, opts) {\n\t\t\t\tthis.set(this.parseAndCorrect(attributes), opts);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} attributes Attribute templates\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAttributeTemplates(attributes, opts) {\n\t\t\t\treturn this.parseAndCorrect(attributes);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} attributes Attribute templates\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAttributeTemplatesForCategoryContext(attributes, opts) {\n\t\t\t\treturn this.parseAndCorrect(attributes);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} datasets Datasets\n\t\t\t * @param {object} opts Request options\n\t\t\t * @deprecated\n\t\t\t */\n\t\t\tgetDataSetList(datasets, opts) {\n\t\t\t\t// TODO: No! thise objects are nothin like our models whatsoever\n\t\t\t\t// it does not look like anything is using this\n\t\t\t\t// Deprecating\n\t\t\t\tconsole.warn('How do you like them errors in the console?');\n\t\t\t\tthis.set(datasets, opts);\n\t\t\t},\n\t\t\t/**\n\t\t\t * We have fetched our metadata map - which contains parallel arrays of importIds/importValues and exportIds/exportValues\n\t\t\t * @method\n\t\t\t * @param {object} metadataMap Metadata map data object\n\t\t\t * @param {object} opts Request options\n\t\t\t * @example\n\t\t\t * {\n\t\t\t * \"exportIds\": [],\n\t\t\t * \"exportImagePortalBlockOnProcess\": false,\n\t\t\t * \"exportImagePortalBlockOnSave\": false,\n\t\t\t * \"exportValues\": [],\n\t\t\t * \"importIds\": [\n\t\t\t * 7\n\t\t\t * ],\n\t\t\t * \"importValues\": [\n\t\t\t * \"ID3:Track\"\n\t\t\t * ],\n\t\t\t * \"modUserId\": 0\n\t\t\t * }\n\t\t\t */\n\t\t\t_getMetadataMap(metadataMap, opts) {\n\t\t\t\t// We want a true clone - no reference to one another\n\t\t\t\tthis.metadataMapArgs = JSON.parse(JSON.stringify(metadataMap));\n\t\t\t\t// We want a true clone - no reference to one another\n\t\t\t\tthis.metadataMap = JSON.parse(JSON.stringify(metadataMap));\n\t\t\t},\n\t\t\t/**\n\t\t\t * We have fetched our metadata map json - which is an array of schemas with an array options within\n\t\t\t * The result of this call is used to populate the metadata sync options available to a user who can manage attribute templates\n\t\t\t * @method\n\t\t\t * @param {array} metadata Metadata options array\n\t\t\t * @param {object} opts Request options\n\t\t\t * @example\n\t\t\t * [\n\t\t\t * {\n\t\t\t * \"label\": \"Dublin Core\",\n\t\t\t * \"options\": [\n\t\t\t * {\n\t\t\t * \"direction\": \"both\",\n\t\t\t * \"label\": \"Dublin Core contributor\",\n\t\t\t * \"value\": \"dc:contributor\"\n\t\t\t * },\n\t\t\t * {\n\t\t\t * \"direction\": \"import\",\n\t\t\t * \"label\": \"Dublin Core format\",\n\t\t\t * \"value\": \"dc:format\"\n\t\t\t * },\n\t\t\t * ...\n\t\t\t * ]\n\t\t\t * },\n\t\t\t * ...\n\t\t\t * ]\n\t\t\t */\n\t\t\tgetMetadataMapJson(metadata, opts) {\n\t\t\t\tthis.metadata = metadata;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {null} response Null\n\t\t\t * @param {array} ids IDs\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetAttributeTemplateOrder(response, ids, opts) {\n\t\t\t\t// Correct our models `orderby`\n\t\t\t\tlet model;\n\t\t\t\t_.each(ids, (id, idx) => {\n\t\t\t\t\tmodel = this.get(id);\n\t\t\t\t\t// Set silently as we will sort after this\n\t\t\t\t\t// If we trigger a change on each one we can cause the ui to become sluggish\n\t\t\t\t\t// as it will trigger renders and all sorts of unneeded checks\n\t\t\t\t\tmodel && model.set('orderby', idx + 1, {silent: true});\n\t\t\t\t});\n\t\t\t\tthis.sort();\n\t\t\t},\n\t\t\t/**\n\t\t\t * Updates attribute templates metadata synchronization\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\t_setMetadataMap(opts) {\n\t\t\t\t// We want a true clone - no reference to one another\n\t\t\t\tthis.metadataMap = JSON.parse(JSON.stringify(this.metadataMapArgs));\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @method\n\t * @param {array} attrs Attributes\n\t * @return {array}\n\t */\n\tparseAndCorrect(attrs) {\n\t\t// DAM-20153: this will one day be a feature of theme proper\n\t\tconst portal = getPortal();\n\t\tif (portal) {\n\t\t\tconst attributeIds = portal.get('attributeIds');\n\t\t\t// Right now the portal falls back to attribute -101 if no attributes are available\n\t\t\t// Due to attribute permission, this can happen regardless of what the server does\n\t\t\t// Though, the server should be enforcing that -100 and -101 are always returned until\n\t\t\t// we can properly address the hard coding in the portal\n\t\t\t// Also, the portal has no idea about clip only attributes\n\t\t\tconst filteredAttrs = attrs.filter(\n\t\t\t\t(attr) =>\n\t\t\t\t\tattributeIds.includes(attr.attributeid) &&\n\t\t\t\t\tattr.objectTypes.includes('asset'),\n\t\t\t);\n\t\t\tENFORCE_ATTRIBUTE_IDS.forEach((id) => {\n\t\t\t\tif (!filteredAttrs.find((attr) => attr.attributeid === id))\n\t\t\t\t\tfilteredAttrs.push(id);\n\t\t\t});\n\t\t\tattrs = filteredAttrs;\n\t\t}\n\n\t\treturn _.compact(\n\t\t\t_.map(attrs, (attr) => {\n\t\t\t\tlet attrName = attr.name;\n\n\t\t\t\t// We now allow some editing of system attributes as if they were regular attributes\n\t\t\t\t// turns out the server is not considering this data mandatory on their end\n\t\t\t\t// DAM-19292 - when this ticket is done we can remove this piece of code\n\t\t\t\tif ([-100, -101].includes(attr.attributeid)) {\n\t\t\t\t\tattr.mandatory = 1;\n\t\t\t\t\tattr.permission = Netx.getUserLevel() >= 7;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(attrName !== 'checksum' || checksumEnabled()) &&\n\t\t\t\t\t(attrName !== 'expireDate' || assetExpirationEnabled()) &&\n\t\t\t\t\tattrName !== 'path' &&\n\t\t\t\t\tattrName !== 'modUser' &&\n\t\t\t\t\tattrName !== 'thumbPath'\n\t\t\t\t) {\n\t\t\t\t\tif (attr.system) {\n\t\t\t\t\t\tswitch (attrName) {\n\t\t\t\t\t\t\tcase 'fileSize':\n\t\t\t\t\t\t\t\tattrName = 'fileSize2';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'creationDate':\n\t\t\t\t\t\t\t\tattrName = 'creationdate';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'expireDate':\n\t\t\t\t\t\t\t\tattrName = 'expirationDate';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'fileType':\n\t\t\t\t\t\t\t\tattrName = 'filetypelabel';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'modDate':\n\t\t\t\t\t\t\t\tattrName = 'moddate';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn _.extend(attr, {\n\t\t\t\t\t\tname: attrName,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model =\n\t\t\topts.model ||\n\t\t\tfunction (attrs, opts) {\n\t\t\t\tconst typeName = types[attrs.type];\n\t\t\t\tconst modelClass = Models[typeName] || Models.base;\n\t\t\t\treturn new modelClass(attrs, opts);\n\t\t\t};\n\n\t\t// Circular\n\t\t//AssetAttributeDatumCollection = require('./assetAttributeDatum');\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * For use with `getAttributeTemplatesForCategoryContext`\n\t\t * Only respected when `permission.attributesEnabled` is true\n\t\t * @memberOf Netx.Collections.Attributes\n\t\t * @todo Andrew has noted that we will be eventually only allowing a single id here\n\t\t * We do not use more than one id as of yet and should not moving forward. The request\n\t\t * method will just send the first id and console log a warning if there is more than\n\t\t * one present in the mean time.\n\t\t * @alias categoryIds\n\t\t * @type {number}\n\t\t */\n\t\tthis.categoryIds =\n\t\t\t(Netx.getPreference('permission.attributesEnabled', true) &&\n\t\t\t\topts.categoryIds) ||\n\t\t\t[];\n\n\t\t/**\n\t\t * @memberof module:asset/collections/attributes\n\t\t * @alias keepAlphabetical\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.keepAlphabetical = Netx.getPreference(\n\t\t\t'metadata.keepListAlphabetical',\n\t\t\ttrue,\n\t\t);\n\n\t\t/**\n\t\t * Stores our metadata sync map\n\t\t * @type {object}\n\t\t * @default\n\t\t * @see this.getMetadataMap\n\t\t */\n\t\tthis.metadataMap = {\n\t\t\t// \"exportIds\": [\n\t\t\t// \t4,\n\t\t\t// \t5,\n\t\t\t// \t9\n\t\t\t// ],\n\t\t\t// \"exportImagePortalBlockOnProcess\": false,\n\t\t\t// \"exportImagePortalBlockOnSave\": false,\n\t\t\t// \"exportValues\": [\n\t\t\t// \t\"cdt:Type\",\n\t\t\t// \t\"fill:HasTransfo\",\n\t\t\t// \t\"pdf:Keywords\"\n\t\t\t// ],\n\t\t\t// \"importIds\": [\n\t\t\t// \t4,\n\t\t\t// \t5,\n\t\t\t// \t8\n\t\t\t// ],\n\t\t\t// \"importValues\": [\n\t\t\t// \t\"cdt:Type\",\n\t\t\t// \t\"fill:HasTransfo\",\n\t\t\t// \t\"ID3:Year\"\n\t\t\t// ],\n\t\t\t// \"modUserId\": 0\n\t\t};\n\n\t\t/**\n\t\t * Stores the metadata that is defined by the server as syncable\n\t\t * @type {array}\n\t\t * @default\n\t\t */\n\t\tthis.metadata = [\n\t\t\t// {\n\t\t\t// \t\"label\": \"Dublin Core\",\n\t\t\t// \t\"options\": [\n\t\t\t// \t\t{\n\t\t\t// \t\t\t\"direction\": \"both\",\n\t\t\t// \t\t\t\"label\": \"Dublin Core contributor\",\n\t\t\t// \t\t\t\"value\": \"dc:contributor\"\n\t\t\t// \t\t},\n\t\t\t// \t\t{\n\t\t\t// \t\t\t\"direction\": \"both\",\n\t\t\t// \t\t\t\"label\": \"Dublin Core coverage\",\n\t\t\t// \t\t\t\"value\": \"dc:coverage\"\n\t\t\t// \t\t}\n\t\t\t// \t]\n\t\t\t// }\n\t\t];\n\n\t\t/**\n\t\t * A clone of this.metadataMap (once fetched) so that we may make some comparisons\n\t\t * as to whether or not the metadata map needs saving - since it all gets saved at once\n\t\t * it can be quite expensive\n\t\t * @type {object}\n\t\t * @default\n\t\t * @see this.metadataMap\n\t\t */\n\t\tthis.metadataMapArgs = {\n\t\t\texportImagePortalBlockOnProcess: false,\n\t\t\texportImagePortalBlockOnSave: false,\n\t\t\texportIds: [],\n\t\t\texportValues: [],\n\t\t\timportIds: [],\n\t\t\timportValues: [],\n\t\t\tmodUserId: 0,\n\t\t};\n\n\t\t/**\n\t\t * @memberof module:asset/collections/attributes\n\t\t * @alias writableOnly\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.writableOnly = opts.writableOnly === true;\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'sync', (collection, results, opts) => {\n\t\t\t// Models sync too\n\t\t\tif (this !== collection) return;\n\n\t\t\tthis.stopListening(this, 'add change remove');\n\t\t\tthis.listenTo(this, 'add', this.attributeAdded);\n\t\t\tthis.listenTo(this, 'change', this.attributeChanged);\n\t\t\tthis.listenTo(this, 'remove', this.attributeRemoved);\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {Netx.Models.Attribute} model Attribute template model\n\t * @fires module:asset#asset:attribute:added\n\t */\n\tattributeAdded(model) {\n\t\t// Dispatch event\n\t\t// TODO: fix this, no dispatching from models/collections\n\t\tdispatcher.trigger('asset:attribute:added', model);\n\t}\n\n\t/**\n\t * @method\n\t * @param {Netx.Models.Attribute} model Attribute template model\n\t * @fires module:asset#asset:attribute:changed\n\t */\n\tattributeChanged(model) {\n\t\t// Dispatch event\n\t\t// TODO: fix this, no dispatching from models/collections\n\t\tdispatcher.trigger('asset:attribute:changed', model);\n\t}\n\n\t/**\n\t * @method\n\t * @param {Netx.Models.Attribute} model Attribute template model\n\t * @fires module:asset#asset:attribute:removed\n\t */\n\tattributeRemoved(model) {\n\t\t// Dispatch event\n\t\t// TODO: fix this, no dispatching from models/collections\n\t\tdispatcher.trigger('asset:attribute:removed', model);\n\t}\n\n\t/**\n\t * @method\n\t * @param {array} ids Array of attribute template ids\n\t */\n\tdeleteAttributes(ids) {\n\t\treturn this.deleteMultiple(ids);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} objectType Object type (asset/clip)\n\t */\n\tfilterByObjectType(objectType) {\n\t\tconst filter = () => {\n\t\t\treturn this.filter((model) => model.isForObjectType(objectType));\n\t\t};\n\n\t\t// When we change, so should the filtered collection\n\t\tconst collection = new this.constructor(filter());\n\t\treturn collection\n\t\t\t.listenTo(this, 'add', (attributes, attribute) => {\n\t\t\t\tcollection.add(attribute);\n\t\t\t})\n\t\t\t.listenTo(this, 'remove', (attributes, attribute) => {\n\t\t\t\tcollection.remove(attribute);\n\t\t\t})\n\t\t\t.listenTo(this, 'reset', (attributes) => {\n\t\t\t\tcollection.reset(filter());\n\t\t\t})\n\t\t\t.listenTo(this, 'sync', (attributes, data, opts) => {\n\t\t\t\tif (attributes !== this) return;\n\t\t\t\tcollection.set(filter(), opts);\n\t\t\t\tcollection.trigger('sync', collection);\n\t\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {array} types Types of attributes to return\n\t * @param {boolean} editableOnly Only return editable attributes\n\t * @return {Netx.Collection.Attributes}\n\t */\n\tfilterByTypes(types, editableOnly) {\n\t\t// Wrap\n\t\tif (!_.isArray(types)) {\n\t\t\ttypes = [types];\n\t\t}\n\n\t\t// For now we need to be the holders of this data\n\t\t// In 8.12 we will have flags on the templates themselves for this\n\t\tconst editableSystemAttributes = ['description', 'name'];\n\n\t\t// Support the user passing strings instead of type ids\n\t\t// Convert them over to type ids before going forward\n\t\ttypes = _.map(types, (type) =>\n\t\t\t!_.isNumeric(type) ? typeIds[type] : parseInt(type),\n\t\t);\n\n\t\t// Return filtered collection\n\t\treturn new this.constructor(\n\t\t\tthis.filter(\n\t\t\t\t(attr) =>\n\t\t\t\t\t// If we want only editable attributes then we need to omit any system attributes that cannot be edited - all other attribute types are editable by default\n\t\t\t\t\t_.contains(types, attr.get('type')) &&\n\t\t\t\t\t(!editableOnly ||\n\t\t\t\t\t\t!attr.get('system') ||\n\t\t\t\t\t\t_.contains(editableSystemAttributes, attr.get('name'))),\n\t\t\t),\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @return {module:asset/collections/attributes} Attributes tracking history\n\t */\n\tfilterByHistory() {\n\t\treturn new this.constructor(this.where({trackHistory: true}));\n\t}\n\n\t/**\n\t * @method\n\t * @return {module:asset/collections/assetAttributeDatum} Asset attribute datum\n\t */\n\tgetAttributeDatum(defaultValues) {\n\t\tconst attributeDatum = new AssetAttributeDatumCollection([\n\t\t\t{\n\t\t\t\tassetId: 0,\n\t\t\t\tattributes: [],\n\t\t\t},\n\t\t]);\n\n\t\tconst record = attributeDatum.at(0);\n\n\t\tthis.each((model) => {\n\t\t\tlet value = defaultValues ? model.get('value') : null;\n\n\t\t\tif (isEmptyValue(value)) {\n\t\t\t\tvalue = [];\n\t\t\t} else if (!_.isArray(value)) {\n\t\t\t\tvalue = [value];\n\t\t\t}\n\n\t\t\trecord.addAttribute({\n\t\t\t\tassetId: 0,\n\t\t\t\tmultivalue: model.get('multivalue'),\n\t\t\t\tpermission: 'w',\n\t\t\t\tvalues: value,\n\t\t\t\ttypeName: model.getTypeName(),\n\t\t\t\ttemplateId: model.id,\n\t\t\t\tname: model.get('name'),\n\t\t\t});\n\t\t});\n\n\t\treturn attributeDatum;\n\t}\n\n\t/**\n\t * For attr storage purposes: get an id for a name\n\t * Unfortunately in a lot of the old interface, attribute names were used over ids (diplayed attributes, attribute field sets etc)\n\t * @method\n\t * @param {string} name Attribute name\n\t * @return {number} Attribute id\n\t */\n\tgetIdByName(name) {\n\t\tconst attr = this.findWhere({name: name});\n\t\treturn attr ? attr.get('attributeid') : undefined;\n\t}\n\n\t/**\n\t * @method\n\t * @param {boolean} withoutDefaultValues Only return attributes without default values\n\t * @return {module:asset/collections/attributes}\n\t */\n\tgetMandatory(withoutDefaultValues, withoutSystem) {\n\t\treturn new this.constructor(\n\t\t\tthis.filter(\n\t\t\t\t(m) =>\n\t\t\t\t\tm.isMandatory() &&\n\t\t\t\t\t(!withoutDefaultValues || !m.hasDefaultValue()) &&\n\t\t\t\t\t(!withoutSystem || !m.get('system')),\n\t\t\t),\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @return {Netx.Collections.Attributes} Collection of system attributes\n\t */\n\tgetSystemAttributes() {\n\t\treturn new this.constructor(this.filter((attr) => attr.get('system')));\n\t}\n\n\t/**\n\t * Are there mandatory attributes?\n\t * @method\n\t * @return {array} List of attribute models that are mandatory, or 'undefined' (instead of empty array) if there are none.\n\t */\n\thasMandatory() {\n\t\tconst list = this.filter((m) => m.get('mandatory') == 1);\n\t\treturn list.length ? list : undefined;\n\t}\n\n\t/**\n\t * For asset sorting purposes, return an object of names of known attributes.\n\t * @method\n\t * @param {boolean} system Include system attributes\n\t * @return {object} names\n\t */\n\tnames(system) {\n\t\tconst names = {};\n\t\tthis.each((attr) => {\n\t\t\tif (system && attr.get('system') === true) {\n\t\t\t\tnames[attr.get('code')] = attr.get('name');\n\t\t\t} else if (attr.get('system') !== true) {\n\t\t\t\tnames[attr.get('name')] = attr.get('name');\n\t\t\t}\n\t\t});\n\t\treturn names;\n\t}\n\n\t/**\n\t * Vocabulary has been updated\n\t * @param {number} vocabularyId Vocabulary ID\n\t */\n\tupdatedVocabulary(vocabularyId) {\n\t\t// Every attribute that uses this vocab needs to be refetched\n\t\tthis.each((model) => {\n\t\t\tif (!vocabularyAttributes.includes(model.get('type'))) return;\n\t\t\tmodel.get('spec1') === vocabularyId && model.fetch();\n\t\t});\n\t}\n\n\t////////////////////////////////////\n\t// METADATA SYNC\n\t////////////////////////////////////\n\t/**\n\t * We have modified the metadata to sync on an attribute template\n\t * This is really fun - we do not have a call to simply update an attribute template's metadata sync parameters\n\t * we have to actually pass the whole updated thing at once - so we need to manually go through and deal with the parallel arrays\n\t * ourselves\n\t * @method\n\t * @param {module:asset/models/assetAttribute} model AssetAttribute model\n\t * @param {object} data Metadata sync data\n\t * @todo Get a call that can handle passing an array of attributes and their metadata sync values\n\t */\n\tattributeModifySyncMetadata(model, data) {\n\t\t// In this case, only `import` is allowed\n\t\tif (\n\t\t\tdata.syncMetadataType === '' &&\n\t\t\t!Netx.getPreference('share.metadata.roundtrip.enabled')\n\t\t) {\n\t\t\tdata.syncMetadataType = 'import';\n\t\t}\n\n\t\t// Find sync schema\n\t\tconst schema = _.findWhere(Netx.asset.attributes.metadata, {\n\t\t\tlabel: data.syncMetadataSchema,\n\t\t});\n\n\t\t// For memory sake\n\t\tconst exportIds = this.metadataMapArgs.exportIds || [];\n\t\tconst exportValues = this.metadataMapArgs.exportValues || [];\n\t\tconst importIds = this.metadataMapArgs.importIds || [];\n\t\tconst importValues = this.metadataMapArgs.importValues || [];\n\n\t\tlet value, validDirections;\n\t\t// Mapped schema\n\t\tif (schema) {\n\t\t\t// Find sync value on sync schema options\n\t\t\tvalue = _.findWhere(schema.options, {value: data.syncMetadataValue});\n\t\t\t// Found sync value\n\t\t\tif (value) {\n\t\t\t\t// Check valid direction\n\t\t\t\tif (value.direction === 'both') {\n\t\t\t\t\tvalidDirections = ['both', 'export', 'import'];\n\t\t\t\t} else {\n\t\t\t\t\tvalidDirections = [value.direction];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Assume custom schema\n\t\telse {\n\t\t\tvalidDirections = ['both', 'export', 'import'];\n\t\t}\n\n\t\t// Valid direction\n\t\tif (_.indexOf(validDirections, data.syncMetadataType) > -1) {\n\t\t\t// Find in imports\n\t\t\tconst importIdx = _.indexOf(this.metadataMap.importIds, model.id);\n\t\t\t// Find in exports\n\t\t\tconst exportIdx = _.indexOf(this.metadataMap.exportIds, model.id);\n\n\t\t\t// Is in the importIds array\n\t\t\tif (importIdx > -1) {\n\t\t\t\t// Is no longer valid as the directions do not match\n\t\t\t\tif (\n\t\t\t\t\tdata.syncMetadataType !== 'both' &&\n\t\t\t\t\tdata.syncMetadataType !== 'import'\n\t\t\t\t) {\n\t\t\t\t\timportIds.splice(importIdx, 1);\n\t\t\t\t\timportValues.splice(importIdx, 1);\n\t\t\t\t}\n\t\t\t\t// Update the value\n\t\t\t\telse {\n\t\t\t\t\timportValues.splice(importIdx, 1, data.syncMetadataValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Is not in the importIds array\n\t\t\telse if (\n\t\t\t\tdata.syncMetadataType === 'both' ||\n\t\t\t\tdata.syncMetadataType === 'import'\n\t\t\t) {\n\t\t\t\timportIds.push(model.id);\n\t\t\t\timportValues.push(data.syncMetadataValue);\n\t\t\t}\n\t\t\t// Is in the exportIds array\n\t\t\tif (exportIdx > -1) {\n\t\t\t\t// Is no longer valid as the directions do not match\n\t\t\t\tif (\n\t\t\t\t\tdata.syncMetadataType !== 'both' &&\n\t\t\t\t\tdata.syncMetadataType !== 'export'\n\t\t\t\t) {\n\t\t\t\t\texportIds.splice(exportIdx, 1);\n\t\t\t\t\texportValues.splice(exportIdx, 1);\n\t\t\t\t}\n\t\t\t\t// Update the value\n\t\t\t\telse {\n\t\t\t\t\texportValues.splice(exportIdx, 1, data.syncMetadataValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Is not in the exportIds array\n\t\t\telse if (\n\t\t\t\tdata.syncMetadataType === 'both' ||\n\t\t\t\tdata.syncMetadataType === 'export'\n\t\t\t) {\n\t\t\t\texportIds.push(model.id);\n\t\t\t\texportValues.push(data.syncMetadataValue);\n\t\t\t}\n\t\t}\n\t\t// Update on server\n\t\treturn this.setMetadataMap().then(() => {\n\t\t\tmodel.trigger('change', model);\n\t\t\tmodel.trigger('change:metadataSync', model, true);\n\t\t});\n\t}\n\n\t/**\n\t * Remove metadata sync from an attribute template\n\t * @method\n\t * @param {module:asset/models/assetAttribute} model AssetAttribute model\n\t */\n\tattributeRemoveSyncMetadata(model) {\n\t\tconst importIdx = _.indexOf(this.metadataMap.importIds, model.id);\n\t\tconst exportIdx = _.indexOf(this.metadataMap.exportIds, model.id);\n\t\tconst metadataMapArgs = this.metadataMapArgs;\n\n\t\t// Remove from import\n\t\tif (importIdx > -1) {\n\t\t\tmetadataMapArgs.importIds.splice(importIdx, 1);\n\t\t\tmetadataMapArgs.importValues.splice(importIdx, 1);\n\t\t}\n\t\t// Remove from export\n\t\tif (exportIdx > -1) {\n\t\t\tmetadataMapArgs.exportIds.splice(exportIdx, 1);\n\t\t\tmetadataMapArgs.exportValues.splice(exportIdx, 1);\n\t\t}\n\t\t// Update on server\n\t\treturn this.setMetadataMap().then(() => {\n\t\t\tmodel.trigger('change', model);\n\t\t\tmodel.trigger('change:metadataSync', model, false);\n\t\t});\n\t}\n\n\t/**\n\t * This fetches our metadata map json - which is an array of schemas with an array options within\n\t * The result of this call is used to populate the metadata sync options available to a user who can manage attribute templates\n\t * @method\n\t */\n\tgetMetadata() {\n\t\t// Should only need to fetch it once (and only for admins)\n\t\tif (Netx.getUserLevel() < 9 || this.metadata.length) {\n\t\t\treturn new $.Deferred().resolve(this.metadata);\n\t\t}\n\n\t\treturn this.getMetadataMapJson().then((response) => {\n\t\t\treturn this.metadata;\n\t\t});\n\t}\n\n\t/**\n\t * This fetches our metadata map - which contains parallel arrays of importIds/importValues and exportIds/exportValues\n\t * The values represent to the metadata to sync with the attribute and the ids are the attribute templates wishing to sync\n\t * If the same value and id match in the same position in both import and export, that is a round trip sync (both)\n\t * @method\n\t * @param {object} opts Request options\n\t */\n\tgetMetadataMap(opts) {\n\t\t// Should only need to fetch it once (and only for admins)\n\t\tif (Netx.getUserLevel() < 9 || !_.isEmpty(this.metadataMap.length)) {\n\t\t\treturn new $.Deferred().resolve(this.metadataMap);\n\t\t}\n\n\t\treturn this._getMetadataMap(opts).then((response) => {\n\t\t\treturn this.metadataMap;\n\t\t});\n\t}\n\n\t/**\n\t * Updates the metadata to sync with attribute templates\n\t * @method\n\t * @param {object} opts Request options\n\t */\n\tsetMetadataMap(opts) {\n\t\t// Check if any updating is needed\n\t\tif (_.isEqual(this.metadataMap, this.metadataMapArgs)) {\n\t\t\treturn new $.Deferred().resolve(this.metadataMap);\n\t\t}\n\n\t\treturn this._setMetadataMap(opts).then((response) => {\n\t\t\treturn this.metadataMap;\n\t\t});\n\t}\n\t////////////////////////////////////\n\t// !METADATA SYNC\n\t////////////////////////////////////\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attributes';\n\t}\n}\n","/**\n * @class\n * @deprecated\n */\nimport Base from './attribute_tag';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_Semantic extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.semantic,\n\t\t};\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Semantic';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute_tag';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_TagVocab extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.tagVocab,\n\t\t};\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_TagVocab';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './attribute_text';\n\nimport {ids as attributeTypeIds} from '@netx/core-asset/properties/attributes';\n\nexport default class Attribute_Textarea extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t...super.defaults,\n\t\t\ttype: attributeTypeIds.textarea,\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {mixed} value Value\n\t * @param {object} opts Options\n\t * @return {mixed} Formatted value\n\t */\n\tformat(value, opts) {\n\t\topts = opts || {};\n\t\tvalue = super.format(value, opts);\n\n\t\treturn opts.html !== false ? value && value.replace(/\\n/g, '
') : value;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Attribute_Textarea';\n\t}\n}\n","import { scheduleMicrotask } from './utils.esm.js';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.esm.js.map\n","import {ATTRIBUTE_SYSTEM_ID} from '@netx/core-attribute/constants';\nimport {SearchType} from './rules/constants';\n\nexport enum SearchMatchCriteria {\n\tAND = 0,\n\tOR = 1,\n\tNOT = 2,\n}\n\nexport enum SearchSortOrder {\n\tASC = 0,\n\tDESC = 1,\n}\n\nexport const DEFAULT_SEARCH_SORT_FIELD = 'file';\nexport const DEFAULT_SEARCH_SORT_ORDER = SearchSortOrder.ASC;\nexport const DEFAULT_SEARCH_MATCH_CRITERIA = SearchMatchCriteria.AND;\n\nexport enum MetadataSubType1 {\n\tMATCH_ALL_WHOLE_WORDS = 0,\n\tMATCH_EXACTLY = 1,\n\tMATCH_ANY_WHOLE_WORDS = 2,\n\tEXCLUDE = 3,\n\tMATCH_ALL_WILD_CARDS = 4,\n\tMATCH_ANY_WILD_CARDS = 5,\n\tMATCH_ANY_RANGE = 6,\n\tNO_VALUE = 11,\n\tANY_VALUE = 12,\n}\n\nexport const NON_SORTABLE_SEARCH_TYPES = [SearchType.CUSTOM, SearchType.VISUAL];\n\nexport const SEARCH_SORT_SYSTEM_ATTRIBUTES = [\n\tATTRIBUTE_SYSTEM_ID.checksum,\n\tATTRIBUTE_SYSTEM_ID.expireDate,\n\tATTRIBUTE_SYSTEM_ID.file,\n\tATTRIBUTE_SYSTEM_ID.name,\n\tATTRIBUTE_SYSTEM_ID.assetId,\n\tATTRIBUTE_SYSTEM_ID.fileFormatFamily,\n\tATTRIBUTE_SYSTEM_ID.fileSize2,\n\tATTRIBUTE_SYSTEM_ID.filetypelabel,\n\tATTRIBUTE_SYSTEM_ID.height,\n\tATTRIBUTE_SYSTEM_ID.importDate,\n\tATTRIBUTE_SYSTEM_ID.moddate,\n\tATTRIBUTE_SYSTEM_ID.creationdate,\n\tATTRIBUTE_SYSTEM_ID.dimensions,\n\tATTRIBUTE_SYSTEM_ID['smart labels'],\n\tATTRIBUTE_SYSTEM_ID.width,\n];\n\nexport const FACETS_SUPPORT_SEARCH_TYPES = [\n\tSearchType.ACTIVE_TEMPLATES,\n\tSearchType.ADVANCED_RAW,\n\tSearchType.ATTRIBUTE_HISTORY,\n\tSearchType.CART,\n\tSearchType.CATEGORY_ID,\n\tSearchType.CATEGORY_NAME,\n\tSearchType.CHECKOUTS,\n\tSearchType.CONTENTS,\n\tSearchType.DATE,\n\tSearchType.FILE_ASPECT,\n\tSearchType.FILE_FORMAT,\n\tSearchType.FILE_FORMAT_FAMILY,\n\tSearchType.FILE_SIZE,\n\tSearchType.KEYWORD,\n\tSearchType.METADATA,\n\tSearchType.SAVED_SEARCH,\n\tSearchType.THESAURUS,\n\tSearchType.VISUAL,\n];\n\nexport const SALO_STRING_MAP = {\n\ta: 'sortField',\n\tb: 'sortOrder',\n\tc: 'matchCriteria',\n\td: 'elementTypes',\n\te: 'elementSubType1s',\n\tf: 'elementSubType2s',\n\tg: 'elementValue1s',\n\th: 'elementValue2s',\n\ti: 'elementValue3s',\n};\n","function easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nexport default function animate(property, element, to, options = {}, cb = () => {}) {\n const {\n ease = easeInOutSin,\n duration = 300 // standard\n\n } = options;\n let start = null;\n const from = element[property];\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n const step = timestamp => {\n if (cancelled) {\n cb(new Error('Animation cancelled'));\n return;\n }\n\n if (start === null) {\n start = timestamp;\n }\n\n const time = Math.min(1, (timestamp - start) / duration);\n element[property] = ease(time) * (to - from) + from;\n\n if (time >= 1) {\n requestAnimationFrame(() => {\n cb(null);\n });\n return;\n }\n\n requestAnimationFrame(step);\n };\n\n if (from === to) {\n cb(new Error('Element already at target position'));\n return cancel;\n }\n\n requestAnimationFrame(step);\n return cancel;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from '../utils/debounce';\nimport { ownerWindow } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n width: 99,\n height: 99,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll'\n};\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\n\nexport default function ScrollbarSize(props) {\n const {\n onChange\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const scrollbarHeight = React.useRef();\n const nodeRef = React.useRef(null);\n\n const setMeasurements = () => {\n scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n };\n\n React.useEffect(() => {\n const handleResize = debounce(() => {\n const prevHeight = scrollbarHeight.current;\n setMeasurements();\n\n if (prevHeight !== scrollbarHeight.current) {\n onChange(scrollbarHeight.current);\n }\n });\n const containerWindow = ownerWindow(nodeRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [onChange]);\n React.useEffect(() => {\n setMeasurements();\n onChange(scrollbarHeight.current);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n style: styles,\n ref: nodeRef\n }, other));\n}\nprocess.env.NODE_ENV !== \"production\" ? ScrollbarSize.propTypes = {\n onChange: PropTypes.func.isRequired\n} : void 0;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabScrollButtonUtilityClass(slot) {\n return generateUtilityClass('MuiTabScrollButton', slot);\n}\nconst tabScrollButtonClasses = generateUtilityClasses('MuiTabScrollButton', ['root', 'vertical', 'horizontal', 'disabled']);\nexport default tabScrollButtonClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _KeyboardArrowLeft, _KeyboardArrowRight;\n\nconst _excluded = [\"className\", \"direction\", \"orientation\", \"disabled\"];\n\n/* eslint-disable jsx-a11y/aria-role */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport ButtonBase from '../ButtonBase';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport tabScrollButtonClasses, { getTabScrollButtonUtilityClass } from './tabScrollButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, disabled && 'disabled']\n };\n return composeClasses(slots, getTabScrollButtonUtilityClass, classes);\n};\n\nconst TabScrollButtonRoot = styled(ButtonBase, {\n name: 'MuiTabScrollButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.orientation && styles[ownerState.orientation]];\n }\n})(({\n ownerState\n}) => _extends({\n width: 40,\n flexShrink: 0,\n opacity: 0.8,\n [`&.${tabScrollButtonClasses.disabled}`]: {\n opacity: 0\n }\n}, ownerState.orientation === 'vertical' && {\n width: '100%',\n height: 40,\n '& svg': {\n transform: `rotate(${ownerState.isRtl ? -90 : 90}deg)`\n }\n}));\nconst TabScrollButton = /*#__PURE__*/React.forwardRef(function TabScrollButton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabScrollButton'\n });\n\n const {\n className,\n direction\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n\n const ownerState = _extends({\n isRtl\n }, props);\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TabScrollButtonRoot, _extends({\n component: \"div\",\n className: clsx(classes.root, className),\n ref: ref,\n role: null,\n ownerState: ownerState,\n tabIndex: null\n }, other, {\n children: direction === 'left' ? _KeyboardArrowLeft || (_KeyboardArrowLeft = /*#__PURE__*/_jsx(KeyboardArrowLeft, {\n fontSize: \"small\"\n })) : _KeyboardArrowRight || (_KeyboardArrowRight = /*#__PURE__*/_jsx(KeyboardArrowRight, {\n fontSize: \"small\"\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabScrollButton.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The direction the button should indicate.\n */\n direction: PropTypes.oneOf(['left', 'right']).isRequired,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The component orientation (layout flow direction).\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TabScrollButton;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass('MuiTabs', slot);\n}\nconst tabsClasses = generateUtilityClasses('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);\nexport default tabsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-label\", \"aria-labelledby\", \"action\", \"centered\", \"children\", \"className\", \"component\", \"allowScrollButtonsMobile\", \"indicatorColor\", \"onChange\", \"orientation\", \"ScrollButtonComponent\", \"scrollButtons\", \"selectionFollowsFocus\", \"TabIndicatorProps\", \"TabScrollButtonProps\", \"textColor\", \"value\", \"variant\", \"visibleScrollbar\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport debounce from '../utils/debounce';\nimport { getNormalizedScrollLeft, detectScrollType } from '../utils/scrollLeft';\nimport animate from '../internal/animate';\nimport ScrollbarSize from './ScrollbarSize';\nimport TabScrollButton from '../TabScrollButton';\nimport useEventCallback from '../utils/useEventCallback';\nimport tabsClasses, { getTabsUtilityClass } from './tabsClasses';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst nextItem = (list, item) => {\n if (list === item) {\n return list.firstChild;\n }\n\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n\n return list.firstChild;\n};\n\nconst previousItem = (list, item) => {\n if (list === item) {\n return list.lastChild;\n }\n\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n\n return list.lastChild;\n};\n\nconst moveFocus = (list, currentFocus, traversalFunction) => {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus);\n\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n\n wrappedOnce = true;\n } // Same logic as useAutocomplete.js\n\n\n const nextFocusDisabled = nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n if (!nextFocus.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus);\n } else {\n nextFocus.focus();\n return;\n }\n }\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n vertical,\n fixed,\n hideScrollbar,\n scrollableX,\n scrollableY,\n centered,\n scrollButtonsHideMobile,\n classes\n } = ownerState;\n const slots = {\n root: ['root', vertical && 'vertical'],\n scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],\n flexContainer: ['flexContainer', vertical && 'flexContainerVertical', centered && 'centered'],\n indicator: ['indicator'],\n scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],\n scrollableX: [scrollableX && 'scrollableX'],\n hideScrollbar: [hideScrollbar && 'hideScrollbar']\n };\n return composeClasses(slots, getTabsUtilityClass, classes);\n};\n\nconst TabsRoot = styled('div', {\n name: 'MuiTabs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${tabsClasses.scrollButtons}`]: styles.scrollButtons\n }, {\n [`& .${tabsClasses.scrollButtons}`]: ownerState.scrollButtonsHideMobile && styles.scrollButtonsHideMobile\n }, styles.root, ownerState.vertical && styles.vertical];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n overflow: 'hidden',\n minHeight: 48,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.scrollButtonsHideMobile && {\n [`& .${tabsClasses.scrollButtons}`]: {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n }\n}));\nconst TabsScroller = styled('div', {\n name: 'MuiTabs',\n slot: 'Scroller',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.scroller, ownerState.fixed && styles.fixed, ownerState.hideScrollbar && styles.hideScrollbar, ownerState.scrollableX && styles.scrollableX, ownerState.scrollableY && styles.scrollableY];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'inline-block',\n flex: '1 1 auto',\n whiteSpace: 'nowrap'\n}, ownerState.fixed && {\n overflowX: 'hidden',\n width: '100%'\n}, ownerState.hideScrollbar && {\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n\n }\n}, ownerState.scrollableX && {\n overflowX: 'auto',\n overflowY: 'hidden'\n}, ownerState.scrollableY && {\n overflowY: 'auto',\n overflowX: 'hidden'\n}));\nconst FlexContainer = styled('div', {\n name: 'MuiTabs',\n slot: 'FlexContainer',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex'\n}, ownerState.vertical && {\n flexDirection: 'column'\n}, ownerState.centered && {\n justifyContent: 'center'\n}));\nconst TabsIndicator = styled('span', {\n name: 'MuiTabs',\n slot: 'Indicator',\n overridesResolver: (props, styles) => styles.indicator\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'absolute',\n height: 2,\n bottom: 0,\n width: '100%',\n transition: theme.transitions.create()\n}, ownerState.indicatorColor === 'primary' && {\n backgroundColor: (theme.vars || theme).palette.primary.main\n}, ownerState.indicatorColor === 'secondary' && {\n backgroundColor: (theme.vars || theme).palette.secondary.main\n}, ownerState.vertical && {\n height: '100%',\n width: 2,\n right: 0\n}));\nconst TabsScrollbarSize = styled(ScrollbarSize, {\n name: 'MuiTabs',\n slot: 'ScrollbarSize'\n})({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n scrollbarWidth: 'none',\n // Firefox\n '&::-webkit-scrollbar': {\n display: 'none' // Safari + Chrome\n\n }\n});\nconst defaultIndicatorStyle = {};\nlet warnedOnceTabPresent = false;\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabs'\n });\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n\n const {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n action,\n centered = false,\n children: childrenProp,\n className,\n component = 'div',\n allowScrollButtonsMobile = false,\n indicatorColor = 'primary',\n onChange,\n orientation = 'horizontal',\n ScrollButtonComponent = TabScrollButton,\n scrollButtons = 'auto',\n selectionFollowsFocus,\n TabIndicatorProps = {},\n TabScrollButtonProps = {},\n textColor = 'primary',\n value,\n variant = 'standard',\n visibleScrollbar = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const scrollable = variant === 'scrollable';\n const vertical = orientation === 'vertical';\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n const size = vertical ? 'height' : 'width';\n\n const ownerState = _extends({}, props, {\n component,\n allowScrollButtonsMobile,\n indicatorColor,\n orientation,\n vertical,\n scrollButtons,\n textColor,\n variant,\n visibleScrollbar,\n fixed: !scrollable,\n hideScrollbar: scrollable && !visibleScrollbar,\n scrollableX: scrollable && !vertical,\n scrollableY: scrollable && vertical,\n centered: centered && !scrollable,\n scrollButtonsHideMobile: !allowScrollButtonsMobile\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (process.env.NODE_ENV !== 'production') {\n if (centered && scrollable) {\n console.error('MUI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n }\n }\n\n const [mounted, setMounted] = React.useState(false);\n const [indicatorStyle, setIndicatorStyle] = React.useState(defaultIndicatorStyle);\n const [displayScroll, setDisplayScroll] = React.useState({\n start: false,\n end: false\n });\n const [scrollerStyle, setScrollerStyle] = React.useState({\n overflow: 'hidden',\n scrollbarWidth: 0\n });\n const valueToIndex = new Map();\n const tabsRef = React.useRef(null);\n const tabListRef = React.useRef(null);\n\n const getTabsMeta = () => {\n const tabsNode = tabsRef.current;\n let tabsMeta;\n\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect(); // create a new object with ClientRect class props + scrollLeft\n\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(tabsNode, theme.direction),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right\n };\n }\n\n let tabMeta;\n\n if (tabsNode && value !== false) {\n const children = tabListRef.current.children;\n\n if (children.length > 0) {\n const tab = children[valueToIndex.get(value)];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!tab) {\n console.error([`MUI: The \\`value\\` provided to the Tabs component is invalid.`, `None of the Tabs' children match with \"${value}\".`, valueToIndex.keys ? `You can provide one of the following values: ${Array.from(valueToIndex.keys()).join(', ')}.` : null].join('\\n'));\n }\n }\n\n tabMeta = tab ? tab.getBoundingClientRect() : null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (process.env.NODE_ENV !== 'test' && !warnedOnceTabPresent && tabMeta && tabMeta.width === 0 && tabMeta.height === 0) {\n tabsMeta = null;\n console.error(['MUI: The `value` provided to the Tabs component is invalid.', `The Tab with this \\`value\\` (\"${value}\") is not part of the document layout.`, \"Make sure the tab item is present in the document or that it's not `display: none`.\"].join('\\n'));\n warnedOnceTabPresent = true;\n }\n }\n }\n }\n\n return {\n tabsMeta,\n tabMeta\n };\n };\n\n const updateIndicatorState = useEventCallback(() => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n let startValue = 0;\n let startIndicator;\n\n if (vertical) {\n startIndicator = 'top';\n\n if (tabMeta && tabsMeta) {\n startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n }\n } else {\n startIndicator = isRtl ? 'right' : 'left';\n\n if (tabMeta && tabsMeta) {\n const correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n startValue = (isRtl ? -1 : 1) * (tabMeta[startIndicator] - tabsMeta[startIndicator] + correction);\n }\n }\n\n const newIndicatorStyle = {\n [startIndicator]: startValue,\n // May be wrong until the font is loaded.\n [size]: tabMeta ? tabMeta[size] : 0\n }; // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n\n if (isNaN(indicatorStyle[startIndicator]) || isNaN(indicatorStyle[size])) {\n setIndicatorStyle(newIndicatorStyle);\n } else {\n const dStart = Math.abs(indicatorStyle[startIndicator] - newIndicatorStyle[startIndicator]);\n const dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n\n if (dStart >= 1 || dSize >= 1) {\n setIndicatorStyle(newIndicatorStyle);\n }\n }\n });\n\n const scroll = (scrollValue, {\n animation = true\n } = {}) => {\n if (animation) {\n animate(scrollStart, tabsRef.current, scrollValue, {\n duration: theme.transitions.duration.standard\n });\n } else {\n tabsRef.current[scrollStart] = scrollValue;\n }\n };\n\n const moveTabsScroll = delta => {\n let scrollValue = tabsRef.current[scrollStart];\n\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1); // Fix for Edge\n\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n\n scroll(scrollValue);\n };\n\n const getScrollSize = () => {\n const containerSize = tabsRef.current[clientSize];\n let totalSize = 0;\n const children = Array.from(tabListRef.current.children);\n\n for (let i = 0; i < children.length; i += 1) {\n const tab = children[i];\n\n if (totalSize + tab[clientSize] > containerSize) {\n // If the first item is longer than the container size, then only scroll\n // by the container size.\n if (i === 0) {\n totalSize = containerSize;\n }\n\n break;\n }\n\n totalSize += tab[clientSize];\n }\n\n return totalSize;\n };\n\n const handleStartScrollClick = () => {\n moveTabsScroll(-1 * getScrollSize());\n };\n\n const handleEndScrollClick = () => {\n moveTabsScroll(getScrollSize());\n }; // TODO Remove as browser support for hidding the scrollbar\n // with CSS improves.\n\n\n const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {\n setScrollerStyle({\n overflow: null,\n scrollbarWidth\n });\n }, []);\n\n const getConditionalElements = () => {\n const conditionalElements = {};\n conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/_jsx(TabsScrollbarSize, {\n onChange: handleScrollbarSizeChange,\n className: clsx(classes.scrollableX, classes.hideScrollbar)\n }) : null;\n const scrollButtonsActive = displayScroll.start || displayScroll.end;\n const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);\n conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, _extends({\n orientation: orientation,\n direction: isRtl ? 'right' : 'left',\n onClick: handleStartScrollClick,\n disabled: !displayScroll.start\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/_jsx(ScrollButtonComponent, _extends({\n orientation: orientation,\n direction: isRtl ? 'left' : 'right',\n onClick: handleEndScrollClick,\n disabled: !displayScroll.end\n }, TabScrollButtonProps, {\n className: clsx(classes.scrollButtons, TabScrollButtonProps.className)\n })) : null;\n return conditionalElements;\n };\n\n const scrollSelectedIntoView = useEventCallback(animation => {\n const {\n tabsMeta,\n tabMeta\n } = getTabsMeta();\n\n if (!tabMeta || !tabsMeta) {\n return;\n }\n\n if (tabMeta[start] < tabsMeta[start]) {\n // left side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n scroll(nextScrollStart, {\n animation\n });\n } else if (tabMeta[end] > tabsMeta[end]) {\n // right side of button is out of view\n const nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n scroll(nextScrollStart, {\n animation\n });\n }\n });\n const updateScrollButtonState = useEventCallback(() => {\n if (scrollable && scrollButtons !== false) {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollWidth,\n clientWidth\n } = tabsRef.current;\n let showStartScroll;\n let showEndScroll;\n\n if (vertical) {\n showStartScroll = scrollTop > 1;\n showEndScroll = scrollTop < scrollHeight - clientHeight - 1;\n } else {\n const scrollLeft = getNormalizedScrollLeft(tabsRef.current, theme.direction); // use 1 for the potential rounding error with browser zooms.\n\n showStartScroll = isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n showEndScroll = !isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n }\n\n if (showStartScroll !== displayScroll.start || showEndScroll !== displayScroll.end) {\n setDisplayScroll({\n start: showStartScroll,\n end: showEndScroll\n });\n }\n }\n });\n React.useEffect(() => {\n const handleResize = debounce(() => {\n // If the Tabs component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/33276\n // TODO: Add tests that will ensure the component is not failing when\n // replaced by Suspense with a fallback, once React is updated to version 18\n if (tabsRef.current) {\n updateIndicatorState();\n updateScrollButtonState();\n }\n });\n const win = ownerWindow(tabsRef.current);\n win.addEventListener('resize', handleResize);\n let resizeObserver;\n\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n Array.from(tabListRef.current.children).forEach(child => {\n resizeObserver.observe(child);\n });\n }\n\n return () => {\n handleResize.clear();\n win.removeEventListener('resize', handleResize);\n\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [updateIndicatorState, updateScrollButtonState]);\n const handleTabsScroll = React.useMemo(() => debounce(() => {\n updateScrollButtonState();\n }), [updateScrollButtonState]);\n React.useEffect(() => {\n return () => {\n handleTabsScroll.clear();\n };\n }, [handleTabsScroll]);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n updateIndicatorState();\n updateScrollButtonState();\n });\n React.useEffect(() => {\n // Don't animate on the first render.\n scrollSelectedIntoView(defaultIndicatorStyle !== indicatorStyle);\n }, [scrollSelectedIntoView, indicatorStyle]);\n React.useImperativeHandle(action, () => ({\n updateIndicator: updateIndicatorState,\n updateScrollButtons: updateScrollButtonState\n }), [updateIndicatorState, updateScrollButtonState]);\n\n const indicator = /*#__PURE__*/_jsx(TabsIndicator, _extends({}, TabIndicatorProps, {\n className: clsx(classes.indicator, TabIndicatorProps.className),\n ownerState: ownerState,\n style: _extends({}, indicatorStyle, TabIndicatorProps.style)\n }));\n\n let childIndex = 0;\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n valueToIndex.set(childValue, childIndex);\n const selected = childValue === value;\n childIndex += 1;\n return /*#__PURE__*/React.cloneElement(child, _extends({\n fullWidth: variant === 'fullWidth',\n indicator: selected && !mounted && indicator,\n selected,\n selectionFollowsFocus,\n onChange,\n textColor,\n value: childValue\n }, childIndex === 1 && value === false && !child.props.tabIndex ? {\n tabIndex: 0\n } : {}));\n });\n\n const handleKeyDown = event => {\n const list = tabListRef.current;\n const currentFocus = ownerDocument(list).activeElement; // Keyboard navigation assumes that [role=\"tab\"] are siblings\n // though we might warn in the future about nested, interactive elements\n // as a a11y violation\n\n const role = currentFocus.getAttribute('role');\n\n if (role !== 'tab') {\n return;\n }\n\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n\n if (orientation === 'horizontal' && isRtl) {\n // swap previousItemKey with nextItemKey\n previousItemKey = 'ArrowRight';\n nextItemKey = 'ArrowLeft';\n }\n\n switch (event.key) {\n case previousItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, previousItem);\n break;\n\n case nextItemKey:\n event.preventDefault();\n moveFocus(list, currentFocus, nextItem);\n break;\n\n case 'Home':\n event.preventDefault();\n moveFocus(list, null, nextItem);\n break;\n\n case 'End':\n event.preventDefault();\n moveFocus(list, null, previousItem);\n break;\n\n default:\n break;\n }\n };\n\n const conditionalElements = getConditionalElements();\n return /*#__PURE__*/_jsxs(TabsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref,\n as: component\n }, other, {\n children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/_jsxs(TabsScroller, {\n className: classes.scroller,\n ownerState: ownerState,\n style: {\n overflow: scrollerStyle.overflow,\n [vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth\n },\n ref: tabsRef,\n onScroll: handleTabsScroll,\n children: [/*#__PURE__*/_jsx(FlexContainer, {\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-orientation\": orientation === 'vertical' ? 'vertical' : null,\n className: classes.flexContainer,\n ownerState: ownerState,\n onKeyDown: handleKeyDown,\n ref: tabListRef,\n role: \"tablist\",\n children: children\n }), mounted && indicator]\n }), conditionalElements.scrollButtonEnd]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: refType,\n\n /**\n * If `true`, the scroll buttons aren't forced hidden on mobile.\n * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.\n * @default false\n */\n allowScrollButtonsMobile: PropTypes.bool,\n\n /**\n * The label for the Tabs as a string.\n */\n 'aria-label': PropTypes.string,\n\n /**\n * An id or list of ids separated by a space that label the Tabs.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * If `true`, the tabs are centered.\n * This prop is intended for large views.\n * @default false\n */\n centered: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Determines the color of the indicator.\n * @default 'primary'\n */\n indicatorColor: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child (number)\n */\n onChange: PropTypes.func,\n\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * The component used to render the scroll buttons.\n * @default TabScrollButton\n */\n ScrollButtonComponent: PropTypes.elementType,\n\n /**\n * Determine behavior of scroll buttons when tabs are set to scroll:\n *\n * - `auto` will only present them when not all the items are visible.\n * - `true` will always present them.\n * - `false` will never present them.\n *\n * By default the scroll buttons are hidden on mobile.\n * This behavior can be disabled with `allowScrollButtonsMobile`.\n * @default 'auto'\n */\n scrollButtons: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOf(['auto', false, true]),\n\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * Props applied to the tab indicator element.\n * @default {}\n */\n TabIndicatorProps: PropTypes.object,\n\n /**\n * Props applied to the [`TabScrollButton`](/material-ui/api/tab-scroll-button/) element.\n * @default {}\n */\n TabScrollButtonProps: PropTypes.object,\n\n /**\n * Determines the color of the `Tab`.\n * @default 'primary'\n */\n textColor: PropTypes.oneOf(['inherit', 'primary', 'secondary']),\n\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `false`.\n */\n value: PropTypes.any,\n\n /**\n * Determines additional display behavior of the tabs:\n *\n * - `scrollable` will invoke scrolling properties and allow for horizontally\n * scrolling (or swiping) of the tab bar.\n * -`fullWidth` will make the tabs grow to use all the available space,\n * which should be used for small views, like on mobile.\n * - `standard` will render the default state.\n * @default 'standard'\n */\n variant: PropTypes.oneOf(['fullWidth', 'scrollable', 'standard']),\n\n /**\n * If `true`, the scrollbar is visible. It can be useful when displaying\n * a long vertical list of tabs.\n * @default false\n */\n visibleScrollbar: PropTypes.bool\n} : void 0;\nexport default Tabs;","import React from 'react';\n\nimport {Tabs as MuiTabs, TabsProps as MuiTabsProps} from '@mui/material';\n\nimport {useTabsProvider} from './';\nimport {styled, WithMuiPropOverrides} from '../Theme';\n\nconst TabsRoot = styled(MuiTabs, {\n\tslot: 'Root',\n})(({theme}) => ({\n\tflex: '0 0 auto',\n}));\n\nexport interface TabsProps\n\textends Omit, 'onChange'> {\n\t// Overriding to enforce `number` as tab value\n\tonChange?: (event: React.SyntheticEvent, value: number) => void;\n}\n\n/**\n * Wrapper for `@material-ui/Tabs`\\\n * Provides some common overrides, and accepts all the same props as the component it wraps\n */\nexport const TabsPrimitive = (props: TabsProps) => {\n\tconst tabs = useTabsProvider();\n\treturn (\n\t\t\n\t);\n};\n\nexport const Tabs = React.memo(TabsPrimitive);\nexport default Tabs;\n","import {useCallback, useEffect, useState} from 'react';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\n\nexport interface UseTabsProps {\n\tafterChange?: (newIndex: number, oldIndex: number) => void;\n\t/**\n\t * Provides the ability to check the new tab index vs the current tab index\n\t * and return `false` if the switch should be ignored\n\t */\n\tbeforeChange?: (newIndex: number, currentIndex: number) => boolean | void;\n\t/**\n\t * Index to be considered `active`\\\n\t * NOTE: Changes from this will supress before/after callbacks\n\t */\n\tindex?: number;\n}\n\n/**\n * Active tab management\n * @param options \n * @example\n const handleBeforeChange = useCallback((newIndex, currentIndex) => {\n return foo !== \"bar\";\n }, [foo]);\n const tabs = useTabs({\n beforeChange: handleBeforeChange,\n });\n return (\n \n \n \n \n );\n */\nexport const useTabs = ({\n\tafterChange,\n\tbeforeChange,\n\tindex,\n}: UseTabsProps = {}) => {\n\tconst [activeTabIndex, setActiveTabIndex] = useState(index || 0);\n\n\tuseEffect(() => {\n\t\tsetActiveTabIndex(index || 0);\n\t}, [index]);\n\n\t// useWhenChangedEffect(index, setActiveTabIndex);\n\n\tconst setTab = useCallback(\n\t\t(index: number) => {\n\t\t\tsetActiveTabIndex((activeTabIndex) => {\n\t\t\t\t// If the index is the same, or the `beforeChange` callback opts to prevent\n\t\t\t\tif (\n\t\t\t\t\tactiveTabIndex === index ||\n\t\t\t\t\tbeforeChange?.(index, activeTabIndex) === false\n\t\t\t\t)\n\t\t\t\t\treturn activeTabIndex;\n\n\t\t\t\t// Notify and update\n\t\t\t\tafterChange?.(index, activeTabIndex);\n\t\t\t\treturn index;\n\t\t\t});\n\t\t},\n\t\t[afterChange, beforeChange],\n\t);\n\n\tconst handleChange = useCallback((event, index: number) => setTab(index), [\n\t\tsetTab,\n\t]);\n\n\treturn {\n\t\tactiveTabIndex,\n\t\thandleChange,\n\t\tsetTab,\n\t};\n};\n\nexport default useTabs;\n","import React, {createContext, useContext, useImperativeHandle} from 'react';\n\nimport type {ArgumentsType} from '@netx/core/typings';\nimport {useTabs} from './useTabs';\n\nexport type TabsContextType = ReturnType;\n\nexport type TabsProviderRef = React.RefObject;\n\nexport type TabsProviderChildrenProps = TabsContextType;\n\nexport const TabsContext = createContext(\n\tundefined,\n);\n\nexport const useTabsProvider = () => {\n\tconst context = useContext(TabsContext);\n\tif (context === undefined) {\n\t\tthrow new Error('`useTabsProvider` must be used within a `TabsProvider`');\n\t}\n\treturn context;\n};\n\nexport type TabsProviderProps = ArgumentsType[0] & {\n\tref?: TabsProviderRef;\n\tchildren:\n\t\t| React.ReactNode\n\t\t| ((props: TabsProviderChildrenProps) => React.ReactNode);\n};\n\nconst TabsProviderInner = (\n\t{children, ...props}: TabsProviderProps,\n\tref: TabsProviderRef,\n) => {\n\tconst tabs = useTabs(props);\n\n\tuseImperativeHandle(ref, () => tabs, [tabs]);\n\n\treturn (\n\t\t\n\t\t\t{typeof children === 'function' ? children(tabs) : children}\n\t\t\n\t);\n};\n\nexport const TabsProviderPrimitive = React.forwardRef<\n\tTabsContextType,\n\tTabsProviderProps\n>(TabsProviderInner);\n\n/**\n * Tabs context provider\n * @example\n * \n * \t...\n * \n * @example\n * \n * \t{(tabs) => (\n * \t\t...\n * \t)}\n * \n */\nexport const TabsProvider = TabsProviderPrimitive;\n\nexport default TabsProvider;\n","module.exports = function(obj){\nvar __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\nwith(obj||{}){\n__p+='\\n\\n
\\n\t\\n\t';\n\n\t// this i18n value is handled in the initialize method of assetConstituentView.js\n\t\n__p+='\\n\t\\n\t'+\n((__t=( title ))==null?'':__t)+\n'\\n
';\n}\nreturn __p;\n};\n","module.exports = function(obj){\nvar __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\nwith(obj||{}){\n__p+='\\n\\n
\\n\t
\\n\t\\n\t
\\n\t\t';\n if( keyframeReady ) { \n__p+='\\n\t\t\t\"'+\n((__t=(\\n\t\t';\n } \n__p+='\\n\t\t
\\n\t\t\t
\\n\t\t\t\t\\n\t\t\t
\\n\t\t\t'+\n((__t=( progressMessage ))==null?'':__t)+\n'\\n\t\t
\\n\t
\\n
\\n
\\n\t
\\n\t\t'+\n((__t=( title ))==null?'':__t)+\n'\\n\t
\\n\t
\\n\t\t'+\n((__t=( duration.pretty ))==null?'':__t)+\n'\\n\t
\\n
';\n}\nreturn __p;\n};\n","import NetxQueryDam, {SuccessResponse} from '@netx/core/lib/netx-query-dam';\nexport type {QueryError} from '@netx/core/lib/netx-query-dam';\n\nexport type SemanticObjectAutoListItem = {\n\tlabel: string;\n\tvalue: string; // value id\n};\n\n/**\n * `getSemanticObjectAutoList` request params\n * (what is used to send to server)\n */\nexport type GetSemanticObjectAutoListRequestOptions = {\n\tvalue: string;\n\tid: number; // TODO: semantic object id\n};\n\n/**\n * `getSemanticObjectAutoList` request\n * (what gets sent to the server)\n */\nexport type GetSemanticObjectAutoListRequest = [\n\tGetSemanticObjectAutoListRequestOptions['value'],\n\tGetSemanticObjectAutoListRequestOptions['id'],\n];\n\n/**\n * `getSemanticObjectAutoList` response\n * (what comes back from the server)\n */\nexport type GetSemanticObjectAutoListResponse = SuccessResponse<\n\tSemanticObjectAutoListItem[]\n>;\n\n/**\n * `getSemanticObjectAutoList` result\n * (what is utilized from the server response)\n */\nexport type GetSemanticObjectAutoListResult = SemanticObjectAutoListItem[];\n\nexport const getSemanticObjectAutoListEndpoint = 'getSemanticObjectAutoList';\n\n/**\n * Semantic object auto list\n */\nexport const getSemanticObjectAutoList = async ({\n\tid,\n\tvalue,\n}: GetSemanticObjectAutoListRequestOptions) => {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: GetSemanticObjectAutoListRequest = [value, id];\n\n\treturn client\n\t\t.post(\n\t\t\tgetSemanticObjectAutoListEndpoint,\n\t\t\trequestParams,\n\t\t)\n\t\t.then((response) => response.data.result);\n};\n\nexport default getSemanticObjectAutoList;\n","import NetxQueryDam, {SuccessResponse} from '@netx/core/lib/netx-query-dam';\nexport type {QueryError} from '@netx/core/lib/netx-query-dam';\n\nimport {AttributeId} from '../types';\n\n/**\n * `metadataAutoCompleteLookup` request params\n * (what is used to send to server)\n */\nexport type MetadataAutoCompleteLookupRequestOptions = {\n\tid: AttributeId;\n\tvalue: string;\n};\n\n/**\n * `metadataAutoCompleteLookup` request\n * (what gets sent to the server)\n */\nexport type MetadataAutoCompleteLookupRequest = [\n\tMetadataAutoCompleteLookupRequestOptions['id'],\n\tMetadataAutoCompleteLookupRequestOptions['value'],\n];\n\n/**\n * `metadataAutoCompleteLookup` response\n * (what comes back from the server)\n */\nexport type MetadataAutoCompleteLookupResponse = SuccessResponse<\n\tMetadataAutoCompleteLookupResult\n>;\n\n/**\n * `metadataAutoCompleteLookup` result\n * (what is utilized from the server response)\n */\nexport type MetadataAutoCompleteLookupResult = string[];\n\nexport const metadataAutoCompleteLookupEndpoint = 'metadataAutoCompleteLookup';\n\n/**\n * Metadata auto list (tags, which get the data from datasets)\n */\nexport const metadataAutoCompleteLookup = async ({\n\tid,\n\tvalue,\n}: MetadataAutoCompleteLookupRequestOptions) => {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: MetadataAutoCompleteLookupRequest = [id, value];\n\n\treturn client\n\t\t.post(\n\t\t\tmetadataAutoCompleteLookupEndpoint,\n\t\t\trequestParams,\n\t\t)\n\t\t.then((response) => response.data.result);\n};\n\nexport default metadataAutoCompleteLookup;\n","import NetxQueryDam, {SuccessResponse} from '@netx/core/lib/netx-query-dam';\nexport type {QueryError} from '@netx/core/lib/netx-query-dam';\n\nimport {AttributeId} from '../types';\n\n/**\n * `metadataDatasetAutoList` request params\n * (what is used to send to server)\n */\nexport type MetadataDatasetAutoListRequestOptions = {\n\tid: AttributeId;\n\tvalue: string;\n};\n\n/**\n * `metadataDatasetAutoList` request\n * (what gets sent to the server)\n */\nexport type MetadataDatasetAutoListRequest = [\n\tMetadataDatasetAutoListRequestOptions['id'],\n\tMetadataDatasetAutoListRequestOptions['value'],\n];\n\n/**\n * `metadataDatasetAutoList` response\n * (what comes back from the server)\n */\nexport type MetadataDatasetAutoListResponse = SuccessResponse<\n\tMetadataDatasetAutoListResult\n>;\n\n/**\n * `metadataDatasetAutoList` result\n * (what is utilized from the server response)\n */\nexport type MetadataDatasetAutoListResult = string[];\n\nexport const metadataDatasetAutoListEndpoint = 'metadataDatasetAutoList';\n\n/**\n * Metadata dataset auto list\n */\nexport const metadataDatasetAutoList = async ({\n\tid,\n\tvalue,\n}: MetadataDatasetAutoListRequestOptions) => {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: MetadataDatasetAutoListRequest = [id, value];\n\n\treturn client\n\t\t.post(\n\t\t\tmetadataDatasetAutoListEndpoint,\n\t\t\trequestParams,\n\t\t)\n\t\t.then((response) => response.data.result);\n};\n\nexport default metadataDatasetAutoList;\n","import NetxQueryDam, {SuccessResponse} from '@netx/core/lib/netx-query-dam';\nexport type {QueryError} from '@netx/core/lib/netx-query-dam';\n\nimport {AttributeId} from '../types';\n\n/**\n * `vocabularyValueLookup` request params\n * (what is used to send to server)\n */\nexport type VocabularyValueLookupRequestOptions = {\n\tid: AttributeId;\n\tvalue: string;\n};\n\n/**\n * `vocabularyValueLookup` request\n * (what gets sent to the server)\n */\nexport type VocabularyValueLookupRequest = [\n\tVocabularyValueLookupRequestOptions['id'],\n\tVocabularyValueLookupRequestOptions['value'],\n];\n\n/**\n * `vocabularyValueLookup` response\n * (what comes back from the server)\n */\nexport type VocabularyValueLookupResponse = SuccessResponse<\n\tVocabularyValueLookupResult\n>;\n\n/**\n * `vocabularyValueLookup` result\n * (what is utilized from the server response)\n */\nexport type VocabularyValueLookupResult = string[];\n\nexport const vocabularyValueLookupEndpoint = 'vocabularyValueLookup';\n\n/**\n * Vocabulary value auto list\n */\nexport const vocabularyValueLookup = async ({\n\tid,\n\tvalue,\n}: VocabularyValueLookupRequestOptions) => {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: VocabularyValueLookupRequest = [id, value];\n\n\treturn client\n\t\t.post(\n\t\t\tvocabularyValueLookupEndpoint,\n\t\t\trequestParams,\n\t\t)\n\t\t.then((response) => response.data.result);\n};\n\nexport default vocabularyValueLookup;\n","/**\n* Detect Element Resize Plugin for jQuery\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\n+function( root, factory ) {\n\t// CommonJS\n\tif (typeof exports == \"object\") {\n\t\tmodule.exports = factory( module.exports, require('jquery') );\n\t}\n\t// Browser\n\telse {\n\t\tfactory( this, this.jQuery );\n\t}\n}( this, function ( root, $ ) {\n\t// Already on the $.fn namespace\n\tif( $.fn.resize.overriden ) {\n\t\treturn $.fn.resize;\n\t}\n\t\n\tvar attachEvent = document.attachEvent,\n\t\tstylesCreated = false;\n\t\n\tvar jQuery_resize = $.fn.resize;\n\t\n\t$.fn.resize = function(callback) {\n\t\treturn this.each(function() {\n\t\t\tif(this == window)\n\t\t\t\tjQuery_resize.call(jQuery(this), callback);\n\t\t\telse\n\t\t\t\taddResizeListener(this, callback);\n\t\t});\n\t}\n\n\t$.fn.removeResize = function(callback) {\n\t\treturn this.each(function() {\n\t\t\tremoveResizeListener(this, callback);\n\t\t});\n\t}\n\t\n\tif (!attachEvent) {\n\t\tvar requestFrame = (function(){\n\t\t\tvar raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||\n\t\t\t\t\t\t\t\tfunction(fn){ return window.setTimeout(fn, 20); };\n\t\t\treturn function(fn){ return raf(fn); };\n\t\t})();\n\t\t\n\t\tvar cancelFrame = (function(){\n\t\t\tvar cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame ||\n\t\t\t\t\t\t\t\t window.clearTimeout;\n\t\t return function(id){ return cancel(id); };\n\t\t})();\n\n\t\tfunction resetTriggers(element){\n\t\t\tvar triggers = element.__resizeTriggers__,\n\t\t\t\texpand = triggers.firstElementChild,\n\t\t\t\tcontract = triggers.lastElementChild,\n\t\t\t\texpandChild = expand.firstElementChild;\n\t\t\tcontract.scrollLeft = contract.scrollWidth;\n\t\t\tcontract.scrollTop = contract.scrollHeight;\n\t\t\texpandChild.style.width = expand.offsetWidth + 1 + 'px';\n\t\t\texpandChild.style.height = expand.offsetHeight + 1 + 'px';\n\t\t\texpand.scrollLeft = expand.scrollWidth;\n\t\t\texpand.scrollTop = expand.scrollHeight;\n\t\t};\n\n\t\tfunction checkTriggers(element){\n\t\t\treturn element.offsetWidth != element.__resizeLast__.width ||\n\t\t\t\t\t\t element.offsetHeight != element.__resizeLast__.height;\n\t\t}\n\t\t\n\t\tfunction scrollListener(e){\n\t\t\tvar element = this;\n\t\t\tresetTriggers(this);\n\t\t\tif (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n\t\t\tthis.__resizeRAF__ = requestFrame(function(){\n\t\t\t\tif (checkTriggers(element)) {\n\t\t\t\t\telement.__resizeLast__.width = element.offsetWidth;\n\t\t\t\t\telement.__resizeLast__.height = element.offsetHeight;\n\t\t\t\t\telement.__resizeListeners__.forEach(function(fn){\n\t\t\t\t\t\tfn.call(element, e);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\t\n\t\t/* Detect CSS Animations support to detect element display/re-attach */\n\t\tvar animation = false,\n\t\t\tanimationstring = 'animation',\n\t\t\tkeyframeprefix = '',\n\t\t\tanimationstartevent = 'animationstart',\n\t\t\tdomPrefixes = 'Webkit Moz O ms'.split(' '),\n\t\t\tstartEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n\t\t\tpfx = '';\n\t\t{\n\t\t\tvar elm = document.createElement('fakeelement');\n\t\t\tif( elm.style.animationName !== undefined ) { animation = true; } \n\t\t\t\n\t\t\tif( animation === false ) {\n\t\t\t\tfor( var i = 0; i < domPrefixes.length; i++ ) {\n\t\t\t\t\tif( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {\n\t\t\t\t\t\tpfx = domPrefixes[ i ];\n\t\t\t\t\t\tanimationstring = pfx + 'Animation';\n\t\t\t\t\t\tkeyframeprefix = '-' + pfx.toLowerCase() + '-';\n\t\t\t\t\t\tanimationstartevent = startEvents[ i ];\n\t\t\t\t\t\tanimation = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar animationName = 'resizeanim';\n\t\tvar animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n\t\tvar animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n\t}\n\t\n\tfunction createStyles() {\n\t\tif (!stylesCreated) {\n\t\t\t//opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n\t\t\tvar css = (animationKeyframes ? animationKeyframes : '') +\n\t\t\t\t\t'.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' +\n\t\t\t\t\t'.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n\t\t\t\thead = document.head || document.getElementsByTagName('head')[0],\n\t\t\t\tstyle = document.createElement('style');\n\t\t\t\n\t\t\tstyle.type = 'text/css';\n\t\t\tif (style.styleSheet) {\n\t\t\t\tstyle.styleSheet.cssText = css;\n\t\t\t} else {\n\t\t\t\tstyle.appendChild(document.createTextNode(css));\n\t\t\t}\n\n\t\t\thead.appendChild(style);\n\t\t\tstylesCreated = true;\n\t\t}\n\t}\n\t\n\twindow.addResizeListener = function(element, fn){\n\t\tif (attachEvent) element.attachEvent('onresize', fn);\n\t\telse {\n\t\t\tif (!element.__resizeTriggers__) {\n\t\t\t\tif (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n\t\t\t\tcreateStyles();\n\t\t\t\telement.__resizeLast__ = {};\n\t\t\t\telement.__resizeListeners__ = [];\n\t\t\t\t(element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n\t\t\t\telement.__resizeTriggers__.innerHTML = '
' +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'
';\n\t\t\t\telement.appendChild(element.__resizeTriggers__);\n\t\t\t\tresetTriggers(element);\n\t\t\t\telement.addEventListener('scroll', scrollListener, true);\n\t\t\t\t\n\t\t\t\t/* Listen for a css animation to detect element display/re-attach */\n\t\t\t\tanimationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function(e) {\n\t\t\t\t\tif(e.animationName == animationName)\n\t\t\t\t\t\tresetTriggers(element);\n\t\t\t\t});\n\t\t\t}\n\t\t\telement.__resizeListeners__.push(fn);\n\t\t}\n\t};\n\t\n\twindow.removeResizeListener = function(element, fn){\n\t\tif (attachEvent) element.detachEvent('onresize', fn);\n\t\telse {\n\t\t\telement.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\t\t\tif (!element.__resizeListeners__.length) {\n\t\t\t\ttry {\n\t\t\t\t\telement.removeEventListener('scroll', scrollListener, true);\n\t\t\t\t\telement.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n\t\t\t\t}\n\t\t\t\tcatch( e ) {\n\t\t\t\t\t// If you hit this error then most likely the element was removed from the DOM prior to calling removeResizeListener\n\t\t\t\t\t// And you are probably in IE\n\t\t\t\t\t// console.log( e );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t// jQuery already has a $.fn.resize\n\t$.fn.resize.overriden = true;\n\t\n\treturn $.fn.resize;\n} );","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const ACTION_MENU_CLASS_NAME = 'ActionMenu';\nexport const ACTION_MENU_CLASS_SLOTS = ['root', 'skeleton'] as const;\n\nexport type ActionMenuClassSlot = typeof ACTION_MENU_CLASS_SLOTS[number];\n\nexport interface ActionMenuClasses {\n\troot: string;\n\tskeleton: string;\n\tfab: string;\n\ticon: string;\n}\n\nexport type ActionMenuClassKey = keyof ActionMenuClasses;\n\nexport const getActionMenuUtilityClass = (slot: ActionMenuClassSlot) =>\n\tgenerateUtilityClass(ACTION_MENU_CLASS_NAME, slot);\n\nexport const actionMenuClasses = generateUtilityClasses<\n\tkeyof ActionMenuClasses\n>(ACTION_MENU_CLASS_NAME, ['root', 'skeleton', 'fab', 'icon']);\nexport default actionMenuClasses;\n","// TODO: There is a way to combine this with the header action component\n// I just need a little more time\nimport React, {useCallback, useEffect, useState} from 'react';\nimport clsx from 'clsx';\nimport {i18n} from '@netx/core/i18n';\n\nimport {faEllipsisV as EllipsisIcon} from '@fortawesome/pro-solid-svg-icons';\nimport {\n\tMenu as MuiMenu,\n\tMenuProps as MuiMenuProps,\n\tPopoverProps,\n\tSkeleton,\n\tSkeletonProps,\n\tDivider,\n} from '@mui/material';\nimport type {ReactAction} from '@netx/core/bootstrap';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport ActionButton, {ActionButtonProps} from '../ActionButton';\nimport MenuItem from '../MenuItem';\nimport {\n\tactionMenuClasses,\n\tgetActionMenuUtilityClass,\n\tActionMenuClasses,\n\tACTION_MENU_CLASS_NAME,\n} from './actionMenuClasses';\n\nexport type ActionMenuOwnerState = WithClasses<\n\tActionMenuClasses,\n\t{\n\t\tbuttonVariant: 'fab' | 'icon';\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: ActionMenuOwnerState) => {\n\tconst {buttonVariant, classes} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t\tskeleton: ['skeleton', buttonVariant],\n\t};\n\treturn composeClasses(slots, getActionMenuUtilityClass, classes);\n};\n\nconst ActionMenuSkeleton = styled(Skeleton, {\n\tname: ACTION_MENU_CLASS_NAME,\n\tslot: 'Skeleton',\n})(({theme}) => ({\n\t[`&.${actionMenuClasses.fab}`]: {\n\t\theight: 56,\n\t\twidth: 56,\n\t},\n\t[`&.${actionMenuClasses.icon}`]: {\n\t\theight: 42,\n\t\twidth: 42,\n\t},\n}));\n\nexport interface ActionMenuProps\n\textends Partial>>,\n\t\tWithClasses {\n\tactions: Array;\n\tbuttonVariant?: 'fab' | 'icon';\n\talwaysUseEllipsis?: boolean;\n\tdisabled?: boolean;\n\tloading?: boolean;\n\ttitle?: string;\n\tActionButtonProps?: Partial;\n\tSkeletonProps?: Partial;\n\tonAction?: (action: ReactAction) => void;\n\tonClick?: () => void;\n}\n\nconst onActionDefault = (action: ReactAction) => action?.cb();\n\nconst ActionMenu = React.forwardRef(\n\t(\n\t\t{\n\t\t\tclasses: _classes,\n\t\t\tclassName,\n\t\t\tactions,\n\t\t\talwaysUseEllipsis,\n\t\t\tbuttonVariant = 'icon',\n\t\t\tdisabled,\n\t\t\tloading,\n\t\t\ttabIndex,\n\t\t\ttitle,\n\t\t\tActionButtonProps,\n\t\t\tonAction = onActionDefault,\n\t\t\tonClose,\n\t\t\tonClick,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [anchorEl, setAnchorEl] = useState();\n\t\tconst [open, setOpen] = useState(false);\n\n\t\tconst ownerState: ActionMenuOwnerState = {\n\t\t\tbuttonVariant,\n\t\t};\n\t\tconst classes = useUtilityClasses(ownerState);\n\n\t\tuseEffect(() => {\n\t\t\treturn () => {\n\t\t\t\tonClose?.({}, '' as any);\n\t\t\t};\n\t\t}, [onClose]);\n\n\t\tconst handleClose = useCallback['onClose']>(\n\t\t\t(event: React.MouseEvent, reason) => {\n\t\t\t\tevent.persist();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tsetOpen(false);\n\t\t\t\tonClose?.(event, reason);\n\t\t\t},\n\t\t\t[onClose],\n\t\t);\n\n\t\t/** Menu exited */\n\t\tconst handleExited = useCallback(\n\t\t\t(node) => {\n\t\t\t\tsetAnchorEl(undefined);\n\t\t\t\tprops.TransitionProps?.onExited?.(node);\n\t\t\t},\n\t\t\t[props.TransitionProps?.onExited],\n\t\t);\n\n\t\tconst handleShowClick = useCallback(\n\t\t\t(event: React.MouseEvent) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tonClick?.();\n\n\t\t\t\tsetAnchorEl(event.currentTarget);\n\t\t\t\tsetOpen(true);\n\t\t\t},\n\t\t\t[onClick],\n\t\t);\n\n\t\tconst handleActionClick = useCallback(\n\t\t\t(action: ReactAction) =>\n\t\t\t\t(\n\t\t\t\t\tevent: React.MouseEvent<\n\t\t\t\t\t\tHTMLAnchorElement | HTMLLIElement,\n\t\t\t\t\t\tMouseEvent\n\t\t\t\t\t>,\n\t\t\t\t) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t\tonAction(action);\n\t\t\t\t\tonClose?.(event, 'escapeKeyDown');\n\t\t\t\t},\n\t\t\t[onAction],\n\t\t);\n\n\t\tconst buttonTitle = title != null ? title : i18n.t('i18n.openMenu');\n\n\t\tif (!actions.length) return null;\n\t\t// TODO: we should just be doing this - need to see if anything is relying on us doing it the hard way below\n\t\t// if (loading) return \n\n\t\t// Just show the single action as an icon button\n\t\tif (\n\t\t\t!loading &&\n\t\t\t!alwaysUseEllipsis &&\n\t\t\tactions.length === 1 &&\n\t\t\t!Array.isArray(actions[0])\n\t\t) {\n\t\t\tconst action = actions[0];\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{loading ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{anchorEl ? (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tTransitionProps={{\n\t\t\t\t\t\t\t...props.TransitionProps,\n\t\t\t\t\t\t\tonExited: handleExited,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions.map((action, index) => {\n\t\t\t\t\t\t\tif (Array.isArray(action))\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tindex > 0 ? : null,\n\t\t\t\t\t\t\t\t\t...action.map((action) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)),\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport default ActionMenu;\n","import {ContextMenuServiceProvider} from './ContextMenuService';\nexport * from './ContextMenuService';\nexport * from './ContextMenu';\nexport default ContextMenuServiceProvider;\n\nexport * from './withContextMenu';\n","import {status as assetStatuses} from './properties/asset';\nimport AssetModel from './models/asset';\nimport {getViewCollection, getViewModel} from '@netx/core/lib/utils';\nimport {isMobile} from '@netx/core/lib/underscore-netx';\n\nimport Netx from '@netx/core/bootstrap';\n\n/**\n * @method\n * @return {boolean}\n */\nexport const assetCanRepurpose = (v) => {\n\t// DAM-13617\n\tif (isMobile()) return false;\n\n\tconst model = getViewModel(v);\n\n\t// Once the property repurposeAvailability is considering\n\t// the availability of the engines required to repurpose\n\t// an asset ( https://jira.netx.net/browse/DAM-4564 ) we\n\t// can rely more heavily on `repurposeAvailability` until\n\t// that time... ~SAK\n\t// Vars\n\tvar supported, viewNames;\n\n\t// var manualUserLevel = Netx.getPreference('sys.minUserLevelForManualRepurpose') || 0,\n\t// canManuallyRepurpose = Netx.getUserLevel() >= manualUserLevel;\n\n\tif (model) {\n\t\tviewNames = model.get('viewNames');\n\t\t// Video\n\t\tif (_.indexOf(viewNames, 'previewH264') > -1) {\n\t\t\tsupported = true;\n\t\t}\n\t\t// Document\n\t\telse if (_.indexOf(viewNames, 'previewPDF') > -1) {\n\t\t\t// Not supported\n\t\t}\n\t\t// Audio\n\t\telse if (_.indexOf(viewNames, 'previewMp3') > -1) {\n\t\t\tsupported = true;\n\t\t}\n\t\t// Image\n\t\telse if (_.indexOf(v.model.get('fileFormatFamily'), 'image') > -1) {\n\t\t\tsupported = true;\n\t\t}\n\t\t// We don't know what it is\n\t\telse {\n\t\t\tsupported = false;\n\t\t}\n\t}\n\treturn (\n\t\tsupported && assetIsPresent(v) && v.model.get('repurposeAvailability') > 0\n\t);\n};\n\n/**\n * Can asset be part of a review\n * @method\n * @return {boolean}\n */\nexport const assetCanReview = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && model.hasFormatFamily('image');\n};\n\n/**\n * Is asset expiration enabled\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetExpirationEnabled = (v) => {\n\treturn Netx.getPreference('asset.expire.enabled', true);\n};\n\n/**\n * Is asset set to expire\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetExpires = (v) => {\n\tconst model = getViewModel(v);\n\n\tif (!model) return false;\n\n\t// Verify we have a timestamp\n\tvar expirationDate = parseInt(model.get('expirationDate'));\n\tif (!expirationDate || isNaN(expirationDate)) return false;\n\n\t// Make into date\n\texpirationDate = new Date(expirationDate);\n\treturn (\n\t\tNetx.getPreference('asset.expire.enabled', true) &&\n\t\t!isNaN(expirationDate.getTime())\n\t);\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasConstituents_clips = (v) => {\n\tconst model = getViewModel(v);\n\treturn (\n\t\tmodel &&\n\t\tNetx.getPreference('asset.constituent.videoClips.enabled', true) &&\n\t\t_.indexOf(model.get('fileFormatFamily'), 'video') > -1\n\t);\n};\n\nexport const assetHasClips = assetHasConstituents_clips;\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasConstituents_keyframes = (v) => {\n\tconst model = getViewModel(v);\n\treturn (\n\t\tmodel &&\n\t\tmodel.get('constituentType') === 'time' &&\n\t\t_.size(model.get('constituentIds'))\n\t);\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasConstituents_layers = (v) => {\n\tconst model = getViewModel(v);\n\treturn (\n\t\tmodel &&\n\t\tmodel.get('constituentType') === 'layer' &&\n\t\t_.size(model.get('constituentIds'))\n\t);\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasConstituents_pages = (v) => {\n\tconst model = getViewModel(v);\n\treturn (\n\t\tmodel &&\n\t\tmodel.get('constituentType') === 'page' &&\n\t\t_.size(model.get('constituentIds'))\n\t);\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasDetail = (v) => {\n\treturn true;\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasLinks = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && model.get('relatedAvailable');\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasMetadata = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && model.get('metadataAvailable');\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasPreview = (v) => {\n\treturn true;\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasProjects = (v) => {\n\t// TODO: have the asset marked with a boolean as well\n\treturn Netx.getPreference('review.enabled', true);\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasReviews = (v) => {\n\tconst canReview = assetCanReview(v);\n\t// TODO: have the asset marked with a boolean as well\n\treturn canReview && Netx.getPreference('review.enabled', true);\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasVersions = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && _.size(model.get('versionIds'));\n};\n\n/**\n * For react (non action enabler)\n */\nexport const assetIsEditable = (assetData) => {\n\tconst model = new AssetModel(assetData);\n\tconst canEdit = model.allows('modify');\n\tmodel.garbageCollect();\n\treturn canEdit;\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetHasViews = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && _.size(model.get('viewIds'));\n};\n\n/**\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetIsImage = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && _.indexOf(v.model.get('fileFormatFamily'), 'image') > -1;\n};\n\n/**\n * Asset status is set to 1\n * @param {Backbone.View} v Backbone view\n * @return {boolean}\n */\nexport const assetIsOnline = (v) => {\n\tconst model = getViewModel(v);\n\tif (!model) return false;\n\tvar stat = model.get('status');\n\treturn stat === assetStatuses.ONLINE;\n};\n\n/**\n * This test is cribbed from Flex: it checks the asset.status value to make sure the asset file is actually available on the DAM.\n * @method\n * @param {Netx.View} v Instance of Netx View\n * @returns {boolean}\n */\nexport const assetIsPresent = (v) => {\n\tconst model = getViewModel(v);\n\n\tif (!model) return false;\n\tvar stat = model.get('status');\n\treturn (\n\t\tstat === assetStatuses.ONLINE ||\n\t\tstat === assetStatuses.TEMP ||\n\t\tstat === assetStatuses.NEARLINE\n\t);\n};\n\n/**\n * Asset locked\n * @method\n * @returns {boolean}\n */\nexport const assetLocked = (v) => {\n\tconst model = getViewModel(v);\n\treturn model.get('readOnly') === 1;\n};\n\n/**\n * @method\n * @returns {boolean}\n */\nexport const assetNotCheckedOut = (v) => {\n\tconst collection = getViewCollection(v);\n\tconst model = getViewModel(v);\n\tvar status;\n\tif (model && model.has('status')) {\n\t\t// check for model\n\t\tstatus = model.get('status');\n\t} else if (\n\t\tcollection &&\n\t\tcollection.length &&\n\t\tcollection.at(0).has('status')\n\t) {\n\t\t// check for first model in collection\n\t\tstatus = collection.at(0).get('status');\n\t} else {\n\t\t// Sometimes we hit this test before the collection on the view in question has any assets\n\t\t// I have provided the view in question with the console warn - in the case of DAM-8288 it is assetListView\n\t\t// and yes, the collection is not ready quite yet. The real thing is what is assetListView doing on an action\n\t\t// requestion this test in the first place\n\t\t// Something must be testing on sync before data is actually available(?)\n\t\t// Perhaps a reset is happening prior to setting data?\n\t\t// It is more than likely coming from the `share:asset:menu` or `share:asset:download` action\n\t\t// Can't imagine it is coming from the `asset:checkout` action\n\t\t// In any case there is no need to blow up the app over it\n\n\t\t// UPDATE: spotted in the wild ... a reset is indeed happening:\n\t\t// user clicks on a category, routing to #category/:id\n\t\t// #category/:id handler triggers category:routed,\n\t\t// category:routed triggers category:current:update,\n\t\t// category:current:update calls Netx.category.current.set(data) to update the ID ... **\n\t\t// change listener on categoryID calls Netx.category.current.fetch() to fetch category ...\n\t\t// a weird fetch wrapper in category.js triggers a fake 'sync' event, **\n\t\t// a sync listener on Netx.category.current triggers category:getAssets,\n\t\t// triggering Netx.category.assets.getCategoryAssets(),\n\t\t// which is a weird wrapper method that sets its own .selection object before fetching ... **\n\t\t// Netx.category.assets has a change listener on its .selection object to !!! call .reset() before a fetch !!! **\n\t\t// and that 'reset' event triggers .configureSyncActions() in the Netx.View actions code **\n\t\t// ... which triggers this enabler at a moment when v.collection.length is certain to be 0.\n\t\t//\n\t\t// Out of all that, at least the lines ending in ** are suspect. Possibly this will work\n\t\t// better as we start to untangle the spagetting of method wrapers & bad RPC method patterns.\n\t\t// (And I don't get why we need to reset categoryAssets before fetching ... the code says\n\t\t// it makes something faster, but we should revisit that.)\n\t\t//\n\t\t// On the other hand, there's no need to issue this warning when we have a collection without assets in it.\n\t\t// Simply disabling the action in that case seems sensible.\n\t\tif (collection && collection.length == 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Other than that, I'm not sure this ever happens -- but let's be warned if it does.\n\t\telse {\n\t\t\t// console.warn('tried to test asset checkout status on non-asset', v.template);\n\t\t\t// Just make the assumption it is checked out... because... well, logic is flawed somewhere and saying it is checked out\n\t\t\t// in this odd case won't hurt anyone\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn status !== assetStatuses.CHECKOUT;\n};\n\n/**\n * Check that asset isn't pending\n * @method\n * @return {boolean}\n */\nexport const assetNotPending = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && _.isUndefined(Netx.asset.pending.get(model.id));\n};\n\n/**\n * Are assets requests enabled?\n * @method\n * @return {boolean}\n */\nexport const assetRequestsEnabled = (v) => {\n\treturn Netx.getPreference('asset.assetRequestEnabled', true);\n};\n\n/**\n * Asset unlocked\n * @method\n * @returns {boolean}\n */\nexport const assetUnlocked = (v) => {\n\tconst model = getViewModel(v);\n\treturn model && model.get('readOnly') === 0;\n};\n\n/**\n * @method\n * @returns {boolean}\n */\nexport const canCheckIn = (v) => {\n\tconst model = getViewModel(v);\n\tif (!model) return false;\n\n\tconst checkedOutBy = model.get('checkout');\n\tif (\n\t\tcheckedOutBy &&\n\t\tNetx.getUserLevel() < 9 &&\n\t\tcheckedOutBy !== Netx.getUser().id\n\t)\n\t\treturn false;\n\n\tconst status = model.get('status');\n\t// https://jira.netx.net/browse/DAM-13370\n\treturn (\n\t\tstatus === assetStatuses.NEARLINE ||\n\t\tstatus === assetStatuses.ONLINE ||\n\t\tstatus === assetStatuses.TEMP ||\n\t\tstatus === assetStatuses.CHECKOUT\n\t);\n};\n\n/**\n * @method\n * @returns {boolean}\n */\nexport const canCheckOut = (v) => {\n\tconst model = getViewModel(v);\n\tvar status = model.get('status');\n\n\treturn (\n\t\tassetNotCheckedOut(v) &&\n\t\t// https://jira.netx.net/browse/DAM-13370\n\t\t(status === assetStatuses.NEARLINE ||\n\t\t\tstatus === assetStatuses.ONLINE ||\n\t\t\tstatus === assetStatuses.TEMP)\n\t);\n};\n\n/**\n * Can delete attribute\n * @param {Backbone.View} v Backbone view\n * @return {boolean}\n */\nexport const canDeleteAttribute = (v) => {\n\t// Currently there is nothing to test since `asset.moveDescriptionToAttrTab` went away\n\treturn true;\n};\n\n/**\n * Can we download a version\n * @method\n * @return {boolean}\n */\nexport const canDownloadVersion = (v) => {\n\t// For now we must assume that we are dealing with the current asset\n\treturn Netx.asset.current.allows('download');\n};\n\n/**\n * Can edit attribute\n * @param {Backbone.View} v Backbone view\n * @return {boolean}\n */\nexport const canEditAttribute = (v) => {\n\t// Currently there is nothing to test since `asset.moveDescriptionToAttrTab` went away\n\treturn true;\n};\n\n/**\n * Can expire asset\n * @method\n * @returns {boolean}\n */\nexport const canExpire = (v) => {\n\tconst model = getViewModel(v);\n\tif (!model) return false;\n\n\treturn (\n\t\tassetExpirationEnabled(v) &&\n\t\tNetx.getUserLevel() >= 7 &&\n\t\tmodel.allows('delete')\n\t);\n};\n\n/**\n * Can lock asset\n * @method\n * @returns {boolean}\n */\nexport const canLock = (v) => {\n\tconst model = getViewModel(v);\n\tif (!model || !model.allows || !model.allows('modify')) return false;\n\n\treturn model && model.get('readOnly') !== 1 && Netx.getUserLevel() >= 9;\n};\n\n/**\n * Can manage versions\n * @method\n * @return {boolean}\n */\nexport const canManageVersions = (v) => {\n\t// For now we must assume that we are dealing with the current asset\n\t// we can not manage versions if the asset cannot be checked out\n\treturn (\n\t\tNetx.asset.current.allows('modify') &&\n\t\tcanCheckOut({model: Netx.asset.current})\n\t);\n};\n\n/**\n * Can an asset be removed from a category - an asset must belong to at least one category\n * If an asset does not have more than one category, it may not be removed.\n * This does not check permissions - for that use `module:core/lib/netx-enablers#categoryAndAssetCanEdit`\n * This just tests that an asset can be removed from a category (assuming permissions are good)\n * @param {Backbone.View} v Backbone view\n * @return {boolean}\n */\nexport const canRemoveAssetFromCategory = (v) => {\n\tconst model = getViewModel(v);\n\t// Where model is an asset category from an asset category list\n\tvar asset = model && model.get('asset');\n\treturn ((asset && asset.get('categories')) || []).length > 1;\n};\n\n/**\n * Can unlock asset\n * @method\n * @returns {boolean}\n */\nexport const canUnlock = (v) => {\n\tconst model = getViewModel(v);\n\tif (!model) return false;\n\n\treturn model && model.get('readOnly') === 1 && Netx.getUserLevel() >= 9;\n};\n\n/**\n * @method\n * @returns {boolean}\n */\nexport const canZoomAsset = (v) => {\n\tconst model = getViewModel(v);\n\treturn (\n\t\tmodel &&\n\t\tassetIsPresent(v) &&\n\t\tmodel.get('zoomAvailable') &&\n\t\t// HACKaround for HTML-868:\n\t\tmodel.get('filewidth') > 0 &&\n\t\tmodel.get('fileheight') > 0\n\t);\n};\n\nexport const checksumEnabled = (v) => {\n\treturn Netx.getPreference('metadata.checksumEnabled', true);\n};\n\n/**\n * Can we use semantic metadata\n * @method\n */\nexport const semanticsEnabled = (v) => {\n\treturn Netx.getPreference('metadata.semantic.enabled', true);\n};\n\n/**\n * Can unexpire asset\n * @method\n * @returns {boolean}\n */\nexport const canUnexpire = (v) => {\n\tconst model = getViewModel(v);\n\tif (!model) return false;\n\n\tif (!assetExpires(v)) return false;\n\n\treturn Netx.getUserLevel() >= 7 && model.allows('delete');\n};\n","import {SearchTypeAdvancedRaw} from './advancedRaw/constants';\nimport {SearchTypeAttributeHistory} from './attributeHistory/constants';\nimport {SearchTypeCart} from './cart/constants';\nimport {SearchTypeCategoryId} from './categoryId/constants';\nimport {SearchTypeCheckouts} from './checkouts/constants';\nimport {SearchTypeContents} from './contents/constants';\nimport {SearchTypeDate} from './date/constants';\nimport {SearchTypeExpiration} from './expiration/constants';\nimport {SearchTypeFileAspect} from './fileAspect/constants';\nimport {SearchTypeFileFormat} from './fileFormat/constants';\nimport {SearchTypeFileFormatFamily} from './fileFormatFamily/constants';\nimport {SearchTypeFileSize} from './fileSize/constants';\nimport {SearchTypeKeyword} from './keyword/constants';\nimport {SearchTypeMetadata} from './metadata/constants';\nimport {SearchTypeSavedSearch} from './savedSearch/constants';\nimport {SearchTypeUser} from './user/constants';\nimport {SearchTypeVisual} from './visual/constants';\n\nexport enum SearchType {\n\tACTIVE_TEMPLATES = 28 as const,\n\tADVANCED_RAW = SearchTypeAdvancedRaw,\n\tATTRIBUTE_HISTORY = SearchTypeAttributeHistory,\n\tBRANCH_CHILDREN = 15 as const,\n\tCART = SearchTypeCart,\n\tCATEGORY_ID = SearchTypeCategoryId,\n\t/** not used - see CATEGORY_ID */\n\tCATEGORY_NAME = 5 as const,\n\tCHECKOUTS = SearchTypeCheckouts,\n\tCONTENTS = SearchTypeContents,\n\tCUSTOM = 9 as const,\n\tDATE = SearchTypeDate,\n\tEXPIRE = SearchTypeExpiration,\n\tFILE_ASPECT = SearchTypeFileAspect,\n\tFILE_FORMAT = SearchTypeFileFormat,\n\tFILE_FORMAT_FAMILY = SearchTypeFileFormatFamily,\n\tFILE_SIZE = SearchTypeFileSize,\n\tFILE_STATUS = 25 as const,\n\tKEYWORD = SearchTypeKeyword,\n\tLAST_SEARCH = 12 as const,\n\tLOCATION = 20 as const,\n\tMETADATA = SearchTypeMetadata,\n\tMETADATA_HISTORY = 18 as const,\n\tPROOF = 21 as const,\n\tRATING = 19 as const,\n\tRELATED_ASSETS = 11 as const,\n\tREVIEWS = 16 as const,\n\tSAVED_SEARCH = SearchTypeSavedSearch,\n\t/** no longer a thing really but still there */\n\tTHESAURUS = 14 as const,\n\tUSER = SearchTypeUser,\n\tVISUAL = SearchTypeVisual,\n}\n\nexport const EditableRuleTypes = [\n\tSearchType.ADVANCED_RAW,\n\tSearchType.CATEGORY_ID,\n\tSearchType.CHECKOUTS,\n\tSearchType.CONTENTS,\n\tSearchType.DATE,\n\tSearchType.FILE_ASPECT,\n\tSearchType.FILE_FORMAT,\n\tSearchType.FILE_FORMAT_FAMILY,\n\tSearchType.FILE_SIZE,\n\tSearchType.KEYWORD,\n\tSearchType.METADATA,\n\tSearchType.USER,\n\tSearchType.VISUAL,\n];\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const MENU_ITEM_CLASS_NAME = 'MenuItem';\n\nexport const MENU_ITEM_CLASS_SLOTS = ['root', 'icon'] as const;\n\nexport type MenuItemClassSlot = typeof MENU_ITEM_CLASS_SLOTS[number];\n\nexport interface MenuItemClasses {\n\troot: string;\n\ticon: string;\n\tseverityDefault: string;\n\tseverityError: string;\n}\n\nexport type MenuItemClassKey = keyof MenuItemClasses;\n\nexport const getMenuItemUtilityClass = (slot: MenuItemClassSlot) =>\n\tgenerateUtilityClass(MENU_ITEM_CLASS_NAME, slot);\n\nexport const menuItemClasses: MenuItemClasses = generateUtilityClasses(\n\tMENU_ITEM_CLASS_NAME,\n\t['root', 'icon', 'severityError', 'severityDefault'],\n);\n\nexport default menuItemClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {IconProp} from '@fortawesome/fontawesome-svg-core';\nimport {\n\tListItemIcon,\n\tListItemText,\n\tMenuItem as MuiMenuItem,\n\tMenuItemProps as MuiMenuItemProps,\n} from '@mui/material';\nimport {unstable_capitalize} from '@mui/utils';\nimport {ColoredAvatar} from '@netx/core-components/ColoredAvatar';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport {\n\tmenuItemClasses,\n\tgetMenuItemUtilityClass,\n\tMenuItemClasses,\n\tMENU_ITEM_CLASS_NAME,\n} from './menuItemClasses';\n\ntype MenuItemUtiltiyClassProps = WithClasses<\n\tMenuItemClasses,\n\t{\n\t\tseverity: 'default' | 'error';\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: MenuItemUtiltiyClassProps) => {\n\tconst {classes, severity} = ownerState;\n\tconst slots = {\n\t\troot: ['root', severity && `severity${unstable_capitalize(severity)}`],\n\t\ticon: ['icon'],\n\t};\n\treturn composeClasses(slots, getMenuItemUtilityClass, classes);\n};\n\nconst MenuItemRoot = styled(MuiMenuItem, {\n\tname: MENU_ITEM_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\t[`&.${menuItemClasses.severityError}`]: {\n\t\tbackground: theme.palette.error.main,\n\t\t[`&, & .${menuItemClasses.icon}`]: {\n\t\t\tcolor: theme.palette.error.contrastText,\n\t\t},\n\t\t'&:hover, &:active, &:focus': {\n\t\t\tbackground: theme.palette.error.dark,\n\t\t},\n\t},\n}));\n\nconst MenuItemIcon = styled(ListItemIcon, {\n\tname: MENU_ITEM_CLASS_NAME,\n\tslot: 'Icon',\n})(({theme}) => ({\n\t// TODO: this is repeated in multiple places\n\t// need to see about getting it under one roof - possibly under the overrides in mui theme file\n\t// It is just too darn wide\n\tminWidth: 42,\n}));\n\nconst MenuItemColorAvatar = styled(ColoredAvatar)(({theme}) => ({\n\theight: 20,\n\twidth: 20,\n\tfontSize: 12,\n\tmarginRight: theme.spacing(2),\n}));\n\nexport interface MenuItemProps\n\textends Omit>, 'classes'>,\n\t\tWithClasses<\n\t\t\tMenuItemClasses,\n\t\t\t{\n\t\t\t\tcolorAvatar?: boolean;\n\t\t\t\ticon?: IconProp;\n\t\t\t\tsecondaryText?: string;\n\t\t\t\tseverity?: 'default' | 'error';\n\t\t\t\ttext: string;\n\t\t\t}\n\t\t> {}\n\nexport const MenuItemPrimitive = React.forwardRef(\n\t(\n\t\t{\n\t\t\tclasses: _classes,\n\t\t\tclassName,\n\t\t\tcolorAvatar,\n\t\t\ticon,\n\t\t\tsecondaryText,\n\t\t\tseverity = 'default',\n\t\t\ttext,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst classes = useUtilityClasses({classes: _classes, severity});\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{icon ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : colorAvatar ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n);\n\nexport const MenuItem = MenuItemPrimitive;\n\nexport default MenuItem;\n","import {AttributeAction, AttributeValue} from '../types';\nimport {ATTRIBUTE_ACTION} from '../constants';\n\nimport {isEmptyValue, valuesMatch} from '@netx/core-components/Form/util';\n\n/**\n * Does the applied action change the attributes value\n */\nexport const actionChangesValue = (\n\tcurrentValue: AttributeValue,\n\toriginalValue: AttributeValue,\n\taction: AttributeAction,\n) => {\n\treturn (\n\t\taction === ATTRIBUTE_ACTION.CLEAR ||\n\t\t([ATTRIBUTE_ACTION.APPEND, ATTRIBUTE_ACTION.REMOVE].includes(\n\t\t\taction as any,\n\t\t) &&\n\t\t\t!isEmptyValue(currentValue) &&\n\t\t\t!valuesMatch(currentValue, originalValue))\n\t);\n};\n\nexport default actionChangesValue;\n","import {\n\tDateAttribute,\n\tMultiSelectAttribute,\n\tNumberAttribute,\n\tSelectAttribute,\n\tSemanticAttribute,\n\tTagAttribute,\n\tTagVocabAttribute,\n\tTextAttribute,\n} from '../components/EditableAttribute';\n\nimport {AttributeType} from '../types';\n\n/** Given an attribute type, will return the attribute component */\nexport const getAttributeComponent = (type: AttributeType) => {\n\tswitch (type) {\n\t\tcase 1:\n\t\tcase 2: // Textarea\n\t\t\treturn TextAttribute;\n\t\tcase 3:\n\t\t\treturn SelectAttribute;\n\t\tcase 4:\n\t\t\treturn DateAttribute;\n\t\tcase 5:\n\t\t\treturn MultiSelectAttribute;\n\t\tcase 6:\n\t\t\treturn TagAttribute;\n\t\tcase 7:\n\t\t\treturn NumberAttribute;\n\t\tcase 12:\n\t\t\treturn SemanticAttribute;\n\t\tcase 13:\n\t\t\treturn TagVocabAttribute;\n\t}\n};\n\nexport default getAttributeComponent;\n","import type {AttributeTemplate, AttributesWorking} from '../types';\n\n/**\n * Get attribute templates that will be effected by a lookup\n * @param attributeTemplate The attribute template being lookup up from\n * @param attributeTemplates The attribute templates that could be involved\n * @return Attribute templates effected\n */\nexport const getTemplatesEffectedByLookup = (\n\tattributeTemplate: AttributeTemplate,\n\tattributeTemplates: AttributeTemplate[],\n) => {\n\treturn attributeTemplate.keyDatasets.reduce(\n\t\t(attributesWorking, id) => {\n\t\t\treturn {\n\t\t\t\t...attributesWorking,\n\t\t\t\t...attributeTemplates.reduce(\n\t\t\t\t\t(attributesWorking, attr) => {\n\t\t\t\t\t\tif (!attr.targetDatasets.includes(id)) return attributesWorking;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...attributesWorking,\n\t\t\t\t\t\t\t[attr.attributeid]: true,\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t{\n\t\t\t// the template passed in will be considered part of this\n\t\t\t[attributeTemplate.attributeid]: true,\n\t\t},\n\t);\n};\n\nexport default getTemplatesEffectedByLookup;\n","export const isSystemAttribute = (id: number) => {\n\treturn id < 0;\n};\n\nexport default isSystemAttribute;\n","import {isEmptyValue} from '@netx/core-components/Form/util';\nimport {AttributeValue} from '../types';\n\n/**\n * Normalize attribute value to array\\\n * In a lot of cases saving attribute values to the server, it wants an array\n * regardless of the multi-value ability of an attribute template type\\\n */\nexport const normalizeValue = (value: AttributeValue) => {\n\tif (isEmptyValue(value)) return [];\n\tif (!Array.isArray(value)) return [value];\n\treturn value;\n};\n\nexport default normalizeValue;\n","import type {PermissionMatrix} from '../types';\nimport {PERMISSION_MATRIX_NAMES, PermissionMatrixName} from '../constants';\n\nexport {PermissionMatrixName} from '../constants';\n\nexport const allows = (\n\tpermissionMatrix: PermissionMatrix,\n\tperm?: PermissionMatrixName | null,\n) => {\n\tif (perm == null) return false;\n\tconst matrixIndex = PERMISSION_MATRIX_NAMES.indexOf(perm);\n\treturn permissionMatrix[matrixIndex] === 1;\n};\n\nexport default allows;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { createElement, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport invariant from 'invariant';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\nvar Manager = function () {\n function Manager() {\n _classCallCheck(this, Manager);\n\n _defineProperty(this, \"refs\", {});\n }\n\n _createClass(Manager, [{\n key: \"add\",\n value: function add(collection, ref) {\n if (!this.refs[collection]) {\n this.refs[collection] = [];\n }\n\n this.refs[collection].push(ref);\n }\n }, {\n key: \"remove\",\n value: function remove(collection, ref) {\n var index = this.getIndex(collection, ref);\n\n if (index !== -1) {\n this.refs[collection].splice(index, 1);\n }\n }\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.active;\n }\n }, {\n key: \"getActive\",\n value: function getActive() {\n var _this = this;\n\n return this.refs[this.active.collection].find(function (_ref) {\n var node = _ref.node;\n return node.sortableInfo.index == _this.active.index;\n });\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(collection, ref) {\n return this.refs[collection].indexOf(ref);\n }\n }, {\n key: \"getOrderedRefs\",\n value: function getOrderedRefs() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection;\n return this.refs[collection].sort(sortByIndex);\n }\n }]);\n\n return Manager;\n}();\n\nfunction sortByIndex(_ref2, _ref3) {\n var index1 = _ref2.node.sortableInfo.index;\n var index2 = _ref3.node.sortableInfo.index;\n return index1 - index2;\n}\n\nfunction arrayMove(array, from, to) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined') {\n console.warn(\"Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move\");\n }\n }\n\n array = array.slice();\n array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);\n return array;\n}\nfunction omit(obj, keysToOmit) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (keysToOmit.indexOf(key) === -1) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\nvar events = {\n end: ['touchend', 'touchcancel', 'mouseup'],\n move: ['touchmove', 'mousemove'],\n start: ['touchstart', 'mousedown']\n};\nvar vendorPrefix = function () {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return '';\n }\n\n var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe'];\n var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];\n\n switch (pre) {\n case 'ms':\n return 'ms';\n\n default:\n return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : '';\n }\n}();\nfunction setInlineStyles(node, styles) {\n Object.keys(styles).forEach(function (key) {\n node.style[key] = styles[key];\n });\n}\nfunction setTranslate3d(node, translate) {\n node.style[\"\".concat(vendorPrefix, \"Transform\")] = translate == null ? '' : \"translate3d(\".concat(translate.x, \"px,\").concat(translate.y, \"px,0)\");\n}\nfunction setTransitionDuration(node, duration) {\n node.style[\"\".concat(vendorPrefix, \"TransitionDuration\")] = duration == null ? '' : \"\".concat(duration, \"ms\");\n}\nfunction closest(el, fn) {\n while (el) {\n if (fn(el)) {\n return el;\n }\n\n el = el.parentNode;\n }\n\n return null;\n}\nfunction limit(min, max, value) {\n return Math.max(min, Math.min(value, max));\n}\n\nfunction getPixelValue(stringValue) {\n if (stringValue.substr(-2) === 'px') {\n return parseFloat(stringValue);\n }\n\n return 0;\n}\n\nfunction getElementMargin(element) {\n var style = window.getComputedStyle(element);\n return {\n bottom: getPixelValue(style.marginBottom),\n left: getPixelValue(style.marginLeft),\n right: getPixelValue(style.marginRight),\n top: getPixelValue(style.marginTop)\n };\n}\nfunction provideDisplayName(prefix, Component$$1) {\n var componentName = Component$$1.displayName || Component$$1.name;\n return componentName ? \"\".concat(prefix, \"(\").concat(componentName, \")\") : prefix;\n}\nfunction getScrollAdjustedBoundingClientRect(node, scrollDelta) {\n var boundingClientRect = node.getBoundingClientRect();\n return {\n top: boundingClientRect.top + scrollDelta.top,\n left: boundingClientRect.left + scrollDelta.left\n };\n}\nfunction getPosition(event) {\n if (event.touches && event.touches.length) {\n return {\n x: event.touches[0].pageX,\n y: event.touches[0].pageY\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n return {\n x: event.changedTouches[0].pageX,\n y: event.changedTouches[0].pageY\n };\n } else {\n return {\n x: event.pageX,\n y: event.pageY\n };\n }\n}\nfunction isTouchEvent(event) {\n return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length;\n}\nfunction getEdgeOffset(node, parent) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n left: 0,\n top: 0\n };\n\n if (!node) {\n return undefined;\n }\n\n var nodeOffset = {\n left: offset.left + node.offsetLeft,\n top: offset.top + node.offsetTop\n };\n\n if (node.parentNode === parent) {\n return nodeOffset;\n }\n\n return getEdgeOffset(node.parentNode, parent, nodeOffset);\n}\nfunction getTargetIndex(newIndex, prevIndex, oldIndex) {\n if (newIndex < oldIndex && newIndex > prevIndex) {\n return newIndex - 1;\n } else if (newIndex > oldIndex && newIndex < prevIndex) {\n return newIndex + 1;\n } else {\n return newIndex;\n }\n}\nfunction getLockPixelOffset(_ref) {\n var lockOffset = _ref.lockOffset,\n width = _ref.width,\n height = _ref.height;\n var offsetX = lockOffset;\n var offsetY = lockOffset;\n var unit = 'px';\n\n if (typeof lockOffset === 'string') {\n var match = /^[+-]?\\d*(?:\\.\\d*)?(px|%)$/.exec(lockOffset);\n invariant(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by \"px\" or \"%\". Given %s', lockOffset);\n offsetX = parseFloat(lockOffset);\n offsetY = parseFloat(lockOffset);\n unit = match[1];\n }\n\n invariant(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset);\n\n if (unit === '%') {\n offsetX = offsetX * width / 100;\n offsetY = offsetY * height / 100;\n }\n\n return {\n x: offsetX,\n y: offsetY\n };\n}\nfunction getLockPixelOffsets(_ref2) {\n var height = _ref2.height,\n width = _ref2.width,\n lockOffset = _ref2.lockOffset;\n var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset];\n invariant(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset);\n\n var _offsets = _slicedToArray(offsets, 2),\n minLockOffset = _offsets[0],\n maxLockOffset = _offsets[1];\n\n return [getLockPixelOffset({\n height: height,\n lockOffset: minLockOffset,\n width: width\n }), getLockPixelOffset({\n height: height,\n lockOffset: maxLockOffset,\n width: width\n })];\n}\n\nfunction isScrollable(el) {\n var computedStyle = window.getComputedStyle(el);\n var overflowRegex = /(auto|scroll)/;\n var properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.find(function (property) {\n return overflowRegex.test(computedStyle[property]);\n });\n}\n\nfunction getScrollingParent(el) {\n if (!(el instanceof HTMLElement)) {\n return null;\n } else if (isScrollable(el)) {\n return el;\n } else {\n return getScrollingParent(el.parentNode);\n }\n}\nfunction getContainerGridGap(element) {\n var style = window.getComputedStyle(element);\n\n if (style.display === 'grid') {\n return {\n x: getPixelValue(style.gridColumnGap),\n y: getPixelValue(style.gridRowGap)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar KEYCODE = {\n TAB: 9,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nvar NodeType = {\n Anchor: 'A',\n Button: 'BUTTON',\n Canvas: 'CANVAS',\n Input: 'INPUT',\n Option: 'OPTION',\n Textarea: 'TEXTAREA',\n Select: 'SELECT'\n};\nfunction cloneNode(node) {\n var selector = 'input, textarea, select, canvas, [contenteditable]';\n var fields = node.querySelectorAll(selector);\n var clonedNode = node.cloneNode(true);\n\n var clonedFields = _toConsumableArray(clonedNode.querySelectorAll(selector));\n\n clonedFields.forEach(function (field, i) {\n if (field.type !== 'file') {\n field.value = fields[i].value;\n }\n\n if (field.type === 'radio' && field.name) {\n field.name = \"__sortableClone__\".concat(field.name);\n }\n\n if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) {\n var destCtx = field.getContext('2d');\n destCtx.drawImage(fields[i], 0, 0);\n }\n });\n return clonedNode;\n}\n\nfunction sortableHandle(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableHandle, _React$Component);\n\n function WithSortableHandle() {\n _classCallCheck(this, WithSortableHandle);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WithSortableHandle).apply(this, arguments));\n }\n\n _createClass(WithSortableHandle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = findDOMNode(this);\n node.sortableHandle = true;\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, this.props));\n }\n }]);\n\n return WithSortableHandle;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableHandle', WrappedComponent)), _temp;\n}\nfunction isSortableHandle(node) {\n return node.sortableHandle != null;\n}\n\nvar AutoScroller = function () {\n function AutoScroller(container, onScrollCallback) {\n _classCallCheck(this, AutoScroller);\n\n this.container = container;\n this.onScrollCallback = onScrollCallback;\n }\n\n _createClass(AutoScroller, [{\n key: \"clear\",\n value: function clear() {\n if (this.interval == null) {\n return;\n }\n\n clearInterval(this.interval);\n this.interval = null;\n }\n }, {\n key: \"update\",\n value: function update(_ref) {\n var _this = this;\n\n var translate = _ref.translate,\n minTranslate = _ref.minTranslate,\n maxTranslate = _ref.maxTranslate,\n width = _ref.width,\n height = _ref.height;\n var direction = {\n x: 0,\n y: 0\n };\n var speed = {\n x: 1,\n y: 1\n };\n var acceleration = {\n x: 10,\n y: 10\n };\n var _this$container = this.container,\n scrollTop = _this$container.scrollTop,\n scrollLeft = _this$container.scrollLeft,\n scrollHeight = _this$container.scrollHeight,\n scrollWidth = _this$container.scrollWidth,\n clientHeight = _this$container.clientHeight,\n clientWidth = _this$container.clientWidth;\n var isTop = scrollTop === 0;\n var isBottom = scrollHeight - scrollTop - clientHeight === 0;\n var isLeft = scrollLeft === 0;\n var isRight = scrollWidth - scrollLeft - clientWidth === 0;\n\n if (translate.y >= maxTranslate.y - height / 2 && !isBottom) {\n direction.y = 1;\n speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height);\n } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) {\n direction.x = 1;\n speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width);\n } else if (translate.y <= minTranslate.y + height / 2 && !isTop) {\n direction.y = -1;\n speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height);\n } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) {\n direction.x = -1;\n speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width);\n }\n\n if (this.interval) {\n this.clear();\n this.isAutoScrolling = false;\n }\n\n if (direction.x !== 0 || direction.y !== 0) {\n this.interval = setInterval(function () {\n _this.isAutoScrolling = true;\n var offset = {\n left: speed.x * direction.x,\n top: speed.y * direction.y\n };\n _this.container.scrollTop += offset.top;\n _this.container.scrollLeft += offset.left;\n\n _this.onScrollCallback(offset);\n }, 5);\n }\n }\n }]);\n\n return AutoScroller;\n}();\n\nfunction defaultGetHelperDimensions(_ref) {\n var node = _ref.node;\n return {\n height: node.offsetHeight,\n width: node.offsetWidth\n };\n}\n\nfunction defaultShouldCancelStart(event) {\n var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button];\n\n if (interactiveElements.indexOf(event.target.tagName) !== -1) {\n return true;\n }\n\n if (closest(event.target, function (el) {\n return el.contentEditable === 'true';\n })) {\n return true;\n }\n\n return false;\n}\n\nvar propTypes = {\n axis: PropTypes.oneOf(['x', 'y', 'xy']),\n contentWindow: PropTypes.any,\n disableAutoscroll: PropTypes.bool,\n distance: PropTypes.number,\n getContainer: PropTypes.func,\n getHelperDimensions: PropTypes.func,\n helperClass: PropTypes.string,\n helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]),\n hideSortableGhost: PropTypes.bool,\n keyboardSortingTransitionDuration: PropTypes.number,\n lockAxis: PropTypes.string,\n lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n lockToContainerEdges: PropTypes.bool,\n onSortEnd: PropTypes.func,\n onSortMove: PropTypes.func,\n onSortOver: PropTypes.func,\n onSortStart: PropTypes.func,\n pressDelay: PropTypes.number,\n pressThreshold: PropTypes.number,\n keyCodes: PropTypes.shape({\n lift: PropTypes.arrayOf(PropTypes.number),\n drop: PropTypes.arrayOf(PropTypes.number),\n cancel: PropTypes.arrayOf(PropTypes.number),\n up: PropTypes.arrayOf(PropTypes.number),\n down: PropTypes.arrayOf(PropTypes.number)\n }),\n shouldCancelStart: PropTypes.func,\n transitionDuration: PropTypes.number,\n updateBeforeSortStart: PropTypes.func,\n useDragHandle: PropTypes.bool,\n useWindowAsScrollContainer: PropTypes.bool\n};\nvar defaultKeyCodes = {\n lift: [KEYCODE.SPACE],\n drop: [KEYCODE.SPACE],\n cancel: [KEYCODE.ESC],\n up: [KEYCODE.UP, KEYCODE.LEFT],\n down: [KEYCODE.DOWN, KEYCODE.RIGHT]\n};\nvar defaultProps = {\n axis: 'y',\n disableAutoscroll: false,\n distance: 0,\n getHelperDimensions: defaultGetHelperDimensions,\n hideSortableGhost: true,\n lockOffset: '50%',\n lockToContainerEdges: false,\n pressDelay: 0,\n pressThreshold: 5,\n keyCodes: defaultKeyCodes,\n shouldCancelStart: defaultShouldCancelStart,\n transitionDuration: 300,\n useWindowAsScrollContainer: false\n};\nvar omittedProps = Object.keys(propTypes);\nfunction validateProps(props) {\n invariant(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.');\n}\n\nfunction _finallyRethrows(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer(true, e);\n }\n\n if (result && result.then) {\n return result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n }\n\n return finalizer(false, value);\n}\nfunction sortableContainer(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableContainer, _React$Component);\n\n function WithSortableContainer(props) {\n var _this;\n\n _classCallCheck(this, WithSortableContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WithSortableContainer).call(this, props));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleStart\", function (event) {\n var _this$props = _this.props,\n distance = _this$props.distance,\n shouldCancelStart = _this$props.shouldCancelStart;\n\n if (event.button === 2 || shouldCancelStart(event)) {\n return;\n }\n\n _this.touched = true;\n _this.position = getPosition(event);\n var node = closest(event.target, function (el) {\n return el.sortableInfo != null;\n });\n\n if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) {\n var useDragHandle = _this.props.useDragHandle;\n var _node$sortableInfo = node.sortableInfo,\n index = _node$sortableInfo.index,\n collection = _node$sortableInfo.collection,\n disabled = _node$sortableInfo.disabled;\n\n if (disabled) {\n return;\n }\n\n if (useDragHandle && !closest(event.target, isSortableHandle)) {\n return;\n }\n\n _this.manager.active = {\n collection: collection,\n index: index\n };\n\n if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) {\n event.preventDefault();\n }\n\n if (!distance) {\n if (_this.props.pressDelay === 0) {\n _this.handlePress(event);\n } else {\n _this.pressTimer = setTimeout(function () {\n return _this.handlePress(event);\n }, _this.props.pressDelay);\n }\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"nodeIsChild\", function (node) {\n return node.sortableInfo.manager === _this.manager;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleMove\", function (event) {\n var _this$props2 = _this.props,\n distance = _this$props2.distance,\n pressThreshold = _this$props2.pressThreshold;\n\n if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) {\n var position = getPosition(event);\n var delta = {\n x: _this.position.x - position.x,\n y: _this.position.y - position.y\n };\n var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y);\n _this.delta = delta;\n\n if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) {\n clearTimeout(_this.cancelTimer);\n _this.cancelTimer = setTimeout(_this.cancel, 0);\n } else if (distance && combinedDelta >= distance && _this.manager.isActive()) {\n _this.handlePress(event);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleEnd\", function () {\n _this.touched = false;\n\n _this.cancel();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cancel\", function () {\n var distance = _this.props.distance;\n var sorting = _this.state.sorting;\n\n if (!sorting) {\n if (!distance) {\n clearTimeout(_this.pressTimer);\n }\n\n _this.manager.active = null;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handlePress\", function (event) {\n try {\n var active = _this.manager.getActive();\n\n var _temp6 = function () {\n if (active) {\n var _temp7 = function _temp7() {\n var index = _node.sortableInfo.index;\n var margin = getElementMargin(_node);\n var gridGap = getContainerGridGap(_this.container);\n\n var containerBoundingRect = _this.scrollContainer.getBoundingClientRect();\n\n var dimensions = _getHelperDimensions({\n index: index,\n node: _node,\n collection: _collection\n });\n\n _this.node = _node;\n _this.margin = margin;\n _this.gridGap = gridGap;\n _this.width = dimensions.width;\n _this.height = dimensions.height;\n _this.marginOffset = {\n x: _this.margin.left + _this.margin.right + _this.gridGap.x,\n y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y)\n };\n _this.boundingClientRect = _node.getBoundingClientRect();\n _this.containerBoundingRect = containerBoundingRect;\n _this.index = index;\n _this.newIndex = index;\n _this.axis = {\n x: _axis.indexOf('x') >= 0,\n y: _axis.indexOf('y') >= 0\n };\n _this.offsetEdge = getEdgeOffset(_node, _this.container);\n\n if (_isKeySorting) {\n _this.initialOffset = getPosition(_objectSpread({}, event, {\n pageX: _this.boundingClientRect.left,\n pageY: _this.boundingClientRect.top\n }));\n } else {\n _this.initialOffset = getPosition(event);\n }\n\n _this.initialScroll = {\n left: _this.scrollContainer.scrollLeft,\n top: _this.scrollContainer.scrollTop\n };\n _this.initialWindowScroll = {\n left: window.pageXOffset,\n top: window.pageYOffset\n };\n _this.helper = _this.helperContainer.appendChild(cloneNode(_node));\n setInlineStyles(_this.helper, {\n boxSizing: 'border-box',\n height: \"\".concat(_this.height, \"px\"),\n left: \"\".concat(_this.boundingClientRect.left - margin.left, \"px\"),\n pointerEvents: 'none',\n position: 'fixed',\n top: \"\".concat(_this.boundingClientRect.top - margin.top, \"px\"),\n width: \"\".concat(_this.width, \"px\")\n });\n\n if (_isKeySorting) {\n _this.helper.focus();\n }\n\n if (_hideSortableGhost) {\n _this.sortableGhost = _node;\n setInlineStyles(_node, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n _this.minTranslate = {};\n _this.maxTranslate = {};\n\n if (_isKeySorting) {\n var _ref = _useWindowAsScrollContainer ? {\n top: 0,\n left: 0,\n width: _this.contentWindow.innerWidth,\n height: _this.contentWindow.innerHeight\n } : _this.containerBoundingRect,\n containerTop = _ref.top,\n containerLeft = _ref.left,\n containerWidth = _ref.width,\n containerHeight = _ref.height;\n\n var containerBottom = containerTop + containerHeight;\n var containerRight = containerLeft + containerWidth;\n\n if (_this.axis.x) {\n _this.minTranslate.x = containerLeft - _this.boundingClientRect.left;\n _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width);\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = containerTop - _this.boundingClientRect.top;\n _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height);\n }\n } else {\n if (_this.axis.x) {\n _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2;\n _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2;\n }\n\n if (_this.axis.y) {\n _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2;\n _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2;\n }\n }\n\n if (_helperClass) {\n _helperClass.split(' ').forEach(function (className) {\n return _this.helper.classList.add(className);\n });\n }\n\n _this.listenerNode = event.touches ? _node : _this.contentWindow;\n\n if (_isKeySorting) {\n _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.addEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false);\n });\n }\n\n _this.setState({\n sorting: true,\n sortingIndex: index\n });\n\n if (_onSortStart) {\n _onSortStart({\n node: _node,\n index: index,\n collection: _collection,\n isKeySorting: _isKeySorting,\n nodes: _this.manager.getOrderedRefs(),\n helper: _this.helper\n }, event);\n }\n\n if (_isKeySorting) {\n _this.keyMove(0);\n }\n };\n\n var _this$props3 = _this.props,\n _axis = _this$props3.axis,\n _getHelperDimensions = _this$props3.getHelperDimensions,\n _helperClass = _this$props3.helperClass,\n _hideSortableGhost = _this$props3.hideSortableGhost,\n updateBeforeSortStart = _this$props3.updateBeforeSortStart,\n _onSortStart = _this$props3.onSortStart,\n _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer;\n var _node = active.node,\n _collection = active.collection;\n var _isKeySorting = _this.manager.isKeySorting;\n\n var _temp8 = function () {\n if (typeof updateBeforeSortStart === 'function') {\n _this._awaitingUpdateBeforeSortStart = true;\n\n var _temp9 = _finallyRethrows(function () {\n var index = _node.sortableInfo.index;\n return Promise.resolve(updateBeforeSortStart({\n collection: _collection,\n index: index,\n node: _node,\n isKeySorting: _isKeySorting\n }, event)).then(function () {});\n }, function (_wasThrown, _result) {\n _this._awaitingUpdateBeforeSortStart = false;\n if (_wasThrown) throw _result;\n return _result;\n });\n\n if (_temp9 && _temp9.then) return _temp9.then(function () {});\n }\n }();\n\n return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8);\n }\n }();\n\n return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortMove\", function (event) {\n var onSortMove = _this.props.onSortMove;\n\n if (typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n\n _this.updateHelperPosition(event);\n\n _this.animateNodes();\n\n _this.autoscroll();\n\n if (onSortMove) {\n onSortMove(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleSortEnd\", function (event) {\n var _this$props4 = _this.props,\n hideSortableGhost = _this$props4.hideSortableGhost,\n onSortEnd = _this$props4.onSortEnd;\n var _this$manager = _this.manager,\n collection = _this$manager.active.collection,\n isKeySorting = _this$manager.isKeySorting;\n\n var nodes = _this.manager.getOrderedRefs();\n\n if (_this.listenerNode) {\n if (isKeySorting) {\n _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true);\n\n _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown);\n } else {\n events.move.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove);\n });\n events.end.forEach(function (eventName) {\n return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd);\n });\n }\n }\n\n _this.helper.parentNode.removeChild(_this.helper);\n\n if (hideSortableGhost && _this.sortableGhost) {\n setInlineStyles(_this.sortableGhost, {\n opacity: '',\n visibility: ''\n });\n }\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node2 = nodes[i];\n var el = _node2.node;\n _node2.edgeOffset = null;\n _node2.boundingClientRect = null;\n setTranslate3d(el, null);\n setTransitionDuration(el, null);\n _node2.translate = null;\n }\n\n _this.autoScroller.clear();\n\n _this.manager.active = null;\n _this.manager.isKeySorting = false;\n\n _this.setState({\n sorting: false,\n sortingIndex: null\n });\n\n if (typeof onSortEnd === 'function') {\n onSortEnd({\n collection: collection,\n newIndex: _this.newIndex,\n oldIndex: _this.index,\n isKeySorting: isKeySorting,\n nodes: nodes\n }, event);\n }\n\n _this.touched = false;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"autoscroll\", function () {\n var disableAutoscroll = _this.props.disableAutoscroll;\n var isKeySorting = _this.manager.isKeySorting;\n\n if (disableAutoscroll) {\n _this.autoScroller.clear();\n\n return;\n }\n\n if (isKeySorting) {\n var translate = _objectSpread({}, _this.translate);\n\n var scrollX = 0;\n var scrollY = 0;\n\n if (_this.axis.x) {\n translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x));\n scrollX = _this.translate.x - translate.x;\n }\n\n if (_this.axis.y) {\n translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y));\n scrollY = _this.translate.y - translate.y;\n }\n\n _this.translate = translate;\n setTranslate3d(_this.helper, _this.translate);\n _this.scrollContainer.scrollLeft += scrollX;\n _this.scrollContainer.scrollTop += scrollY;\n return;\n }\n\n _this.autoScroller.update({\n height: _this.height,\n maxTranslate: _this.maxTranslate,\n minTranslate: _this.minTranslate,\n translate: _this.translate,\n width: _this.width\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onAutoScroll\", function (offset) {\n _this.translate.x += offset.left;\n _this.translate.y += offset.top;\n\n _this.animateNodes();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyDown\", function (event) {\n var keyCode = event.keyCode;\n var _this$props5 = _this.props,\n shouldCancelStart = _this$props5.shouldCancelStart,\n _this$props5$keyCodes = _this$props5.keyCodes,\n customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes;\n\n var keyCodes = _objectSpread({}, defaultKeyCodes, customKeyCodes);\n\n if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n if (keyCodes.lift.includes(keyCode) && !_this.manager.active) {\n _this.keyLift(event);\n } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) {\n _this.keyDrop(event);\n } else if (keyCodes.cancel.includes(keyCode)) {\n _this.newIndex = _this.manager.active.index;\n\n _this.keyDrop(event);\n } else if (keyCodes.up.includes(keyCode)) {\n _this.keyMove(-1);\n } else if (keyCodes.down.includes(keyCode)) {\n _this.keyMove(1);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyLift\", function (event) {\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n var _node$sortableInfo2 = node.sortableInfo,\n index = _node$sortableInfo2.index,\n collection = _node$sortableInfo2.collection;\n _this.initialFocusedNode = target;\n _this.manager.isKeySorting = true;\n _this.manager.active = {\n index: index,\n collection: collection\n };\n\n _this.handlePress(event);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyMove\", function (shift) {\n var nodes = _this.manager.getOrderedRefs();\n\n var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index;\n var newIndex = _this.newIndex + shift;\n var prevIndex = _this.newIndex;\n\n if (newIndex < 0 || newIndex > lastIndex) {\n return;\n }\n\n _this.prevIndex = prevIndex;\n _this.newIndex = newIndex;\n var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index);\n var target = nodes.find(function (_ref2) {\n var node = _ref2.node;\n return node.sortableInfo.index === targetIndex;\n });\n var targetNode = target.node;\n var scrollDelta = _this.containerScrollDelta;\n var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta);\n var targetTranslate = target.translate || {\n x: 0,\n y: 0\n };\n var targetPosition = {\n top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top,\n left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left\n };\n var shouldAdjustForSize = prevIndex < newIndex;\n var sizeAdjustment = {\n x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0,\n y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0\n };\n\n _this.handleSortMove({\n pageX: targetPosition.left + sizeAdjustment.x,\n pageY: targetPosition.top + sizeAdjustment.y,\n ignoreTransition: shift === 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"keyDrop\", function (event) {\n _this.handleSortEnd(event);\n\n if (_this.initialFocusedNode) {\n _this.initialFocusedNode.focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleKeyEnd\", function (event) {\n if (_this.manager.active) {\n _this.keyDrop(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"isValidSortingTarget\", function (event) {\n var useDragHandle = _this.props.useDragHandle;\n var target = event.target;\n var node = closest(target, function (el) {\n return el.sortableInfo != null;\n });\n return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo);\n });\n\n validateProps(props);\n _this.manager = new Manager();\n _this.events = {\n end: _this.handleEnd,\n move: _this.handleMove,\n start: _this.handleStart\n };\n return _this;\n }\n\n _createClass(WithSortableContainer, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n manager: this.manager\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n var container = this.getContainer();\n Promise.resolve(container).then(function (containerNode) {\n _this2.container = containerNode;\n _this2.document = _this2.container.ownerDocument || document;\n var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window;\n _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow;\n _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container;\n _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll);\n Object.keys(_this2.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this2.container.addEventListener(eventName, _this2.events[key], false);\n });\n });\n\n _this2.container.addEventListener('keydown', _this2.handleKeyDown);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.helper && this.helper.parentNode) {\n this.helper.parentNode.removeChild(this.helper);\n }\n\n if (!this.container) {\n return;\n }\n\n Object.keys(this.events).forEach(function (key) {\n return events[key].forEach(function (eventName) {\n return _this3.container.removeEventListener(eventName, _this3.events[key]);\n });\n });\n this.container.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"updateHelperPosition\",\n value: function updateHelperPosition(event) {\n var _this$props6 = this.props,\n lockAxis = _this$props6.lockAxis,\n lockOffset = _this$props6.lockOffset,\n lockToContainerEdges = _this$props6.lockToContainerEdges,\n transitionDuration = _this$props6.transitionDuration,\n _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration,\n keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard;\n var isKeySorting = this.manager.isKeySorting;\n var ignoreTransition = event.ignoreTransition;\n var offset = getPosition(event);\n var translate = {\n x: offset.x - this.initialOffset.x,\n y: offset.y - this.initialOffset.y\n };\n translate.y -= window.pageYOffset - this.initialWindowScroll.top;\n translate.x -= window.pageXOffset - this.initialWindowScroll.left;\n this.translate = translate;\n\n if (lockToContainerEdges) {\n var _getLockPixelOffsets = getLockPixelOffsets({\n height: this.height,\n lockOffset: lockOffset,\n width: this.width\n }),\n _getLockPixelOffsets2 = _slicedToArray(_getLockPixelOffsets, 2),\n minLockOffset = _getLockPixelOffsets2[0],\n maxLockOffset = _getLockPixelOffsets2[1];\n\n var minOffset = {\n x: this.width / 2 - minLockOffset.x,\n y: this.height / 2 - minLockOffset.y\n };\n var maxOffset = {\n x: this.width / 2 - maxLockOffset.x,\n y: this.height / 2 - maxLockOffset.y\n };\n translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x);\n translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y);\n }\n\n if (lockAxis === 'x') {\n translate.y = 0;\n } else if (lockAxis === 'y') {\n translate.x = 0;\n }\n\n if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) {\n setTransitionDuration(this.helper, keyboardSortingTransitionDuration);\n }\n\n setTranslate3d(this.helper, translate);\n }\n }, {\n key: \"animateNodes\",\n value: function animateNodes() {\n var _this$props7 = this.props,\n transitionDuration = _this$props7.transitionDuration,\n hideSortableGhost = _this$props7.hideSortableGhost,\n onSortOver = _this$props7.onSortOver;\n var containerScrollDelta = this.containerScrollDelta,\n windowScrollDelta = this.windowScrollDelta;\n var nodes = this.manager.getOrderedRefs();\n var sortingOffset = {\n left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left,\n top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top\n };\n var isKeySorting = this.manager.isKeySorting;\n var prevIndex = this.newIndex;\n this.newIndex = null;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n var _node3 = nodes[i].node;\n var index = _node3.sortableInfo.index;\n var width = _node3.offsetWidth;\n var height = _node3.offsetHeight;\n var offset = {\n height: this.height > height ? height / 2 : this.height / 2,\n width: this.width > width ? width / 2 : this.width / 2\n };\n var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex;\n var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex;\n var translate = {\n x: 0,\n y: 0\n };\n var edgeOffset = nodes[i].edgeOffset;\n\n if (!edgeOffset) {\n edgeOffset = getEdgeOffset(_node3, this.container);\n nodes[i].edgeOffset = edgeOffset;\n\n if (isKeySorting) {\n nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta);\n }\n }\n\n var nextNode = i < nodes.length - 1 && nodes[i + 1];\n var prevNode = i > 0 && nodes[i - 1];\n\n if (nextNode && !nextNode.edgeOffset) {\n nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container);\n\n if (isKeySorting) {\n nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta);\n }\n }\n\n if (index === this.index) {\n if (hideSortableGhost) {\n this.sortableGhost = _node3;\n setInlineStyles(_node3, {\n opacity: 0,\n visibility: 'hidden'\n });\n }\n\n continue;\n }\n\n if (transitionDuration) {\n setTransitionDuration(_node3, transitionDuration);\n }\n\n if (this.axis.x) {\n if (this.axis.y) {\n if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) {\n translate.x = this.width + this.marginOffset.x;\n\n if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) {\n if (nextNode) {\n translate.x = nextNode.edgeOffset.left - edgeOffset.left;\n translate.y = nextNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n if (this.newIndex === null) {\n this.newIndex = index;\n }\n } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) {\n translate.x = -(this.width + this.marginOffset.x);\n\n if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) {\n if (prevNode) {\n translate.x = prevNode.edgeOffset.left - edgeOffset.left;\n translate.y = prevNode.edgeOffset.top - edgeOffset.top;\n }\n }\n\n this.newIndex = index;\n }\n } else {\n if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) {\n translate.x = -(this.width + this.marginOffset.x);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) {\n translate.x = this.width + this.marginOffset.x;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n } else if (this.axis.y) {\n if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) {\n translate.y = -(this.height + this.marginOffset.y);\n this.newIndex = index;\n } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) {\n translate.y = this.height + this.marginOffset.y;\n\n if (this.newIndex == null) {\n this.newIndex = index;\n }\n }\n }\n\n setTranslate3d(_node3, translate);\n nodes[i].translate = translate;\n }\n\n if (this.newIndex == null) {\n this.newIndex = this.index;\n }\n\n if (isKeySorting) {\n this.newIndex = prevIndex;\n }\n\n var oldIndex = isKeySorting ? this.prevIndex : prevIndex;\n\n if (onSortOver && this.newIndex !== oldIndex) {\n onSortOver({\n collection: this.manager.active.collection,\n index: this.index,\n newIndex: this.newIndex,\n oldIndex: oldIndex,\n isKeySorting: isKeySorting,\n nodes: nodes,\n helper: this.helper\n });\n }\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"getContainer\",\n value: function getContainer() {\n var getContainer = this.props.getContainer;\n\n if (typeof getContainer !== 'function') {\n return findDOMNode(this);\n }\n\n return getContainer(config.withRef ? this.getWrappedInstance() : undefined);\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps)));\n }\n }, {\n key: \"helperContainer\",\n get: function get() {\n var helperContainer = this.props.helperContainer;\n\n if (typeof helperContainer === 'function') {\n return helperContainer();\n }\n\n return this.props.helperContainer || this.document.body;\n }\n }, {\n key: \"containerScrollDelta\",\n get: function get() {\n var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer;\n\n if (useWindowAsScrollContainer) {\n return {\n left: 0,\n top: 0\n };\n }\n\n return {\n left: this.scrollContainer.scrollLeft - this.initialScroll.left,\n top: this.scrollContainer.scrollTop - this.initialScroll.top\n };\n }\n }, {\n key: \"windowScrollDelta\",\n get: function get() {\n return {\n left: this.contentWindow.pageXOffset - this.initialWindowScroll.left,\n top: this.contentWindow.pageYOffset - this.initialWindowScroll.top\n };\n }\n }]);\n\n return WithSortableContainer;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableList', WrappedComponent)), _defineProperty(_class, \"defaultProps\", defaultProps), _defineProperty(_class, \"propTypes\", propTypes), _defineProperty(_class, \"childContextTypes\", {\n manager: PropTypes.object.isRequired\n }), _temp;\n}\n\nvar propTypes$1 = {\n index: PropTypes.number.isRequired,\n collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n disabled: PropTypes.bool\n};\nvar omittedProps$1 = Object.keys(propTypes$1);\nfunction sortableElement(WrappedComponent) {\n var _class, _temp;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n withRef: false\n };\n return _temp = _class = function (_React$Component) {\n _inherits(WithSortableElement, _React$Component);\n\n function WithSortableElement() {\n _classCallCheck(this, WithSortableElement);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(WithSortableElement).apply(this, arguments));\n }\n\n _createClass(WithSortableElement, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.register();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.node) {\n if (prevProps.index !== this.props.index) {\n this.node.sortableInfo.index = this.props.index;\n }\n\n if (prevProps.disabled !== this.props.disabled) {\n this.node.sortableInfo.disabled = this.props.disabled;\n }\n }\n\n if (prevProps.collection !== this.props.collection) {\n this.unregister(prevProps.collection);\n this.register();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unregister();\n }\n }, {\n key: \"register\",\n value: function register() {\n var _this$props = this.props,\n collection = _this$props.collection,\n disabled = _this$props.disabled,\n index = _this$props.index;\n var node = findDOMNode(this);\n node.sortableInfo = {\n collection: collection,\n disabled: disabled,\n index: index,\n manager: this.context.manager\n };\n this.node = node;\n this.ref = {\n node: node\n };\n this.context.manager.add(collection, this.ref);\n }\n }, {\n key: \"unregister\",\n value: function unregister() {\n var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection;\n this.context.manager.remove(collection, this.ref);\n }\n }, {\n key: \"getWrappedInstance\",\n value: function getWrappedInstance() {\n invariant(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call');\n return this.refs.wrappedInstance;\n }\n }, {\n key: \"render\",\n value: function render() {\n var ref = config.withRef ? 'wrappedInstance' : null;\n return createElement(WrappedComponent, _extends({\n ref: ref\n }, omit(this.props, omittedProps$1)));\n }\n }]);\n\n return WithSortableElement;\n }(Component), _defineProperty(_class, \"displayName\", provideDisplayName('sortableElement', WrappedComponent)), _defineProperty(_class, \"contextTypes\", {\n manager: PropTypes.object.isRequired\n }), _defineProperty(_class, \"propTypes\", propTypes$1), _defineProperty(_class, \"defaultProps\", {\n collection: 0\n }), _temp;\n}\n\nexport { sortableContainer as SortableContainer, sortableContainer, sortableElement as SortableElement, sortableElement, sortableHandle as SortableHandle, sortableHandle, arrayMove };\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface TabPanelClasses {\n\t/** Styles applied to the root element. */\n\troot: string;\n\tactive: string;\n\tpad: string;\n}\n\nexport function getTabPanelClass(slot: string) {\n\treturn generateUtilityClass('TabPanel', slot);\n}\n\nexport const tabPanelClasses = generateUtilityClasses('TabPanel', [\n\t'root',\n\t'active',\n\t'pad',\n]);\nexport default tabPanelClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {styled, composeClasses} from '@netx/core-components/Theme';\nimport tabPanelClasses, {\n\tgetTabPanelClass,\n\tTabPanelClasses,\n} from './tabPanelClasses';\n\nconst useUtilityClasses = (ownerState) => {\n\tconst {classes, active, disablePadding} = ownerState;\n\tconst slots = {\n\t\troot: ['root', active && 'active', !disablePadding && 'pad'],\n\t};\n\treturn composeClasses(slots, getTabPanelClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n\tname: 'TabPanel',\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tminHeight: 0,\n\toverflow: 'hidden',\n\t[`&:not(.${tabPanelClasses.active})`]: {\n\t\tdisplay: 'none',\n\t},\n\t[`&.${tabPanelClasses.active}.${tabPanelClasses.pad}`]: {\n\t\tpadding: theme.spacing(2, 0, 0),\n\t},\n}));\n\nexport interface TabPanelProps\n\textends React.PropsWithChildren> {\n\tclasses?: TabPanelClasses;\n\tdisablePadding?: boolean;\n\tkeepMounted?: boolean;\n\tindex: number;\n\tvalue: number;\n}\n\n/**\n * A wrapper for tab content\\\n * To be used in conjunction with `useTabs`\n * @example\n const tabs = useTabs(options);\n return (\n <>\n \n \n \n \n ...\n ...\n \n );\n */\nconst TabPanelPrimitive = (props: TabPanelProps) => {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tdisablePadding,\n\t\tindex,\n\t\tkeepMounted,\n\t\tvalue,\n\t\t...sendProps\n\t} = props;\n\n\tconst active = value === index;\n\n\tconst ownerState = {\n\t\t...props,\n\t\tactive,\n\t};\n\tconst classes = useUtilityClasses(ownerState);\n\n\treturn (\n\t\t\n\t\t\t{keepMounted || active ? children : null}\n\t\t\n\t);\n};\n\nexport const TabPanel = React.memo(TabPanelPrimitive);\nexport default TabPanel;\n","class Subscribable {\n constructor() {\n this.listeners = [];\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n this.listeners.push(listener);\n this.onSubscribe();\n return () => {\n this.listeners = this.listeners.filter(x => x !== listener);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.length > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.esm.js.map\n","import {useEffect, useState, useCallback, useRef} from 'react';\n\n// NOTE: ultimately we should have a user preference context but atm it is not worth doing since we\n// are so far from having our entire app wrapped/converted to react\nimport Netx from '@netx/core/bootstrap';\nimport {getPreference} from '@netx/core-user/utils/getPreference';\n\ntype PrefValue = Bool extends true\n\t? boolean\n\t: string | undefined;\ntype PrefInValue = Bool extends true\n\t? boolean\n\t: any | undefined;\ntype PrefOutValue = Bool extends true\n\t? boolean\n\t: boolean | string | number | undefined;\ntype ParseInFn> = (\n\tvalue: PrefValue,\n) => I;\ntype ParseOutFn<\n\tBool extends boolean = false,\n\tI = PrefInValue,\n\tO = PrefOutValue\n> = (value: I) => O;\n\ntype DefaultValue<\n\tBool extends boolean = false,\n\tI = PrefInValue\n> = I extends undefined ? PrefValue : I;\n\ntype Options<\n\tBool extends boolean = false,\n\tI extends PrefInValue | undefined = undefined,\n\tO extends PrefOutValue | undefined = PrefOutValue\n\t// D extends DefaultValue | undefined = undefined,\n> = {\n\tasBoolean?: Bool;\n\tdefaultValue?: DefaultValue;\n\tparseOut?: ParseOutFn : I, O>;\n} & (I extends PrefInValue\n\t? {parseIn: ParseInFn}\n\t: {parseIn?: (value: PrefValue) => PrefValue});\n\n// type UseUserPrefProps<\n// \tBool extends boolean = false,\n// \tI extends PrefInValue | undefined = undefined,\n// \tO extends PrefOutValue | undefined = PrefOutValue,\n// \tD extends DefaultValue | undefined = undefined,\n// > = {\n\n// } & (I extends PrefInValue ? {options: Options} : {options?: Options})\n\n/**\n * Get and track value for a user preference\n * @param preference User preference\n * @param asBoolean Value as boolean\n * @example\n const metadataLookupsEnabled = useUserPref('category.metadataDatasetLookupEnabled', true);\n */\nexport function useUserPref<\n\tBool extends boolean = false,\n\tI extends PrefInValue | undefined = undefined,\n\tO extends PrefOutValue | undefined = PrefOutValue\n>(preference = '', options?: Options) {\n\tconst {asBoolean, parseIn, parseOut, defaultValue = null} = options || {};\n\n\tconst parseInRef = useRef(parseIn);\n\tparseInRef.current = parseIn;\n\n\tconst parseOutRef = useRef(parseOut);\n\tparseOutRef.current = parseOut;\n\n\tconst [value, setValue] = useState : I>(\n\t\tparseIn\n\t\t\t? parseIn(getPreference(preference, asBoolean))\n\t\t\t: getPreference(preference, asBoolean),\n\t);\n\n\tuseEffect(() => {\n\t\tif (preference === '') return;\n\n\t\tconst update = () => {\n\t\t\tconst prefValue = getPreference(preference, asBoolean);\n\t\t\tsetValue(\n\t\t\t\tparseInRef.current\n\t\t\t\t\t? parseInRef.current(prefValue)\n\t\t\t\t\t: prefValue == null\n\t\t\t\t\t? defaultValue\n\t\t\t\t\t: prefValue,\n\t\t\t);\n\t\t};\n\t\tNetx.user?.prefs?.on('change sync saved', update);\n\n\t\tupdate();\n\n\t\treturn () => {\n\t\t\tNetx.user?.prefs?.off('change sync saved', update);\n\t\t};\n\t}, [preference, asBoolean, defaultValue]);\n\n\t// No need to re-evaluate the `setPref` callback when `preference` changes\n\tconst preferenceRef = useRef(preference);\n\tpreferenceRef.current = preference;\n\tconst setPref = useCallback(\n\t\t(value: I extends undefined ? PrefValue : I) => {\n\t\t\tconst prefValue = parseOutRef.current\n\t\t\t\t? parseOutRef.current(value)\n\t\t\t\t: value;\n\t\t\tsetValue(value);\n\t\t\tif (preferenceRef.current === '') return;\n\t\t\tNetx.setPreference(preferenceRef.current, prefValue);\n\t\t},\n\t\t[],\n\t);\n\n\treturn [value, setPref] as const;\n}\nexport default useUserPref;\n","import React from 'react';\n\nimport {CircularProgress, TextField} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {CommonFieldPropsWithTextField} from '../../../';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\tprogress: {\n\t\t\tposition: 'absolute',\n\t\t\tright: 11,\n\t\t\ttop: 'calc(50% - 10px)',\n\t\t},\n\t});\n\nexport interface VirtualizedInputProps\n\textends CommonFieldPropsWithTextField {\n\toptions?: string[];\n}\n\n/**\n * Input for virtualized select field\n */\nconst VirtualizedInput: React.FC<\n\tWithStyles & VirtualizedInputProps\n> = React.forwardRef(\n\t(\n\t\t{\n\t\t\tclasses,\n\t\t\terror,\n\t\t\tloading,\n\n\t\t\t...props\n\t\t},\n\t\tref: React.RefObject,\n\t) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{props.InputProps?.endAdornment}\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nexport default withStyles(styles)(React.memo(VirtualizedInput));\n","import React, {\n\tcloneElement,\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tChildren,\n\tuseEffect,\n\tuseRef,\n} from 'react';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport {\n\tListChildComponentProps,\n\tFixedSizeListProps,\n\tFixedSizeList,\n\tareEqual,\n} from 'react-window';\nimport {styled, Theme} from '@netx/core-components/Theme';\n\nimport useSharedRef from '@netx/core-components/hooks/useSharedRef';\n\ntype FixedSizeListEnforcedProps = Required;\n\nconst LISTBOX_PADDING = 8;\nconst ADDITIONAL_ITEM_HEIGHT = 2 * LISTBOX_PADDING;\n\nconst styles = (theme: Theme) => createStyles({});\n\nexport interface OuterElementProps {\n\t'aria-labelledby': string;\n\tclassName: string;\n\tid: string;\n\tonMouseDown(event: React.MouseEvent): void;\n\trole: string;\n}\nconst OuterElementContext = React.createContext>({});\nconst OuterElementType = React.forwardRef(\n\t(props, ref: React.Ref) => {\n\t\tconst outerProps = useContext(OuterElementContext);\n\t\treturn
;\n\t},\n);\n\nconst InnerElementRoot = styled('ul')({\n\tpadding: 0,\n\tmargin: 0,\n});\n\nconst renderRow = React.memo(\n\t({data, index, style}: ListChildComponentProps) => {\n\t\treturn cloneElement(data[index], {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\ttop: (style.top as number) + LISTBOX_PADDING,\n\t\t\t},\n\t\t});\n\t},\n\tareEqual,\n);\nexport interface ListboxComponentProps extends OuterElementProps {\n\tinputRef: React.MutableRefObject;\n\tlistRef?: React.MutableRefObject;\n\tfixedSizeListRef?: React.MutableRefObject;\n}\n\n/**\n * Adapter for react-window's `VariableSizeList`\n * @private\n */\nconst ListboxComponent = React.forwardRef<\n\tHTMLDivElement,\n\tWithStyles & ListboxComponentProps\n>(({classes, children, inputRef, listRef, fixedSizeListRef, ...props}, ref) => {\n\tconst itemData = Children.toArray(children);\n\tconst itemCount = itemData.length;\n\tconst itemSize = 48;\n\n\tconst innerRef = useSharedRef(null, [ref]);\n\tconst innerFixedSizeListRef = useSharedRef(null, [\n\t\tfixedSizeListRef,\n\t]);\n\n\tconst justLoopedToRef = useRef(-1);\n\n\t// The autocomplete dropdown is a little funky with keyboard navigation\n\t// and virtualization\n\tuseEffect(() => {\n\t\tconst handleKeydown = (event) => {\n\t\t\tif (!innerFixedSizeListRef.current || !inputRef.current) return;\n\t\t\tlet prevent = false;\n\t\t\tconst itemCount = innerFixedSizeListRef.current.props.itemCount;\n\t\t\tconst activeIndex = parseInt(\n\t\t\t\t(\n\t\t\t\t\tinputRef.current.getAttribute('aria-activedescendant') || '-1'\n\t\t\t\t)?.replace(/^.*-option-/, ''),\n\t\t\t);\n\t\t\tif (activeIndex < 0) return;\n\n\t\t\tjustLoopedToRef.current = -1;\n\t\t\tswitch (event.key) {\n\t\t\t\tcase 'ArrowUp': {\n\t\t\t\t\tif (activeIndex === 0 && itemCount > 1) {\n\t\t\t\t\t\tjustLoopedToRef.current = itemCount - 1;\n\t\t\t\t\t\tinnerFixedSizeListRef.current.scrollTo(\n\t\t\t\t\t\t\t(itemCount - 1) * itemSize + LISTBOX_PADDING,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tprevent = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'ArrowDown': {\n\t\t\t\t\tif (activeIndex === itemCount - 1 && itemCount > 1) {\n\t\t\t\t\t\tjustLoopedToRef.current = 0;\n\t\t\t\t\t\tinnerFixedSizeListRef.current.scrollTo(0);\n\t\t\t\t\t\tprevent = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'End':\n\t\t\t\t\tjustLoopedToRef.current = itemCount - 1;\n\t\t\t\t\tinnerFixedSizeListRef.current.scrollTo(\n\t\t\t\t\t\t(itemCount - 1) * itemSize + LISTBOX_PADDING,\n\t\t\t\t\t);\n\t\t\t\t\tprevent = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tjustLoopedToRef.current = 0;\n\t\t\t\t\tinnerFixedSizeListRef.current.scrollTo(0);\n\t\t\t\t\tprevent = true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (prevent) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('keydown', handleKeydown, {capture: true});\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleKeydown, {capture: true});\n\t\t};\n\t}, []);\n\n\t// The focus event from the underlying `useAutocomplete` is firing before the item can be rendered\n\t// because the call to render comes after the mouse event\n\tconst handleItemRendered = useCallback<\n\t\tFixedSizeListEnforcedProps['onItemsRendered']\n\t>((props) => {\n\t\tif (!innerFixedSizeListRef.current || !innerRef.current) return;\n\n\t\tconst event = new MouseEvent('mouseover', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\n\t\tconst hasFocused = () =>\n\t\t\tinnerRef.current?.querySelector('[data-focus=\"true\"]') !== null;\n\n\t\tif (justLoopedToRef.current > -1) {\n\t\t\tconst option = innerRef.current?.querySelector(\n\t\t\t\t`[id*=\"option-${justLoopedToRef.current}\"]`,\n\t\t\t);\n\t\t\tif (option && !hasFocused()) option.dispatchEvent(event);\n\t\t\tjustLoopedToRef.current = -1;\n\t\t}\n\t}, []);\n\n\t// if you give it the actual height of what all the items would be\n\t// it will actually render them all - just keep in mind:\n\t// this is just the height of the content we want to display/in the\n\t// DOM\n\tconst height = useMemo(\n\t\t() => (itemCount > 8 ? 8 * itemSize : itemCount * itemSize), //itemData.map(getChildSize).reduce((a, b) => a + b, 0),\n\t\t[itemCount, itemSize],\n\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{renderRow}\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n});\n\nexport default withStyles(styles)(React.memo(ListboxComponent));\n","import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport {ConfirmationDialog, ConfirmationOptions} from './ConfirmationDialog';\n\nexport interface Options extends Omit {\n\tcatchOnCancel?: boolean;\n}\n\nexport type ConfirmationServiceContextType = (\n\toptions: Options,\n) => Promise;\n\nconst ConfirmationServiceContext = createContext<\n\tConfirmationServiceContextType | undefined\n>(undefined);\n\nexport const useConfirmation = () => {\n\tconst context = useContext(ConfirmationServiceContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t'`useConfirmation` must be used within a `ConfirmationServiceProvider`',\n\t\t);\n\t}\n\treturn context;\n};\n\n// due to how jsx is parsed, gernerics with only a single argument must extend\n// something or the parsing breaks\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nexport const ConfirmationServiceProvider = ({\n\tchildren,\n}) => {\n\tconst [catchOnCancel, setCatchOnCancel] = useState(false);\n\tconst [confirmationState, setConfirmationState] = useState();\n\n\tconst awaitingPromiseRef = useRef<{\n\t\tresolve: (...args: any) => void | Promise;\n\t\treject: () => void;\n\t}>();\n\n\tconst openConfirmation = useCallback(\n\t\t({catchOnCancel = false, ...options}: Options) => {\n\t\t\tsetCatchOnCancel(catchOnCancel);\n\t\t\tsetConfirmationState(options);\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tawaitingPromiseRef.current = {resolve, reject};\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleClose = useCallback(() => {\n\t\tcatchOnCancel && awaitingPromiseRef.current?.reject();\n\t\tawaitingPromiseRef.current = undefined;\n\t\tsetConfirmationState(undefined);\n\t}, [catchOnCancel]);\n\n\tconst handleSubmit = useCallback((...args: any) => {\n\t\tawaitingPromiseRef.current?.resolve(...args);\n\t\tsetConfirmationState(undefined);\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","export enum DrawerAnchor {\n\tLEFT = 'left',\n\tRIGHT = 'right',\n\tTOP = 'top',\n\tBOTTOM = 'bottom',\n}\n\nexport enum DrawerVariant {\n\tPERMANENT = 'permanent',\n\tTEMPORARY = 'temporary',\n}\n","import {i18n} from '@netx/core/i18n';\n\nexport const DrawerActionLabel = {\n\tCOLLAPSE: i18n.t('i18n.collapse'),\n\tCLOSE: i18n.t('i18n.close'),\n\tUNCOLLAPSE: i18n.t('i18n.uncollapse'),\n};\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const DRAWER_TOOLBAR_CLASS_NAME = 'DrawerToolbar';\nexport const DRAWER_TOOLBAR_CLASS_SLOTS = ['root', 'title', 'toggle'] as const;\n\nexport type DrawerToolbarClassSlot = typeof DRAWER_TOOLBAR_CLASS_SLOTS[number];\n\nexport interface DrawerToolbarClasses {\n\troot: string;\n\ttitle: string;\n\ttoggle: string;\n\n\tanchorLeft: string;\n\tanchorRight: string;\n\topen: string;\n}\n\nexport type DrawerToolbarClassKey = keyof DrawerToolbarClasses;\n\nexport const getDrawerToolbarUtilityClass = (slot: DrawerToolbarClassSlot) =>\n\tgenerateUtilityClass(DRAWER_TOOLBAR_CLASS_NAME, slot);\n\nexport const drawerToolbarClasses: DrawerToolbarClasses = generateUtilityClasses(\n\tDRAWER_TOOLBAR_CLASS_NAME,\n\t['root', 'anchorLeft', 'anchorRight', 'open', 'title', 'toggle'],\n);\n\nexport default drawerToolbarClasses;\n","import React, {useMemo} from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tfaChevronLeft as ToggleIcon,\n\tfaTimes as TimesIcon,\n} from '@fortawesome/pro-solid-svg-icons';\nimport {unstable_capitalize as capitalize} from '@mui/utils';\nimport {\n\tIconButton,\n\tIconButtonProps,\n\ticonButtonClasses,\n} from '@netx/core-components/IconButton';\nimport {composeClasses, styled, WithClasses} from '@netx/core-components/Theme';\nimport {Title} from '@netx/core-components/Title';\nimport {DrawerAnchor} from './constants';\nimport {DrawerActionLabel} from './locales';\nimport {\n\tdrawerToolbarClasses,\n\tgetDrawerToolbarUtilityClass,\n\tDrawerToolbarClasses,\n\tDRAWER_TOOLBAR_CLASS_NAME,\n} from './drawerToolbarClasses';\n\nexport type DrawerOwnerState = WithClasses<\n\tDrawerToolbarClasses,\n\t{\n\t\tanchor: DrawerAnchor;\n\t\topen: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: DrawerOwnerState) => {\n\tconst {classes, anchor, open} = ownerState;\n\tconst slots = {\n\t\troot: ['root', `anchor${capitalize(anchor)}`, open && 'open'],\n\t\ttoggle: ['toggle'],\n\t\ttitle: ['title'],\n\t};\n\treturn composeClasses(slots, getDrawerToolbarUtilityClass, classes);\n};\n\nconst DrawerToolbarRoot = styled('div', {\n\tname: DRAWER_TOOLBAR_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\tjustifyContent: 'flex-start',\n\tpadding: theme.spacing(0, 1.5, 0, 0.75),\n\tzIndex: 3,\n\t...(theme.mixins.toolbar as React.CSSProperties),\n\t[`&.${drawerToolbarClasses.anchorLeft}`]: {\n\t\t[`& .${drawerToolbarClasses.title}`]: {\n\t\t\tmarginRight: theme.spacing(1),\n\t\t},\n\t},\n\t[`&.${drawerToolbarClasses.anchorRight}`]: {\n\t\t[`& .${drawerToolbarClasses.title}`]: {\n\t\t\tmarginLeft: theme.spacing(1),\n\t\t},\n\t},\n\t[`&:not(.${drawerToolbarClasses.open})`]: {\n\t\t[`& .${drawerToolbarClasses.title}`]: {\n\t\t\tvisibility: 'hidden',\n\t\t\tmargin: 0,\n\t\t},\n\t},\n}));\n\nconst DrawerTitle = styled(Title, {\n\tname: DRAWER_TOOLBAR_CLASS_NAME,\n\tslot: 'Title',\n})(({theme}) => ({\n\tflex: '1 1 auto',\n\toverflow: 'hidden',\n\ttextOverflow: 'ellipsis',\n}));\n\nconst DrawerToggle = styled(IconButton, {\n\tname: DRAWER_TOOLBAR_CLASS_NAME,\n\tslot: 'Toggle',\n})(({theme}) => ({\n\t[`& .${iconButtonClasses.icon}`]: {\n\t\ttransition: theme.transitions.create('transform'),\n\t},\n}));\n\ntype IconButtonMethods = Required>;\n\nexport interface DrawerToolbarProps\n\textends React.DetailedHTMLProps<\n\t\t\tReact.HTMLAttributes,\n\t\t\tHTMLDivElement\n\t\t>,\n\t\tWithClasses<\n\t\t\tDrawerToolbarClasses,\n\t\t\t{\n\t\t\t\t// TODO: top and bottom are not supported just yet\n\t\t\t\tanchor: DrawerAnchor;\n\t\t\t\tcancelAsClose?: boolean;\n\t\t\t\tactions?: React.ReactNode;\n\t\t\t\tonCollapseToggle?: IconButtonMethods['onClick'];\n\t\t\t\topen?: boolean;\n\t\t\t\tsecondaryTitle?: React.ReactNode;\n\t\t\t\ttitle?: string;\n\t\t\t}\n\t\t> {}\n\nexport const DrawerToolbarPrimitive = ({\n\tclasses: _classes,\n\tchildren,\n\tclassName,\n\n\tactions,\n\tanchor,\n\tcancelAsClose,\n\tonCollapseToggle,\n\topen,\n\tsecondaryTitle,\n\ttitle = '',\n\t...props\n}: DrawerToolbarProps) => {\n\tconst ownerState = {\n\t\tclasses: _classes,\n\t\tanchor,\n\t\topen: open === true,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\tconst Toggle = useMemo(\n\t\t() => (\n\t\t\t\n\t\t),\n\t\t[classes, anchor, open, onCollapseToggle, cancelAsClose],\n\t);\n\n\tconst Title = useMemo(\n\t\t() => (\n\t\t\t\n\t\t),\n\t\t[classes, secondaryTitle, title],\n\t);\n\n\tconst Actions = (open && actions) || null;\n\n\treturn (\n\t\t\n\t\t\t{anchor === DrawerAnchor.RIGHT ? (\n\t\t\t\t<>\n\t\t\t\t\t{Toggle}\n\t\t\t\t\t{Title}\n\t\t\t\t\t{Actions}\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{Actions}\n\t\t\t\t\t{Title}\n\t\t\t\t\t{Toggle}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport const DrawerToolbar = React.memo(DrawerToolbarPrimitive);\n\nexport default DrawerToolbar;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const DRAWER_CLASS_NAME = 'Drawer';\nexport const DRAWER_CLASS_SLOTS = ['root', 'content', 'drawer'] as const;\n\nexport type DrawerClassSlot = typeof DRAWER_CLASS_SLOTS[number];\n\nexport interface DrawerClasses {\n\troot: string;\n\tcontent: string;\n\tdrawer: string;\n\n\tresizing: string;\n\topen: string;\n\ttemporary: string;\n}\n\nexport type DrawerClassKey = keyof DrawerClasses;\n\nexport const getDrawerUtilityClass = (slot: DrawerClassSlot) =>\n\tgenerateUtilityClass(DRAWER_CLASS_NAME, slot);\n\nexport const drawerClasses: DrawerClasses = generateUtilityClasses(\n\tDRAWER_CLASS_NAME,\n\t['root', 'content', 'drawer', 'open', 'resizing', 'temporary'],\n);\n\nexport default drawerClasses;\n","import React, {useCallback, useEffect, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {FocusTrap} from '@mui/base';\nimport {\n\tDrawer as MuiDrawer,\n\tDrawerProps as MuiDrawerProps,\n\tpaperClasses,\n} from '@mui/material';\nimport {duration} from '@mui/material/styles/createTransitions';\nimport {\n\tDragResize,\n\tDragResizeDirection,\n\tdragResizeHandleClasses,\n} from '@netx/core-components/DragResize';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\nimport {useDocumentKeyDown} from '@netx/core-components/hooks/useDocumentKeyDown';\nimport {IconButtonProps} from '@netx/core-components/IconButton';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport {DrawerToolbar} from './DrawerToolbar';\nimport {DrawerAnchor, DrawerVariant} from './constants';\nimport {\n\tdrawerClasses,\n\tgetDrawerUtilityClass,\n\tDrawerClasses,\n\tDRAWER_CLASS_NAME,\n} from './drawerClasses';\n\nexport type DrawerOwnerState = WithClasses<\n\tDrawerClasses,\n\t{\n\t\topen: boolean;\n\t\tresizing: boolean;\n\t\ttemporary: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: DrawerOwnerState) => {\n\tconst {classes, open, resizing, temporary} = ownerState;\n\tconst slots = {\n\t\troot: [\n\t\t\t'root',\n\t\t\topen && 'open',\n\t\t\tresizing && 'resizing',\n\t\t\ttemporary && 'temporary',\n\t\t],\n\t\tcontent: ['content'],\n\t\tdrawer: ['drawer', temporary && 'temporary'],\n\t};\n\treturn composeClasses(slots, getDrawerUtilityClass, classes);\n};\n\nconst DEFAULT_WIDTH = 300;\n\nconst DrawerRoot = styled(DragResize, {\n\tname: DRAWER_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tposition: 'relative',\n\twhiteSpace: 'nowrap',\n\t[`&:not(:hover):not(.${drawerClasses.resizing}) .${dragResizeHandleClasses.root}`]:\n\t\t{\n\t\t\topacity: 0,\n\t\t},\n\t[`&.${drawerClasses.resizing}`]: {\n\t\twillChange: 'width',\n\t\t[`& .${drawerClasses.content}`]: {\n\t\t\tpointerEvents: 'none',\n\t\t},\n\t},\n\t[`&.${drawerClasses.open}`]: {\n\t\twidth: DEFAULT_WIDTH,\n\t\t[`&:not(.${drawerClasses.resizing})`]: {\n\t\t\ttransition: theme.transitions.create(['width', 'min-width'], {\n\t\t\t\teasing: theme.transitions.easing.sharp,\n\t\t\t\tduration: theme.transitions.duration.enteringScreen,\n\t\t\t}),\n\t\t},\n\t},\n\t[`&:not(.${drawerClasses.open})`]: {\n\t\ttransition: theme.transitions.create(['width', 'min-width'], {\n\t\t\teasing: theme.transitions.easing.sharp,\n\t\t\tduration: theme.transitions.duration.leavingScreen,\n\t\t}),\n\t\toverflowX: 'hidden',\n\t\twidth: `61px !important`,\n\t\tcursor: 'pointer',\n\t\t[`& .${drawerClasses.content}`]: {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n\t[`&.${drawerClasses.temporary}`]: {\n\t\tposition: 'absolute',\n\t\tright: 0,\n\t\tbottom: 0,\n\t\ttop: 0,\n\t\t[`&:not(.${drawerClasses.open})`]: {\n\t\t\tposition: 'absolute',\n\t\t\twidth: `0 !important`,\n\t\t},\n\t},\n\t[`&:not(.${drawerClasses.temporary})`]: {\n\t\tminWidth: 61,\n\t},\n}));\n\nconst DrawerWrapper = styled(MuiDrawer)(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tminHeight: 0,\n\t// Undo some paper styles in the drawer\n\t[`& .${paperClasses.root}`]: {\n\t\tflex: '1 1 auto',\n\t\theight: 'auto',\n\t\tminHeight: 0,\n\t\toverflow: 'visible',\n\t\tposition: 'relative',\n\t\twidth: '100%',\n\t\tzIndex: 'initial',\n\t},\n}));\n\nconst DrawerContent = styled('div')(({theme}) => ({\n\tflex: '1 1 auto',\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tminHeight: 0,\n\toverflow: 'hidden',\n\tposition: 'relative',\n}));\n\ntype MuiDrawerMethods = Required>;\ntype IconButtonMethods = Required>;\n\nexport interface DrawerProps\n\textends Omit<\n\t\t\tWithMuiPropOverrides,\n\t\t\t'anchor' | 'classes' | 'variant'\n\t\t>,\n\t\tWithClasses<\n\t\t\tDrawerClasses,\n\t\t\t{\n\t\t\t\tanchor?: DrawerAnchor;\n\t\t\t\tcancelAsClose?: boolean;\n\t\t\t\theaderActions?: React.ReactNode;\n\t\t\t\tkeepMounted?: boolean;\n\t\t\t\tonCollapseToggle?: (collapsed: boolean) => void;\n\t\t\t\tonEntered?: () => void;\n\t\t\t\tonExited?: () => void;\n\t\t\t\tonResized?: (width: number) => void;\n\t\t\t\toverflowParent: React.RefObject;\n\t\t\t\tsecondaryTitle?: React.ReactNode;\n\t\t\t\ttitle?: string;\n\t\t\t\twidth?: number;\n\t\t\t\tvariant?: DrawerVariant;\n\t\t\t}\n\t\t> {}\n\nexport const DrawerPrimitive = ({\n\tclasses: _classes,\n\tchildren,\n\tclassName,\n\n\tanchor = DrawerAnchor.RIGHT,\n\tcancelAsClose,\n\theaderActions,\n\tkeepMounted = true,\n\tonCollapseToggle,\n\tonEntered,\n\tonExited,\n\tonResized,\n\topen = true,\n\toverflowParent,\n\tsecondaryTitle,\n\tstyle,\n\ttitle = '',\n\twidth = 0,\n\tvariant = DrawerVariant.PERMANENT,\n\t...props\n}: DrawerProps) => {\n\tconst [exited, setExited] = useState(!open);\n\tconst [isOpen, setIsOpen] = useState(open);\n\tconst [resizing, setResizing] = useState(false);\n\n\tconst temporary = variant === DrawerVariant.TEMPORARY;\n\n\tuseEffect(() => {\n\t\tsetIsOpen(open);\n\t}, [open]);\n\n\tuseWhenChangedEffect(\n\t\tisOpen,\n\t\tuseCallback(\n\t\t\t(isOpen) => {\n\t\t\t\tif (!isOpen) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetExited(true);\n\t\t\t\t\t\tonExited?.();\n\t\t\t\t\t}, duration.leavingScreen);\n\t\t\t\t} else {\n\t\t\t\t\tsetExited(false);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tonEntered?.();\n\t\t\t\t\t}, duration.enteringScreen + 20);\n\t\t\t\t}\n\n\t\t\t\tonCollapseToggle?.(isOpen);\n\t\t\t},\n\t\t\t[onEntered, onExited, onCollapseToggle],\n\t\t),\n\t);\n\n\tuseDocumentKeyDown(\n\t\t(event) => {\n\t\t\tswitch (event.key) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tdisabled: !isOpen || !cancelAsClose,\n\t\t},\n\t);\n\n\tconst handleDrawerToggle = useCallback(\n\t\t(event) => {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsOpen((isOpen) => !isOpen);\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleDrawerClick = useCallback(\n\t\t(event) => {\n\t\t\tif (isOpen) return;\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsOpen(true);\n\t\t},\n\t\t[isOpen],\n\t);\n\n\tconst handleDrawerKeyDown = useCallback(\n\t\t(event) => {\n\t\t\tif (isOpen) return;\n\t\t\tconst key = event.keyCode || event.which;\n\t\t\t// Only `enter` and `spacebar` keys\n\t\t\tif (![13, 32].includes(key)) return;\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsOpen(true);\n\t\t},\n\t\t[isOpen],\n\t);\n\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t\topen: isOpen,\n\t\tresizing,\n\t\ttemporary,\n\t});\n\n\treturn (\n\t\t setResizing(true)}\n\t\t\tonResizeEnded={(size) => {\n\t\t\t\tsetResizing(false);\n\t\t\t\tonResized?.(size);\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{exited && !keepMounted ? null : children}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const Drawer = React.memo(DrawerPrimitive);\n\nexport default Drawer;\n","import React from 'react';\nimport Drawer, {DrawerProps} from './Drawer';\n\nexport interface WithDrawerProps {\n\tDrawerProps: DrawerProps;\n}\n\nexport default function withDrawer(Component: C) {\n\treturn ({\n\t\tDrawerProps,\n\t\t...props\n\t}: WithDrawerProps &\n\t\tJSX.IntrinsicAttributes &\n\t\tJSX.LibraryManagedAttributes>) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t>)}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t};\n}\n","export let contactSheet = {\n\tdefaultEngine: 'java',\n\tdefaultTemplates: {\n\t\t'1x1': {\n\t\t\tmaxAttributes: 10,\n\t\t},\n\t\t'2x2': {\n\t\t\tmaxAttributes: 5,\n\t\t},\n\t\t'3x3': {\n\t\t\tmaxAttributes: 3,\n\t\t},\n\t},\n};\n\nexport const ignoreDownloadWarningTypes = ['contactSheet', 'metadata'];\n\nexport let types = {\n\toriginal: 'original',\n\tproxy: 'proxy',\n\tassetView: 'assetView',\n\tpresetProcess: 'presetProcess',\n\thistorical: 'historical',\n\tmetadata: 'metadata',\n\tcontactSheet: 'contactSheet',\n\tthumb: 'thumb',\n\ttemplateCustomization: 'templateCustomization',\n\tpreview: 'preview',\n\t'1x1': '1x1',\n\t'2x2': '2x2',\n\t'3x3': '3x3',\n};\n\nexport default {contactSheet, ignoreDownloadWarningTypes, types};\n","/**\n * A time input element (not AM/PM) but hh::mm:ss:fff\n * Depends on document-register-element polyfill (http://caniuse.com/#feat=custom-elements)\n * @author Justin Sephiroth Enos \n */\nimport {pad} from '@netx/core/lib/underscore-netx';\n\n// Polyfill needed for Edge\nimport '@webcomponents/custom-elements';\n\n// Known issues:\n// Firefox number inputs will not respect padding numbers with leading 0s\n\nclass NxTime extends HTMLElement {\n\tget value() {\n\t\treturn this.getTotalSeconds();\n\t}\n\n\tset value(newValue) {\n\t\treturn this.parseSecondsToInputs(parseFloat(newValue), true);\n\t}\n\n\tstatic get observedAttributes() {\n\t\treturn ['disabled'];\n\t}\n\n\tconnectedCallback() {\n\t\t/**\n\t\t * @type {object}\n\t\t */\n\t\tthis.inputs = {};\n\n\t\t// Create an input for each thing\n\t\t['hour', 'minute', 'second', 'millisecond'].forEach((thing, idx) => {\n\t\t\t// Create and append input\n\t\t\tlet input = (this.inputs[thing] = document.createElement('input'));\n\t\t\tinput.setAttribute('type', 'number');\n\t\t\tinput.setAttribute('name', thing);\n\t\t\tinput.setAttribute('title', thing);\n\t\t\tthis.appendChild(input);\n\n\t\t\t// Listen for input change\n\t\t\tinput.addEventListener('change', e => {\n\t\t\t\t// For our eyes only\n\t\t\t\te.stopPropagation();\n\t\t\t\t// Parse inputs\n\t\t\t\tthis.parseSecondsToInputs();\n\t\t\t});\n\n\t\t\t// Stop scroll incrementing\n\t\t\tinput.addEventListener('mousewheel', e => {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tinput.addEventListener('DOMMouseScroll', e => {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\t// Create and append \":\" separator\n\t\t\tif (thing === 'hour' || thing == 'minute') {\n\t\t\t\tconst separator = document.createElement('span');\n\t\t\t\tconst separatorText = document.createTextNode(':');\n\t\t\t\tseparator.appendChild(separatorText);\n\t\t\t\tthis.appendChild(separator);\n\t\t\t}\n\t\t\t// Create and append \".\" separator\n\t\t\telse if (thing === 'second') {\n\t\t\t\tconst separator = document.createElement('span');\n\t\t\t\tconst separatorText = document.createTextNode('.');\n\t\t\t\tseparator.appendChild(separatorText);\n\t\t\t\tthis.appendChild(separator);\n\t\t\t}\n\t\t});\n\n\t\t_.defer(() => {\n\t\t\t// Set default time if none currently\n\t\t\tif(!this.getTotalSeconds()) {\n\t\t\t\t// Set initial time if one was provided on this element's value\n\t\t\t\tconst val = parseFloat(this.getAttribute('value'));\n\t\t\t\tthis.parseSecondsToInputs(!isNaN(val) ? val : 0, true);\n\t\t\t}\n\t\t});\n\t}\n\n\tattributeChangedCallback(name, previousValue, value) {\n\t\t// This is the only attribute I see mattering... for now\n\t\tif (name === 'disabled') {\n\t\t\t// Vars\n\t\t\tconst inputs = this.inputs;\n\t\t\t// Loop over inputs and mirror our attribute\n\t\t\tfor (let key in inputs) {\n\t\t\t\tif (inputs.hasOwnProperty(key)) {\n\t\t\t\t\tinputs[key][value ? 'setAttribute' : 'removeAttribute'](name, value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetChangeEvent() {\n\t\tconst event = document.createEvent('Event');\n\t\tevent.initEvent('change', true, true);\n\t\treturn event;\n\t}\n\n\t/**\n\t * @method\n\t * @return {number} Total seconds\n\t */\n\tgetTotalSeconds() {\n\t\t// Vars\n\t\tlet seconds = 0;\n\n\t\t// Loop over inputs and tally up seconds\n\t\tfor (let key in this.inputs) {\n\t\t\tif (this.inputs.hasOwnProperty(key)) {\n\t\t\t\tlet val = parseInt(this.inputs[key].value);\n\t\t\t\tif (isNaN(val)) val = 0;\n\t\t\t\tif (key === 'hour') val = val * 3600;\n\t\t\t\telse if (key === 'minute') val = val * 60;\n\t\t\t\telse if (key === 'millisecond') val = val / 1000;\n\t\t\t\tseconds += val;\n\t\t\t}\n\t\t}\n\n\t\treturn seconds;\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} seconds Seconds to set (will default to the inputs total value)\n\t * @param {boolean} bypassChangeEvent Set to true when you do not wish to fire a change event (like when this was set from the outside progrmatically)\n\t */\n\tparseSecondsToInputs(seconds, bypassChangeEvent) {\n\t\t// If no seconds (or invalid seconds) were passed, use this.getTotalSeconds();\n\t\tif (_.isUndefined(seconds) || isNaN(seconds))\n\t\t\tseconds = this.getTotalSeconds();\n\n\t\t// Vars\n\t\tlet time = seconds;\n\t\tlet timeObj = {\n\t\t\thour: 0,\n\t\t\tminute: 0,\n\t\t\tsecond: 0,\n\t\t\tmillisecond: 0,\n\t\t};\n\n\t\t// Parse seconds to respective time pieces\n\t\ttimeObj.hour = Math.floor(time / 3600);\n\t\ttime -= timeObj.hour * 3600;\n\t\ttimeObj.minute = Math.floor(time / 60);\n\t\ttime -= Math.floor(timeObj.minute * 60);\n\t\ttimeObj.second = Math.floor(time);\n\t\ttimeObj.millisecond = Math.round((time - timeObj.second) * 1000);\n\n\t\t// Loop over inputs and set proper values\n\t\tfor (let key in this.inputs) {\n\t\t\tif (this.inputs.hasOwnProperty(key)) {\n\t\t\t\tswitch (key) {\n\t\t\t\t\tcase 'hour':\n\t\t\t\t\tcase 'minute':\n\t\t\t\t\tcase 'second':\n\t\t\t\t\t\t// 00\n\t\t\t\t\t\tthis.inputs[key].value = pad(timeObj[key], 2);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'millisecond':\n\t\t\t\t\t\t// 000\n\t\t\t\t\t\tthis.inputs[key].value = pad(timeObj[key], 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check if differs\n\t\tif (!bypassChangeEvent) {\n\t\t\tthis.dispatchEvent(this.getChangeEvent());\n\t\t}\n\n\t\t// Store\n\t\treturn seconds;\n\t}\n}\n\n// Our custom element\nwindow.customElements.define('nx-time', NxTime);\n\nexport default NxTime;\n","// Error boundaries must currently be classes see `ErrorBoundary` for our function wrapper\n// If you use this file directly you will not have a good time trying to get themed styles in\n\nimport React, {PropsWithChildren} from 'react';\n\nimport Button from '@netx/core-components/Button';\nimport {faExclamationCircle as ExclamationIcon} from '@fortawesome/pro-regular-svg-icons';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport Fallback from '../Drawer/Fallback';\n\ninterface ErrorBoundaryState {\n\thasError: boolean;\n}\n\ninterface ErrorBoundaryProps {\n\tclassName?: string;\n\tstyles?: any;\n}\n\nclass ErrorBoundary extends React.Component<\n\tPropsWithChildren\n> {\n\tstate: ErrorBoundaryState;\n\n\tconstructor(props: ErrorBoundaryProps) {\n\t\tsuper(props);\n\t\tthis.state = {hasError: false};\n\t}\n\n\tstatic getDerivedStateFromError(error) {\n\t\t// Update state so the next render will show the fallback UI.\n\t\treturn {hasError: true};\n\t}\n\n\tcomponentDidCatch(error, errorInfo) {\n\t\t// You can also log the error to an error reporting service\n\t\tconsole.log(error, errorInfo);\n\t}\n\n\trender() {\n\t\tconst {className, styles} = this.props;\n\t\tif (this.state.hasError) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{i18n.t('i18n.reload')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn this.props.children;\n\t}\n\n\treset() {\n\t\tthis.setState({hasError: false});\n\t}\n}\n\nexport default ErrorBoundary;\n","// Wrapper for the error boundary class for easier passing of styles with theme support\nimport React from 'react';\nimport type {CSSProperties} from '@mui/styles/withStyles';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport {useTheme, Theme} from '@netx/core-components/Theme';\n\nimport ErrorBoundaryClass from './_ErrorBoundary';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: '1 1 auto',\n\t\t\tflexDirection: 'column',\n\t\t\twidth: '100%',\n\t\t},\n\t});\n\nexport interface ErrorBoundaryProps {\n\tstyles?: (theme: Theme) => CSSProperties | CSSProperties;\n}\n\n/**\n * Wrapper for the error boundary class for easier passing of styles with theme support\n *\n * DEVNOTE: It is advised to place an error boundary at the highest level possible \\\n * Due to the nature of our app we will currently be wrapping the highest level \\\n * of our components as we can (without having a react wrapper around the whole app) \\\n * As we move forward and make progress we can remove the wrapper from lower levels \\\n * and keep moving up the tree until (one day) we get to the top of the app\n */\n// TODO: convert this to styled and anything that wants to use it can just wrap in styled\n// and we can do away with this `any` (`WithStyles` is deprecated and does not play well\n// with ts)\nconst ErrorBoundary = ({\n\tclasses,\n\tchildren,\n\tstyles,\n}: React.PropsWithChildren & ErrorBoundaryProps>) => {\n\tconst theme = useTheme();\n\t// Support passing theme to callback for styles\n\tconst _styles = typeof styles === 'function' ? styles(theme) : styles;\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(ErrorBoundary);\n","import React from 'react';\nimport ErrorBoundary, {ErrorBoundaryProps} from './ErrorBoundary';\n\n/**\n * Wrap component in error boundary \\\n * An error boundary catches all (un-catched) errors within its children \n * \n * DEVNOTE: It is advised to place an error boundary at the highest level possible \\\n * Due to the nature of our app we will currently be wrapping the highest level \\\n * of our components as we can (without having a react wrapper around the whole app) \\\n * As we move forward and make progress we can remove the wrapper from lower levels \\\n * and keep moving up the tree until (one day) we get to the top of the app\n * @example\n import Component from 'my-component';\n const ErrorBoundariedComponent = withErrorBoundary(Component);\n ...\n const MyComponent = withErrorBoundary((props: Props) => {...});\n ...\n const MyComponent = (props: Props) => {...};\n export default withErrorBoundary(MyComponent);\n */\nconst withErrorBoundary = function <\n\tC extends React.ComponentType>\n>(Component: C, styles?: ErrorBoundaryProps['styles']) {\n\treturn (props: React.ComponentProps) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t{/** i do not have the energy to deal with this - the most important thing is the outside world is getting proper typing */}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n};\n\nexport default withErrorBoundary;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const DIALOG_TITLE_CLASS_NAME = 'DialogTitle';\nexport const DIALOG_TITLE_CLASS_SLOTS = [\n\t'root',\n\t'actions',\n\t'icon',\n\t'title',\n] as const;\n\nexport type DialogTitleClassSlot = typeof DIALOG_TITLE_CLASS_SLOTS[number];\n\nexport interface DialogTitleClasses {\n\troot: string;\n\tactions: string;\n\ticon: string;\n\ttitle: string;\n\n\thasIcon: string;\n}\n\nexport type DialogTitleClassKey = keyof DialogTitleClasses;\n\nexport const getDialogTitleUtilityClass = (slot: DialogTitleClassSlot) =>\n\tgenerateUtilityClass(DIALOG_TITLE_CLASS_NAME, slot);\n\nexport const dialogTitleClasses: DialogTitleClasses = generateUtilityClasses(\n\tDIALOG_TITLE_CLASS_NAME,\n\t['root', 'actions', 'hasIcon', 'icon', 'title'],\n);\n\nexport default dialogTitleClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {FontAwesomeIconProps} from '@fortawesome/react-fontawesome';\nimport {faTimes} from '@fortawesome/pro-solid-svg-icons';\nimport {\n\tDialogTitle as MuiDialogTitle,\n\tdialogTitleClasses as muiDialogClasses,\n\tDialogTitleProps as MuiDialogTitleProps,\n} from '@mui/material';\nimport IconButton from '@netx/core-components/IconButton';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport Title, {TitleProps} from '../Title';\nimport {\n\tdialogTitleClasses,\n\tgetDialogTitleUtilityClass,\n\tDialogTitleClasses,\n\tDIALOG_TITLE_CLASS_NAME,\n} from './dialogTitleClasses';\n\ntype DialogTitleOwnerProps = WithClasses<\n\tDialogTitleClasses,\n\t{\n\t\thasIcon?: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: DialogTitleOwnerProps) => {\n\tconst {classes, hasIcon} = ownerState;\n\n\tconst slots = {\n\t\troot: ['root', hasIcon && 'hasIcon'],\n\t\tactions: ['actions'],\n\t\tcontrols: ['controls'],\n\t\ticon: ['icon'],\n\t\ttitle: ['title'],\n\t};\n\treturn composeClasses(slots, getDialogTitleUtilityClass, classes);\n};\n\nconst DialogTitleRoot = styled(MuiDialogTitle, {\n\tname: DIALOG_TITLE_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\toverflow: 'hidden',\n\t[`&.${dialogTitleClasses.hasIcon}`]: {\n\t\tpaddingLeft: theme.spacing(2),\n\t},\n}));\n\nconst DialogTitleText = styled(Title, {\n\tname: DIALOG_TITLE_CLASS_NAME,\n\tslot: 'Title',\n})(({theme}) => ({\n\tflex: '1 1 auto',\n\toverflow: 'hidden',\n}));\n\nconst DialogTitleActions = styled('div', {\n\tname: DIALOG_TITLE_CLASS_NAME,\n\tslot: 'Title',\n})(({theme}) => ({\n\tflex: '0 0 auto',\n\tmarginLeft: theme.spacing(1),\n}));\n\nconst DialogTitleControls = styled('div', {\n\tname: DIALOG_TITLE_CLASS_NAME,\n\tslot: 'Controls',\n})(({theme}) => ({}));\n\nexport type DialogTitleProp =\n\t| string\n\t| {\n\t\t\tprimary: string;\n\t\t\tsecondary?: string;\n\t };\n\nexport interface DialogTitleProps\n\textends Omit<\n\t\t\tWithMuiPropOverrides,\n\t\t\t'classes' | 'variant'\n\t\t>,\n\t\tOmit,\n\t\tWithClasses<\n\t\t\tany,\n\t\t\t{\n\t\t\t\ticon?: FontAwesomeIconProps['icon'];\n\t\t\t\tonClose?: () => void;\n\t\t\t\tcontrols?: React.ReactNode;\n\t\t\t}\n\t\t> {}\n\nconst DialogTitleInner = ({\n\tclasses: _classes,\n\tclassName,\n\tcontrols,\n\ticon,\n\tloading,\n\tprimary,\n\tsecondary,\n\tonClose,\n\tPrimaryTitleProps,\n\tSecondaryTitleProps,\n\t...props\n}: DialogTitleProps) => {\n\tconst ownerState: DialogTitleOwnerProps = {\n\t\tclasses: _classes,\n\t\tclassName,\n\t\thasIcon: icon != null,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{controls ? (\n\t\t\t\t\n\t\t\t\t\t{controls}\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t{onClose ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};\n\nexport const DialogTitlePrimitive = DialogTitleInner;\n\nexport const DialogTitle = DialogTitlePrimitive;\n\nexport default DialogTitle;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const TOGGLE_BUTTON_CLASS_NAME = 'ToggleButton';\nexport const TOGGLE_BUTTON_CLASS_SLOTS = ['root', 'background'] as const;\n\nexport type ToggleButtonClassSlot = typeof TOGGLE_BUTTON_CLASS_SLOTS[number];\n\nexport interface ToggleButtonClasses {\n\troot: string;\n\tbackground: string;\n\tactive: string;\n\tfill: string;\n}\n\nexport type ToggleButtonClassKey = keyof ToggleButtonClasses;\n\nexport const getToggleButtonUtilityClass = (slot: ToggleButtonClassSlot) =>\n\tgenerateUtilityClass(TOGGLE_BUTTON_CLASS_NAME, slot);\n\nexport const toggleButtonClasses: ToggleButtonClasses = generateUtilityClasses(\n\tTOGGLE_BUTTON_CLASS_NAME,\n\t['root', 'active', 'background', 'fill'],\n);\n\nexport default toggleButtonClasses;\n","import React, {useCallback, useEffect, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {darken, lighten} from '@mui/system';\nimport {composeClasses, styled, WithClasses} from '@netx/core-components/Theme';\nimport {useConfirmation} from '../Confirmation/ConfirmationService';\nimport IconButton, {IconButtonProps} from '../IconButton';\nimport {\n\ttoggleButtonClasses,\n\tgetToggleButtonUtilityClass,\n\tToggleButtonClasses,\n\tTOGGLE_BUTTON_CLASS_NAME,\n} from './toggleButtonClasses';\n\ntype IconButtonMethods = Required>;\n\ntype ToggleButtonUtiltiyClassProps = WithClasses<\n\tToggleButtonClasses,\n\t{\n\t\tactive?: boolean;\n\t\tcolor: Required['color'];\n\t\tfill?: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: ToggleButtonUtiltiyClassProps) => {\n\tconst {classes, active, fill} = ownerState;\n\tconst slots = {\n\t\troot: ['root', active && 'active', fill && 'fill'],\n\t\tbackground: ['background'],\n\t};\n\treturn composeClasses(slots, getToggleButtonUtilityClass, classes);\n};\n\nconst ToggleButtonRoot = styled(IconButton, {\n\tname: TOGGLE_BUTTON_CLASS_NAME,\n\tslot: 'Root',\n})(({theme, ...props}) => {\n\tconst light = theme.palette.mode === 'light';\n\tconst getBackgroundColor = light ? darken : lighten;\n\tconst ownerState = props.ownerState as ToggleButtonUtiltiyClassProps;\n\treturn {\n\t\t[`&.${toggleButtonClasses.active}`]: {\n\t\t\tcolor:\n\t\t\t\ttheme.palette[ownerState.color]?.contrastText ||\n\t\t\t\ttheme.palette.primary.contrastText,\n\t\t\t[`& .${toggleButtonClasses.background}`]: {\n\t\t\t\ttransform: 'scale(1)',\n\t\t\t},\n\t\t},\n\t\t[`& .${toggleButtonClasses.background}`]: {\n\t\t\tbackgroundColor:\n\t\t\t\townerState.color === 'inherit'\n\t\t\t\t\t? 'inherit'\n\t\t\t\t\t: getBackgroundColor(\n\t\t\t\t\t\t\ttheme.palette[ownerState.color]?.main ||\n\t\t\t\t\t\t\t\ttheme.palette.primary.main,\n\t\t\t\t\t\t\t0.05,\n\t\t\t\t\t ),\n\t\t\t...(ownerState.fill\n\t\t\t\t? {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\ttop: 4,\n\t\t\t\t\t\tright: 4,\n\t\t\t\t\t\tbottom: 4,\n\t\t\t\t\t\tleft: 4,\n\t\t\t\t }),\n\t\t},\n\t};\n});\n\nconst ToggleButtonBackground = styled('div', {\n\tname: TOGGLE_BUTTON_CLASS_NAME,\n\tslot: 'Background',\n})(({theme}) => ({\n\tdisplay: 'block',\n\tpointerEvents: 'none',\n\tborderRadius: '50%',\n\ttransformOrigin: 'center',\n\ttransform: 'scale(0)',\n\ttransition: 'transform .15s ease-in-out',\n\tposition: 'absolute',\n}));\n\ninterface ConfirmProps {\n\tmessage: string;\n\ttitle: string;\n}\n\nexport interface ToggleButtonProps\n\textends Omit,\n\t\tWithClasses<\n\t\t\tToggleButtonClasses,\n\t\t\t{\n\t\t\t\tconfirm?: ConfirmProps;\n\t\t\t\tfill?: boolean;\n\t\t\t\ton?: boolean;\n\t\t\t\tonToggle?: (\n\t\t\t\t\tevent: React.MouseEvent,\n\t\t\t\t\ton: boolean,\n\t\t\t\t) => void;\n\t\t\t}\n\t\t> {}\n\nexport const ToggleButtonPrimitive = ({\n\tclasses: _classes,\n\tclassName,\n\tcolor = 'default',\n\tconfirm,\n\tfill,\n\ton = false,\n\tonClick,\n\tonToggle,\n\t...props\n}: ToggleButtonProps) => {\n\tconst confirmation = useConfirmation();\n\n\t// TODO: fix this, on state should be solely controlled from the outside\n\tconst [isOn, setIsOn] = useState(on);\n\tuseEffect(() => {\n\t\tsetIsOn(on);\n\t}, [on]);\n\n\tconst ownerState = {\n\t\tclasses: _classes,\n\t\tactive: isOn,\n\t\tcolor,\n\t\tfill,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\tconst toggle = useCallback(\n\t\t(event: React.MouseEvent) => {\n\t\t\tsetIsOn((isOn) => {\n\t\t\t\t// Gives the UI time to animate without choking on\n\t\t\t\t// what the toggle does\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tonToggle?.(event, !isOn);\n\t\t\t\t}, 1);\n\t\t\t\treturn !isOn;\n\t\t\t});\n\t\t},\n\t\t[onToggle],\n\t);\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent) => {\n\t\t\tevent.persist();\n\t\t\tonClick?.(event);\n\t\t\t// if (event.defaultPrevented) return;\n\n\t\t\tevent.stopPropagation();\n\t\t\tif (!confirm) return toggle(event);\n\t\t\tconfirmation({\n\t\t\t\tdescription: confirm.message,\n\t\t\t\ttitle: confirm.title,\n\t\t\t}).then(() => toggle(event));\n\t\t},\n\t\t[confirm, onClick, toggle],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const ToggleButton = ToggleButtonPrimitive;\n\nexport default ToggleButton;\n","import React from 'react';\n\nimport {WithMuiPropOverrides} from '@netx/core-components/Theme';\n\nimport MuiMenuList, {\n\tMenuListProps as MuiMenuListProps,\n} from '@mui/material/MenuList';\n\nexport interface MenuListProps\n\textends Partial> {}\n\nconst MenuList = React.forwardRef(\n\t(props, ref) => ,\n);\n\nexport default MenuList;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface SelectFieldClasses {\n\t/** Styles applied to the root element. */\n\troot: string;\n\tmultiple: string;\n\tautocomplete: string;\n\tselectedIcon: string;\n}\n\nexport const getSelectFieldUtilityClass = (slot: string) =>\n\tgenerateUtilityClass('SelectField', slot);\n\nexport const selectFieldClasses = generateUtilityClasses('SelectField', [\n\t'root',\n\t'autocomplete',\n\t'multiple',\n\t'selectedIcon',\n]);\nexport default selectFieldClasses;\n","// import {csvToArray} from '@netx/core/utils';\n\nexport const base = (value: any) => {\n\t// // Some things still use csv (gross)\n\t// if (value != null && !Array.isArray(value) && value.toString().includes('\"'))\n\t// \treturn csvToArray(value);\n\n\treturn value;\n};\n\nexport default base;\n","import React, {useMemo} from 'react';\n\nimport {Divider} from '@mui/material';\nimport MenuList, {MenuListProps} from '../MenuList';\nimport MenuItem from '../MenuItem';\n\nimport {ReactAction as Action} from '@netx/core/bootstrap';\n\nexport interface ActionMenuList {\n\tactions: Array;\n\tonAction: (action: Action) => void;\n}\n\nconst ActionMenuList: React.FunctionComponent<\n\tActionMenuList & MenuListProps\n> = React.forwardRef(\n\t({actions, onAction, ...props}, ref: React.RefObject) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t{actions.map((action, index) => {\n\t\t\t\t\tif (Array.isArray(action)) {\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\tindex > 0 ? : null,\n\t\t\t\t\t\t\t...action.map((action) => (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonAction(action);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tseverity={action.severity}\n\t\t\t\t\t\t\t\t\ttext={action.label}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)),\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tonAction(action);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tseverity={action.severity}\n\t\t\t\t\t\t\ttext={action.label}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport default ActionMenuList;\n","import React from 'react';\n\nimport {compareProps} from '@netx/core-components/util';\nimport {FormType, FormValues} from './';\n\ntype Ref = React.ForwardedRef;\n\nexport interface FormProps\n\textends Omit<\n\t\tReact.DetailedHTMLProps<\n\t\t\tReact.HTMLAttributes,\n\t\t\tHTMLFormElement\n\t\t>,\n\t\t'noValidate' | 'onSubmit'\n\t> {\n\tform?: FormType;\n\tonSubmit?: (\n\t\tvalues: FormType['values'],\n\t\tchanges?: FormType['changes'],\n\t\tactions?: FormType['actions'],\n\t) => Promise;\n}\n\n/**\n * A helpful wrapper
that deals with some boiler plate settings\n */\nconst FormInner = (\n\t{\n\t\tchildren,\n\n\t\tform,\n\t\tonSubmit,\n\t\t...props\n\t}: FormProps,\n\tref?: Ref,\n) => {\n\tconst sendProps: any = {};\n\tif (form && form.options?.onSubmit) {\n\t\tsendProps.onSubmit = form.handleSubmit(form.options?.onSubmit);\n\t} else if (form && onSubmit) {\n\t\tsendProps.onSubmit = form.handleSubmit(onSubmit);\n\t} else {\n\t\tsendProps.onSubmit = onSubmit;\n\t}\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport const FormPrimitive = React.forwardRef(FormInner) as (\n\tprops: FormProps,\n\tref?: Ref,\n) => JSX.Element;\n\nexport const Form = React.memo(FormPrimitive, compareProps([]));\n\nexport default Form;\n","import AttributesSetsCollection from '../assetAttributeSets';\nimport {assetAttributes as assetAttributesSingleton} from './attributes';\n\nexport const attributeSets = new AttributesSetsCollection([], {\n\tassetAttributes: assetAttributesSingleton,\n});\n\nexport default attributeSets;\n","import type Collection from '@netx/core/lib/netx-collection';\nimport _ from 'underscore';\n\nimport {useEffect, useState} from 'react';\nimport useComponentIsMounted from './useComponentIsMounted';\n\nexport default function useBackboneCollection<\n\tTCollection extends Collection = Collection\n>(collection: TCollection, fetchOnMount = true) {\n\tconst {act} = useComponentIsMounted();\n\n\tconst [attributes, setAttributes] = useState<\n\t\tTCollection['models'][number]['attributes'][]\n\t>([...collection.models.map((model) => ({...model.attributes}))]);\n\n\t// Subscribe to the model or collection on first render only\n\tuseEffect(() => {\n\t\t// Pull the attributes or array of attributes from model or collection\n\t\t// Set them on state\n\t\tconst pullAndSetData = () =>\n\t\t\tact(() =>\n\t\t\t\tsetAttributes([\n\t\t\t\t\t...collection.models.map((model) => ({...model.attributes})),\n\t\t\t\t]),\n\t\t\t);\n\n\t\tpullAndSetData();\n\n\t\tconst debouncedPullAndSetData = _.debounce(pullAndSetData, 20);\n\t\tcollection.on('add change remove reset sort sync', debouncedPullAndSetData);\n\n\t\tconst preferredFetchMethod = collection.preferredFetchMethod || 'fetch';\n\t\tfetchOnMount !== false && collection[preferredFetchMethod]();\n\n\t\t// Unsubscribe when component unmounted\n\t\treturn () => {\n\t\t\tcollection.off(undefined, debouncedPullAndSetData);\n\t\t};\n\t}, []);\n\n\treturn attributes;\n}\n","export enum DragResizeDirection {\n\tBOTTOM = 'bottom',\n\tLEFT = 'left',\n\tRIGHT = 'right',\n\tTOP = 'top',\n}\n\nexport enum Axis {\n\tX = 'X',\n\tY = 'Y',\n}\n\nexport enum ClientPosition {\n\tX = 'clientX',\n\tY = 'clientY',\n}\n\nexport enum ClientDimension {\n\tX = 'clientWidth',\n\tY = 'clientHeight',\n}\n\nexport enum ScrollDimension {\n\tX = 'scrollWidth',\n\tY = 'scrollHeight',\n}\n\nexport enum OffsetDimension {\n\tX = 'offsetWidth',\n\tY = 'offsetHeight',\n}\n\nexport const DRAG_RESIZE_DEFAULT_DIRECTION = DragResizeDirection.LEFT;\n","import React, {useEffect, useState} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {\n\tButton,\n\tDialogContent,\n\tDialogActions,\n\tLinearProgress,\n\tTypography,\n} from '@mui/material';\n\nimport Dialog from '@netx/core-components/Dialog';\n\nexport interface DownloadOptions {\n\tdescription?: string;\n\ttitle?: string;\n\tonEmailWhenDone?: () => void;\n\tgetUUID(): Promise;\n}\n\nexport interface DownloadDialogProps extends DownloadOptions {\n\tcompleteUrl?: string;\n\tdisableEmailWhenDone?: boolean;\n\terror?: string;\n\temailWhenDoneLabel?: string;\n\topen: boolean;\n\tonClose?: () => void;\n\tprogress?: number;\n\tuuid?: string;\n}\n\nconst DownloadDialog: React.FunctionComponent<\n\tReact.PropsWithChildren\n> = ({\n\tcompleteUrl,\n\tdescription,\n\tdisableEmailWhenDone,\n\terror,\n\temailWhenDoneLabel,\n\topen,\n\tprogress,\n\ttitle,\n\tonClose,\n\tonEmailWhenDone,\n\tuuid,\n}) => {\n\treturn (\n\t\t\n\t\t\t{!error || description != null ? (\n\t\t\t\t\n\t\t\t\t\t{description != null ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{!error ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\n\t\t\t) : null}\n\n\t\t\t\n\t\t\t\t{!disableEmailWhenDone && !error && uuid ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t{error ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DownloadDialog;\n","export const ACTIONS = {\n\tSET_ERROR: 'SET_ERROR',\n\tSET_PROGRESS: 'SET_PROGRESS',\n\tSET_SUCCESS: 'SET_SUCCESS',\n\tSET_UUID: 'SET_UUID',\n};\n","import {ACTIONS} from './constants';\nimport type {Action} from './actions';\n\nexport type State = {\n\tcompleteUrl?: string;\n\terror?: string;\n\tprogress?: number;\n\tsuccess: boolean;\n\tuuid?: string;\n};\n\nexport const initialState: State = {\n\tsuccess: false,\n};\n\nconst reducer = (state: State, action: Action): State => {\n\tswitch (action.type) {\n\t\tcase ACTIONS.SET_ERROR:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\terror: action.error,\n\t\t\t\tsuccess: false,\n\t\t\t\tuuid: undefined,\n\t\t\t};\n\t\tcase ACTIONS.SET_PROGRESS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tprogress: action.progress,\n\t\t\t};\n\t\tcase ACTIONS.SET_SUCCESS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcompleteUrl: action.completeUrl,\n\t\t\t\tsuccess: action.success,\n\t\t\t\tuuid: undefined,\n\t\t\t};\n\t\tcase ACTIONS.SET_UUID:\n\t\t\treturn action.uuid != null\n\t\t\t\t? {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tcompleteUrl: undefined,\n\t\t\t\t\t\terror: undefined,\n\t\t\t\t\t\tuuid: action.uuid,\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\tprogress: 0,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tcompleteUrl: undefined,\n\t\t\t\t\t\terror: undefined,\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\tprogress: undefined,\n\t\t\t\t\t\tuuid: undefined,\n\t\t\t\t };\n\t}\n};\n\nexport default reducer;\n","import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseReducer,\n\tuseState,\n} from 'react';\n\nimport {openDownloadLink} from '@netx/core/utils';\nimport DownloadDialog, {DownloadOptions} from '../components/Dialog';\n\nimport {\n\tuseQuery,\n\tQueryClient,\n\tQueryClientProvider,\n\tQueryFunctionContext,\n} from '@tanstack/react-query';\n\nimport getProgressReport, {\n\tGetProgressReportResult,\n\tGetProgressReportRequestOptions,\n\tQueryError,\n} from './api/getProgressReport';\n\nimport setProgressReportNotify from './api/setProgressReportNotify';\n\nimport reducer, {initialState} from './reducer';\nimport {ACTIONS} from './constants';\n\nconst queryClient = new QueryClient();\n\nconst DownloadServiceContext = createContext<\n\t(options: DownloadOptions) => void\n>(() => {});\n\nexport const useDownload = () => useContext(DownloadServiceContext);\n\nexport type DownloadServiceProviderProps = React.PropsWithChildren<{\n\tdisableEmailWhenDone?: boolean;\n}>;\n\nexport const DownloadServiceProviderPrimitive = ({\n\tchildren,\n\tdisableEmailWhenDone,\n}: DownloadServiceProviderProps) => {\n\tconst [state, dispatch] = useReducer(reducer, initialState);\n\n\tconst [downloadState, setDownloadState] = useState();\n\n\tconst close = useCallback(() => setDownloadState(undefined), []);\n\n\tuseQuery({\n\t\tqueryKey: [\n\t\t\t'getProgressReport',\n\t\t\t{\n\t\t\t\tuuid: state.uuid,\n\t\t\t},\n\t\t],\n\t\tqueryFn: ({\n\t\t\tqueryKey,\n\t\t}: QueryFunctionContext<[string, GetProgressReportRequestOptions]>) =>\n\t\t\tgetProgressReport({...queryKey[1]}),\n\t\tenabled: !!state.uuid,\n\t\trefetchInterval: 500,\n\t\tonError: (error) => {\n\t\t\tdispatch({type: ACTIONS.SET_ERROR, error: error.message});\n\t\t},\n\t\t// Process data on success\n\t\tonSuccess: (data) => {\n\t\t\tdispatch({type: ACTIONS.SET_PROGRESS, progress: data.percentComplete});\n\t\t\tif (data.percentComplete >= 100 && data.completeUrl != null) {\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: ACTIONS.SET_SUCCESS,\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tcompleteUrl: data.completeUrl,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n\n\tuseEffect(() => {\n\t\tif (!state.completeUrl) return;\n\n\t\topenDownloadLink(state.completeUrl);\n\t\tclose();\n\t}, [state.completeUrl]);\n\n\tconst openDownload = useCallback((options: DownloadOptions) => {\n\t\tsetDownloadState(options);\n\t\toptions\n\t\t\t.getUUID()\n\t\t\t.then((uuid) => dispatch({type: ACTIONS.SET_UUID, uuid}))\n\t\t\t.catch((error) =>\n\t\t\t\tdispatch({type: ACTIONS.SET_ERROR, error: error.message}),\n\t\t\t);\n\t}, []);\n\n\tconst handleEmailWhenDone = useCallback(() => {\n\t\tstate.uuid && setProgressReportNotify({uuid: state.uuid, notify: true});\n\t\tclose();\n\t\tdispatch({type: ACTIONS.SET_UUID});\n\t}, [state.uuid]);\n\n\tconst handleClose = useCallback(() => {\n\t\tclose();\n\t\tdispatch({type: ACTIONS.SET_UUID});\n\t}, [downloadState]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport const DownloadServiceProvider = (\n\tprops: DownloadServiceProviderProps,\n) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DownloadServiceProvider;\n","import NetxQueryDam from '@netx/core/lib/netx-query-dam';\nexport {QueryError} from '@netx/core/lib/netx-query-dam';\n\nimport {BatchJobId as UUID} from '@netx/core-app/models/batchJob';\n\n/**\n * `getProgressReport` request params\n * (what is used to send to server)\n */\nexport interface GetProgressReportRequestOptions {\n\tuuid: UUID;\n}\n\n/**\n * `getProgressReport` request\n * (what gets sent to the server)\n */\nexport type GetProgressReportRequest = [\n\tGetProgressReportRequestOptions['uuid'],\n];\n\n/**\n * `getProgressReport` response\n * (what comes back from the server)\n */\nexport interface GetProgressReportResponse {\n\tresult: GetProgressReportResult;\n}\n\n/**\n * `getProgressReport` result\n * (what is utilized from the server response)\n */\nexport type GetProgressReportResult = {\n\tpercentComplete: number;\n\tjobTitle: string;\n\tsecondsToReload: number;\n\tcompleteUrl: null | string;\n\tdetails: string;\n\tincrement: number;\n\tstartTime: number;\n\trunningTime: number;\n\trunningTimeLabel: null | string;\n\testimatedTime: null | number;\n\tuserId: number;\n\tnotifyOnComplete: boolean;\n\tsize: number;\n\tprogressMessages: null | any; // TODO\n\tprogressMessageCount: number;\n\twarningObject: null | any; // TODO generic\n};\n\nexport const getProgressReportEndpoint = 'getProgressReport';\n\n/**\n * Get Progress\n * @param fetchParams Fetch params\n */\nexport default async function isTokenValid({\n\tuuid,\n}: GetProgressReportRequestOptions) {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: GetProgressReportRequest = [uuid];\n\n\treturn client\n\t\t.post(getProgressReportEndpoint, requestParams)\n\t\t.then((response) => response.data.result);\n}\n","import NetxQueryDam from '@netx/core/lib/netx-query-dam';\n\nimport {BatchJobId as UUID} from '@netx/core-app/models/batchJob';\n\n/**\n * `setProgressReportNotify` request params\n * (what is used to send to server)\n */\nexport interface SetProgressReportNotifyRequestOptions {\n\tuuid: UUID;\n\tnotify: boolean;\n}\n\n/**\n * `setProgressReportNotify` request\n * (what gets sent to the server)\n */\nexport type SetProgressReportNotifyRequest = [\n\tSetProgressReportNotifyRequestOptions['uuid'],\n\tSetProgressReportNotifyRequestOptions['notify'],\n];\n\n/**\n * `setProgressReportNotify` response\n * (what comes back from the server)\n */\nexport interface SetProgressReportNotifyResponse {\n\tresult: SetProgressReportNotifyResult;\n}\n\n/**\n * `setProgressReportNotify` result\n * (what is utilized from the server response)\n */\nexport type SetProgressReportNotifyResult = boolean;\n\nexport const setProgressReportNotifyEndpoint = 'setProgressReportNotify';\n\n/**\n * Notify when done\n * @param fetchParams Fetch params\n */\nexport default async function isTokenValid({\n\tuuid,\n\tnotify,\n}: SetProgressReportNotifyRequestOptions) {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: SetProgressReportNotifyRequest = [uuid, notify];\n\n\treturn client\n\t\t.post(\n\t\t\tsetProgressReportNotifyEndpoint,\n\t\t\trequestParams,\n\t\t)\n\t\t.then((response) => response.data.result);\n}\n","import React from 'react';\n\nimport {DownloadServiceProvider, DownloadServiceProviderProps} from './store';\n\n/**\n * wrap component in download dialog provider\n * @example\n\tconst WrappedComponenet = withDownloadDialog(Componenet, {...});\n */\nexport const withDownloadDialog = function (\n\tComponent: C,\n\tdefaults?: Partial,\n) {\n\treturn ({\n\t\tDownloadServiceProviderProps,\n\t\t...props\n\t}: JSX.IntrinsicAttributes &\n\t\tJSX.LibraryManagedAttributes> & {\n\t\t\tDownloadServiceProviderProps?: Partial;\n\t\t}) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t>)}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t};\n};\n\nexport default withDownloadDialog;\n","import React from 'react';\nimport {useCallback, useEffect} from 'react';\n\nimport scrollIntoView from 'scroll-into-view-if-needed';\n\nconst config = {childList: true};\n\ntype UseScrollAddedNodesIntoView = {\n\tenabled?: boolean;\n\tref: React.RefObject;\n};\n\nexport default function useScrollAddedNodesIntoView({\n\tenabled = true,\n\tref,\n}: UseScrollAddedNodesIntoView) {\n\tconst callback = useCallback((mutationsList) => {\n\t\tlet removed: Node[] = [];\n\t\tlet added: Node[] = [];\n\t\tfor (const {addedNodes, removedNodes, type} of mutationsList) {\n\t\t\tif (type !== 'childList') continue;\n\n\t\t\tremoved = removed.concat(Array.from(removedNodes));\n\n\t\t\tif (!addedNodes.length) continue;\n\n\t\t\tconst el = addedNodes[0] as HTMLElement;\n\t\t\t// If it was removed in this mutation as well, it was just a reorder\n\t\t\t// we only want to scroll into view new items in the container\n\t\t\tif (!removed.includes(el)) {\n\t\t\t\tadded = added.concat(Array.from(addedNodes));\n\t\t\t}\n\t\t}\n\n\t\t// If we added multiples lets just ignore\n\t\tif (added.length > 1 || added.length === 0) return;\n\n\t\t// TODO: scroll into view if it is not visible somehow?\n\t\t// If we want to do that we can use the browser version\n\t\t// which will scroll all parent elements\n\t\tscrollIntoView(added[0] as HTMLElement, {\n\t\t\tbehavior: 'smooth',\n\t\t\tblock: 'end',\n\t\t\tscrollMode: 'if-needed',\n\t\t\tskipOverflowHiddenElements: true,\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!ref.current || !enabled) return;\n\n\t\tconst observer = new MutationObserver(callback);\n\t\tobserver.observe(ref.current, config);\n\t\treturn () => observer.disconnect();\n\t}, [callback, ref, enabled]);\n}\n","// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n// DEPRECATED: please see ScrollBorder\n// We can add support for shadow over border there - but it does not use scroll events\n// and i do not have the time atm to track down the few components that may be using this\n\n// (ORIGINAL) TODO: This is not the best - it tries to do too much\n// the scroll added nodes into view should be handled elsewhere\n// I wrote this before I fully understood how to combine refs\n\nimport React, {useCallback, useReducer, useRef} from 'react';\nimport clsx from 'clsx';\nimport _ from 'underscore';\n\nimport ReactResizeDetector from 'react-resize-detector';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport useScrollAddedNodesIntoView from './useScrollAddedNodesIntoView';\nimport useScrollListener from './useScrollListener';\n\nconst shadow = [\n\t'radial-gradient(farthest-side at 50% 0px, rgba(0,0,0,.2), rgba(0,0,0,0))', // Top\n\t'radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,.2), rgba(0,0,0,0)) 0 100%', // Bottom\n];\nconst shadowSize = ['100% 6px', '100% 14px'];\nconst createShadow = (side: 'top' | 'bottom' | 'all') => {\n\tconst styles = {\n\t\tbackgroundRepeat: 'no-repeat',\n\t};\n\tswitch (side) {\n\t\tcase 'top':\n\t\t\treturn {\n\t\t\t\t...styles,\n\t\t\t\tbackground: shadow[0],\n\t\t\t\tbackgroundSize: shadowSize.join(),\n\t\t\t};\n\t\tcase 'bottom':\n\t\t\treturn {\n\t\t\t\t...styles,\n\t\t\t\tbackground: shadow[1],\n\t\t\t\tbackgroundSize: shadowSize.join(),\n\t\t\t};\n\t\tcase 'all':\n\t\t\treturn {\n\t\t\t\t...styles,\n\t\t\t\tbackground: shadow.join(),\n\t\t\t\tbackgroundSize: `${shadowSize[0]}, ${shadowSize[0]}, ${shadowSize[1]}, ${shadowSize[1]}`,\n\t\t\t};\n\t}\n};\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\toverflown: {\n\t\t\t'&:not($scrolled)': createShadow('bottom'),\n\t\t\t'&$scrollEnd': createShadow('top'),\n\t\t\t'&$scrolled:not($scrollEnd)': createShadow('all'),\n\t\t},\n\t\tscrolled: {},\n\t\tscrollEnd: {},\n\t});\n\nexport interface ScrollShadowWrapperProps {\n\tclassName?: string;\n\tscrollNewItemsIntoView?: boolean;\n}\n\nexport interface ScrollShadowWrapperChildProps {\n\tclassName: string;\n\tref:\n\t\t| ((instance: HTMLDivElement | null) => void)\n\t\t| React.RefObject\n\t\t| null;\n}\n\nconst initialState = {\n\tclientHeight: 0,\n\tisOverflown: false,\n\tisScrolled: false,\n\treachedScrollEnd: false,\n};\n\nconst reducer = (state = initialState, action): typeof initialState => {\n\tswitch (action.type) {\n\t\tcase 'RESIZE': {\n\t\t\tconst {clientHeight, scrollHeight, scrollTop} = action.data;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tclientHeight,\n\t\t\t\tisOverflown: clientHeight < scrollHeight,\n\t\t\t\tisScrolled: scrollTop > 0,\n\t\t\t\treachedScrollEnd: scrollTop === scrollHeight - clientHeight,\n\t\t\t};\n\t\t}\n\t\tcase 'SCROLL': {\n\t\t\tconst {scrollHeight, scrollTop} = action.data;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisScrolled: scrollTop > 0,\n\t\t\t\treachedScrollEnd: scrollTop === scrollHeight - state.clientHeight,\n\t\t\t};\n\t\t}\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\n// TODO: this only works for vertical scrolling ATM\n/**\n * Provide some auto-scroll/shadow functionality to your list components\n *\n * This will only look for nodes added as direct descendants so be sure\n * to apply this to the last level of your list\n *\n * The component being wrapped must utilize `React.forwardRef`\n * @deprecated\n * @example\n * const ListWrapper = ScrollShadowWrapper(\n * React.forwardRef((props, ref) => {\n * return
;\n * })\n * );\n * ...list items\n */\nconst ScrollShadowWrapper = (\n\tComponent: React.ForwardRefExoticComponent,\n) => {\n\treturn withStyles(styles)(\n\t\tReact.memo(\n\t\t\t({\n\t\t\t\tclasses,\n\t\t\t\tclassName,\n\t\t\t\tscrollNewItemsIntoView = false,\n\t\t\t\t...props\n\t\t\t}: WithStyles & ScrollShadowWrapperProps) => {\n\t\t\t\tconst [state, dispatch] = useReducer(reducer, initialState);\n\n\t\t\t\tconst ref = useRef(null);\n\n\t\t\t\tuseScrollAddedNodesIntoView({\n\t\t\t\t\tenabled: scrollNewItemsIntoView,\n\t\t\t\t\tref,\n\t\t\t\t});\n\n\t\t\t\tuseScrollListener({\n\t\t\t\t\tref,\n\t\t\t\t\tonScroll: useCallback(\n\t\t\t\t\t\t(container) => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'SCROLL',\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tscrollHeight: container.scrollHeight,\n\t\t\t\t\t\t\t\t\tscrollTop: container.scrollTop,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[dispatch],\n\t\t\t\t\t),\n\t\t\t\t});\n\n\t\t\t\tconst handleResize = useCallback(() => {\n\t\t\t\t\tif (!ref.current) return;\n\t\t\t\t\tconst {scrollTop, scrollHeight, clientHeight} = ref.current;\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: 'RESIZE',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tclientHeight,\n\t\t\t\t\t\t\tscrollHeight,\n\t\t\t\t\t\t\tscrollTop,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}, []);\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t},\n\t\t),\n\t);\n};\n\nexport default ScrollShadowWrapper;\n","import React from 'react';\nimport _ from 'underscore';\n\ntype UseScrollListener = {\n\tref: React.RefObject;\n\tonScroll(el: HTMLElement): void;\n};\n\nexport default function useScrollListener({ref, onScroll}: UseScrollListener) {\n\tReact.useEffect(() => {\n\t\tif (!ref.current) return;\n\t\tconst scrollListener = _.throttle(\n\t\t\t() => {\n\t\t\t\tif (!ref.current) return;\n\t\t\t\tonScroll(ref.current);\n\t\t\t},\n\t\t\t16,\n\t\t\t{trailing: true},\n\t\t);\n\n\t\tref.current.addEventListener('scroll', scrollListener, true);\n\t\treturn () => {\n\t\t\tref.current?.removeEventListener('scroll', scrollListener, true);\n\t\t};\n\t}, [ref, onScroll]);\n}\n","import {i18n} from '@netx/core/i18n';\n\nimport {\n\tATTRIBUTE_TYPE,\n\tATTRIBUTE_SYSTEM,\n\tATTRIBUTE_SYSTEM_ID,\n} from './constants';\nimport {AttributeType, AttributeSystemType} from './types';\n\nexport const TYPE_LABELS: Record = {\n\t[ATTRIBUTE_TYPE.DATE]: i18n.t('i18n.date'),\n\t[ATTRIBUTE_TYPE.HIERARCHICAL]: i18n.t('i18n.hierarchical'),\n\t[ATTRIBUTE_TYPE.MULTISELECT]: i18n.t('i18n.multiSelectBox'),\n\t[ATTRIBUTE_TYPE.NUMBER]: i18n.t('i18n.number'),\n\t[ATTRIBUTE_TYPE.SELECT]: i18n.t('i18n.pulldown'),\n\t[ATTRIBUTE_TYPE.SEMANTIC]: i18n.t('i18n.semantic'),\n\t[ATTRIBUTE_TYPE.TAG]: i18n.t('i18n.tag'),\n\t[ATTRIBUTE_TYPE.TAG_VOCAB]: i18n.t('i18n.tagVocab'),\n\t[ATTRIBUTE_TYPE.TEXT]: i18n.t('i18n.text'),\n\t[ATTRIBUTE_TYPE.TEXTAREA]: i18n.t('i18n.textarea'),\n};\n\nexport const SYSTEM_ATTRIBUTE_LABELS: Record = <\n\tconst\n>{\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.ASSET_ID]]: i18n.t('i18n.assetId'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.CATEGORY_PATHS]]: i18n.t(\n\t\t'i18n.folderPath',\n\t),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.CHECKSUM]]: i18n.t('i18n.checksum'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.CREATION_DATE]]: i18n.t(\n\t\t'i18n.creationDate',\n\t),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.DIMENSIONS]]: i18n.t('i18n.dimensions'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.EXPIRE_DATE]]: i18n.t('i18n.expires'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE]]: i18n.t('i18n.file'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE_FORMAT_FAMILY]]: i18n.t(\n\t\t'i18n.fileFormatFamily',\n\t),\n\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE_SIZE_2]]: i18n.t('i18n.fileSize'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.FILE_TYPE_LABEL]]: i18n.t(\n\t\t'i18n.fileType',\n\t),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.HEIGHT]]: i18n.t('i18n.height'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.IMPORT_DATE]]: i18n.t(\n\t\t'i18n.importDate',\n\t),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.MOD_DATE]]: i18n.t('i18n.modDate'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.MOD_USER]]: i18n.t('i18n.modUser'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.NAME]]: i18n.t('i18n.name'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.PATH]]: i18n.t('i18n.path'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.SMART_LABELS]]: i18n.t(\n\t\t'i18n.smartLabels',\n\t),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.THUMB_PATH]]: i18n.t('i18n.thumbPath'),\n\t[ATTRIBUTE_SYSTEM_ID[ATTRIBUTE_SYSTEM.WIDTH]]: i18n.t('i18n.width'),\n};\n","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass('MuiTab', slot);\n}\nconst tabClasses = generateUtilityClasses('MuiTab', ['root', 'labelIcon', 'textColorInherit', 'textColorPrimary', 'textColorSecondary', 'selected', 'disabled', 'fullWidth', 'wrapped', 'iconWrapper']);\nexport default tabClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"iconPosition\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport tabClasses, { getTabUtilityClass } from './tabClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n textColor,\n fullWidth,\n wrapped,\n icon,\n label,\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', icon && label && 'labelIcon', `textColor${capitalize(textColor)}`, fullWidth && 'fullWidth', wrapped && 'wrapped', selected && 'selected', disabled && 'disabled'],\n iconWrapper: ['iconWrapper']\n };\n return composeClasses(slots, getTabUtilityClass, classes);\n};\n\nconst TabRoot = styled(ButtonBase, {\n name: 'MuiTab',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.label && ownerState.icon && styles.labelIcon, styles[`textColor${capitalize(ownerState.textColor)}`], ownerState.fullWidth && styles.fullWidth, ownerState.wrapped && styles.wrapped];\n }\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.button, {\n maxWidth: 360,\n minWidth: 90,\n position: 'relative',\n minHeight: 48,\n flexShrink: 0,\n padding: '12px 16px',\n overflow: 'hidden',\n whiteSpace: 'normal',\n textAlign: 'center'\n}, ownerState.label && {\n flexDirection: ownerState.iconPosition === 'top' || ownerState.iconPosition === 'bottom' ? 'column' : 'row'\n}, {\n lineHeight: 1.25\n}, ownerState.icon && ownerState.label && {\n minHeight: 72,\n paddingTop: 9,\n paddingBottom: 9,\n [`& > .${tabClasses.iconWrapper}`]: _extends({}, ownerState.iconPosition === 'top' && {\n marginBottom: 6\n }, ownerState.iconPosition === 'bottom' && {\n marginTop: 6\n }, ownerState.iconPosition === 'start' && {\n marginRight: theme.spacing(1)\n }, ownerState.iconPosition === 'end' && {\n marginLeft: theme.spacing(1)\n })\n}, ownerState.textColor === 'inherit' && {\n color: 'inherit',\n opacity: 0.6,\n // same opacity as theme.palette.text.secondary\n [`&.${tabClasses.selected}`]: {\n opacity: 1\n },\n [`&.${tabClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n }\n}, ownerState.textColor === 'primary' && {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.textColor === 'secondary' && {\n color: (theme.vars || theme).palette.text.secondary,\n [`&.${tabClasses.selected}`]: {\n color: (theme.vars || theme).palette.secondary.main\n },\n [`&.${tabClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n}, ownerState.fullWidth && {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n}, ownerState.wrapped && {\n fontSize: theme.typography.pxToRem(12)\n}));\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTab'\n });\n\n const {\n className,\n disabled = false,\n disableFocusRipple = false,\n // eslint-disable-next-line react/prop-types\n fullWidth,\n icon: iconProp,\n iconPosition = 'top',\n // eslint-disable-next-line react/prop-types\n indicator,\n label,\n onChange,\n onClick,\n onFocus,\n // eslint-disable-next-line react/prop-types\n selected,\n // eslint-disable-next-line react/prop-types\n selectionFollowsFocus,\n // eslint-disable-next-line react/prop-types\n textColor = 'inherit',\n value,\n wrapped = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disabled,\n disableFocusRipple,\n selected,\n icon: !!iconProp,\n iconPosition,\n label: !!label,\n fullWidth,\n textColor,\n wrapped\n });\n\n const classes = useUtilityClasses(ownerState);\n const icon = iconProp && label && /*#__PURE__*/React.isValidElement(iconProp) ? /*#__PURE__*/React.cloneElement(iconProp, {\n className: clsx(classes.iconWrapper, iconProp.props.className)\n }) : iconProp;\n\n const handleClick = event => {\n if (!selected && onChange) {\n onChange(event, value);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleFocus = event => {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n return /*#__PURE__*/_jsxs(TabRoot, _extends({\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, className),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n ownerState: ownerState,\n tabIndex: selected ? 0 : -1\n }, other, {\n children: [iconPosition === 'top' || iconPosition === 'start' ? /*#__PURE__*/_jsxs(React.Fragment, {\n children: [icon, label]\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, icon]\n }), indicator]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display.\n */\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n\n /**\n * The position of the icon relative to the label.\n * @default 'top'\n */\n iconPosition: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n\n /**\n * The label element.\n */\n label: PropTypes.node,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n * @default false\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default Tab;","import React from 'react';\n\nimport {Tab as MuiTab, TabProps as MuiTabProps} from '@mui/material';\nimport type {WithMuiPropOverrides} from '@netx/core-components/Theme';\n\nexport interface TabProps extends WithMuiPropOverrides {}\n\n/**\n * Wrapper for `@material-ui/Tab`\\\n * Provides some common overrides, and accepts all the same props as the component it wraps\n */\nexport const Tab = (props: TabProps) => {\n\treturn ;\n};\n\nexport default Tab;\n","export const ACTIONS = {\n\tUPDATE: 'UPDATE',\n\tSET_LOADING: 'SET_LOADING',\n};\n","import type {AttributeTemplate, Lookups} from '../../types';\nimport {ACTIONS} from './constants';\nimport type {Action} from './actions';\n\nexport type State = {\n\tdata: AttributeTemplate[];\n\thasMandatoryUserDefinedTemplates: boolean;\n\tloading: boolean;\n\tlookups: Lookups;\n};\n\nexport const initialState: State = {\n\tdata: [],\n\thasMandatoryUserDefinedTemplates: false,\n\tloading: false,\n\tlookups: {\n\t\tkeys: [],\n\t\ttargets: [],\n\t},\n};\n\nconst reducer = (state: State, action: Action): State => {\n\tswitch (action.type) {\n\t\tcase ACTIONS.SET_LOADING:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: action.loading,\n\t\t\t};\n\t\tcase ACTIONS.UPDATE: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tdata: action.data,\n\t\t\t\thasMandatoryUserDefinedTemplates: action.data.some(\n\t\t\t\t\t(d) => !d.system && d.mandatory === 1,\n\t\t\t\t),\n\t\t\t\t// Get lookup keys/targets from data\n\t\t\t\tlookups: action.data.reduce(\n\t\t\t\t\t(lookups, attr) => {\n\t\t\t\t\t\tif (attr.keyDatasets.length) lookups.keys.push(attr.attributeid);\n\t\t\t\t\t\tif (attr.targetDatasets.length)\n\t\t\t\t\t\t\tlookups.targets.push(attr.attributeid);\n\t\t\t\t\t\treturn lookups;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tkeys: [],\n\t\t\t\t\t\ttargets: [],\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n};\n\nexport default reducer;\n","import {\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseCallback,\n\tuseRef,\n} from 'react';\n\nimport attributesSingleton from '@netx/core-asset/collections/singleton/attributes';\nimport useBackboneCollection from '@netx/core-components/hooks/useBackboneCollection';\nimport useUpdateEffect from '@netx/core-components/hooks/useUpdateEffect';\nimport {metadataDatasetLookup} from '../../api/metadataDatasetLookup';\nimport {SYSTEM_ATTRIBUTE_LABELS} from '../../locales';\nimport type {\n\tAttributeId,\n\tAttributeDefaultValues,\n\tAttributeFormValues,\n\tAttributeObjectType,\n\tAttributeTemplate,\n\tAttributeType,\n} from '../../types';\nimport parseValue from '../../utils/parseValue';\nimport {ACTIONS} from './constants';\nimport reducer, {initialState} from './reducer';\n\nexport type UseAttributesParams = {\n\twritableOnly?: boolean;\n\tuserDefinedOnly?: boolean;\n};\n\nexport const useAttributes = ({\n\twritableOnly = false,\n\tuserDefinedOnly = false,\n}: UseAttributesParams = {}) => {\n\t// TODO: until we can wrap the entire app in we just need to utilize the singleton\n\t// and provide some bridging between that and the context\n\tconst attributes = useBackboneCollection(attributesSingleton, false);\n\n\tconst [state, dispatch] = useReducer(reducer, {\n\t\t...initialState,\n\t\tdata: attributes.filter(\n\t\t\t(attr) =>\n\t\t\t\t(!userDefinedOnly || attr.attributeid > -1) &&\n\t\t\t\t(!writableOnly || attr.permission !== 'r'),\n\t\t),\n\t});\n\n\tconst dataRef = useRef(state.data);\n\tdataRef.current = state.data;\n\n\tuseUpdateEffect(() => {\n\t\tconst _attributes = attributes.filter(\n\t\t\t(attr) =>\n\t\t\t\t(!userDefinedOnly || attr.attributeid > -1) &&\n\t\t\t\t(!writableOnly || attr.permission !== 'r'),\n\t\t);\n\n\t\tdispatch({type: ACTIONS.UPDATE, data: _attributes});\n\t}, [attributes, writableOnly, userDefinedOnly]);\n\n\t// Some basic getters\n\n\t/**\n\t * Get all attribute templates\n\t * @param omitReadOnly Omit read only attribute templates\n\t * @return Array of attribute templates\n\t */\n\tconst getAll = useCallback(\n\t\t(\n\t\t\tomitSystem?: boolean,\n\t\t\tomitReadOnly?: boolean,\n\t\t\tobjectType?: AttributeObjectType,\n\t\t) =>\n\t\t\tdataRef.current.filter(\n\t\t\t\t(attr) =>\n\t\t\t\t\t(!omitReadOnly || attr.permission !== 'r') &&\n\t\t\t\t\t(!omitSystem || !attr.system) &&\n\t\t\t\t\t(!objectType || attr.objectTypes.includes(objectType)),\n\t\t\t),\n\t\t[],\n\t);\n\n\t/**\n\t * get attribute template by id\n\t * @param id Attribute template id\n\t * @return Attribute template, if found\n\t */\n\tconst getById = useCallback(\n\t\t(id: AttributeId) =>\n\t\t\tdataRef.current.find((attr) => attr.attributeid === id),\n\t\t[],\n\t);\n\n\t/**\n\t * get attribute templates by ids\n\t * @param ids Attribute template ids\n\t * @return Array of attribute templates found\n\t */\n\tconst getByIds = useCallback(\n\t\t(\n\t\t\tids: AttributeId[],\n\t\t\tomitSystem?: boolean,\n\t\t\tobjectType?: AttributeObjectType,\n\t\t\tomitReadOnly?: boolean,\n\t\t) =>\n\t\t\tids\n\t\t\t\t.map((id) => getById(id))\n\t\t\t\t.filter(\n\t\t\t\t\t(attr) =>\n\t\t\t\t\t\tattr != null &&\n\t\t\t\t\t\t(attr.attributeid > -1 || !omitSystem) &&\n\t\t\t\t\t\t(attr.permission != 'r' || !omitReadOnly) &&\n\t\t\t\t\t\t(!objectType || attr.objectTypes.includes(objectType)),\n\t\t\t\t) as AttributeTemplate[],\n\t\t[],\n\t);\n\n\t/**\n\t * get attribute template by name\\\n\t * _frowned upon but still neccessary in some cases_\n\t * @param name Attribute template name\n\t * @return Attribute template, if found\n\t */\n\tconst getByName = useCallback(\n\t\t(name: string) => dataRef.current.find((attr) => attr.name === name),\n\t\t[],\n\t);\n\n\t/**\n\t * get attribute templates by names\\\n\t * _frowned upon but still neccessary in some cases_\n\t * @param names Attribute template names\n\t * @return Array of attribute templates found\n\t */\n\tconst getByNames = useCallback(\n\t\t(names: string[]) =>\n\t\t\tnames\n\t\t\t\t.map((name) => getByName(name))\n\t\t\t\t.filter((attr) => attr != null) as AttributeTemplate[],\n\t\t[],\n\t);\n\n\tconst getByType = useCallback(\n\t\t(type: AttributeType, omitSystem?: boolean) =>\n\t\t\tdataRef.current.filter(\n\t\t\t\t(attr) => attr.type === type && (attr.attributeid > -1 || !omitSystem),\n\t\t\t),\n\t\t[],\n\t);\n\n\t/**\n\t * get attribute template label by id\n\t * @param id Attribute template id\n\t * @return Attribute template label, if found\n\t */\n\tconst getLabelById = useCallback((id: AttributeId) => {\n\t\tconst attr = getById(id);\n\t\tif (!attr) return `!${id} unknown!`;\n\t\tif (!attr.system) return attr.name;\n\t\treturn SYSTEM_ATTRIBUTE_LABELS[id] || i18n.t(`i18n.${attr.name}`);\n\t}, []);\n\n\t/**\n\t * get default attribute template values\n\t * @param limitToIds Limit the returned values to the provided attribute template ids\n\t * @return Attribute values indexed by id\n\t */\n\tconst getDefaultValues = useCallback((limitToIds?: AttributeId[]) => {\n\t\tconst defaults = dataRef.current.reduce(\n\t\t\t(defaultValues, d) => {\n\t\t\t\tif (\n\t\t\t\t\t(limitToIds && !limitToIds.includes(d.attributeid)) ||\n\t\t\t\t\td.value == null ||\n\t\t\t\t\td.value === ''\n\t\t\t\t)\n\t\t\t\t\treturn defaultValues;\n\t\t\t\treturn {\n\t\t\t\t\t...defaultValues,\n\t\t\t\t\t[d.attributeid]: parseValue(d.type, d.value) as string[], // TODO: get the attribute values wrangled\n\t\t\t\t};\n\t\t\t},\n\t\t\t{},\n\t\t);\n\t\treturn defaults;\n\t}, []);\n\n\t// Some utils\n\n\t/**\n\t * perform attribute metadata lookup\n\t * @param attribute Attribute template to perform lookup from\n\t * @param lookupValue Value to perform lookup with\n\t * @param limitToIds Attribute template id\n\t * @return Attribute values indexed by id\n\t */\n\tconst lookup = useCallback(\n\t\tasync (\n\t\t\tattribute: AttributeTemplate,\n\t\t\tlookupValue: string,\n\t\t\tlimitToIds?: AttributeId[],\n\t\t) => {\n\t\t\tconst lookupResults = await metadataDatasetLookup({\n\t\t\t\tname: attribute.name,\n\t\t\t\tvalue: lookupValue,\n\t\t\t});\n\n\t\t\t// For each result, update the attribute values if possible\n\t\t\treturn lookupResults.reduce((values, result) => {\n\t\t\t\t// See, frowned upon but ¯\\_(ツ)_/¯\n\t\t\t\tconst attributeTemplate = getByName(result.label);\n\t\t\t\tif (\n\t\t\t\t\t!attributeTemplate ||\n\t\t\t\t\tattributeTemplate.permission === 'r' ||\n\t\t\t\t\t(limitToIds && !limitToIds.includes(attributeTemplate.attributeid))\n\t\t\t\t)\n\t\t\t\t\treturn values;\n\t\t\t\treturn {\n\t\t\t\t\t...values,\n\t\t\t\t\t[attributeTemplate.attributeid]: result.value,\n\t\t\t\t};\n\t\t\t}, {});\n\t\t},\n\t\t[],\n\t);\n\n\t/**\n\t * search by attribute value\n\t * @param id Attribute template id to search from\n\t * @param value Value to search with\n\t */\n\tconst searchValue = useCallback((id: AttributeId, value: any) => {\n\t\tconst attributeTemplate = getById(id);\n\t\tif (!attributeTemplate) return;\n\t\tdispatcher.trigger('search:attribute:value', attributeTemplate.name, value);\n\t}, []);\n\n\treturn {\n\t\tstate,\n\n\t\tgetAll,\n\t\tgetById,\n\t\tgetByIds,\n\t\tgetByName,\n\t\tgetByNames,\n\t\tgetByType,\n\t\tgetDefaultValues,\n\t\tgetLabelById,\n\t\tlookup,\n\t\tsearchValue,\n\t};\n};\n\nexport default useAttributes;\n","import React from 'react';\n\nimport {\n\tFormType,\n\tFormOptions,\n\tFormValues,\n\tInputForm,\n\tgetInputFormObject,\n\tuseForm,\n} from './';\n\nexport type WithFormProps<\n\tT extends object = {},\n\tTValues extends FormValues = FormValues\n> = WithFormPropsIn & WithFormPropsOut;\n\nexport type WithFormPropsIn<\n\tT extends object = {},\n\tTValues extends FormValues = FormValues\n> = T & {\n\tformOptions?: FormOptions;\n\trefreshAt?: number;\n\tvalues?: TValues;\n};\n\nexport type WithFormPropsOut<\n\tT extends object = {},\n\tTValues extends FormValues = FormValues\n> = Omit & {\n\tform: FormType;\n\tinputForm: InputForm;\n};\n\nexport interface WithFormOptions\n\textends FormOptions {}\n\n/** Wrap component with form support */\nexport default function withForm<\n\tP extends {},\n\tTValues extends FormValues = FormValues,\n\tOptions extends WithFormOptions = {}\n>(\n\tComponent: React.ComponentType

,\n\toptions?: Options,\n): React.FunctionComponent {\n\treturn ({formOptions, refreshAt, values, ...props}) => {\n\t\tconst form: FormType = useForm(\n\t\t\tvalues as TValues,\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\t...formOptions,\n\t\t\t} as FormOptions,\n\t\t);\n\t\tconst inputForm = getInputFormObject(form);\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t};\n}\n","export const SearchTypeMetadata = 3 as const;\nexport type TSearchTypeMetadata = typeof SearchTypeMetadata;\n\n/** elementSubType1 */\nexport enum MetadataType {\n\tMATCH_ALL_WHOLE_WORDS = 0,\n\tMATCH_EXACTLY = 1,\n\tMATCH_ANY_WHOLE_WORDS = 2,\n\tEXCLUDE = 3,\n\tMATCH_ALL_WILD_CARDS = 4,\n\tMATCH_ANY_WILD_CARDS = 5,\n\tMATCH_ANY_RANGE = 6,\n\tMATCH_VALUE_IS_EMPTY = 11,\n\tMATCH_VALUE_IS_NOT_EMPTY = 12,\n\t// Removed per https://jira.netx.net/browse/DAM-8229\n\t// Possibly related to attributes of type heirarchical?\n\t// {label: \"Options [OPTS]\", val: 7}\n}\n\nexport const MetadataNoValueTypes = [\n\tMetadataType.MATCH_VALUE_IS_NOT_EMPTY,\n\tMetadataType.MATCH_VALUE_IS_EMPTY,\n] as const;\n\nexport const MetadataSingleValueTypes = [\n\tMetadataType.EXCLUDE,\n\tMetadataType.MATCH_ALL_WHOLE_WORDS,\n\tMetadataType.MATCH_ALL_WILD_CARDS,\n\tMetadataType.MATCH_ANY_WHOLE_WORDS,\n\tMetadataType.MATCH_ANY_WILD_CARDS,\n\tMetadataType.MATCH_EXACTLY,\n] as const;\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","import React from 'react';\n\nimport {styled, WithMuiPropOverrides} from '@netx/core-components/Theme';\n\nimport {\n\tAlert as MuiAlert,\n\tAlertProps as MuiAlertProps,\n\talertClasses,\n} from '@mui/material';\n\nconst AlertRoot = styled(MuiAlert)(({theme}) => ({\n\tdisplay: 'flex',\n\talignItems: 'center',\n\t[`& .${alertClasses.action}`]: {\n\t\tpadding: theme.spacing(0, 0, 0, 2),\n\t},\n}));\n\nexport interface AlertProps extends WithMuiPropOverrides {}\n\nexport const Alert = React.forwardRef(\n\t(props: AlertProps, ref) => {\n\t\treturn ;\n\t},\n);\n\nexport default Alert;\n","import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport ContextMenu, {ContextMenuOptions} from './ContextMenu';\n\nimport {ReactAction as Action, ReactAction} from '@netx/core/bootstrap';\n\nexport type ContextMenuServiceContextType = {\n\ttrigger: (options: ContextMenuOptions) => Promise;\n\tisOpen: boolean;\n\tclose: (action?: ReactAction) => void;\n};\n\nconst ContextMenuServiceContext = createContext<\n\tContextMenuServiceContextType | undefined\n>(undefined);\n\nexport const useContextMenu = () => {\n\tconst context = useContext(ContextMenuServiceContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t'`useContextMenu` must be used within a `ContextMenuServiceProvider`',\n\t\t);\n\t}\n\treturn context;\n};\n\nexport const ContextMenuServiceProvider = ({\n\tchildren,\n}: React.PropsWithChildren<{}>) => {\n\tconst [contextMenuState, setContextMenuState] = useState<\n\t\tContextMenuOptions\n\t>();\n\n\tconst awaitingPromiseRef = useRef<{\n\t\tresolve(action?: Action): void;\n\t\treject(): void;\n\t}>();\n\n\tconst openContextMenu = useCallback((options: ContextMenuOptions) => {\n\t\tsetContextMenuState(options);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tawaitingPromiseRef.current = {resolve, reject};\n\t\t});\n\t}, []);\n\n\tconst handleExited = useCallback((action?: Action) => {\n\t\tawaitingPromiseRef.current?.resolve(action);\n\t\tawaitingPromiseRef.current = undefined;\n\t\tsetContextMenuState(undefined);\n\t}, []);\n\n\tconst contextValue = useMemo(\n\t\t() => ({\n\t\t\ttrigger: openContextMenu,\n\t\t\tisOpen: Boolean(contextMenuState),\n\t\t\tclose: handleExited,\n\t\t}),\n\t\t[openContextMenu, contextMenuState],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\n\nimport {\n\tstyled,\n\tSeverity,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport Alert, {AlertProps} from '../Alert';\n\nconst DialogAlertRoot = styled(Alert, {\n\tname: 'DialogAlert',\n\tslot: 'Root',\n})(({theme}) => ({\n\tmargin: theme.spacing(1, 2, 2, 2),\n}));\n\nexport interface DialogAlertProps extends WithMuiPropOverrides {}\n\n/** NetX Dialog Alert */\nconst DialogAlertPrimitive = React.forwardRef(\n\t(props, ref) => (\n\t\t\n\t),\n);\n\nexport const DialogAlert = React.memo(DialogAlertPrimitive);\nexport default DialogAlert;\n","import React from 'react';\nimport type {SetOptional} from 'type-fest';\nimport {FontAwesomeIconProps} from '@fortawesome/react-fontawesome';\nimport {\n\tAlertColor,\n\tDialog as MuiDialog,\n\tDialogProps as MuiDialogProps,\n\tLinearProgress,\n\tSlide,\n\tSlideProps,\n} from '@mui/material';\nimport type {TransitionProps} from '@mui/material/transitions';\nimport {DialogAlert, DialogAlertProps} from '../DialogAlert';\nimport DialogTitle from '../DialogTitle';\nimport {styled, WithMuiPropOverrides} from '../Theme';\n\nconst DialogProgress = styled(LinearProgress, {\n\tslot: 'Progress',\n})(({theme}) => ({\n\t...theme.mixins.absoluteFill,\n\tbottom: 'initial',\n}));\n\nconst Transition: React.FunctionComponent = React.forwardRef<\n\tHTMLElement,\n\tSlideProps\n>(function Transition(props, ref) {\n\treturn ;\n});\n\nexport interface DialogProps\n\textends Omit, 'title'> {\n\t// TODO: why missing?\n\t'data-testid'?: string;\n\t// Not currently being used but here for future use\n\tdisabled?: boolean;\n\terror?: null | string;\n\tisWorking?: boolean;\n\tseverity?: AlertColor;\n\ttitle?: React.ReactNode;\n\tsecondaryTitle?: React.ReactNode;\n\ticon?: FontAwesomeIconProps['icon'];\n\tcontrols?: React.ReactNode;\n\tpreventBackdropClose?: boolean;\n\n\tDialogAlertProps?: Partial;\n}\n\nexport type WithDialogProps

= P &\n\tPick & {\n\t\tDialogProps?: SetOptional, 'title'>;\n\t};\n\n/**\n * NetX Dialog\n * Provides a consistent animation/experience\n */\nconst DialogPrimitive = React.forwardRef(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tcontrols,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\ticon,\n\t\t\tisWorking,\n\t\t\tpreventBackdropClose,\n\t\t\tonClose,\n\t\t\tsecondaryTitle,\n\t\t\t// TODO: severity styling support for 'danger' / 'info' / 'warning' / 'success'\n\t\t\tseverity = 'info',\n\t\t\ttitle,\n\t\t\tDialogAlertProps,\n\t\t\t...props\n\t\t}: DialogProps,\n\t\tref,\n\t) => {\n\t\tconst handleClose = onClose\n\t\t\t? () => onClose({}, 'escapeKeyDown')\n\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tif (preventBackdropClose && reason === 'backdropClick') return;\n\t\t\t\t\tonClose?.(event, reason);\n\t\t\t\t}}\n\t\t\t\tref={ref}\n\t\t\t\tTransitionComponent={Transition}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{isWorking ? : null}\n\t\t\t\t{(title && (\n\t\t\t\t\t\n\t\t\t\t)) ||\n\t\t\t\t\tnull}\n\n\t\t\t\t{error != null ? (\n\t\t\t\t\t{error}\n\t\t\t\t) : null}\n\n\t\t\t\t{children}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport const Dialog = React.memo(DialogPrimitive) as (\n\tprops: DialogProps,\n) => JSX.Element;\nexport default Dialog;\n","import React from 'react';\n\nimport {\n\tEditableAttribute,\n\tEditableAttributeProps,\n\tReadOnlyAttribute,\n\tReadOnlyAttributeProps,\n} from '../';\nimport type {AttributeTemplate} from '../../types';\n\ntype CommonProps = {\n\tattrData: AttributeTemplate;\n\treadOnly?: boolean;\n};\n\nexport type AttributeProps = CommonProps &\n\tOmit &\n\tOmit;\n\nexport const Attribute = ({attrData, readOnly, ...props}: AttributeProps) => {\n\t// TODO: we did something wrong in our attributes collection and system attributes that\n\t// are editable have a boolean ¯\\_(ツ)_/¯\n\tif (\n\t\treadOnly ||\n\t\tattrData.permission === 'r' ||\n\t\tattrData.permission === (false as any)\n\t)\n\t\treturn ;\n\treturn ;\n};\n\nexport default Attribute;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const CHIP_CLASS_NAME = 'Chip';\nexport const CHIP_CLASS_SLOTS = ['root', 'deleteIcon', 'iconWrapper'] as const;\n\nexport type ChipClassSlot = typeof CHIP_CLASS_SLOTS[number];\n\nexport interface ChipClasses {\n\troot: string;\n\tdeleteIcon: string;\n\ticonWrapper: string;\n}\n\nexport type ChipClassKey = keyof ChipClasses;\n\nexport const getChipUtilityClass = (slot: ChipClassSlot) =>\n\tgenerateUtilityClass(CHIP_CLASS_NAME, slot);\n\nexport const chipClasses: ChipClasses = generateUtilityClasses(\n\tCHIP_CLASS_NAME,\n\t['root', 'deleteIcon', 'iconWrapper'],\n);\n\nexport default chipClasses;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableContainerUtilityClass(slot) {\n return generateUtilityClass('MuiTableContainer', slot);\n}\nconst tableContainerClasses = generateUtilityClasses('MuiTableContainer', ['root']);\nexport default tableContainerClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableContainerUtilityClass } from './tableContainerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableContainerUtilityClass, classes);\n};\n\nconst TableContainerRoot = styled('div', {\n name: 'MuiTableContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: '100%',\n overflowX: 'auto'\n});\nconst TableContainer = /*#__PURE__*/React.forwardRef(function TableContainer(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableContainer'\n });\n\n const {\n className,\n component = 'div'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableContainerRoot, _extends({\n ref: ref,\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableContainer.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `Table`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableContainer;","import React from 'react';\nimport {useLayoutEffect, useState} from 'react';\n\nimport {\n\tTableCell as MuiTableCell,\n\tTableCellProps as MuiTableCellProps,\n} from '@mui/material';\n\nimport useSharedRef from '@netx/core-components/hooks/useSharedRef';\n\nexport interface TableCellProps extends MuiTableCellProps {\n\tcolumn?: {\n\t\ttype?: 'number' | 'string' | 'date';\n\t};\n\tfreezeSize?: boolean;\n}\n\nconst TableCell: React.FunctionComponent = React.forwardRef(\n\t({column, freezeSize, ...props}, ref: React.RefObject) => {\n\t\tconst innerRef = useSharedRef(null, [ref]);\n\t\tconst [width, setWidth] = useState();\n\n\t\t// TODO: We could also just do this:\n\t\t// Need to see what the cost would be if that were to be checked each time\n\t\t// I am leaning towards `useLayoutEffect` but this is \"much cleaner\"\n\t\t// const width = freezeSize ? ref.current?.clientWidth : undefined;\n\t\tuseLayoutEffect(() => {\n\t\t\tif (!freezeSize || innerRef.current == null) return;\n\t\t\tsetWidth(innerRef.current.clientWidth);\n\t\t\treturn () => setWidth(undefined);\n\t\t}, [freezeSize]);\n\n\t\tconst align = column?.type === 'number' ? 'right' : 'left';\n\n\t\tconst style = props.style || ({} as React.CSSProperties);\n\t\tif (width != null) style.width = width;\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t},\n);\n\nexport default TableCell;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport ActionMenu, {ActionMenuProps} from '../../ActionMenu';\nimport TableCell, {TableCellProps} from '.';\n\nconst styles = ({spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\t// Remove top/bottom padding\n\t\t\tpadding: spacing(0, 2),\n\t\t},\n\t});\n\nexport interface ActionTableCellProps extends Partial {\n\tdata: any;\n\tActionMenuProps: ActionMenuProps;\n}\n\nconst ActionCell: React.FunctionComponent<\n\tWithStyles & ActionTableCellProps\n> = ({\n\tclasses,\n\n\tdata,\n\tActionMenuProps,\n\t...props\n}) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(React.memo(ActionCell));\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faCaretDown as CaretIcon} from '@fortawesome/pro-solid-svg-icons';\nimport TableCell, {TableCellProps} from '../TableCell';\n\n// @ts-ignore\nconst isSafari = window.safari !== undefined;\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\t...theme.mixins.positionSticky,\n\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\tborderBottom: 0,\n\t\t\ttop: 0,\n\t\t\tzIndex: 3,\n\t\t\t'&::after': {\n\t\t\t\tcontent: '\"\"',\n\t\t\t\tbottom: 0,\n\t\t\t\tbackground: theme.palette.custom.border,\n\t\t\t\tdisplay: 'block',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\theight: 1,\n\t\t\t},\n\t\t\t'&.disabled': {\n\t\t\t\tcolor: '#999',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t},\n\t\t\t'&.sortable': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t},\n\t\t\t'&.sorted': {\n\t\t\t\tpaddingRight: 36,\n\t\t\t},\n\t\t},\n\t\tsort: {\n\t\t\talignItems: 'center',\n\t\t\tbottom: 0,\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\tposition: 'absolute',\n\t\t\tright: 12,\n\t\t\ttop: 0,\n\t\t\t'& svg': {\n\t\t\t\ttransition: 'transform 0.2s ease',\n\t\t\t},\n\t\t\t'&.sortedAscending': {\n\t\t\t\t'& svg': {\n\t\t\t\t\ttransform: 'rotate(180deg)',\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&.sortedDescending': {\n\t\t\t\t'& svg': {\n\t\t\t\t\ttransform: 'rotate(0deg)',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t});\n\nexport interface TableColumnProps extends TableCellProps {\n\talign?: 'left' | 'right';\n\tclassName?: string;\n\tcolumn?: any;\n\tdisabled?: boolean;\n\tsortable?: boolean;\n\tsorted?: false | 'asc' | 'desc';\n\tonSort?: (order: false | 'asc' | 'desc') => void;\n\twidth?: number;\n}\n\nconst TableColumn: React.FunctionComponent<\n\tWithStyles & TableColumnProps\n> = React.forwardRef(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclasses,\n\n\t\t\tcolumn,\n\t\t\tdisabled = false,\n\t\t\tonSort,\n\t\t\tsortable = false,\n\t\t\tsorted = false,\n\t\t\twidth,\n\n\t\t\t...props\n\t\t},\n\t\tref?: React.Ref,\n\t) => {\n\t\tconst handleClick = React.useCallback(\n\t\t\t(event: React.MouseEvent) => {\n\t\t\t\tif (!sortable || disabled) return;\n\n\t\t\t\tlet sortOrder: false | 'asc' | 'desc' = 'desc';\n\t\t\t\tif (sorted === 'asc') sortOrder = false;\n\t\t\t\tif (sorted === 'desc') sortOrder = 'asc';\n\t\t\t\tonSort && onSort(sortOrder);\n\t\t\t},\n\t\t\t[onSort, sorted],\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\t{sortable && sorted !== false ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t) : null}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport default withStyles(styles)(React.memo(TableColumn));\n","import React, {useCallback, useLayoutEffect, useRef, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {useUpdateEffect} from '@netx/core-components';\nimport _ from 'underscore';\n\nimport TableColumn, {TableColumnProps} from './TableColumn';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faEllipsisV as EllipsisIcon} from '@fortawesome/pro-light-svg-icons';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tminWidth: 100,\n\t\t\t'&:hover #dragger': {\n\t\t\t\topacity: 1,\n\t\t\t},\n\t\t\t'&.dragging': {\n\t\t\t\ttransition: 'none !important',\n\t\t\t\twillChange: 'width',\n\t\t\t\t//transform: 'translate3d(0)',\n\t\t\t\t'& #dragger': {\n\t\t\t\t\tborderColor: theme.palette.secondary.main,\n\t\t\t\t\topacity: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tdummy: {\n\t\t\tpadding: '0 !important',\n\t\t\tzIndex: 2,\n\t\t\tminWidth: '0 !important',\n\t\t\twidth: 'auto !important',\n\t\t},\n\t\tdragger: {\n\t\t\tbackground: 'rgba(0, 0, 0, 0.02)',\n\t\t\tborderRight: '1px solid transparent',\n\t\t\twidth: 8,\n\t\t\tcursor: 'col-resize',\n\t\t\topacity: 0,\n\t\t\toverflow: 'hidden',\n\t\t\tposition: 'absolute',\n\t\t\ttransition: 'opacity 0.3s ease',\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tzIndex: 1201,\n\t\t\tMozUserSelect: '-moz-none',\n\t\t\tWebkitUserSelect: 'none',\n\t\t\tuserSelect: 'none',\n\t\t\t'&:hover': {\n\t\t\t\tborderColor: theme.palette.secondary.main,\n\t\t\t},\n\t\t\t'& .ellipsis': {\n\t\t\t\tcolor:\n\t\t\t\t\ttheme.palette.mode === 'light'\n\t\t\t\t\t\t? 'rgba(0, 0, 0, 0.2)'\n\t\t\t\t\t\t: 'rgba(255, 255, 255, 0.2)',\n\t\t\t\tfontSize: 24,\n\t\t\t\tposition: 'absolute',\n\t\t\t\tleft: -11,\n\t\t\t\tmarginTop: -12,\n\t\t\t\ttop: '50%',\n\t\t\t},\n\t\t},\n\t});\n\nconst body = document.body;\nconst minWidth = 100;\n\nexport interface ResizableTableColumnProps extends TableColumnProps {\n\tonResize?: (width: number) => void;\n}\n\nexport const DummyColumn = withStyles(styles)(\n\t({classes}: WithStyles) => {\n\t\treturn (\n\t\t\t\n\t\t);\n\t},\n);\n\nconst ResizableTableColumn: React.FunctionComponent<\n\tWithStyles & React.PropsWithChildren\n> = ({\n\tclasses,\n\tonResize,\n\t...props\n}: WithStyles &\n\tReact.PropsWithChildren &\n\tTableColumnProps) => {\n\tconst [dims, setDims] = useState({\n\t\tcellWidth: 0,\n\t\txStart: 0,\n\t\twidth: props.width as number | undefined,\n\t});\n\tconst [isDragging, setIsDragging] = useState(false);\n\n\tconst lastMouseDown = useRef(Date.now());\n\tconst cellRef = useRef(null);\n\n\tuseUpdateEffect(() => {\n\t\tif (!onResize) return;\n\t\tonResize(dims.width as number);\n\t}, [dims.width]);\n\n\t// When we start/stop dragging\n\tuseLayoutEffect(() => {\n\t\tif (!isDragging) {\n\t\t\tbody.classList.remove('drag-resizing');\n\t\t\treturn;\n\t\t}\n\n\t\tbody.classList.add('drag-resizing');\n\n\t\tlet width: number;\n\t\tconst mousemove = _.throttle(\n\t\t\t(event: MouseEvent): void => {\n\t\t\t\twidth = dims.cellWidth + (event.clientX - dims.xStart);\n\t\t\t\tif (minWidth > width) {\n\t\t\t\t\twidth = minWidth;\n\t\t\t\t}\n\t\t\t\tsetDims((dims) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...dims,\n\t\t\t\t\t\twidth,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\t16,\n\t\t\t{trailing: true},\n\t\t);\n\n\t\tconst mouseup = () => setIsDragging(false);\n\n\t\tdocument.addEventListener('mousemove', mousemove);\n\t\tdocument.addEventListener('mouseup', mouseup);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousemove', mousemove);\n\t\t\tdocument.removeEventListener('mouseup', mouseup);\n\t\t};\n\t}, [isDragging]);\n\n\tconst handleMouseDown = useCallback(\n\t\t(event: React.MouseEvent) => {\n\t\t\tevent.stopPropagation();\n\n\t\t\tif (Date.now() - lastMouseDown.current < 300) {\n\t\t\t\tsetDims((dims) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...dims,\n\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst cellWidth = cellRef.current?.offsetWidth || 0;\n\t\t\t\tconst clientX = event.clientX;\n\t\t\t\tsetDims((dims) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...dims,\n\t\t\t\t\t\txStart: clientX,\n\t\t\t\t\t\tcellWidth,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tsetIsDragging(true);\n\t\t\t}\n\t\t\tlastMouseDown.current = Date.now();\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t{props.children}\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(React.memo(ResizableTableColumn));\n","import React from 'react';\n\nimport TableColumn, {TableColumnProps} from './TableColumn';\nimport ResizableTableColumn, {\n\tResizableTableColumnProps,\n} from './ResizableTableColumn';\n\nexport {TableColumn, ResizableTableColumn};\nexport * from './TableColumn';\nexport * from './ResizableTableColumn';\n\nexport interface TableColumnPropsComb\n\textends TableColumnProps,\n\t\tResizableTableColumnProps {\n\tresizable?: boolean;\n}\n\nexport default function ({\n\tresizable,\n\t...props\n}: React.PropsWithChildren) {\n\tif (resizable)\n\t\treturn ;\n\treturn ;\n}\n","import React, {useCallback} from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tTableHead as MuiTableHead,\n\tTableHeadProps as MuiTableHeadProps,\n\tTableRow,\n} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {OnSort, SortOrder} from '../Table';\nimport TableColumn, {TableColumnPropsComb} from '../TableColumn';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tposition: 'relative',\n\t\t\t'&.disabled': {\n\t\t\t\tpointerEvents: 'none',\n\t\t\t},\n\t\t},\n\t\tactionColumn: {\n\t\t\twidth: 78,\n\t\t\tminWidth: 78,\n\t\t\tmaxWidth: 78,\n\t\t},\n\t\ticonColumn: {\n\t\t\twidth: 40,\n\t\t\tminWidth: 40,\n\t\t\tmaxWidth: 40,\n\t\t},\n\t});\n\nexport interface TableHeadProps extends Partial {\n\tdisabled?: boolean;\n\thasActions?: boolean;\n\tinEditMode?: boolean;\n\tloading?: boolean;\n\tonSort?: OnSort;\n\tresizable?: boolean;\n\treordering?: boolean;\n\tschema?: any;\n\tsortable?: string[];\n\tsortField?: string;\n\tsortOrder?: 'asc' | 'desc';\n\n\tTableColumnProps?: Partial;\n}\n\nconst TableHead = ({\n\tclasses,\n\n\tdisabled,\n\thasActions,\n\tinEditMode,\n\tloading,\n\tonSort,\n\treordering,\n\tresizable = true,\n\tschema,\n\tsortable,\n\tsortField,\n\tsortOrder,\n\n\tTableColumnProps,\n\t...props\n}: WithStyles & TableHeadProps) => {\n\tconst handleSort = useCallback(\n\t\t(field: string) => {\n\t\t\treturn (order: false | SortOrder) => {\n\t\t\t\tonSort && onSort(field, order);\n\t\t\t};\n\t\t},\n\t\t[onSort],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{reordering ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t{Object.keys(schema).map((key) => {\n\t\t\t\t\tconst column = schema[key];\n\t\t\t\t\tconst label = column.label != null ? column.label : key;\n\t\t\t\t\tconst sorted = (sortField === key ? sortOrder : false) as\n\t\t\t\t\t\t| 'asc'\n\t\t\t\t\t\t| 'desc'\n\t\t\t\t\t\t| false;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{hasActions || inEditMode ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(React.memo(TableHead));\n","import React, {useCallback, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tTableRow as MuiTableRow,\n\tTableRowProps as MuiTableRowProps,\n} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {TableRowData} from '..';\nimport {ActionTableCell} from '../TableCell';\nimport {ReactAction as Action} from '@netx/core/bootstrap';\n\nimport {useContextMenu} from '@netx/core-components';\n\nexport const getRowBackgroundColor = (theme: Theme) => ({\n\tdefault:\n\t\ttheme.palette.mode === 'light' ? 'rgb(250,250,250)' : 'rgb(36,36,36)',\n\tactive: theme.palette.mode === 'light' ? '#f0f0f0' : '#353535',\n});\n\nconst styles = (theme: Theme) => {\n\tconst rowStyles = getRowBackgroundColor(theme);\n\treturn createStyles({\n\t\troot: {\n\t\t\t'& td': {\n\t\t\t\tbackground: rowStyles.default,\n\t\t\t\t// Actions column\n\t\t\t\t'&:last-child': {\n\t\t\t\t\tposition: 'sticky',\n\t\t\t\t\tright: 0,\n\t\t\t\t\tlineHeight: '100%',\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&.clickable': {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\t'&:hover td': {\n\t\t\t\t\tbackground: rowStyles.active,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&.disabled': {\n\t\t\t\topacity: 0.5,\n\t\t\t\tpointerEvents: 'none',\n\t\t\t},\n\t\t\t'&.menuActive': {\n\t\t\t\tuserSelect: 'none',\n\t\t\t\t'& td': {\n\t\t\t\t\tbackground: rowStyles.active,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t});\n};\n\nexport interface TableRowProps extends MuiTableRowProps {\n\tactions?: Action[];\n\tcontextActions?: Action[];\n\tdata: TableRowData;\n\tdeleting?: boolean;\n\tdisabled?: boolean;\n\tonClick?: (data: TableRowData) => void;\n\trowDisabled?: boolean;\n\tschema?: any;\n\tsortable?: boolean;\n\tsorting?: boolean;\n}\n\nconst TableRow = React.forwardRef<\n\tHTMLTableRowElement,\n\tWithStyles & React.PropsWithRef\n>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclasses,\n\n\t\t\tactions,\n\t\t\tclassName,\n\t\t\tcontextActions,\n\t\t\tdata,\n\t\t\tdeleting,\n\t\t\tdisabled,\n\t\t\tonClick,\n\t\t\trowDisabled,\n\t\t\tschema,\n\t\t\tsortable,\n\t\t\tsorting,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tdisabled = disabled || deleting || rowDisabled;\n\n\t\tconst contextMenu = useContextMenu();\n\n\t\tconst [menuIsOpen, setMenuIsOpen] = useState(false);\n\n\t\tconst handleAction = useCallback((action) => action.cb(data), [data]);\n\t\tconst handleActionsMenuClose = useCallback(() => setMenuIsOpen(false), []);\n\t\tconst handleActionsMenuOpen = useCallback(() => setMenuIsOpen(true), []);\n\n\t\t/** Row clicked */\n\t\tconst handleClick = useCallback(\n\t\t\t(event) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tif (deleting) return;\n\t\t\t\t// https://github.com/facebook/react/issues/7407\n\t\t\t\t// Not really an issue but the browser causes this\n\t\t\t\tif (!onClick || (!event.clientX && !event.clientY)) return;\n\t\t\t\tonClick(data);\n\t\t\t},\n\t\t\t[data, onClick],\n\t\t);\n\n\t\t/** Row context menu */\n\t\tconst handleContextMenu = useCallback(\n\t\t\t(event) => {\n\t\t\t\tif (!contextActions) return;\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tif (deleting) return;\n\n\t\t\t\tsetMenuIsOpen(true);\n\t\t\t\tcontextMenu\n\t\t\t\t\t.trigger({\n\t\t\t\t\t\tactions: contextActions,\n\t\t\t\t\t\tleft: event.clientX,\n\t\t\t\t\t\ttop: event.clientY,\n\t\t\t\t\t})\n\t\t\t\t\t.then((action) => action && handleAction(action))\n\t\t\t\t\t.finally(() => setMenuIsOpen(false));\n\t\t\t},\n\t\t\t[handleAction, contextActions],\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\t{actions ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t);\n\t},\n);\n\nexport default withStyles(styles)(React.memo(TableRow));\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {faEquals as EqualsIcon} from '@fortawesome/pro-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\n\nimport TableCell, {TableCellProps} from '../TableCell';\n\nimport {SortableHandle} from 'react-sortable-hoc';\n\nconst styles = ({spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tcursor: 'grab',\n\t\t\theight: '100%',\n\t\t\twidth: 40,\n\t\t\tminWidth: 40,\n\t\t\tpadding: spacing(0, 1),\n\t\t},\n\t});\n\ninterface SortableTableRowHandleProps extends Partial {}\n\nconst SortableTableRowHandle = ({\n\tclasses,\n\t...props\n}: WithStyles & SortableTableRowHandleProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SortableHandle(\n\twithStyles(styles)(React.memo(SortableTableRowHandle)),\n);\n","import React, {useEffect, useLayoutEffect} from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {SortableElement, SortableElementProps} from 'react-sortable-hoc';\n\nimport Row, {TableRowProps, getRowBackgroundColor} from './TableRow';\nimport SortableTableRowHandle from './SortableTableRowHandle';\n\nconst styles = (theme: Theme) => {\n\tconst background = getRowBackgroundColor(theme);\n\treturn createStyles({\n\t\troot: {\n\t\t\t'& td:first-of-type': {\n\t\t\t\tposition: 'sticky',\n\t\t\t\tleft: 0,\n\t\t\t\tzIndex: 2,\n\t\t\t},\n\t\t\t'&.sorting': {\n\t\t\t\t'&.dragging-item:hover, &.dragging-item': {\n\t\t\t\t\tborderTop:\n\t\t\t\t\t\ttheme.palette.mode === 'light'\n\t\t\t\t\t\t\t? '1px solid rgba(224, 224, 224, 1)'\n\t\t\t\t\t\t\t: '1px solid rgba(81, 81, 81, 1)',\n\t\t\t\t\tboxShadow:\n\t\t\t\t\t\ttheme.palette.mode === 'light'\n\t\t\t\t\t\t\t? '0px 1px 0px 0px rgba(0, 0, 0, 0.12)'\n\t\t\t\t\t\t\t: '0px 1px 0px 0px rgba(255, 255, 255, 0.22)',\n\t\t\t\t\tcursor: 'grabbing !important',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\tpointerEvents: 'all !important',\n\t\t\t\t\tuserSelect: 'none',\n\t\t\t\t\twillChange: 'transform',\n\t\t\t\t\tzIndex: 99999,\n\t\t\t\t\t'& td': {\n\t\t\t\t\t\tbackground: background.active,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t});\n};\n\nexport interface SortableRowProps\n\textends Omit,\n\t\tSortableElementProps {\n\tsorting?: boolean;\n\tsortableRef?: React.MutableRefObject; // TODO: find type definition for manager wrapper\n}\n\nconst SortableRow: React.FunctionComponent<\n\tWithStyles & SortableRowProps\n> = ({children, classes, sortableRef, sorting, ...props}) => {\n\tconst [style, setStyle] = React.useState<{\n\t\tmaxWidth: number;\n\t\ttransform: string;\n\t}>();\n\n\t// When sorting we need to add some styles to the item being dragged\n\t// The row could be wider than the wrapper\n\t// The wrapper could be scrolled\n\t// Keep in mind these styles are applied only to the item that will be dragged\n\t// the actual drag helper will use the position/size of this element to calculate\n\t// its position/size\n\tuseLayoutEffect(() => {\n\t\tif (!sorting) return;\n\n\t\tconst container = sortableRef?.current?.scrollContainer as HTMLElement;\n\t\tsetStyle({\n\t\t\t// Compensate for scroll left\n\t\t\t// This is the only we can shift a row to the right or left without changing its\n\t\t\t// position prop and removing it from the flow of the table\n\t\t\ttransform: `translate(${container.scrollLeft}px, 0)`,\n\t\t\t// Make sure we do not exceed the width of our container\n\t\t\tmaxWidth: container.clientWidth,\n\t\t});\n\n\t\treturn () => setStyle(undefined);\n\t}, [sorting]);\n\n\t// When we set the style hack we need to trigger a mousemove event\n\t// in order to get the sortable plugin to update the transfrom style\n\t// otherwise we get a gap on the left until the user moves the item\n\tuseEffect(() => {\n\t\tif (!style || !sortableRef) return;\n\t\tconst {x, y} = sortableRef.current.position;\n\t\t// TODO: might need to send a touch event\n\t\t// if this hack does not work on mobile, that is why\n\t\tsortableRef.current.handleSortMove(\n\t\t\tnew MouseEvent('mousemove', {\n\t\t\t\tclientX: x,\n\t\t\t\tclientY: y,\n\t\t\t\tscreenX: x,\n\t\t\t\tscreenY: y,\n\t\t\t}),\n\t\t);\n\t}, [style]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default SortableElement(withStyles(styles)(SortableRow));\n","import React from 'react';\n\nexport * from './TableRow';\n\nimport SortableRow, {SortableRowProps} from './SortableTableRow';\nimport TableRow, {TableRowProps as BaseRowProps} from './TableRow';\n\nexport interface TableRowProps extends BaseRowProps, SortableRowProps {\n\treorderable?: boolean;\n\tsortableRef?: any;\n}\n\nexport default function ({reorderable, ...props}: TableRowProps) {\n\tif (reorderable) return ;\n\treturn ;\n}\n","// TODO: This was not well thought out / can only handle a single cell row with a\n// value type of text\n// We need to plan this as its own thing:\n// Handle full row editing of multiple fields\n// Validation in those fields\n// Multiple types of fields (data/number/etc)\nimport React, {useCallback, useEffect, useState} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {CircularProgress, TableRow} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {\n\tIconButton,\n\tTextField,\n\tuseForm,\n\tgetInputFormObject,\n} from '@netx/core-components';\n\nimport {TableRowData} from '../';\nimport TableCell from '../TableCell';\n\nimport {\n\tfaCheck as CheckIcon,\n\tfaTimes as TimesIcon,\n} from '@fortawesome/pro-solid-svg-icons';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {},\n\t\teditActions: {\n\t\t\tverticalAlign: 'baseline',\n\t\t},\n\t\tprogress: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 2,\n\t\t\tleft: 2,\n\t\t\tzIndex: 1,\n\t\t},\n\t\twrapper: {\n\t\t\tposition: 'relative',\n\t\t},\n\t});\n\nexport interface EditableTableRowProps {\n\tdata?: any;\n\tonCancel(): void;\n\tonRowUpdate?: (oldData: TableRowData, newData: TableRowData) => void;\n\tschema?: any;\n\tsubmitting?: boolean;\n\tsubmitError?: null | string;\n\tsortable?: boolean;\n}\n\nconst EditableTableRow: React.FunctionComponent<\n\tWithStyles & EditableTableRowProps\n> = ({\n\tclasses,\n\n\tdata,\n\tonCancel,\n\tonRowUpdate,\n\tschema,\n\tsortable,\n\tsubmitting = false,\n\tsubmitError,\n}) => {\n\tconst form = useForm(data);\n\tconst inputForm = getInputFormObject(form);\n\tconst inputRef = React.useRef(null);\n\tconst [isValid, setIsValid] = useState(true);\n\n\tconst handleCancel = useCallback(() => onCancel(), [onCancel]);\n\n\tuseEffect(() => {\n\t\tif (submitError != null) {\n\t\t\tform.setError(Object.keys(schema)[0], 'server', submitError);\n\t\t\treturn;\n\t\t}\n\t\tform.clearError(Object.keys(schema)[0]);\n\t}, [submitError, schema]);\n\n\tuseEffect(() => {\n\t\tsetIsValid(!Object.keys(form.errors).length);\n\t}, [form.errors]);\n\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (event.which === 27) {\n\t\t\t\t// Escape\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\thandleCancel();\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('keydown', handleKeyDown);\n\n\t\tinputRef.current && inputRef.current.focus();\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleKeyDown);\n\t\t};\n\t}, []);\n\n\tconst handleSubmit = useCallback(\n\t\tform.handleSubmit(async () => {\n\t\t\tif (!Object.keys(form.changesRef.current).length) {\n\t\t\t\tonCancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonRowUpdate && onRowUpdate(data, form.valuesRef.current);\n\t\t}),\n\t\t[data, onRowUpdate],\n\t);\n\n\tconst handleKeyUp = useCallback(\n\t\t(event: React.KeyboardEvent) => {\n\t\t\tif (event.which === 13) {\n\t\t\t\t// Enter\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\thandleSubmit();\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleSubmitClick = useCallback(() => handleSubmit(), [handleSubmit]);\n\n\treturn (\n\t\t\n\t\t\t{sortable ? : null}\n\t\t\t{Object.keys(schema).map((key) => {\n\t\t\t\tconst column = schema[key];\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{i18n.t('i18n.cancel')}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t(esc)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t{submitting && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default withStyles(styles)(EditableTableRow);\n","import React, {useCallback, useEffect, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tTableBody as MuiTableBody,\n\tTableBodyProps as MuiTableBodyProps,\n} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {ReactAction as Action} from '@netx/core/bootstrap';\n\nimport {TableRowData} from '..';\nimport TableCell from '../TableCell';\nimport TableRow, {TableRowProps} from '../TableRow';\nimport EditableTableRow from '../TableRow/EditableTableRow';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\t'&.disabled': {\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\topacity: 0.5,\n\t\t\t},\n\t\t},\n\t});\n\nexport interface TableBodyProps extends MuiTableBodyProps {\n\tactions?: Action[];\n\tclassName?: string;\n\tdata: TableRowData[];\n\tdeleting?: null | TableRowData;\n\tdisabled?: boolean;\n\teditable?: boolean;\n\tediting?: null | TableRowData;\n\tloading?: boolean;\n\tonEditing?: (isEditing: boolean, data?: TableRowData) => void;\n\tonEditModeToggle?: (isEditing: boolean) => void;\n\tonRowUpdate?: (oldData: TableRowData, newData: TableRowData) => void;\n\treorderable?: boolean;\n\trowSorting?: number;\n\tschema?: any;\n\tsubmitting?: boolean;\n\tsubmitError?: null | string;\n\n\tTableRowProps?: Partial;\n}\n\nconst TableBody: React.FunctionComponent<\n\tWithStyles & TableBodyProps\n> = ({\n\tclasses,\n\n\tactions,\n\tclassName,\n\tdata,\n\teditable,\n\tediting,\n\tdeleting,\n\tdisabled,\n\tloading,\n\tonEditing,\n\tonEditModeToggle,\n\tonRowUpdate,\n\treorderable,\n\trowSorting,\n\tschema,\n\tsubmitting,\n\tsubmitError,\n\n\tTableRowProps,\n\n\t...props\n}) => {\n\tconst deletingId = deleting && deleting.id;\n\tconst editingId = editing && editing.id;\n\n\tconst [isEditing, setIsEditing] = useState(editingId != null);\n\n\tuseEffect(() => {\n\t\tif (deleting) return;\n\t\tonEditing &&\n\t\t\tonEditing(\n\t\t\t\tisEditing,\n\t\t\t\tdata.find((d) => d.id === editingId),\n\t\t\t);\n\t\tonEditModeToggle && onEditModeToggle(isEditing);\n\t}, [data, isEditing]);\n\n\tuseEffect(() => {\n\t\tsetIsEditing(editingId != null);\n\t}, [editingId]);\n\n\tconst handleEditCancel = useCallback(() => {\n\t\tsetIsEditing(false);\n\t}, []);\n\n\tconst schemaKeys = Object.keys(schema);\n\n\treturn (\n\t\t\n\t\t\t{data.map((datum, idx) => {\n\t\t\t\tif (datum.id == null) return null;\n\t\t\t\tconst commonProps = {\n\t\t\t\t\tkey: datum.id,\n\t\t\t\t\tdata: datum,\n\t\t\t\t\tschema,\n\t\t\t\t};\n\t\t\t\t// TODO: make this a hook method\n\t\t\t\t// if we should not need to make any decisions about how a cell is edited\n\t\t\t\t// the component that wishes to offer an editable table should be the one\n\t\t\t\t// to provide this - just need to work some things out as far as needs\n\t\t\t\t// We need to deal with things like extra columns (drag/actions/etc) etc\n\t\t\t\tif (editable && editingId === datum.id) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{schemaKeys.map((key) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{datum[key]}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t})}\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(TableBody);\n","import React, {useCallback, useRef, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {SortableContainer, SortStart} from 'react-sortable-hoc';\n\nimport TableBody, {TableBodyProps} from './TableBody';\nconst SortableTableBody = SortableContainer(TableBody);\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\t'& tr': {\n\t\t\t\t'& td': {\n\t\t\t\t\tborderColor: 'transparent',\n\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t'&::after': {\n\t\t\t\t\t\tcontent: '\"\"',\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\tbackground: theme.palette.mode === 'light' ? '#e0e0e0' : '#515151',\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\theight: 1,\n\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&.sorting': {\n\t\t\t\t// Make sure we take over transitions for this\n\t\t\t\ttransitionProperty: 'transform',\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tuserSelect: 'none',\n\t\t\t},\n\t\t},\n\t});\n\ninterface SortableBodyProps extends TableBodyProps {\n\tclassName?: string;\n}\n\nexport interface SortableProps extends SortableBodyProps {\n\tclassName?: string;\n\tonReorder(oldIndex: number, newIndex: number): void;\n}\n\nconst Sortable: React.FunctionComponent<\n\tWithStyles & SortableProps\n> = ({className, classes, onReorder, TableRowProps, ...props}) => {\n\tconst [rowSorting, setRowSorting] = useState(-1);\n\t// will store the wrapper object for react-sortable-hoc\n\t// cannot seem to qork out a quick typing for it yet\n\tconst sortableRef = useRef();\n\n\tconst handleUpdateBeforeStart = useCallback(({index}: SortStart) => {\n\t\tsetRowSorting(index);\n\t}, []);\n\n\tconst handleSortEnd = useCallback(\n\t\t({oldIndex, newIndex}) => {\n\t\t\tsetRowSorting(-1);\n\t\t\tonReorder(oldIndex, newIndex);\n\t\t},\n\t\t[onReorder],\n\t);\n\n\treturn (\n\t\t -1,\n\t\t\t})}\n\t\t\treorderable={true}\n\t\t\tref={sortableRef}\n\t\t\trowSorting={rowSorting}\n\t\t\tTableRowProps={{\n\t\t\t\t...TableRowProps,\n\t\t\t\tsortableRef,\n\t\t\t\treorderable: true,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport default withStyles(styles)(Sortable);\n","import React from 'react';\n\nimport TableBody, {TableBodyProps} from './TableBody';\nimport SortableTableBody, {SortableProps} from './SortableTableBody';\n\nexport {TableBody, SortableTableBody};\nexport * from './TableBody';\nexport * from './SortableTableBody';\n\nexport default function ({onReorder, ...props}) {\n\tif (onReorder)\n\t\treturn (\n\t\t\t\n\t\t);\n\treturn ;\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nvar _LastPageIcon, _FirstPageIcon, _KeyboardArrowRight, _KeyboardArrowLeft, _KeyboardArrowLeft2, _KeyboardArrowRight2, _FirstPageIcon2, _LastPageIcon2;\n\nconst _excluded = [\"backIconButtonProps\", \"count\", \"getItemAriaLabel\", \"nextIconButtonProps\", \"onPageChange\", \"page\", \"rowsPerPage\", \"showFirstButton\", \"showLastButton\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport useTheme from '../styles/useTheme';\nimport IconButton from '../IconButton';\nimport LastPageIcon from '../internal/svg-icons/LastPage';\nimport FirstPageIcon from '../internal/svg-icons/FirstPage';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, ref) {\n const {\n backIconButtonProps,\n count,\n getItemAriaLabel,\n nextIconButtonProps,\n onPageChange,\n page,\n rowsPerPage,\n showFirstButton,\n showLastButton\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n\n const handleFirstPageButtonClick = event => {\n onPageChange(event, 0);\n };\n\n const handleBackButtonClick = event => {\n onPageChange(event, page - 1);\n };\n\n const handleNextButtonClick = event => {\n onPageChange(event, page + 1);\n };\n\n const handleLastPageButtonClick = event => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n ref: ref\n }, other, {\n children: [showFirstButton && /*#__PURE__*/_jsx(IconButton, {\n onClick: handleFirstPageButtonClick,\n disabled: page === 0,\n \"aria-label\": getItemAriaLabel('first', page),\n title: getItemAriaLabel('first', page),\n children: theme.direction === 'rtl' ? _LastPageIcon || (_LastPageIcon = /*#__PURE__*/_jsx(LastPageIcon, {})) : _FirstPageIcon || (_FirstPageIcon = /*#__PURE__*/_jsx(FirstPageIcon, {}))\n }), /*#__PURE__*/_jsx(IconButton, _extends({\n onClick: handleBackButtonClick,\n disabled: page === 0,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('previous', page),\n title: getItemAriaLabel('previous', page)\n }, backIconButtonProps, {\n children: theme.direction === 'rtl' ? _KeyboardArrowRight || (_KeyboardArrowRight = /*#__PURE__*/_jsx(KeyboardArrowRight, {})) : _KeyboardArrowLeft || (_KeyboardArrowLeft = /*#__PURE__*/_jsx(KeyboardArrowLeft, {}))\n })), /*#__PURE__*/_jsx(IconButton, _extends({\n onClick: handleNextButtonClick,\n disabled: count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('next', page),\n title: getItemAriaLabel('next', page)\n }, nextIconButtonProps, {\n children: theme.direction === 'rtl' ? _KeyboardArrowLeft2 || (_KeyboardArrowLeft2 = /*#__PURE__*/_jsx(KeyboardArrowLeft, {})) : _KeyboardArrowRight2 || (_KeyboardArrowRight2 = /*#__PURE__*/_jsx(KeyboardArrowRight, {}))\n })), showLastButton && /*#__PURE__*/_jsx(IconButton, {\n onClick: handleLastPageButtonClick,\n disabled: page >= Math.ceil(count / rowsPerPage) - 1,\n \"aria-label\": getItemAriaLabel('last', page),\n title: getItemAriaLabel('last', page),\n children: theme.direction === 'rtl' ? _FirstPageIcon2 || (_FirstPageIcon2 = /*#__PURE__*/_jsx(FirstPageIcon, {})) : _LastPageIcon2 || (_LastPageIcon2 = /*#__PURE__*/_jsx(LastPageIcon, {}))\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePaginationActions.propTypes = {\n /**\n * Props applied to the back arrow [`IconButton`](/material-ui/api/icon-button/) element.\n */\n backIconButtonProps: PropTypes.object,\n\n /**\n * The total number of rows.\n */\n count: PropTypes.number.isRequired,\n\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n *\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous'). Defaults to 'page'.\n * @param {number} page The page number to format.\n * @returns {string}\n */\n getItemAriaLabel: PropTypes.func.isRequired,\n\n /**\n * Props applied to the next arrow [`IconButton`](/material-ui/api/icon-button/) element.\n */\n nextIconButtonProps: PropTypes.object,\n\n /**\n * Callback fired when the page is changed.\n *\n * @param {object} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n\n /**\n * The zero-based index of the current page.\n */\n page: PropTypes.number.isRequired,\n\n /**\n * The number of rows per page.\n */\n rowsPerPage: PropTypes.number.isRequired,\n\n /**\n * If `true`, show the first-page button.\n */\n showFirstButton: PropTypes.bool.isRequired,\n\n /**\n * If `true`, show the last-page button.\n */\n showLastButton: PropTypes.bool.isRequired\n} : void 0;\nexport default TablePaginationActions;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTablePaginationUtilityClass(slot) {\n return generateUtilityClass('MuiTablePagination', slot);\n}\nconst tablePaginationClasses = generateUtilityClasses('MuiTablePagination', ['root', 'toolbar', 'spacer', 'selectLabel', 'selectRoot', 'select', 'selectIcon', 'input', 'menuItem', 'displayedRows', 'actions']);\nexport default tablePaginationClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _InputBase;\n\nconst _excluded = [\"ActionsComponent\", \"backIconButtonProps\", \"className\", \"colSpan\", \"component\", \"count\", \"getItemAriaLabel\", \"labelDisplayedRows\", \"labelRowsPerPage\", \"nextIconButtonProps\", \"onPageChange\", \"onRowsPerPageChange\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"SelectProps\", \"showFirstButton\", \"showLastButton\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, isHostComponent } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport InputBase from '../InputBase';\nimport MenuItem from '../MenuItem';\nimport Select from '../Select';\nimport TableCell from '../TableCell';\nimport Toolbar from '../Toolbar';\nimport TablePaginationActions from './TablePaginationActions';\nimport useId from '../utils/useId';\nimport tablePaginationClasses, { getTablePaginationUtilityClass } from './tablePaginationClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationRoot = styled(TableCell, {\n name: 'MuiTablePagination',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n overflow: 'auto',\n color: (theme.vars || theme).palette.text.primary,\n fontSize: theme.typography.pxToRem(14),\n // Increase the specificity to override TableCell.\n '&:last-child': {\n padding: 0\n }\n}));\nconst TablePaginationToolbar = styled(Toolbar, {\n name: 'MuiTablePagination',\n slot: 'Toolbar',\n overridesResolver: (props, styles) => _extends({\n [`& .${tablePaginationClasses.actions}`]: styles.actions\n }, styles.toolbar)\n})(({\n theme\n}) => ({\n minHeight: 52,\n paddingRight: 2,\n [`${theme.breakpoints.up('xs')} and (orientation: landscape)`]: {\n minHeight: 52\n },\n [theme.breakpoints.up('sm')]: {\n minHeight: 52,\n paddingRight: 2\n },\n [`& .${tablePaginationClasses.actions}`]: {\n flexShrink: 0,\n marginLeft: 20\n }\n}));\nconst TablePaginationSpacer = styled('div', {\n name: 'MuiTablePagination',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})({\n flex: '1 1 100%'\n});\nconst TablePaginationSelectLabel = styled('p', {\n name: 'MuiTablePagination',\n slot: 'SelectLabel',\n overridesResolver: (props, styles) => styles.selectLabel\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n flexShrink: 0\n}));\nconst TablePaginationSelect = styled(Select, {\n name: 'MuiTablePagination',\n slot: 'Select',\n overridesResolver: (props, styles) => _extends({\n [`& .${tablePaginationClasses.selectIcon}`]: styles.selectIcon,\n [`& .${tablePaginationClasses.select}`]: styles.select\n }, styles.input, styles.selectRoot)\n})({\n color: 'inherit',\n fontSize: 'inherit',\n flexShrink: 0,\n marginRight: 32,\n marginLeft: 8,\n [`& .${tablePaginationClasses.select}`]: {\n paddingLeft: 8,\n paddingRight: 24,\n textAlign: 'right',\n textAlignLast: 'right' // Align \\n\t\t';\n _.each( items, function( item, k ) { \n__p+='\\n\t\t\\n\t\t';\n }) \n__p+='\\n\t\\n';\n}\nreturn __p;\n};\n","module.exports = function(obj){\nvar __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\nwith(obj||{}){\n__p+='\\n\\n
\\n\t\\n\t\\n
\\n\\n
\\n\t\\n\t
00:00:00.000
\\n
\\n \\n
\\n\t\\n\t\\n
';\n}\nreturn __p;\n};\n","module.exports = function(obj){\nvar __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\nwith(obj||{}){\n__p+='\\n\\n
\\n\t
\\n\t\t\\n\t
\\n\t\\n\t
'+\n((__t=( headerTitle ))==null?'':__t)+\n'
\\n\t\\n\t
\\n\t\t\\n\t
\\n
\\n\\n
\\n\t
\\n\t\\n\t
\\n\t\t
\\n\t\t
\\n\t\t\t
\\n\t\t
\\n\t
\\n\t\\n\t
\\n\t\t
\\n\t\t\t'+\n((__t=( icons.faAngleRight ))==null?'':__t)+\n'\\n\t\t\t
i18n.attributes
\\n\t\t
\\n\t\t
\\n\t\t\t
\\n\t\t
\\n\t
\\n\\n';\n}\nreturn __p;\n};\n","module.exports = function(obj){\nvar __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\nwith(obj||{}){\n__p+='\\n\\n
\\n\t
i18n.assetConstituentClips
\\n\t'+\n((__t=( icons.faAngleLeft ))==null?'':__t)+\n'\\n
\\n\\n
\\n\t\\n\t
\\n\t\\n\t\\n\t
\\n\t\t
\\n\t\t\t

i18n.emptyConstituentClipsList

\\n\t\t
\\n\t
\\n
\\n';\n}\nreturn __p;\n};\n","module.exports = function(obj){\nvar __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\nwith(obj||{}){\n__p+='\\n\\n
\\n\t
\\n\t\t';\n if( keyframeReady ) { \n__p+='\\n\t\t\t\"'+\n((__t=(\\n\t\t';\n } \n__p+='\\n\t\t
\\n\t\t\t
\\n\t\t\t\t\\n\t\t\t
\\n\t\t\t'+\n((__t=( progressMessage ))==null?'':__t)+\n'\\n\t\t
\\n\t\t
\\n\t\t\t'+\n((__t=( duration.pretty ))==null?'':__t)+\n'\\n\t\t
\\n\t
\\n\t
\\n\t\t'+\n((__t=( title ))==null?'':__t)+\n'\\n\t\t'+\n((__t=( icons.faTrashAlt ))==null?'':__t)+\n'\\n\t
\\n
';\n}\nreturn __p;\n};\n","import React from 'react';\nimport {i18n} from '@netx/core/i18n';\nimport {Avatar} from '@mui/material';\nimport {styled} from '@netx/core-components/Theme';\nimport Chip, {ChipProps} from '../Chip';\n\nexport type ChipElement = HTMLDivElement;\nexport type CountChipRef = React.ForwardedRef;\n\nconst CountChipRoot = styled(Chip)(({theme}) => ({\n\tflex: '0 0 auto',\n}));\n\nexport interface CountChipProps extends Partial> {\n\tcount?: number;\n\thideAvatar?: boolean;\n\tref?: React.Ref;\n\tonClear?: () => void;\n}\n\nexport const CountChipPrimitive = React.forwardRef(\n\t(\n\t\t{count, disabled, hideAvatar, label, loading = false, onClear, ...props},\n\t\tref,\n\t) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\t\t\t{loading || count == null ? '-' : count > 99 ? '99+' : count}\n\t\t\t\t\t\t\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\t{...props}\n\t\t\t\tdisabled={disabled || loading}\n\t\t\t\tlabel={label != null ? label : i18n.t('i18n.selected')}\n\t\t\t\tonDelete={!loading && !!count ? onClear : undefined}\n\t\t\t/>\n\t\t);\n\t},\n) as React.ForwardRefExoticComponent;\n\nexport const CountChip = CountChipPrimitive;\n\nexport default CountChip;\n","import {useEffect, useRef} from 'react';\n\nexport type UseDocumentKeyDownOptions = {\n\tdisabled?: boolean;\n};\n\nexport const USE_DOCUMENT_KEY_DOWN_DEFAULTS = {\n\tdisabled: false,\n};\n\nexport const useDocumentKeyDown = (\n\tcb: (event: KeyboardEvent) => boolean | void,\n\t{disabled}: UseDocumentKeyDownOptions = USE_DOCUMENT_KEY_DOWN_DEFAULTS,\n) => {\n\tconst cbRef = useRef(cb);\n\tuseEffect(() => {\n\t\tcbRef.current = cb;\n\t});\n\n\tuseEffect(() => {\n\t\tif (disabled) return;\n\n\t\tconst onKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (cbRef.current(event) === false) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener('keydown', onKeyDown, {capture: true});\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', onKeyDown, {capture: true});\n\t\t};\n\t}, [disabled]);\n};\n\nexport default useDocumentKeyDown;\n","import React from 'react';\nimport {i18n} from '@netx/core/i18n';\n\nimport ActionButton, {ActionButtonProps} from '../ActionButton';\nimport {faTrashAlt as TrashIcon} from '@fortawesome/pro-solid-svg-icons';\n\nimport {Optional} from '@netx/core/typings';\n\nexport interface DeleteButtonProps\n\textends Optional {}\n\nconst DeleteButton: React.FunctionComponent = (props) => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default React.memo(DeleteButton);\n","import Netx from '@netx/core/bootstrap';\n\nexport const getUserLevel = () => Netx.getUser('type');\n\nexport default getUserLevel;\n","import React, {useEffect, useRef, useCallback} from 'react';\nimport clsx from 'clsx';\nimport _ from 'underscore';\n\nimport type {ArgumentsType} from '@netx/core/typings';\nimport {composeClasses, styled, WithClasses} from '@netx/core-components/Theme';\nimport {\n\tdragResizeClasses,\n\tgetDragResizeUtilityClass,\n\tDragResizeClasses,\n\tDRAG_RESIZE_CLASS_NAME,\n} from './dragResizeClasses';\nimport {DragResizeDirection} from './constants';\nimport {dragResizeHandleClasses} from './dragResizeHandleClasses';\nimport {DragResizeHandle} from './DragResizeHandle';\nimport {useDragResize} from './useDragResize';\n\ntype Ref = React.LegacyRef;\n\ntype DragResizeUtiltiyClassProps = WithClasses<\n\tDragResizeClasses,\n\t{\n\t\tdragging?: boolean;\n\t\tdirection: DragResizeDirection;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: DragResizeUtiltiyClassProps) => {\n\tconst {classes, direction, dragging} = ownerState;\n\tconst slots = {\n\t\troot: ['root', direction, dragging && 'dragging'],\n\t\tcontent: ['content'],\n\t\tsentinel: ['sentinel', direction],\n\t};\n\treturn composeClasses(slots, getDragResizeUtilityClass, classes);\n};\n\nconst DragResizeRoot = styled('div', {\n\tname: DRAG_RESIZE_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tposition: 'relative',\n\t[`&:not(:hover):not(.${dragResizeClasses.dragging}) .${dragResizeHandleClasses.root}`]: {\n\t\topacity: 0,\n\t},\n}));\n\nconst DragResizeContent = styled('div', {\n\tname: DRAG_RESIZE_CLASS_NAME,\n\tslot: 'Content',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tflexDirection: 'column',\n\toverflow: 'hidden',\n\twidth: '100%',\n}));\n\nconst DragResizeSentinel = styled('div')(({theme}) => ({\n\tposition: 'absolute',\n\tpointerEvents: 'none',\n\t[`&.${dragResizeClasses.bottom}`]: {\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\theight: 1,\n\t},\n\t[`&.${dragResizeClasses.left}`]: {\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0,\n\t\twidth: 1,\n\t},\n\t[`&.${dragResizeClasses.right}`]: {\n\t\tleft: 0,\n\t\ttop: 0,\n\t\tbottom: 0,\n\t\twidth: 1,\n\t},\n\t[`&.${dragResizeClasses.top}`]: {\n\t\tright: 0,\n\t\ttop: 0,\n\t\tleft: 0,\n\t\theight: 1,\n\t},\n}));\n\nconst SIDES = {\n\t[DragResizeDirection.LEFT]: 'right',\n\t[DragResizeDirection.RIGHT]: 'left',\n\t[DragResizeDirection.TOP]: 'bottom',\n\t[DragResizeDirection.BOTTOM]: 'top',\n} as const;\n\nexport type DragResizeProps = WithClasses<\n\tDragResizeClasses,\n\tReact.PropsWithChildren<\n\t\tArgumentsType[0] & {\n\t\t\tref?: Ref;\n\t\t}\n\t>\n>;\n\nconst DragResizeInner = (\n\t{classes: _classes, children, className, ...props}: DragResizeProps,\n\tref: Ref,\n) => {\n\tconst {\n\t\tisDragging,\n\t\tcheckLimits,\n\t\tdirection,\n\t\thandleMouseDown,\n\t\tstyles,\n\t} = useDragResize(props);\n\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t\tdragging: isDragging,\n\t\tdirection,\n\t});\n\n\tconst handleObserver = useCallback(() => checkLimits(), []);\n\n\tconst observer = useRef(\n\t\tnew IntersectionObserver(handleObserver, {\n\t\t\tthreshold: 1,\n\t\t\troot: props.overflowParentEl?.current,\n\t\t}),\n\t);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tobserver.current.disconnect();\n\t\t};\n\t}, []);\n\n\tconst registerRef = useCallback((node) => {\n\t\tif (!node) return;\n\t\tobserver.current?.observe(node);\n\t}, []);\n\n\tconst side = SIDES[direction];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\t\n\t\t\t{!props.disabled ? (\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};\n\nexport const DragResizePrimitive = React.forwardRef(DragResizeInner) as (\n\tprops: DragResizeProps,\n\tref?: Ref,\n) => JSX.Element;\n\nexport const DragResize = DragResizePrimitive;\n\nexport default DragResize;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const DRAG_RESIZE_HANDLE_CLASS_NAME = 'DragResizeHandle';\nexport const DRAG_RESIZE_HANDLE_CLASS_SLOTS = ['root', 'ellipsis'] as const;\n\nexport type DragResizeHandleClassSlot = typeof DRAG_RESIZE_HANDLE_CLASS_SLOTS[number];\n\nexport interface DragResizeHandleClasses {\n\troot: string;\n\tellipsis: string;\n\n\tdragging: string;\n\tbottom: string;\n\tleft: string;\n\tright: string;\n\ttop: string;\n}\n\nexport type DragResizeHandleClassKey = keyof DragResizeHandleClasses;\n\nexport const getDragResizeHandleUtilityClass = (\n\tslot: DragResizeHandleClassSlot,\n) => generateUtilityClass(DRAG_RESIZE_HANDLE_CLASS_NAME, slot);\n\nexport const dragResizeHandleClasses: DragResizeHandleClasses = generateUtilityClasses(\n\tDRAG_RESIZE_HANDLE_CLASS_NAME,\n\t['root', 'dragging', 'ellipsis', 'left', 'right', 'top', 'bottom'],\n);\n\nexport default dragResizeHandleClasses;\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {\n\tButton,\n\tDialogActions,\n\tDialogContent,\n\tDialogContentProps,\n\tLinearProgress,\n} from '@mui/material';\nimport useMediaQuery from '../hooks/useMediaQuery';\nimport Dialog, {DialogProps} from '../Dialog';\nimport {Form, FormActions, FormChanges, FormType, FormValues} from '../Form';\nimport SubmitButton from '../SubmitButton';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tuseTheme,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '../Theme';\n\ntype OverridenDialogContentProps = WithMuiPropOverrides;\n\nimport {\n\tformDialogClasses,\n\tgetFormDialogUtilityClass,\n\tFormDialogClasses,\n\tFORM_DIALOG_CLASS_NAME,\n} from './formDialogClasses';\n\ntype FormDialogUtiltiyClassProps = WithClasses<\n\tFormDialogClasses,\n\t{\n\t\tdisabled?: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: FormDialogUtiltiyClassProps) => {\n\tconst {classes, disabled} = ownerState;\n\tconst slots = {\n\t\troot: ['root', disabled && 'disabled'],\n\t\tactions: ['actions'],\n\t\tcancelButton: ['cancelButton'],\n\t\tcontent: ['content'],\n\t\tform: ['form'],\n\t\tprogress: ['progress'],\n\t\tsubmitButton: ['submitButton'],\n\t};\n\treturn composeClasses(slots, getFormDialogUtilityClass, classes);\n};\n\nconst FormDialogRoot = styled(Dialog, {\n\tname: FORM_DIALOG_CLASS_NAME,\n\tslot: 'Root',\n})(({theme, ownerState}) => {\n\tconst {disabled} = ownerState as FormDialogUtiltiyClassProps;\n\treturn {\n\t\t...(disabled\n\t\t\t? {\n\t\t\t\t\t[`& .${formDialogClasses.form}`]: {\n\t\t\t\t\t\topacity: 0.5,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: null),\n\t};\n});\n\nconst FormDialogContent = styled(DialogContent, {\n\tname: FORM_DIALOG_CLASS_NAME,\n\tslot: 'Content',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tposition: 'relative',\n}));\n\nconst FormDialogForm = styled(Form, {\n\tname: FORM_DIALOG_CLASS_NAME,\n\tslot: 'Form',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tflex: '1 1 auto',\n\toverflow: 'hidden',\n\t'&.disabled': {\n\t\t...theme.mixins.disabled,\n\t},\n}));\n\nconst FormDialogActions = styled(DialogActions, {\n\tname: FORM_DIALOG_CLASS_NAME,\n\tslot: 'Actions',\n})(({theme}) => ({\n\tpadding: theme.spacing(2),\n}));\n\nconst FormDialogCancelButton = styled(Button, {\n\tname: FORM_DIALOG_CLASS_NAME,\n\tslot: 'CancelButton',\n})(({theme}) => ({\n\t// marginRight: theme.spacing(1),\n\t[`& + .${formDialogClasses.submitButton}`]: {\n\t\tmarginLeft: theme.spacing(1),\n\t},\n}));\n\nconst FormDialogSubmitButton = styled(SubmitButton, {\n\tname: FORM_DIALOG_CLASS_NAME,\n\tslot: 'SubmitButton',\n})(({theme}) => ({\n\t[theme.breakpoints.down('sm')]: {\n\t\twidth: '100%',\n\t},\n}));\n\nexport type FormDialogProps<\n\tWithForm extends boolean = false,\n\tTValues extends FormValues = FormValues\n> = Omit &\n\tWithClasses<\n\t\tFormDialogClasses,\n\t\t{\n\t\t\tform?: FormType;\n\t\t\tcancelLabel?: string;\n\t\t\tconfirmLabel?: string;\n\t\t\thasChanged?: boolean;\n\t\t\tinvalid?: boolean;\n\t\t\tisValid?: boolean;\n\t\t\topen?: boolean;\n\t\t\tprogress?: null | number;\n\t\t\trequiresChanges?: boolean;\n\t\t\tsubmitting?: boolean;\n\t\t\tDialogContentProps?: Partial<\n\t\t\t\tOmit\n\t\t\t>;\n\t\t}\n\t> &\n\t(WithForm extends true\n\t\t? {\n\t\t\t\tform: FormType;\n\t\t\t\tonSubmit?: (\n\t\t\t\t\tvalues: TValues,\n\t\t\t\t\tchanges: FormChanges,\n\t\t\t\t\tactions: FormActions,\n\t\t\t\t) => Promise;\n\t\t }\n\t\t: {\n\t\t\t\tonSubmit: (event: React.FormEvent) => Promise;\n\t\t });\n\n/**\n * Standard dialog for forms\n */\nexport const FormDialogPrimitive = ({\n\tchildren,\n\tclasses: _classes,\n\tclassName,\n\n\tcancelLabel,\n\tdisabled,\n\tconfirmLabel,\n\tdisableEscapeKeyDown,\n\tform,\n\thasChanged,\n\tinvalid,\n\tisValid,\n\tonClose,\n\tonSubmit,\n\tprogress,\n\trequiresChanges = true,\n\tsubmitting,\n\n\tDialogContentProps,\n\n\t...props\n}: FormDialogProps) => {\n\tcancelLabel = cancelLabel != null ? cancelLabel : i18n.t('i18n.cancel');\n\tconfirmLabel = confirmLabel != null ? confirmLabel : i18n.t('i18n.submit');\n\n\tconst isUncontrolled = useRef(props.open == null);\n\tconst open = props.open == null ? true : props.open === true;\n\n\tuseEffect(() => {\n\t\topen != null && setIsOpen(open);\n\t\tif (isUncontrolled.current && open != null) {\n\t\t\tconsole.warn('switching from uncontrolled to controlled');\n\t\t\t// isUncontrolled.current = false;\n\t\t}\n\t}, [props.open]);\n\n\tconst theme = useTheme();\n\n\tconst smallScreen = useMediaQuery(theme.breakpoints.down('sm'));\n\n\tconst [isOpen, setIsOpen] = useState(open);\n\n\tconst changed = form?.hasChanged || hasChanged;\n\tconst valid = form?.isValid || isValid;\n\tconst isSubmitting = form?.isSubmitting || submitting;\n\n\tconst ownerState: FormDialogUtiltiyClassProps = {\n\t\tclasses: _classes,\n\t\tdisabled,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\tconst submitEnabled =\n\t\tinvalid !== true && valid && (!requiresChanges || changed);\n\n\tconst handleClose = useCallback(\n\t\t(event, reason) => {\n\t\t\tif (!isSubmitting && reason !== 'backdropClick') {\n\t\t\t\tisUncontrolled.current && setIsOpen(false);\n\t\t\t\tonClose?.(event, reason);\n\t\t\t}\n\t\t},\n\t\t[onClose, isSubmitting],\n\t);\n\n\tconst handleCancel = useCallback(\n\t\t(event) => {\n\t\t\tisUncontrolled.current && setIsOpen(false);\n\t\t\tonClose?.(event, 'escapeKeyDown');\n\t\t},\n\t\t[onClose],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{progress != null ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>{children}\n\t\t\t\t\t)}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{!smallScreen ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cancelLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const FormDialog = FormDialogPrimitive;\n\nexport default FormDialog;\n","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\nexport default Tablelvl2Context;","import {AttributeTemplate} from '../types';\nimport {\n\tATTRIBUTE_NUMBER_SPEC_2_TYPE,\n\tATTRIBUTE_NUMBER_MAX_DECIMAL,\n\tATTRIBUTE_NUMBER_TESTS,\n} from '../constants';\n\n/**\n * @return Decimals\n */\nexport const getDecimalCount = (value: number | string) => {\n\tvalue = value.toString();\n\tconst decimalSeparator = whatDecimalSeparator();\n\tconst decimals = value.split(decimalSeparator);\n\treturn decimals[1]?.length || 0;\n};\n\n/**\n * https://stackoverflow.com/questions/11665884/how-can-i-parse-a-string-with-a-comma-thousand-separator-to-a-number\n */\nexport const parseNumber = (value: string | number, locale?: string) => {\n\tvalue = value.toString();\n\tlocale = locale || navigator.language;\n\tconst example = Intl.NumberFormat(locale).format(1.1);\n\tconst cleanPattern = new RegExp('[^-+0-9' + example.charAt(1) + ']', 'g');\n\treturn parseFloat(\n\t\tvalue.replace(cleanPattern, '').replace(example.charAt(1), '.'),\n\t);\n};\n\n/**\n * @return Decimal separator for locale\n */\nexport const whatDecimalSeparator = () =>\n\t(1.1).toLocaleString().substring(1, 2);\n\nexport const number = (\n\tvalue: any,\n\t{spec1, spec2}: Pick,\n) => {\n\tif (value === '' || value == null) return true;\n\n\tconst maxLength = spec1 || Infinity;\n\tconst numberType = spec2;\n\n\t// const test = STR_TESTS[numberType];\n\tconst maxDecimal = ATTRIBUTE_NUMBER_MAX_DECIMAL[numberType];\n\n\tvalue = value.toString();\n\n\tconst decimalIndex = value.indexOf('.');\n\tif (decimalIndex > -1 && decimalIndex + 1 === value.length)\n\t\treturn new Error('Invalid number');\n\n\tif (value.length > maxLength)\n\t\treturn new Error(`Exceeds max length of ${maxLength}`);\n\n\tif (isNaN(parseNumber(value))) return new Error('Invalid number format');\n\n\t// Negative numbers are not allowed by the DAM\n\tif (numberType === ATTRIBUTE_NUMBER_SPEC_2_TYPE.UNLIMITED && value < 0)\n\t\treturn new Error('Negative numbers are not allowed');\n\n\tconst decimalCount = getDecimalCount(value);\n\tif (numberType === ATTRIBUTE_NUMBER_SPEC_2_TYPE.WHOLE && !!decimalCount)\n\t\treturn new Error(`Must be a whole number`);\n\tif (decimalCount > maxDecimal)\n\t\treturn new Error(`Exceeds max decimals of ${maxDecimal}`);\n\n\treturn true;\n};\n\nexport default number;\n","export const SearchTypeCheckouts = 13 as const;\nexport type TSearchTypeCheckouts = typeof SearchTypeCheckouts;\n\n// elementSubType1\nexport enum CheckoutType {\n\tALL = 0,\n\tUSER_ID = 1,\n}\n","export const SearchTypeDate = 4 as const;\nexport type TSearchTypeDate = typeof SearchTypeDate;\n\n/** elementSubType1 */\nexport enum DateType {\n\tCREATION_DATE = 0,\n\tLAST_MODIFIED = 1,\n\tUSER_DEFINED_ATTRIBUTE = 2,\n\tIMPORT_DATE = 3,\n}\n\n/** elementSubType2 */\nexport enum DateSubType {\n\tLAST_THREE_MONTHS = 1,\n\tLAST_SIX_MONTHS = 2,\n\tLAST_YEAR = 3,\n\tBEFORE = 4,\n\tAFTER = 5,\n\tIN_BETWEEN = 6,\n\tLAST_WEEK = 7,\n\tLAST_MONTH = 8,\n\tTODAY = 9,\n\tYESTERDAY = 10,\n}\n\n/**\n * DateSubTypes that do not require a value\n */\nexport const DateNoValueTypes = [\n\tDateSubType.LAST_MONTH,\n\tDateSubType.LAST_SIX_MONTHS,\n\tDateSubType.LAST_THREE_MONTHS,\n\tDateSubType.LAST_WEEK,\n\tDateSubType.LAST_YEAR,\n\tDateSubType.TODAY,\n\tDateSubType.YESTERDAY,\n] as const;\n\n/**\n * DateSubTypes that require a single value\n */\nexport const DateSingleValueTypes = [\n\tDateSubType.AFTER,\n\tDateSubType.BEFORE,\n] as const;\n\n/**\n * DateTypes related to system attributes\n */\nexport const DateSystemDefinedTypes = [\n\tDateType.IMPORT_DATE,\n\tDateType.CREATION_DATE,\n\tDateType.LAST_MODIFIED,\n] as const;\n\nexport type DoesNotRequireDate = typeof DateNoValueTypes[number];\nexport type RequiresSingleDate = typeof DateSingleValueTypes[number];\nexport type SystemDefined = typeof DateSystemDefinedTypes[number];\n","export const SearchTypeKeyword = 1 as const;\nexport type TSearchTypeKeyword = typeof SearchTypeKeyword;\n\nexport enum KeywordType {\n\tMATCH_ALL_FRAGMENTS = 4,\n\tMATCH_ANY_FRAGMENT = 5,\n\tMATCH_EXACTLY = 1,\n\tMATCH_EXACTLY_INCLUDING_DIACRITICAL_MARKS = 10,\n\tMATCH_EXCLUDE = 3,\n\tMATCH_ALL_WHOLE_WORDS_AND = 0,\n\tMATCH_ANY_WHOLE_WORDS_OR = 2,\n}\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {Skeleton, SkeletonProps} from '@mui/material';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\n\nimport {\n\tchipSkeletonClasses,\n\tgetChipSkeletonUtilityClass,\n\tChipSkeletonClasses,\n\tCHIP_SKELETON_CLASS_NAME,\n} from './chipSkeletonClasses';\n\ntype AutoTaskEditorUtiltiyClassProps = WithClasses;\n\nconst useUtilityClasses = (ownerState: AutoTaskEditorUtiltiyClassProps) => {\n\tconst {classes} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t};\n\treturn composeClasses(slots, getChipSkeletonUtilityClass, classes);\n};\n\nconst ChipSkeletonRoot = styled(Skeleton, {\n\tname: CHIP_SKELETON_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tborderRadius: 16,\n\tflex: '0 0 auto',\n\tdisplay: 'inline-flex',\n\tmargin: 3,\n\twidth: 70,\n}));\n\nexport interface ChipSkeletonProps\n\textends Omit, 'classes'>,\n\t\tWithClasses {\n\tcount?: number;\n}\n\nexport const ChipSkeletonPrimitive = ({\n\tclasses: _classes,\n\tclassName,\n\tcount,\n\t...props\n}: ChipSkeletonProps) => {\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{Array(count || 1)\n\t\t\t\t.fill(null)\n\t\t\t\t.map((val, index) => (\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\n\t);\n};\n\nexport const ChipSkeleton = ChipSkeletonPrimitive;\nexport default ChipSkeleton;\n","export const SearchTypeVisual = 27 as const;\nexport type TSearchTypeVisual = typeof SearchTypeVisual;\n\nexport enum VisualType {\n\tASSET = 1,\n\tCOLOR = 2,\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nclass Progress extends Base {\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {boolean} defaults.active - Progress is active\n\t * @property {string} defaults.message - Progress message\n\t * @property {number} defaults.percent - Progress percentage\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\tpercent: 0,\n\t\t\tmessage: '',\n\t\t\tactive: false,\n\t\t};\n\t}\n\n\t/** @override */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t// Use delay option if passed\n\t\tthis.delay = opts.delay != null ? opts.delay : 1000;\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} message Message\n\t */\n\tcomplete(message) {\n\t\tthis.set({\n\t\t\tmessage: message || '',\n\t\t\tpercent: 100,\n\t\t});\n\t\t_.delay(() => {\n\t\t\tthis.set({\n\t\t\t\tactive: false,\n\t\t\t\tpercent: 0,\n\t\t\t});\n\t\t}, this.delay);\n\t}\n\n\t/**\n\t * We have no server methods - just cleanup\n\t * @override\n\t */\n\tdestroy() {\n\t\tthis.stopListening();\n\t}\n\n\t/**\n\t * @method\n\t */\n\treset() {\n\t\tthis.set(this.constructor.GetDefaults());\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} percent Percent\n\t * @param {string} message Message\n\t */\n\tupdate(percent, message) {\n\t\tthis.set({\n\t\t\tactive: true,\n\t\t\tmessage: message || '',\n\t\t\tpercent: percent,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Progress';\n\t}\n}\n\nexport default Progress;\n","import {useEffect, useState} from 'react';\nimport useMuiMediaQuery, {Options} from '@mui/material/useMediaQuery';\nimport {Theme} from '@netx/core-components/Theme';\n\n// The beauty of browsers not being on the same damn spec\nconst inFullScreen = () => {\n\treturn (\n\t\t(document.fullscreenElement ||\n\t\t\t(document as any).webkitFullscreenElement ||\n\t\t\t(document as any).mozFullScreenElement) != null\n\t);\n};\n\n/**\n * Wrapper for MUI useMediaQuery\n * When entering fullscreen mode the browser resizes, if you have components depending\n * on the screen size - it can get kind of gross\n * This makes sure that mediaQuery result is not updated while entering/being in fullscreen\n */\nexport const useMediaQuery = (\n\tquery: string | ((theme: T) => string),\n\toptions?: Options,\n) => {\n\tconst _mediaQuery = useMuiMediaQuery(query, options);\n\tconst [mediaQuery, setMediaQuery] = useState(_mediaQuery);\n\n\tuseEffect(() => {\n\t\tif (inFullScreen()) return;\n\t\tsetMediaQuery(_mediaQuery);\n\t}, [_mediaQuery]);\n\n\treturn mediaQuery;\n};\n\nexport default useMediaQuery;\n","import {UserLevel} from '@netx/core-user/constants';\n\nexport default [\n\t{\n\t\tevent: 'videoEditor:clip:new',\n\t\tlabel: i18n.t('i18n.newClip'),\n\t\tmatrix: 'modify',\n\t\tuserLevel: UserLevel.PRODUCER,\n\t},\n];\n","import Menu from '@netx/core/lib/netx-menu';\n\nexport default {};\n","/**\n * @class\n * @todo finish documenting\n */\nimport Base from '@netx/core/lib/netx-model';\n\nexport default class VideoEditorOperation extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\tname: '',\n\t\t\tlabel: '',\n\t\t\toriginalLabel: '',\n\t\t\ttype: '',\n\t\t\titems: null,\n\t\t\torder: 0,\n\t\t\tvalue: 0,\n\t\t};\n\t}\n\n\t/** @override */\n\tconstructor(attrs, opts) {\n\t\tsuper(attrs, opts);\n\n\t\t// Hey, listen!\n\t\tthis.set({originalLabel: this.get('label')}, {silent: true});\n\t}\n\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperation';\n\t}\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/videoEditorOperation';\n\nexport default class VideoEditorOperationsStack extends Base {\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.comparator = opts.comparator || 'order';\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\t}\n\n\t/**\n\t * Get a good clone of our operation models\n\t * @return {array} Array of model attributes\n\t */\n\tgetClone() {\n\t\treturn this.map(m => {\n\t\t\tconst attributes = {};\n\t\t\t_.each(m.attributes, (attr, k) => {\n\t\t\t\tif (_.isArray(attr)) {\n\t\t\t\t\tattributes[k] = attr.slice();\n\t\t\t\t} else if (_.isObject(attr)) {\n\t\t\t\t\tattributes[k] = _.clone(attr);\n\t\t\t\t} else {\n\t\t\t\t\tattributes[k] = attr;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn attributes;\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {modules:videoEditor/models/video} video Video\n\t * @return {object} Data\n\t */\n\tgetData(video) {\n\t\tconst data = {};\n\t\tthis.each(m => {\n\t\t\tif (_.isFunction(m.get('isValid'))) {\n\t\t\t\tconst valid = m.get('isValid').call(video, m.get('value'));\n\t\t\t\tif (!valid) return;\n\t\t\t}\n\t\t\t// Noop - anything that has no change causes server to serve up a bad video\n\t\t\tif (m.get('control') === 'dropdown' && m.get('value') === 0) return;\n\t\t\t// If we have a convert function\n\t\t\tif (_.isFunction(m.get('convertValue'))) {\n\t\t\t\t//cv = _.bind( op.convertValue, this.model );\n\t\t\t\tdata[m.get('name')] = m\n\t\t\t\t\t.get('convertValue')\n\t\t\t\t\t.call(video, m.get('realValue'));\n\t\t\t\treturn data[m.get('name')];\n\t\t\t}\n\t\t\t// Just return value on name\n\t\t\tdata[m.get('name')] = m.get('realValue');\n\t\t\treturn data[m.get('name')];\n\t\t});\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns the strict order of models (as defined by index)\n\t * @method\n\t * @return {array} Strict ordered models\n\t */\n\tstrictOrder() {\n\t\tlet indexed = [];\n\t\tconst unindexed = [];\n\n\t\tthis.each(m => {\n\t\t\tif (!_.isUndefined(m.get('index'))) {\n\t\t\t\tindexed[m.get('index')] = m;\n\t\t\t} else {\n\t\t\t\tunindexed.push(m);\n\t\t\t}\n\t\t});\n\t\t// Fix indexes\n\t\tindexed = _.map(indexed, i => i);\n\t\t//console.log( indexed, unindexed );\n\t\treturn _.compact(indexed.concat(unindexed));\n\t}\n\n\t/**\n\t * @method\n\t * @param {Netx.Models.ImageEditorOperation} model ImageEditorOperation model\n\t * @param {number} amount Amount to move up or down ( 1, -1 ) - Will not work for operations with a specified index\n\t */\n\tupdateIndex(model, amount) {\n\t\tamount = amount ? amount : 0;\n\n\t\t// Original index\n\t\tconst oindex = model.get('order');\n\n\t\t// New index\n\t\tlet nindex = oindex + amount;\n\n\t\t// Check bounds\n\t\tif (nindex <= 0) nindex = 1;\n\t\tif (nindex > this.length + 1) nindex = this.length + 1;\n\n\t\t// Set silently\n\t\tmodel.set({order: nindex}, {silent: true});\n\t\tconsole.log(oindex, nindex, amount);\n\t\t// Update all non index enforced operations\n\t\t_.each(this.models, m => {\n\t\t\tconst o = m.get('order');\n\t\t\t// Not concerned with the model (operation) passed to this method\n\t\t\t// That was already set above\n\t\t\tif (m.cid == model.cid) return;\n\n\t\t\tif (amount < 0) {\n\t\t\t\tif (o === nindex) m.set({order: o + 1}, {silent: true});\n\t\t\t} else if (amount > 0) {\n\t\t\t\tif (o === nindex) m.set({order: o - 1}, {silent: true});\n\t\t\t}\n\t\t});\n\n\t\t// Sort collection\n\t\tthis.sort();\n\t\tconsole.log(this.models);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperationsStack';\n\t}\n}\n","export default {\n\t/**\n\t * Container for our view\n\t * @const\n\t * @type {string}\n\t * @default\n\t */\n\tCONTAINER_ID: 'video-editor',\n\t/**\n\t * Process operations\n\t * @const\n\t * @type {object}\n\t * @default\n\t */\n\tOPERATIONS: {\n\t\trange: {\n\t\t\ttype: 'range',\n\t\t\tcontrol: 'range',\n\t\t\tlabel: i18n.t('i18n.clip'),\n\t\t\titems: {\n\t\t\t\t// For testing purposes only\n\t\t\t\t// The editor handles the ranges as we do not know the length of an audio file from the asset bean\n\t\t\t\t// But in unit tests we are not loading the editor and need some sort of sane value to come from here\n\t\t\t\tendTime: {\n\t\t\t\t\trange: [10, 20],\n\t\t\t\t},\n\t\t\t\tstartTime: {\n\t\t\t\t\trange: [0, 9],\n\t\t\t\t},\n\t\t\t},\n\t\t\tconvertValue: function(value) {\n\t\t\t\treturn value;\n\t\t\t\t// return [\n\t\t\t\t// \tMath.round( _.isObject( value.startTime ) ? value.startTime.seconds * 1000 : value.startTime * 1000 ),\n\t\t\t\t// \tMath.round( _.isObject( value.endTime ) ? value.endTime.seconds * 1000 : value.endTime * 1000 )\n\t\t\t\t// ].join(\",\");\n\t\t\t},\n\t\t},\n\t},\n};\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport VideoEditorOperationsStackCollection from '../collections/videoEditorOperationsStack';\n\nimport customConfig from '../config';\n\nexport default class VideoEditorVideo extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'assetId';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.duration - The default duration\n\t * @property {string} defaults.file - The default file name\n\t * @property {string} defaults.name - The default name\n\t * @property {number} defaults.fileheight - The default file height\n\t * @property {string} defaults.filetypelabel - The default file type label\n\t * @property {number} defaults.fileSize2 - The default file size\n\t * @property {number} defaults.filewidth - The default file width\n\t * @property {string} defaults.path - The default file path\n\t * @property {string} defaults.previewUrl - The default preview URL\n\n\t * @property {string} defaults.videoUrl - The default video URL\n\t * @property {string} defaults.viewNames - The default view names\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\tassetId: 0,\n\t\t\tduration: 0,\n\t\t\tfile: '',\n\t\t\tname: '',\n\t\t\tfileheight: 0,\n\t\t\tfiletypelabel: '',\n\t\t\tfileSize2: 0,\n\t\t\tfilewidth: 0,\n\t\t\tpath: '',\n\t\t\tpreviewUrl: '',\n\t\t\tvideoUrl: '',\n\t\t\tviewNames: '',\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} methods - Model RPC methods\n\t * @property {array} methods.getProcessListForUser - Get all available processes for user and asset\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tgetProcessListForUser: ['getProcessListForUser', 'assetId'],\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs = {}, opts = {}) {\n\t\topts = opts || {};\n\t\tattrs = attrs || {};\n\n\t\tvar asset = opts.asset;\n\t\tif (asset) {\n\t\t\t// Get pertinent attributes from asset\n\t\t\tattrs = _.extend({}, attrs, asset.attributes);\n\t\t\t// Try for a preview\n\t\t\tif (_.indexOf(asset.get('viewNames'), 'previewH264') !== -1) {\n\t\t\t\tattrs.videoUrl = [\n\t\t\t\t\t'/file/asset/',\n\t\t\t\t\tasset.id,\n\t\t\t\t\t'/view/previewH264/v_',\n\t\t\t\t\tasset.id,\n\t\t\t\t\t'.mp4',\n\t\t\t\t].join('');\n\t\t\t}\n\t\t\t// Wlse get the original\n\t\t\telse if (asset.get('filetypelabel') === 'mp4') {\n\t\t\t\tattrs.videoUrl = [\n\t\t\t\t\t'/file/asset/',\n\t\t\t\t\tasset.id,\n\t\t\t\t\t'/original/v_',\n\t\t\t\t\tasset.id,\n\t\t\t\t\t'.mp4',\n\t\t\t\t].join('');\n\t\t\t}\n\t\t}\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * Store asset\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias asset\n\t\t * @type {module:asset/models/asset}\n\t\t */\n\t\tthis.asset = opts.asset;\n\n\t\t/**\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias lastOperationsStack\n\t\t * @type {Netx.Collections.VideoEditorOperationsStack}\n\t\t */\n\t\tthis.lastOperationsStack = new VideoEditorOperationsStackCollection([]);\n\t\t/**\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias operationsStack\n\t\t * @type {Netx.Collections.VideoEditorOperationsStack}\n\t\t */\n\t\tthis.operationsStack = new VideoEditorOperationsStackCollection([]);\n\t\t/**\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias operationStackHistory\n\t\t * @type {array}\n\t\t */\n\t\tthis.operationStackHistory = [];\n\t\t/**\n\t\t * Hold changes temporarily so that we can have an accurate lastOperationsStack\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias operationStackArray\n\t\t * @type {array}\n\t\t */\n\t\tthis.operationStackArray = [];\n\n\t\t/**\n\t\t * According to FlexService.java, this field is 100% ignored.\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias repurposeDownloadOverride\n\t\t * @type {string}\n\t\t */\n\t\tthis.repurposeDownloadOverride = opts.repurposeDownloadOverride || '';\n\n\t\t/**\n\t\t * Meaning varies by process\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias repurposeOtherIds\n\t\t * @type {array}\n\t\t */\n\t\tthis.repurposeOtherIds = [];\n\t\t/**\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias repurposeMethods\n\t\t * @type {array}\n\t\t */\n\t\tthis.repurposeMethods = [];\n\t\t/**\n\t\t * @memberOf Netx.Models.VideoEditorVideo\n\t\t * @alias repurposeValues\n\t\t * @type {array}\n\t\t */\n\t\tthis.repurposeValues = [];\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tdispatcher,\n\t\t\t'videoEditor:operations:update',\n\t\t\tthis.updateOperations,\n\t\t);\n\t\tthis.listenTo(dispatcher, 'videoEditor:reset', this.reset);\n\t}\n\n\t/**\n\t * Get operation object from stack\n\t * @method\n\t * @param {string} key Operation key\n\t * @param {boolean} alias Whether or not to use alias instead of name\n\t * @return {object} Operation object\n\t */\n\tgetOperation(key, alias) {\n\t\tvar condition = alias ? {alias: key} : {name: key};\n\t\treturn this.operationsStack.findWhere(condition);\n\t}\n\t/**\n\t * @method\n\t */\n\treset() {\n\t\tthis.resetOperations();\n\t}\n\t/**\n\t * Resets image\n\t * @method\n\t */\n\tresetOperations() {\n\t\tthis.lastOperationsStack.set([]); //_.map( this.operationsStack.models, _.clone ) );\n\t\tthis.operationsStack.set([]);\n\t\tthis.operationStackArray = [];\n\t}\n\t/**\n\t * Clears stack histories\n\t * @method\n\t */\n\tresetStackHistory() {\n\t\tthis.operationStackHistory = [];\n\t\tthis.lastOperationsStack.set([]);\n\t}\n\t/**\n\t * @method\n\t */\n\tundo() {\n\t\t// Store a clone of the scurrent operations stack\n\t\tthis.lastOperationsStack.set(this.operationsStack.getClone());\n\t\t// Set the current operation stack to the last operation stack in history\n\t\tthis.operationsStack.set(\n\t\t\tthis.operationStackHistory.length\n\t\t\t\t? this.operationStackHistory.pop().slice()\n\t\t\t\t: [],\n\t\t);\n\t\t// Store a cloned copy for further manipulation\n\t\tthis.operationStackArray = this.operationsStack.getClone();\n\n\t\t// Apply current operation stack\n\t\tthis.trigger('operationsUpdated', this.getChanges());\n\t}\n\t/**\n\t * Add operation to stack\n\t * @method\n\t * @param {array} operations Operations array\n\t */\n\tupdateOperations(operations) {\n\t\t// Vars\n\t\tvar attributes, changes, currentOp, lastOp, op;\n\n\t\t// We will store operations with changes here\n\t\tchanges = {};\n\n\t\t// Store last operations\n\t\tthis.lastOperationsStack.set(this.operationStackArray.slice());\n\n\t\t// Loop over operations to set\n\t\t_.each(\n\t\t\toperations.models,\n\t\t\tfunction(o) {\n\t\t\t\t// Cloned copy of attributes (otherwise the values will be mirrored before we can compare above)\n\t\t\t\tattributes = _.clone(o.attributes);\n\t\t\t\t// Find in our available operations object\n\t\t\t\top = customConfig.OPERATIONS[attributes.name];\n\t\t\t\t// Well, it must be an operation for the backend only and not for our canvas\n\t\t\t\tif (_.isUndefined(op) || attributes.value === null) return;\n\t\t\t\t// Check if operation was part of last operation stack\n\t\t\t\tlastOp = this.lastOperationsStack.findWhere({name: attributes.name});\n\t\t\t\t// Check for changes\n\t\t\t\tif (\n\t\t\t\t\t_.isUndefined(lastOp) ||\n\t\t\t\t\t!_.isEqual(lastOp.get('value'), attributes.value)\n\t\t\t\t) {\n\t\t\t\t\t// Store change\n\t\t\t\t\tchanges[attributes.alias || attributes.name] = {\n\t\t\t\t\t\tvalue: attributes.value,\n\t\t\t\t\t\trealValue: attributes.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis,\n\t\t);\n\n\t\t// Loop over last operation stack and if an item is not present in the current operation stack we know it has been removed\n\t\tthis.lastOperationsStack.each(function(o) {\n\t\t\t// Find in last operation\n\t\t\tcurrentOp = this.operationsStack.findWhere({name: o.get('name')});\n\t\t\tif (_.isUndefined(currentOp)) {\n\t\t\t\tchanges[o.get('alias') || o.get('name')] = {\n\t\t\t\t\tvalue: o.get('value'),\n\t\t\t\t\trealValue: o.get('realValue'),\n\t\t\t\t\tremoved: true,\n\t\t\t\t};\n\t\t\t}\n\t\t}, this);\n\n\t\t// Limit history to 200\n\t\tif (this.operationStackHistory.length > 199) {\n\t\t\tthis.operationStackHistory = _.last(this.operationStackHistory, 199);\n\t\t}\n\t\t// Put into history\n\t\tthis.operationStackHistory.push(this.lastOperationsStack.getClone());\n\t\tthis.operationStackArray = this.operationsStack.getClone();\n\n\t\t// Apply current operation stack\n\t\tthis.trigger('operationsUpdated', changes);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorVideo';\n\t}\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-view';\n\nexport default class VideoEditorOperationControlView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.className = opts.className || 'operation';\n\t\topts.events = _.extend(\n\t\t\t{\n\t\t\t\tchange: 'updateValue',\n\t\t\t},\n\t\t\topts.events,\n\t\t);\n\t\tsuper(opts);\n\n\t\tthis.player = opts.player;\n\n\t\t// Debounced/throttled methods\n\t\tthis.updateValue = _.throttle(this.updateValue, 50);\n\n\t\tthis.image = opts.image;\n\t}\n\n\t/** @override */\n\tbindModelEvents() {\n\t\tsuper.bindModelEvents();\n\t\treturn this.listenTo(this.model, 'change', _.debounce(this.render, 100))\n\t\t\t.listenTo(this.model, 'remove', this.remove)\n\t\t\t.listenTo(this.model.collection, 'reset', this.remove);\n\t}\n\n\t/** @override */\n\tpostRender() {\n\t\tsuper.postRender();\n\t\t// Cache\n\t\tif (this.model.get('items')) {\n\t\t\tthis.items = {};\n\t\t\t_.each(this.model.get('items'), (item, k) => {\n\t\t\t\tthis.items[k] = this.$(`[name=\"${k}\"]`);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Make sure values are within range (if they have a range)\n\t * @method\n\t * @return {number|object} Bound value(s)\n\t * @param {event} e jQuery event\n\t * @return {number|object} If mutliple items then an object, else a number\n\t */\n\tcheckBounds(e) {\n\t\tif (this.items) {\n\t\t\tconst values = {};\n\t\t\t_.each(this.items, ($item, k) => {\n\t\t\t\tconst range = this.items[k].range;\n\t\t\t\tlet val = $item.val();\n\t\t\t\tval = val ? parseInt(val) : 0;\n\t\t\t\tif (!_.isUndefined(range)) {\n\t\t\t\t\tconst _val = val;\n\t\t\t\t\t// Out range (max)\n\t\t\t\t\tif (val > range[1]) val = range[1];\n\t\t\t\t\t// Out of range (min)\n\t\t\t\t\tif (val < range[0]) val = range[0];\n\t\t\t\t\t// Value adjusted to range\n\t\t\t\t\tif (_val !== val) $item.val(val);\n\t\t\t\t}\n\t\t\t\tvalues[k] = val;\n\t\t\t});\n\t\t\treturn values;\n\t\t} else {\n\t\t\tconst $target = this.$(e.target);\n\t\t\tconst range = this.model.get('range');\n\n\t\t\tlet val = _.isObject(e.value) ? e.value.newValue : $target.val();\n\t\t\tval = val ? parseInt(val) : 0;\n\t\t\tif (!_.isUndefined(range)) {\n\t\t\t\tconst _val = val;\n\t\t\t\t// Out of range (max)\n\t\t\t\tif (val > range[1]) val = range[1];\n\t\t\t\t// Out of range (min)\n\t\t\t\tif (val < range[0]) val = range[0];\n\t\t\t\t// Value adjusted to range\n\t\t\t\tif (_val !== val) $target.val(val);\n\t\t\t}\n\t\t\treturn val;\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {array|number|object|string} value The value to set for this operation\n\t * @fires module:videoEditor#videoEditor:operation:set:value\n\t */\n\tsetValue(value) {\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operation:set:value',\n\t\t\tthis.model.collection,\n\t\t\tthis.model.get('name'),\n\t\t\tvalue,\n\t\t\tvalue,\n\t\t);\n\t\t// Chain\n\t\treturn this;\n\t}\n\n\t/** @override */\n\tunbindModelEvents() {\n\t\tsuper.unbindModelEvents();\n\t\treturn this.stopListening(this.model.collection);\n\t}\n\n\t/**\n\t * @method\n\t * @param {event} e jQuery event\n\t */\n\tupdateValue(e) {\n\t\tconst value = this.checkBounds(e);\n\t\treturn this.setValue(value);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperationControlView';\n\t}\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/videoEditorOperation';\n\nimport AssetModel from '@netx/core-asset/models/asset';\n\nimport customConfig from '../config';\n\nexport default class VideoEditorOperations extends Base {\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.comparator = opts.comparator || 'name';\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\t}\n\n\t/** @override */\n\t// TODO: DAM-8468, then unwrap\n\tfetch(asset) {\n\t\tif (asset == null || !(asset instanceof AssetModel)) {\n\t\t\treturn new $.Deferred().reject(\n\t\t\t\tnew Error(\n\t\t\t\t\ti18n.t('i18n.assetRequired', {\n\t\t\t\t\t\tdefaultValue: 'Asset required',\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\t// Silent reset - we will trigger a sync when done\n\t\tthis.reset([], {silent: true});\n\n\t\t// Get process list from server\n\t\tlet additionalOptions, dropdownValues, pulldownOptions, userOperation;\n\t\treturn asset.getProcessListForUser().then(userOperations => {\n\t\t\t// Loop over operations and check if in userOperations\n\t\t\t// Where o is operation object and k is the operation name\n\t\t\t_.each(customConfig.OPERATIONS, (o, k) => {\n\t\t\t\tuserOperation = _.findWhere(userOperations, {name: k});\n\t\t\t\t// Server needs to support resize and crop\n\t\t\t\tif (userOperation || k === 'range') {\n\t\t\t\t\tadditionalOptions = {};\n\t\t\t\t\t// If our control is a dropdown and their layout is a pulldown - get the available options\n\t\t\t\t\tif (o.control === 'dropdown' && userOperation.layout === 'pulldown') {\n\t\t\t\t\t\tpulldownOptions = userOperation.values.split(',');\n\t\t\t\t\t\tdropdownValues = {};\n\t\t\t\t\t\t// Loop over pulldownOptions\n\t\t\t\t\t\t// Where po is pulldown option and idx is the index\n\t\t\t\t\t\t_.each(pulldownOptions, (po, idx) => {\n\t\t\t\t\t\t\tdropdownValues[idx] = po;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tadditionalOptions.items = dropdownValues;\n\t\t\t\t\t}\n\t\t\t\t\t// Set format value\n\t\t\t\t\tif (k === 'format') {\n\t\t\t\t\t\tadditionalOptions.value = asset.get('filetypelabel').toUpperCase();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.add(\n\t\t\t\t\t\t_.extend(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: k,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\to,\n\t\t\t\t\t\t\tadditionalOptions,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{silent: true},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.trigger('sync', this);\n\t\t\treturn this;\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperations';\n\t}\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-view';\nimport Template from '../templates/videoEditorOperationControlsView.html';\n\nimport ChildViews from '@netx/core/functionality/childViews';\n\nimport OperationControlView from './videoEditorOperationControlView';\nimport DropdownOperationControlView from './videoEditorOperationControlView_dropdown';\nimport RangeOperationControlView from './videoEditorOperationControlView_range';\n\nconst _ChildViews = {\n\tbase: OperationControlView,\n\tdropdown: DropdownOperationControlView,\n\trange: RangeOperationControlView,\n};\n\nimport VideoEditorOperationsCollection from '../collections/videoEditorOperations';\n\nexport default class VideoEditorOperationControlsView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.childView = {\n\t\t\tviewClass(m) {\n\t\t\t\treturn _ChildViews[m.get('control') || 'base'];\n\t\t\t},\n\t\t\ttarget: '#video-editor-operations',\n\t\t\toptions: {\n\t\t\t\tplayer: opts.player,\n\t\t\t},\n\t\t\t...opts.childView,\n\t\t};\n\t\topts.collection = opts.model.operationsStack;\n\t\topts.events = {\n\t\t\t'click [data-add-operation]:not([disabled])': 'addOperationControl',\n\t\t\t...opts.events,\n\t\t};\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\n\t\t// Debounced/throttled methods\n\t\tthis.operationsUpdated = _.debounce(this.operationsUpdated, 200);\n\n\t\t/** @type {Netx.Collections.AudioEditorOperations} */\n\t\tthis.operations =\n\t\t\topts.operations || new VideoEditorOperationsCollection([]);\n\n\t\tthis.flippedOrientation = opts.flippedOrientation === true;\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tdispatcher,\n\t\t\t'videoEditor:operations:update',\n\t\t\t_.debounce(this.operationsUpdated, 50),\n\t\t);\n\n\t\t// Default operation\n\t\tthis.addOperationControl('range');\n\n\t\t// To store our multiselect array of values for comparison on change\n\t\tthis.selectedOperations = [];\n\n\t\tObject.assign(this.templateVars, {\n\t\t\toperations: this.operations.models,\n\t\t\toperationsSelected: this.model.operationsStack,\n\t\t});\n\t}\n\n\t/** @override */\n\tbindCollectionEvents() {\n\t\tsuper.bindCollectionEvents();\n\t\treturn this.listenTo(this.collection, 'sort', (c, a) => {\n\t\t\t// We only want to reset our childViews on a true sort (not one that happens with adding/removing/syncing)\n\t\t\tif (!_.isObject(a) || (!a.add && !a.merge && !a.remove)) {\n\t\t\t\tthis.resetChildViews();\n\t\t\t}\n\t\t}).listenTo(\n\t\t\tthis.collection,\n\t\t\t'reset add remove change',\n\t\t\t_.debounce(this.operationsUpdated, 50),\n\t\t);\n\t}\n\n\t/** @override */\n\tpostRender() {\n\t\tsuper.postRender();\n\t\t// Cache\n\t\tthis.$operations = this.$('[data-add-operation]');\n\t\tthis.$videoEditorOperations = this.$('#video-editor-operations');\n\t}\n\n\t/**\n\t * Called when an operation is selected in the view\n\t * @method\n\t * @param {event|string} e Either a jQuery event or operation name\n\t * @param {array|number|object|string} value Initial value\n\t * @fires module:videoEditor#videoEditor:operations:add:control\n\t */\n\taddOperationControl(e, value) {\n\t\tconst op = e.preventDefault\n\t\t\t? // Get operation name off of target\n\t\t\t this.$(e.currentTarget).data('add-operation')\n\t\t\t: // Operation name was passed to method\n\t\t\t e;\n\n\t\t// Find operation in our collection\n\t\tconst operation = this.operations.findWhere({name: op});\n\t\tif (this.getOperation(op)) return;\n\t\t// Add to selected collection\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operations:add:control',\n\t\t\tthis.newOperation(op, value),\n\t\t\tthis.collection,\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Called after an operation has been added to this.operationsSelected\n\t * @method\n\t * @param {Netx.Models.AudioEditorOperation} m AudioEditorOperation model\n\t */\n\taddedOperationControl(m) {\n\t\t// Disable add operation for this operation\n\t\tthis.$(`[data-add-operation=\"${m.get('name')}\"]`).disable();\n\t\treturn this;\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} name Operation name\n\t */\n\tgetOperation(name) {\n\t\treturn this.collection.findWhere({name: name});\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} name Operation name\n\t * @param {array|number|object|string} value Operation value\n\t * @return {object} New operation object\n\t */\n\tnewOperation(name, value) {\n\t\t// Find our new operation\n\t\tlet op = this.operations.findWhere({name: name});\n\t\t// Bad operation\n\t\tif (!op) return false;\n\t\t// Need a cloned copy of those attributes\n\t\top = _.clone(op.attributes);\n\t\t// Did we pass a value to the method?\n\t\t!_.isUndefined(value)\n\t\t\t? // We have passed a value to set\n\t\t\t _.extend(op, {value: value, realValue: value})\n\t\t\t: // No value passed\n\t\t\t _.extend(op, {realValue: op.value});\n\t\treturn op;\n\t}\n\n\t/**\n\t * Operations have been added or removed\n\t * @method\n\t */\n\toperationsUpdated() {\n\t\t// Re-render operation select\n\t\t// this.update();\n\t}\n\n\t/**\n\t * @method\n\t */\n\tpresetChosen(preset) {\n\t\t// if( this.collection.length ) {\n\t\t// \tdispatcher.trigger('app:confirm', {\n\t\t// \t\tmessage : i18n.t('i18n.chosingAPresetWillClearYourManualOperationsConfirm', { defaultValue: 'Chosing a preset will clear your manual operations. Would you like to continue?' } ),\n\t\t// \t\teventStr : 'videoEditor:preset:chosen'\n\t\t// \t} );\n\t\t// }\n\t}\n\n\t/**\n\t * @method\n\t */\n\tpresetConfirmed() {\n\t\t// if( this.collection.length ) {\n\t\t// \t// Reset manual ops\n\t\t// \tdispatcher.trigger('videoEditor:reset');\n\t\t// }\n\t}\n\n\t/**\n\t * Called when an operation has been removed from this.operationsSelected\n\t * @method\n\t * @param {Netx.Models.VideoEditorOperation} m VideoEditorOperation model\n\t */\n\tremovedOperationControl(m) {\n\t\tthis.$(`[data-add-operation=\"${m.get('name')}\"]`).enable();\n\t\treturn this;\n\t}\n\n\t/**\n\t * Called when 'videoEditor:reset' is fired\n\t * @method\n\t * @fires module:audioEditor#audioEditor:operation:controls:reset\n\t */\n\treset() {\n\t\t// Clear our selections\n\t\tdispatcher.trigger('videoEditor:operation:controls:reset', this.collection);\n\t\t// Enable all add operations\n\t\treturn this.$operations.enable();\n\t}\n\n\t/**\n\t * Swap one control out for another\n\t * @method\n\t * @param {Netx.Models.AudioEditorOperation} a Control to swap out\n\t * @param {object} b Control to swap in\n\t * @fires module:audioEditor#audioEditor:operations:add:control\n\t * @fires module:audioEditor#audioEditor:operations:remove:control\n\t */\n\tswapControls(a, b) {\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operations:remove:control',\n\t\t\tthis.collection,\n\t\t\ta,\n\t\t\ttrue,\n\t\t);\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operations:add:control',\n\t\t\tb,\n\t\t\tthis.collection,\n\t\t);\n\t}\n\n\t/**\n\t * Silently update operation control values\n\t * @method\n\t * @param {object} changes Object of changes\n\t * @fires module:videoEditor#videoEditor:operation:set:value\n\t * @fires module:videoEditor#videoEditor:operations:add:control\n\t * @fires module:videoEditor#videoEditor:operations:remove:control\n\t */\n\tupdateOperationControls(changes) {\n\t\t// Loop over changes and fires off the appropriate events\n\t\t_.each(changes, (change, k) => {\n\t\t\t// Removed\n\t\t\tif (!change || change.removed) {\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'videoEditor:operations:remove:control',\n\t\t\t\t\tthis.collection,\n\t\t\t\t\tthis.getOperation(k),\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Added\n\t\t\telse if (change.added && !this.getOperation(k)) {\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'videoEditor:operations:add:control',\n\t\t\t\t\tthis.newOperation(k),\n\t\t\t\t\tthis.collection,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Edited\n\t\t\telse {\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'videoEditor:operation:set:value',\n\t\t\t\t\tthis.collection,\n\t\t\t\t\tk,\n\t\t\t\t\tchange.value,\n\t\t\t\t\tchange.realValue,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperationControlsView';\n\t}\n}\n\n// Functionality\nChildViews(VideoEditorOperationControlsView);\n","/**\n * @class\n */\nimport Base from './videoEditorOperationControlView';\nimport Template from '../templates/videoEditorOperationControlView_dropdown.html';\n\nexport default class VideoEditorOperationControlView_dropdown extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\t}\n\n\t/**\n\t * We have a very simple task here - no bounds just an option from a dropdown\n\t * @method\n\t * @param {event} e jQuery event\n\t */\n\tupdateValue(e) {\n\t\treturn this.setValue(this.$(e.target).val());\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperationControlView_dropdown';\n\t}\n}\n","/**\n * @class\n */\nimport Base from './videoEditorOperationControlView';\nimport Template from '../templates/videoEditorOperationControlView_range.html';\n\nimport {pad} from '@netx/core/lib/underscore-netx';\n\nexport default class VideoEditorOperationControlView_range extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.className = opts.className || 'operation video-range';\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\n\t\tthis.player = opts.player;\n\n\t\t// Hey, listen!\n\t\t// So long as you dispose of the player, these events will get automatically cleaned up\n\t\tthis.player.on('rangeupdated', _.bind(this.rangeUpdated, this));\n\n\t\t// Initial value\n\t\tconst initVal = this.model.get('value');\n\t\tthis.currentRange = initVal ? initVal : {start: 0, end: 0, duration: 0};\n\t\t// Defaults\n\t\tthis.duration = 0;\n\t}\n\n\t/** @override */\n\tpostRender() {\n\t\tsuper.postRender();\n\n\t\t// Cache\n\t\tthis.$durationTime = this.$('[data-nx-control=\"range-duration\"]');\n\t\tthis.$endTime = this.$('[data-nx-control=\"range-end\"]');\n\t\tthis.$startTime = this.$('[data-nx-control=\"range-start\"]');\n\n\t\t// Disable inputs until ready\n\t\tthis.$endTime.disable();\n\t\tthis.$startTime.disable();\n\n\t\t// We are not ready until our component is ready\n\t\t// Our compenent isn't ready until the player has loaded initial metadata (we need correct duration)\n\t\tthis.player.one('rangesliderready', _.bind(this.ready, this));\n\t}\n\n\t/**\n\t * @override\n\t * @param {event} e jQuery event\n\t */\n\tupdateValue(e) {\n\t\tconst currentRange = this.currentRange;\n\t\tconst duration = this.duration;\n\n\t\tcurrentRange.start = this.$startTime.val();\n\t\tcurrentRange.end = this.$endTime.val();\n\n\t\t// Range start must be at least 0\n\t\tif (currentRange.start < 0) {\n\t\t\tcurrentRange.start = 0;\n\t\t}\n\n\t\t// Range start cannot exceed duration\n\t\tif (currentRange.start > duration) {\n\t\t\tcurrentRange.start = duration;\n\t\t}\n\n\t\t// Make sure there is at least a second between the two if the end time is less than or equal to the start time\n\t\tif (currentRange.start > currentRange.end) {\n\t\t\tcurrentRange.end = currentRange.start;\n\t\t}\n\n\t\t// Check that we are not over time\n\t\tconst selection = currentRange.end - currentRange.start;\n\n\t\t// Selection cannot exceed duration\n\t\tif (selection > duration) {\n\t\t\tcurrentRange.end = duration;\n\t\t}\n\t\t// Range end cannot exceed duration\n\t\telse if (currentRange.end > duration) {\n\t\t\tcurrentRange.end = duration;\n\t\t}\n\n\t\t// Update current duration\n\t\tcurrentRange.duration = currentRange.end - currentRange.start;\n\n\t\t// Updtae input (if applicable)\n\t\tthis.updateRangeTime(currentRange);\n\n\t\treturn this.setValue(currentRange);\n\t}\n\n\t/**\n\t * Reset range selection\n\t * @method\n\t */\n\tclear() {\n\t\t// Reset current range\n\t\tconst currentRange = (this.currentRange = {\n\t\t\tstart: 0,\n\t\t\tend: this.duration,\n\t\t\tduration: this.duration,\n\t\t});\n\t\t// Updtae inputs\n\t\tthis.updateRangeTime(currentRange);\n\t\t// Set the value on the operation model\n\t\tthis.setValue(currentRange);\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} range Range object\n\t * @return {object} Detailed range\n\t */\n\tgetTimeObject(range) {\n\t\tconst floor = Math.floor;\n\t\tconst round = Math.round;\n\t\tconst prettyRange = {};\n\n\t\t// Loops over start, end, duration\n\t\t_.each(range, (r, k) => {\n\t\t\t// Vars\n\t\t\tlet hour, minute, second, millisecond, time;\n\n\t\t\ttime = r;\n\t\t\thour = floor(time / 3600);\n\t\t\ttime -= hour * 3600;\n\t\t\tminute = floor(time / 60);\n\t\t\ttime -= floor(minute * 60);\n\t\t\tsecond = floor(time);\n\t\t\tmillisecond = round((time - second) * 1000);\n\n\t\t\tprettyRange[k] = {\n\t\t\t\thour: hour,\n\t\t\t\tminute: minute,\n\t\t\t\tsecond: second,\n\t\t\t\tmillisecond: millisecond,\n\t\t\t\tseconds: r,\n\t\t\t\tpretty: [\n\t\t\t\t\tpad(hour, 2),\n\t\t\t\t\t':',\n\t\t\t\t\tpad(minute, 2),\n\t\t\t\t\t':',\n\t\t\t\t\tpad(second, 2),\n\t\t\t\t\t'.',\n\t\t\t\t\tpad(millisecond, 3),\n\t\t\t\t].join(''),\n\t\t\t};\n\t\t});\n\t\treturn prettyRange;\n\t}\n\n\t/**\n\t * @method\n\t * @param {event} e Player event\n\t * @param {object} details Event details\n\t */\n\trangeUpdated(e, details) {\n\t\t// Updtae inputs\n\t\tthis.updateRangeTime(details.range);\n\t\t// Set the value on the operation model\n\t\tthis.setValue(details.range);\n\t}\n\n\t/**\n\t * We have all that we need to get started\n\t * @method\n\t */\n\tready(player) {\n\t\t// Vars\n\t\tconst currentRange = this.currentRange;\n\t\tconst duration = this.player.duration();\n\t\tconst endVal = this.$endTime.val();\n\t\tconst startVal = this.$startTime.val();\n\n\t\t// Store duration\n\t\tthis.duration = duration;\n\n\t\t// If no range has been set AT ALL, check and see if we defined one on the value of our time inputs\n\t\tif (!this.currentRange.start && !this.currentRange.end) {\n\t\t\t// Have defined start value\n\t\t\tif (startVal) {\n\t\t\t\tcurrentRange.start = startVal;\n\t\t\t}\n\t\t\t// Have defined end value\n\t\t\tif (endVal) {\n\t\t\t\tcurrentRange.end = endVal;\n\t\t\t}\n\t\t} else if (!currentRange.start) {\n\t\t\tif (startVal) {\n\t\t\t\tcurrentRange.start = startVal;\n\t\t\t}\n\t\t} else if (!currentRange.end) {\n\t\t\tif (endVal) {\n\t\t\t\tcurrentRange.end = endVal;\n\t\t\t}\n\t\t}\n\n\t\t// Only want to modify this if there was no previous range selected\n\t\t// or the previous range provided is out of bounds\n\t\tif (!currentRange.end || currentRange.end > duration) {\n\t\t\tcurrentRange.end = duration;\n\t\t}\n\t\t// Range start cannot exceed range end\n\t\tif (currentRange.start > currentRange.end) {\n\t\t\tcurrentRange.start = currentRange.end;\n\t\t}\n\t\t// Set current duration\n\t\tcurrentRange.duration = currentRange.end - currentRange.start;\n\n\t\t// Updtae inputs\n\t\tthis.updateRangeTime(currentRange);\n\n\t\t// Set the value on the operation model\n\t\tthis.setValue(currentRange);\n\n\t\t// Enable inputs\n\t\tthis.$endTime.enable();\n\t\tthis.$startTime.enable();\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} range Range object\n\t */\n\tupdateRangeTime(range) {\n\t\t// Get detailed range object\n\t\tconst detailedRange = this.getTimeObject(range);\n\n\t\t// We need this\n\t\t_.defer(() => {\n\t\t\t// Only update the input if the value does not already match\n\t\t\tif (this.$startTime.val() !== range.start) {\n\t\t\t\tthis.$startTime.val(range.start);\n\t\t\t}\n\t\t\t// Only update the input if the value does not already match\n\t\t\tif (this.$endTime.val() !== range.end) {\n\t\t\t\tthis.$endTime.val(range.end);\n\t\t\t}\n\t\t});\n\n\t\t// Set pretty duration time\n\t\tthis.$durationTime.html(detailedRange.duration.pretty);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorOperationControlView_range';\n\t}\n}\n","/**\n * @class\n * @override\n */\nimport Base from '@netx/core-video-editor/views/videoEditorOperationControlsView';\n\nimport {faPlus} from '@fortawesome/pro-solid-svg-icons';\nconst icons = Base.initializeIcons({\n\tfaPlus,\n});\n\nexport default class VideoEditorOperationControlsView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.icons = {...icons, ...opts.icons};\n\t\tsuper(opts);\n\t}\n}\n","/**\n * A range selection plugin for videojs (Html5 tech only)\n * Built and tested with videojs v5.9.2\n * Inspired by https://github.com/danielcebrian/rangeslider-videojs\n * @author Justin Sephiroth Enos \n */\nimport {pad} from '@netx/core/lib/underscore-netx';\n\nimport {icon} from '@fortawesome/fontawesome-svg-core';\nimport {faCaretSquareLeft, faCaretSquareRight} from '@fortawesome/pro-regular-svg-icons';\nimport {faRedoAlt, faStop} from '@fortawesome/pro-solid-svg-icons';\nconst icons = {\n\tfaCaretSquareLeft: icon(faCaretSquareLeft).html,\n\tfaCaretSquareRight: icon(faCaretSquareRight).html,\n\tfaRedoAlt: icon(faRedoAlt).html,\n\tfaStop: icon(faStop).html,\n};\n\n// Built-in components required\nvar ControlBar = videojs.getComponent('ControlBar'),\n\tButton = videojs.getComponent('Button'),\n\tSeekBar = videojs.getComponent('SeekBar'),\n\tComponent = videojs.getComponent('Component');\n\n/**\n * The videojs plugin\n * @constructor\n */\nfunction NxRange(player, options = {}) {\n\t// Insure we have defined player\n\tplayer = player || this;\n\n\t// Vars\n\tvar components = {},\n\t\tbigPlayBtn,\n\t\tcontrolBar,\n\t\tloopToggle,\n\t\trangeSlider,\n\t\trangeEndButton,\n\t\trangeStartButton,\n\t\tseekBar,\n\t\tstopButton;\n\n\t// Built in videojs components\n\tcontrolBar = player.controlBar;\n\tseekBar = controlBar.progressControl.seekBar;\n\tbigPlayBtn = player.getChild('bigPlayButton');\n\n\t/**\n\t * @method\n\t */\n\tfunction dispose() {\n\t\t// Try and cleanup the prevention we did in the event the player was never allowed to be ready before disposing of this plugin\n\t\ttry {\n\t\t\tplayer.off('click', preventUserInteraction, false);\n\t\t\tplayer.controls(true);\n\t\t} catch (e) {\n\t\t\t// Oh well!\n\t\t}\n\n\t\tif (rangeSlider && _.isFunction(rangeSlider.dispose)) {\n\t\t\tloopToggle.dispose();\n\t\t\trangeEndButton.dispose();\n\t\t\trangeStartButton.dispose();\n\t\t\trangeSlider.dispose();\n\t\t}\n\t}\n\t/**\n\t * @method\n\t */\n\tfunction hide() {\n\t\tif (rangeSlider && _.isFunction(rangeSlider.hide)) {\n\t\t\tloopToggle.hide();\n\t\t\trangeEndButton.hide();\n\t\t\trangeStartButton.hide();\n\t\t\trangeSlider.hide();\n\t\t}\n\t}\n\t/**\n\t * @method\n\t */\n\tfunction show() {\n\t\tif (rangeSlider && _.isFunction(rangeSlider.show)) {\n\t\t\tloopToggle.show();\n\t\t\trangeEndButton.show();\n\t\t\trangeStartButton.show();\n\t\t\trangeSlider.show();\n\t\t}\n\t}\n\t/**\n\t * @method\n\t * @private\n\t */\n\tfunction preventUserInteraction(e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\treturn false;\n\t}\n\t/**\n\t * @method\n\t */\n\tfunction resetRange() {\n\t\treturn player.trigger('resetrange');\n\t}\n\t/**\n\t * @method\n\t */\n\tfunction setRange(range) {\n\t\treturn player.trigger('setrange', range);\n\t}\n\n\t// WE DO NOT WANT ANY USER INTERACTION WITH THE PLAYER UNTIL WE HAVE THE METADATA NEEDED\n\t// AT WHICH POINT THE BIG PLAY BUTTON WILL BE POINTLESS\n\t// Once all is ready we will turn user interaction back on\n\tbigPlayBtn.hide();\n\tplayer.controls(false);\n\tplayer.on('click', preventUserInteraction);\n\n\t// Add to rangeslider to seek bar\n\tseekBar.addChild('NxRangeSlider');\n\tcontrolBar.addChild('NxLoopToggle');\n\tcontrolBar.addChild('NxRangeEndButton');\n\tcontrolBar.addChild('NxRangeStartButton');\n\tcontrolBar.addChild('NxStopButton');\n\n\t// Add to components\n\trangeSlider = components.rangeSlider = seekBar.getChild('NxRangeSlider');\n\tloopToggle = components.loopToggle = controlBar.getChild('NxLoopToggle');\n\trangeEndButton = components.rangeEndButton = controlBar.getChild(\n\t\t'NxRangeEndButton',\n\t);\n\trangeStartButton = components.rangeStartButton = controlBar.getChild(\n\t\t'NxRangeStartButton',\n\t);\n\tstopButton = components.stopButton = controlBar.getChild('NxStopButton');\n\n\t///////////////////////////////////\n\t// LIFE CYCLE LISTENERS\n\t///////////////////////////////////\n\t// Cleanup\n\trangeSlider.on('dispose', () => {\n\t\t// Remove our component from videojs' seekBar component\n\t\tseekBar.removeChild('NxRangeSlider');\n\t\tcontrolBar.removeChild('NxLoopToggle');\n\t\tcontrolBar.removeChild('NxRangeEndButton');\n\t\tcontrolBar.removeChild('NxRangeStartButton');\n\t\tcontrolBar.removeChild('NxStopButton');\n\t\t// Clean up references\n\t\tcomponents = {};\n\t\tdelete player.nxrangeslider_instance;\n\t});\n\t///////////////////////////////////\n\t// !LIFE CYCLE LISTENERS\n\t///////////////////////////////////\n\n\t// We have (at the least) the metadata needed to move forward\n\trangeSlider.on('ready', () => {\n\t\t// A little hack to get the video out of the click to play state (without the video actually appearing to play to the user)\n\t\t// We listen to the tech's element for the playing event and immediately pause\n\t\t// I had originally tried to do `player.play()` followed by a deferred (and tried delay up to 300ms) but you get odd timing issues\n\t\t// and generally na erro from the the video's play promise as being interupted - it doesn't harm anything - but causes unecessary\n\t\t// errors to show up in the console - this works without any errors:\n\t\tconst html5VideoEl = player.techGet_('el');\n\t\thtml5VideoEl.setAttribute('muted', true);\n\t\tvideojs.one(html5VideoEl, 'playing', () => {\n\t\t\tplayer.pause();\n\t\t\t// Trigger ready here otherwise the component may mistakingly assume we are playing the range -\n\t\t\t// if the range gets updated progrmatically while initializing\n\t\t\tplayer.trigger('rangesliderready', this);\n\t\t\tplayer.off('click', preventUserInteraction, false);\n\t\t\tplayer.controls(true);\n\t\t});\n\t\ttry {\n\t\t\tplayer.play();\n\t\t}\n\t\tcatch( ex ) {\n\t\t\tconsole.log(ex);\n\t\t}\n\t});\n\n\t///////////////////////////////////\n\t// PUBLIC\n\t///////////////////////////////////\n\treturn {\n\t\tcomponents: components,\n\t\tdispose: dispose,\n\t\thide: hide,\n\t\tplayer_: player,\n\t\tresetRange: resetRange,\n\t\tsetRange: setRange,\n\t\tshow: show,\n\t};\n\t///////////////////////////////////\n\t// !PUBLIC\n\t///////////////////////////////////\n}\nvideojs.plugin('nxrangeslider', function(options) {\n\t// Be sure that the tech is right\n\tif (this.techName_ !== 'Html5') {\n\t\treturn console.error(\n\t\t\tnew Error('videojs plugin \"nxrangeslider\" only supports the Html5 tech'),\n\t\t);\n\t}\n\tif (this.nxrangeslider_instance) {\n\t\tthis.nxrangeslider_instance.dispose();\n\t}\n\t//if( !this.nxrangeslider_instance ) {\n\t// Where this is `player`\n\treturn (this.nxrangeslider_instance = new NxRange(this, options));\n\t//}\n});\n\n/**\n * Toggle loop/repeat\n * @memberof videojs.Components.ControlBar\n */\nvideojs.registerComponent(\n\t'NxLoopToggle',\n\t(function(_Button) {\n\t\t// Extend on Component\n\t\tvideojs.extend(_Button, NxLoopToggle);\n\n\t\t// Our constructor\n\t\tfunction NxLoopToggle(player, options) {\n\t\t\t// Super\n\t\t\t_Button.call(this, player, options);\n\n\t\t\t// Insure options\n\t\t\toptions = options || {};\n\n\t\t\t// Vars\n\t\t\tvar controlBar = player.controlBar,\n\t\t\t\tplayToggle = controlBar.getChild('playToggle');\n\n\t\t\t// Default\n\t\t\tplayer.options_['loop'] = !_.isUndefined(options.loop)\n\t\t\t\t? options.loop\n\t\t\t\t: false;\n\n\t\t\t///////////////////////////////////\n\t\t\t// LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t\tthis.on('click', videojs.bind(this, this.onClick));\n\t\t\t// Listen for play end (not pause but the end of the video)\n\t\t\tthis.on(player, 'ended', videojs.bind(this, this.ended));\n\t\t\t// Listen for clicks on play button\n\t\t\tthis.on(playToggle.el_, 'click', videojs.bind(this, this.playPressed));\n\t\t\t///////////////////////////////////\n\t\t\t// !LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t}\n\n\t\t// Our prototype\n\t\t_.extend(NxLoopToggle.prototype, {\n\t\t\t/**\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tcontrolText_: i18n.t('i18n.loop'),\n\t\t\t/**\n\t\t\t * @override\n\t\t\t * @return {Element}\n\t\t\t */\n\t\t\tcreateEl() {\n\t\t\t\t// Main element\n\t\t\t\tvar el = _Button.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'button',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: 'vjs-rangeslider-loop-control vjs-button vjs-control',\n\t\t\t\t\t\tinnerHTML: `${icons.faRedoAlt}`\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\trole: 'button',\n\t\t\t\t\t\ttitle: i18n.t('i18n.loopPlayback', {defaultValue: 'Loop playback'}),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Playback has ended (not paused - we reached the end of the video)\n\t\t\t * This is for the general playback (range playback is handled in the rangeslider component)\n\t\t\t * @method\n\t\t\t * @param {event} e Player event\n\t\t\t */\n\t\t\tended(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_;\n\t\t\t\t// Only take control if the rangslider isn't present or the range end is not equal to duration\n\t\t\t\tif (\n\t\t\t\t\tplayer.options_.loop &&\n\t\t\t\t\tplayer.options_.range.end !== player.duration()\n\t\t\t\t) {\n\t\t\t\t\tplayer.play();\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonClick(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_;\n\n\t\t\t\t// Toggle\n\t\t\t\tplayer.options_.loop = !player.options_.loop;\n\t\t\t\tthis.toggled();\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tplayPressed(e) {\n\t\t\t\t// Support loop on shiftKey + click\n\t\t\t\tif (e && e.shiftKey) {\n\t\t\t\t\tthis.player_.options_.loop = true;\n\t\t\t\t\tthis.toggled();\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t */\n\t\t\ttoggled() {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_;\n\n\t\t\t\tplayer[player.options_.loop ? 'addClass' : 'removeClass'](\n\t\t\t\t\t'vjs-looping',\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\treturn NxLoopToggle;\n\t})(Button),\n);\n\n/**\n * Set range end via button\n * @memberof videojs.Components.ControlBar\n */\nvideojs.registerComponent(\n\t'NxRangeEndButton',\n\t(function(_Button) {\n\t\t// Extend on Component\n\t\tvideojs.extend(_Button, NxRangeEndButton);\n\n\t\t// Our constructor\n\t\tfunction NxRangeEndButton(player, options = {}) {\n\t\t\t// Super\n\t\t\t_Button.call(this, player, options);\n\n\t\t\t///////////////////////////////////\n\t\t\t// LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t\tthis.on('click', videojs.bind(this, this.onClick));\n\t\t\t///////////////////////////////////\n\t\t\t// !LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t}\n\n\t\t// Our prototype\n\t\t_.extend(NxRangeEndButton.prototype, {\n\t\t\t/**\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tcontrolText_: i18n.t('i18n.setRangeEnd'),\n\t\t\t/**\n\t\t\t * @override\n\t\t\t * @return {Element}\n\t\t\t */\n\t\t\tcreateEl() {\n\t\t\t\t// Main element\n\t\t\t\tvar el = _Button.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'button',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'vjs-rangeslider-range-end-control vjs-button vjs-control',\n\t\t\t\t\t\tinnerHTML: `${icons.faCaretSquareLeft}`\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\trole: 'button',\n\t\t\t\t\t\ttitle: i18n.t('i18n.setRangeEnd'),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\t/**\n\t\t\t * So videojs buttons listen for Enter/Space bar and fire off the last focused button\n\t\t\t * @todo Tap in and make the space bar only play/pause and make the event on the wholde video div\n\t\t\t * @override\n\t\t\t */\n\t\t\thandleKeyPress(e) {\n\t\t\t\t// This method would normally call - BAD\n\t\t\t\t// ClickableComponent.prototype.handleKeyPress = function handleKeyPress(event) {\n\t\t\t\t// \t// Support Space (32) or Enter (13) key operation to fire a click event\n\t\t\t\t// \tif (event.which === 32 || event.which === 13) {\n\t\t\t\t// \t\tevent.preventDefault();\n\t\t\t\t// \t\tthis.handleClick(event);\n\t\t\t\t// \t} else if (_Component.prototype.handleKeyPress) {\n\t\t\t\t// \t\t_Component.prototype.handleKeyPress.call(this, event); // Pass keypress handling up for unsupported keys\n\t\t\t\t// \t}\n\t\t\t\t// };\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonClick(e) {\n\t\t\t\tthis.player_.trigger('setrange', {\n\t\t\t\t\tend: this.player_.currentTime(),\n\t\t\t\t\ttarget: 'rangeEndButton',\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\n\t\treturn NxRangeEndButton;\n\t})(Button),\n);\n\n/**\n * Set range start via button\n * @memberof videojs.Components.ControlBar\n */\nvideojs.registerComponent(\n\t'NxRangeStartButton',\n\t(function(_Button) {\n\t\t// Extend on Component\n\t\tvideojs.extend(_Button, NxRangeStartButton);\n\n\t\t// Our constructor\n\t\tfunction NxRangeStartButton(player, options = {}) {\n\t\t\t// Super\n\t\t\t_Button.call(this, player, options);\n\n\t\t\t///////////////////////////////////\n\t\t\t// LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t\tthis.on('click', videojs.bind(this, this.onClick));\n\t\t\t///////////////////////////////////\n\t\t\t// !LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t}\n\n\t\t// Our prototype\n\t\t_.extend(NxRangeStartButton.prototype, {\n\t\t\t/**\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tcontrolText_: i18n.t('i18n.setRangeStart', {\n\t\t\t\tdefaultValue: 'Set range start',\n\t\t\t}),\n\t\t\t/**\n\t\t\t * @override\n\t\t\t * @return {Element}\n\t\t\t */\n\t\t\tcreateEl() {\n\t\t\t\t// Main element\n\t\t\t\tconst el = _Button.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'button',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'vjs-rangeslider-range-start-control vjs-button vjs-control',\n\t\t\t\t\t\tinnerHTML: `${icons.faCaretSquareRight}`\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\trole: 'button',\n\t\t\t\t\t\ttitle: i18n.t('i18n.setRangeStart', {\n\t\t\t\t\t\t\tdefaultValue: 'Set range start',\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\t/**\n\t\t\t * So videojs buttons listen for Enter/Space bar and fire off the last focused button\n\t\t\t * @todo Tap in and make the space bar only play/pause and make the event on the wholde video div\n\t\t\t * @override\n\t\t\t */\n\t\t\thandleKeyPress(e) {\n\t\t\t\t// This method would normally call - BAD\n\t\t\t\t// ClickableComponent.prototype.handleKeyPress = function handleKeyPress(event) {\n\t\t\t\t// \t// Support Space (32) or Enter (13) key operation to fire a click event\n\t\t\t\t// \tif (event.which === 32 || event.which === 13) {\n\t\t\t\t// \t\tevent.preventDefault();\n\t\t\t\t// \t\tthis.handleClick(event);\n\t\t\t\t// \t} else if (_Component.prototype.handleKeyPress) {\n\t\t\t\t// \t\t_Component.prototype.handleKeyPress.call(this, event); // Pass keypress handling up for unsupported keys\n\t\t\t\t// \t}\n\t\t\t\t// };\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonClick(e) {\n\t\t\t\tthis.player_.trigger('setrange', {\n\t\t\t\t\tstart: this.player_.currentTime(),\n\t\t\t\t\ttarget: 'rangeStartButton',\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\n\t\treturn NxRangeStartButton;\n\t})(Button),\n);\n\n/**\n * The videojs component\n * @memberof videojs.Components.SeekBar\n */\nvideojs.registerComponent(\n\t'NxRangeSlider',\n\t(function(_Component) {\n\t\t// Extend on Component\n\t\tvideojs.extend(_Component, NxRangeSlider);\n\n\t\t// Our constructor\n\t\tfunction NxRangeSlider(player, options) {\n\t\t\t// Super\n\t\t\t_Component.call(this, player, options);\n\n\t\t\t// Vars\n\t\t\tvar controlBar = player.controlBar,\n\t\t\t\tduration = player.duration(),\n\t\t\t\tplayerOptions = player.options_;\n\n\t\t\t// We will need this for some events\n\t\t\tthis.seekBar = controlBar.progressControl.seekBar;\n\n\t\t\tthis.resized = _.debounce(this.resized, 50);\n\t\t\tthis.updatePosition = _.throttle(this.updatePosition, 20);\n\n\t\t\t///////////////////////////////////\n\t\t\t// PROPERTIES\n\t\t\t///////////////////////////////////\n\t\t\t// Store components\n\t\t\tthis.components = {};\n\t\t\t// This el_ width\n\t\t\tthis.containerWidth = 0;\n\t\t\t// The selection width\n\t\t\tthis.rangeSelectionWidth = 0;\n\t\t\t// Did we just click and not drag\n\t\t\tthis.clicked = false;\n\t\t\t// Timeout until we consider ourselves dragging\n\t\t\tthis.dragTimeoutId = null;\n\t\t\t// Are we dragging\n\t\t\tthis.dragging = false;\n\t\t\t// Will be start, end or selection (depending on what you are dragging)\n\t\t\tthis.draggingTarget = null;\n\t\t\t// This is to tell if the user had JUST seeked so we do not infuriate them\n\t\t\tthis.justSeeked = false;\n\t\t\t// Timeout until we consider manual seek over\n\t\t\tthis.seekedTimeoutId = false;\n\t\t\t// This holds the percentage position (multiply by the duration or containerWidth to get true value)\n\t\t\tthis._position = {start: 0, end: 0};\n\t\t\t// The last position of the mouse drag on the x axis\n\t\t\tthis._lastMouse = {start: 0, end: 0, selection: 0};\n\t\t\t// Where the mouse started dragging on the x axis (not utilized currently but could prove useful down the road)\n\t\t\tthis._mouseStart = {start: 0, end: 0, selection: 0};\n\t\t\t// This holds the last percentage position - helpful to know if we need to actually trigger an update to the outside world\n\t\t\tthis._lastPosition = {start: 0, end: 0};\n\t\t\t///////////////////////////////////\n\t\t\t// !PROPERTIES\n\t\t\t///////////////////////////////////\n\n\t\t\t// Did we define an initial range in our options?\n\t\t\tif (this.options_.range) {\n\t\t\t\tplayer.options_.range = this.options_.range;\n\t\t\t\tdelete this.options_.range;\n\t\t\t}\n\t\t\t// No range provided in our options or the player's options\n\t\t\telse if (!player.options_.range) {\n\t\t\t\tplayer.options_.range = {start: player.currentTime() || 0, end: 0};\n\t\t\t}\n\n\t\t\t// We are not ready until we have a duration\n\t\t\tif (!duration) {\n\t\t\t\t// Wait for duration to be avialable\n\t\t\t\tthis.one(\n\t\t\t\t\tplayer,\n\t\t\t\t\t'loadedmetadata',\n\t\t\t\t\t() => {\n\t\t\t\t\t\tduration = player.duration();\n\t\t\t\t\t\t// Set initial range end (if not already set or exceeds duration)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!player.options_.range.end ||\n\t\t\t\t\t\t\tplayer.options_.range.end > duration\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tplayer.options_.range.end = duration;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.translateFromTime(player.options_.range);\n\t\t\t\t\t\tthis.triggerReady();\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Already have it\n\t\t\telse {\n\t\t\t\t// Set initial range end (if not already set or exceeds duration)\n\t\t\t\tif (\n\t\t\t\t\t!player.options_.range.end ||\n\t\t\t\t\tplayer.options_.range.end > duration\n\t\t\t\t) {\n\t\t\t\t\tplayer.options_.range.end = duration;\n\t\t\t\t}\n\t\t\t\tthis.translateFromTime(player.options_.range);\n\t\t\t\tthis.triggerReady();\n\t\t\t}\n\n\t\t\t// Wait for compnent ready before we start listneing to anything\n\t\t\tthis.on(\n\t\t\t\t'ready',\n\t\t\t\t() => {\n\t\t\t\t\t///////////////////////////////////\n\t\t\t\t\t// LIFE CYCLE LISTENERS\n\t\t\t\t\t///////////////////////////////////\n\t\t\t\t\t// Window events - window is not a element/string or a videojs object so we must handle these ourselves in cleanup\n\t\t\t\t\tvideojs.on(window, 'resize', videojs.bind(this, this.resized));\n\t\t\t\t\t// Player events\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer,\n\t\t\t\t\t\t'fullscreenchange',\n\t\t\t\t\t\t_.debounce(videojs.bind(this, this.resized), 500),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer,\n\t\t\t\t\t\t'resize',\n\t\t\t\t\t\t_.debounce(videojs.bind(this, this.resized), 300),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer,\n\t\t\t\t\t\t'durationchange',\n\t\t\t\t\t\tvideojs.bind(this, this.durationChanged),\n\t\t\t\t\t);\n\t\t\t\t\t// Custom player events for range\n\t\t\t\t\tthis.on(player, 'resetrange', videojs.bind(this, this.resetRange));\n\t\t\t\t\tthis.on(player, 'setrange', videojs.bind(this, this.setRange));\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer,\n\t\t\t\t\t\t'stop',\n\t\t\t\t\t\tvideojs.bind(this, function(e) {\n\t\t\t\t\t\t\t// Would be nice if videojs could handle this check - but it yells at you if you pase when already paused\n\t\t\t\t\t\t\t!player.paused() && player.pause();\n\t\t\t\t\t\t\t// Set flag (so we can support pausing and picking up from pause vs stopping and picking up from range)\n\t\t\t\t\t\t\tplayer.stopped = true;\n\t\t\t\t\t\t\t// Set playahead to the beginning of the selected range\n\t\t\t\t\t\t\tplayer.currentTime(player.options_.range.start || 0);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t\t// Player tech events\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer.tech_,\n\t\t\t\t\t\t'play',\n\t\t\t\t\t\tvideojs.bind(this, function(e) {\n\t\t\t\t\t\t\t// If we had opted to stop the player (not pause) pick up from the range start\n\t\t\t\t\t\t\t// otherwise keep playing, unless we are past the end of the range\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!player.stopped &&\n\t\t\t\t\t\t\t\tplayer.currentTime() < player.options_.range.end\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tthis.logSeeked(e);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Clear flag\n\t\t\t\t\t\t\t\tdelete player.stopped;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// but always play the range\n\t\t\t\t\t\t\tthis.playRange(e);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(player.tech_, 'ended', videojs.bind(this, this.playRange));\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer.tech_,\n\t\t\t\t\t\t'pause',\n\t\t\t\t\t\tvideojs.bind(this, this.stopTrackingRangePlay),\n\t\t\t\t\t);\n\t\t\t\t\t// Seek bar events\n\t\t\t\t\t// Rather than listen to the `seeked` or `seeking` events (which are awful because ther is no way to differentiate between manual seek and programatical seek)\n\t\t\t\t\t// we listen for mouse/touch events on the seek bar (also, see this.onMouseUp where we call this.logSeeked in the click detection block)\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.seekBar,\n\t\t\t\t\t\t'mousedown',\n\t\t\t\t\t\tvideojs.bind(this, this.logSeeked),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(this.seekBar, 'mouseup', videojs.bind(this, this.logSeeked));\n\t\t\t\t\tthis.on(this.seekBar, 'tap', videojs.bind(this, this.logSeeked));\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.seekBar,\n\t\t\t\t\t\t'touchstart',\n\t\t\t\t\t\tvideojs.bind(this, this.logSeeked),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(this.seekBar, 'touchend', videojs.bind(this, this.logSeeked));\n\t\t\t\t\t// Selection desktop mouse events\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.startHandleEl,\n\t\t\t\t\t\t'mouseover',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseOver),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.startHandleEl,\n\t\t\t\t\t\t'mouseout',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseOut),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.endHandleEl,\n\t\t\t\t\t\t'mouseover',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseOver),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.endHandleEl,\n\t\t\t\t\t\t'mouseout',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseOut),\n\t\t\t\t\t);\n\t\t\t\t\t// Selection desktop mouse drag/click events\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.rangeSelectionEl,\n\t\t\t\t\t\t'mousedown',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseDown),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.startHandleEl,\n\t\t\t\t\t\t'mousedown',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseDown),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.endHandleEl,\n\t\t\t\t\t\t'mousedown',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseDown),\n\t\t\t\t\t);\n\t\t\t\t\t// Selection mobile touch drag/tap events\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.rangeSelectionEl,\n\t\t\t\t\t\t'touchstart',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseDown),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.startHandleEl,\n\t\t\t\t\t\t'touchstart',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseDown),\n\t\t\t\t\t);\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tthis.endHandleEl,\n\t\t\t\t\t\t'touchstart',\n\t\t\t\t\t\tvideojs.bind(this, this.onMouseDown),\n\t\t\t\t\t);\n\t\t\t\t\t///////////////////////////////////\n\t\t\t\t\t// !LIFE CYCLE LISTENERS\n\t\t\t\t\t///////////////////////////////////\n\n\t\t\t\t\t// Safari has some issue (???)\n\t\t\t\t\t_.delay(() => {\n\t\t\t\t\t\tthis.updatePosition();\n\t\t\t\t\t\tplayer.currentTime(player.options_.range.start);\n\t\t\t\t\t}, 200);\n\t\t\t\t},\n\t\t\t);\n\n\t\t\t// Might as well - since we are supporting touch events\n\t\t\tthis.enableTouchActivity();\n\t\t}\n\n\t\t// Our prototype\n\t\t_.extend(NxRangeSlider.prototype, {\n\t\t\t/**\n\t\t\t * @override\n\t\t\t * @return {Element}\n\t\t\t */\n\t\t\tcreateEl() {\n\t\t\t\t// Main element\n\t\t\t\tvar el = _Component.prototype.createEl.call(this, 'div', {\n\t\t\t\t\tclassName: 'vjs-rangeslider',\n\t\t\t\t});\n\n\t\t\t\t// Selection element\n\t\t\t\tthis.rangeSelectionEl = _Component.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: 'vjs-rangeslider-selection',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'data-range-selector': 'selection',\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\t// Start handle for resize\n\t\t\t\tthis.startHandleEl = _Component.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'vjs-rangeslider-selectionbar-start vjs-rangeslider-handle',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'data-range-selector': 'start',\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tthis.startHandleTooltipEl = _Component.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'vjs-rangeslider-selectionbar-start-tooltip vjs-rangeslider-tooltip',\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\t// End handle for resize\n\t\t\t\tthis.endHandleEl = _Component.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'vjs-rangeslider-selectionbar-end vjs-rangeslider-handle',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t'data-range-selector': 'end',\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tthis.endHandleTooltipEl = _Component.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t'vjs-rangeslider-selectionbar-end-tooltip vjs-rangeslider-tooltip',\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\t// Append resize handles to our main element\n\t\t\t\tthis.startHandleEl.appendChild(this.startHandleTooltipEl);\n\t\t\t\tthis.endHandleEl.appendChild(this.endHandleTooltipEl);\n\t\t\t\tthis.rangeSelectionEl.appendChild(this.startHandleEl);\n\t\t\t\tthis.rangeSelectionEl.appendChild(this.endHandleEl);\n\n\t\t\t\t// Append to main element\n\t\t\t\tel.appendChild(this.rangeSelectionEl);\n\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Clean up anything that cannot be automatically cleaned up\n\t\t\t * @override\n\t\t\t */\n\t\t\tdispose() {\n\t\t\t\t// Since window is neither a string nor a videojs object we need to clean this up ourselves\n\t\t\t\tvideojs.off(window, 'resize', this.resized, false);\n\t\t\t\tdelete this.player_.options_.range;\n\t\t\t\tdelete this.player_.options_.loop;\n\t\t\t\t// Super\n\t\t\t\treturn _Component.prototype.dispose.call(this);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {event} e Event\n\t\t\t */\n\t\t\tdurationChanged(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_,\n\t\t\t\t\toptions = player.options_;\n\n\t\t\t\toptions.range = {\n\t\t\t\t\tstart: 0,\n\t\t\t\t\tend: player.duration(),\n\t\t\t\t};\n\t\t\t\tthis.translateFromTime(options.range);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @return {object} Pretty range strings\n\t\t\t * @todo http://docs.videojs.com/module-time-ranges.html\n\t\t\t */\n\t\t\tgetPrettyRange() {\n\t\t\t\t// Vars\n\t\t\t\tvar floor = Math.floor,\n\t\t\t\t\trange = this.player_.options_.range,\n\t\t\t\t\tround = Math.round,\n\t\t\t\t\tprettyRange = {};\n\n\t\t\t\t// Loops over start, end, duration\n\t\t\t\t_.each(\n\t\t\t\t\trange,\n\t\t\t\t\tfunction(r, k) {\n\t\t\t\t\t\t// Vars\n\t\t\t\t\t\tvar hour, minute, second, millisecond, time;\n\n\t\t\t\t\t\ttime = r;\n\t\t\t\t\t\thour = floor(time / 3600);\n\t\t\t\t\t\ttime -= hour * 3600;\n\t\t\t\t\t\tminute = floor(time / 60);\n\t\t\t\t\t\ttime -= floor(minute * 60);\n\t\t\t\t\t\tsecond = floor(time);\n\t\t\t\t\t\tmillisecond = Math.round((time - second) * 1000);\n\n\t\t\t\t\t\tprettyRange[k] = [\n\t\t\t\t\t\t\tpad(hour, 2),\n\t\t\t\t\t\t\t':',\n\t\t\t\t\t\t\tpad(minute, 2),\n\t\t\t\t\t\t\t':',\n\t\t\t\t\t\t\tpad(second, 2),\n\t\t\t\t\t\t\t'.',\n\t\t\t\t\t\t\tpad(millisecond, 3),\n\t\t\t\t\t\t].join('');\n\t\t\t\t\t},\n\t\t\t\t\tthis,\n\t\t\t\t);\n\n\t\t\t\treturn prettyRange;\n\t\t\t},\n\t\t\t/**\n\t\t\t * This is so we can know if a user had JUST manually seeked\n\t\t\t * That way we can keep playing from where they seeked and not keep jumping back to the range start or correcting range end\n\t\t\t * @method\n\t\t\t * @param {event} e Player tech event\n\t\t\t */\n\t\t\tlogSeeked(e) {\n\t\t\t\tthis.justSeeked = true;\n\t\t\t\tif (this.seekedTimeoutId) this.clearTimeout(this.seekedTimeoutId);\n\t\t\t\tthis.seekedTimeoutId = this.setTimeout(function() {\n\t\t\t\t\tthis.justSeeked = false;\n\t\t\t\t}, 100);\n\t\t\t},\n\t\t\t/**\n\t\t\t * Mouse/touch start\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonMouseDown(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar x = e.clientX;\n\n\t\t\t\t// This ends here\n\t\t\t\te.stopPropagation();\n\n\t\t\t\t// For the case where we may just click and not drag - se onMouseUp\n\t\t\t\t// this.seekBar.videoWasPlaying = !this.player_.paused();\n\n\t\t\t\t// Our bounds can change frequently\n\t\t\t\tthis.containerWidth = this.currentWidth(); //this.el_.getBoundingClientRect().width;\n\t\t\t\tthis.rangeSelectionWidth = this.rangeSelectionEl.getBoundingClientRect().width;\n\n\t\t\t\t// What is being interacted with\n\t\t\t\tvar draggingTarget = (this.draggingTarget = e.currentTarget.getAttribute(\n\t\t\t\t\t'data-range-selector',\n\t\t\t\t));\n\n\t\t\t\t// Listen for desktop drag events\n\t\t\t\tthis.on(document, 'mouseup', videojs.bind(this, this.onMouseUp));\n\t\t\t\tthis.on(document, 'mousemove', videojs.bind(this, this.onMouseMove));\n\t\t\t\t// Listen for mobile touche events\n\t\t\t\tthis.on(document, 'touchend', videojs.bind(this, this.onMouseUp));\n\t\t\t\tthis.on(document, 'touchmove', videojs.bind(this, this.onMouseMove));\n\n\t\t\t\t// Store\n\t\t\t\tthis._lastMouse[draggingTarget] = x;\n\t\t\t\tthis._mouseStart[draggingTarget] = x;\n\n\t\t\t\t// Reset\n\t\t\t\tthis.dragging = false;\n\t\t\t\tthis.clicked = false;\n\n\t\t\t\t// If after 150ms we have not released the mouse we will assume dragging\n\t\t\t\tif (this.dragTimeoutId) this.clearTimeout(this.dragTimeoutId);\n\t\t\t\tthis.dragTimeoutId = this.setTimeout(function() {\n\t\t\t\t\tif (!this.clicked) this.dragging = true;\n\t\t\t\t\tthis.player_.addClass('vjs-rangeslider-user-active');\n\t\t\t\t\tthis.player_.addClass(\n\t\t\t\t\t\t'vjs-rangeslider-sliding-' + draggingTarget + '-user-active',\n\t\t\t\t\t);\n\t\t\t\t}, 150);\n\t\t\t},\n\t\t\t/**\n\t\t\t * Mouse/touch move\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonMouseMove(e) {\n\t\t\t\tif (this.dragging) {\n\t\t\t\t\t// Vars\n\t\t\t\t\tvar _lastMouse = this._lastMouse,\n\t\t\t\t\t\t_position = this._position,\n\t\t\t\t\t\tcontainerWidth = this.containerWidth,\n\t\t\t\t\t\tdraggingTarget = this.draggingTarget,\n\t\t\t\t\t\trangeSelectionWidth = this.rangeSelectionWidth,\n\t\t\t\t\t\tx = e.clientX;\n\n\t\t\t\t\t// We are dragging the entire selection\n\t\t\t\t\tif (draggingTarget === 'selection') {\n\t\t\t\t\t\t// Amount we have moved on the x axis\n\t\t\t\t\t\tvar amt = x - _lastMouse.selection;\n\n\t\t\t\t\t\t// Get our actual numbered positions from the percentages\n\t\t\t\t\t\tvar positionStart = _position.start * containerWidth,\n\t\t\t\t\t\t\tpositionEnd = _position.end * containerWidth;\n\n\t\t\t\t\t\t// Add/subtract the amount we have moved\n\t\t\t\t\t\tpositionStart += amt;\n\t\t\t\t\t\tpositionEnd -= amt;\n\n\t\t\t\t\t\t// Keep in bounds on the left\n\t\t\t\t\t\tif (positionStart < 0) {\n\t\t\t\t\t\t\tpositionEnd += positionStart;\n\t\t\t\t\t\t\tpositionStart = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Keep in bounds on the right\n\t\t\t\t\t\telse if (positionStart + rangeSelectionWidth > containerWidth) {\n\t\t\t\t\t\t\tvar diff = positionStart + rangeSelectionWidth - containerWidth;\n\t\t\t\t\t\t\tpositionStart -= diff;\n\t\t\t\t\t\t\tpositionEnd += diff;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We only want to store this if we can still keep dragging in the direction we were\n\t\t\t\t\t\t\t// Meaning we have not reached the bounds of the left or right side\n\t\t\t\t\t\t\t_lastMouse.selection = x;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Turn our actual numbered positions back into percentages\n\t\t\t\t\t\t_position.start = positionStart / containerWidth;\n\t\t\t\t\t\t_position.end = positionEnd / containerWidth;\n\t\t\t\t\t}\n\t\t\t\t\t// We are resizing the selection\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Amount we have moved on the x axis\n\t\t\t\t\t\tvar amt =\n\t\t\t\t\t\t\tdraggingTarget === 'start'\n\t\t\t\t\t\t\t\t? x - this._lastMouse[draggingTarget]\n\t\t\t\t\t\t\t\t: this._lastMouse[draggingTarget] - x;\n\n\t\t\t\t\t\t// Get our actual numbered positions from the percentages\n\t\t\t\t\t\tvar positionStart = _position.start * containerWidth,\n\t\t\t\t\t\t\tpositionEnd = _position.end * containerWidth,\n\t\t\t\t\t\t\ttargetPosition =\n\t\t\t\t\t\t\t\tdraggingTarget === 'start' ? positionStart : positionEnd;\n\n\t\t\t\t\t\t// Add/subtract the amount we have moved only on the dragging target\n\t\t\t\t\t\ttargetPosition += amt;\n\n\t\t\t\t\t\t// Nothing can fall below zero\n\t\t\t\t\t\tif (targetPosition < 0) {\n\t\t\t\t\t\t\ttargetPosition = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Start cannot come after end\n\t\t\t\t\t\telse if (\n\t\t\t\t\t\t\tdraggingTarget === 'start' &&\n\t\t\t\t\t\t\ttargetPosition > containerWidth - positionEnd\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttargetPosition = containerWidth - positionEnd;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// End cannot come before start\n\t\t\t\t\t\telse if (\n\t\t\t\t\t\t\tdraggingTarget === 'end' &&\n\t\t\t\t\t\t\ttargetPosition > containerWidth - positionStart\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttargetPosition = containerWidth - positionStart;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We only want to store this if we can still keep dragging in the direction we were\n\t\t\t\t\t\t\t// Meaning we have not reached the bounds of the left or right side\n\t\t\t\t\t\t\t_lastMouse[draggingTarget] = x;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Turn our actual numbered position back into percentages\n\t\t\t\t\t\t_position[draggingTarget] = targetPosition / containerWidth;\n\t\t\t\t\t}\n\t\t\t\t\t// Update our position\n\t\t\t\t\tthis.updatePosition();\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * Mouse over\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonMouseOver(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar targetName = e.currentTarget.getAttribute('data-range-selector'),\n\t\t\t\t\tprettyRange = this.getPrettyRange();\n\n\t\t\t\tthis.player_.addClass(\n\t\t\t\t\t'vjs-rangeslider-range-' + targetName + '-user-active',\n\t\t\t\t);\n\t\t\t\tthis[targetName + 'HandleTooltipEl'].innerHTML =\n\t\t\t\t\tprettyRange[targetName];\n\t\t\t},\n\t\t\t/**\n\t\t\t * Mouse out\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonMouseOut(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar targetName = e.currentTarget.getAttribute('data-range-selector');\n\n\t\t\t\tthis.player_.removeClass(\n\t\t\t\t\t'vjs-rangeslider-range-' + targetName + '-user-active',\n\t\t\t\t);\n\t\t\t},\n\t\t\t/**\n\t\t\t * Mouse/touch end\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonMouseUp(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_;\n\n\t\t\t\t// Stop the timeout\n\t\t\t\tif (this.dragTimeoutId) this.clearTimeout(this.dragTimeoutId);\n\n\t\t\t\t// This ends here\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\n\t\t\t\t// If we did not hit the drag timeout then we simply clicked\n\t\t\t\tif (!this.dragging) {\n\t\t\t\t\t// We clicked\n\t\t\t\t\tthis.clicked = true;\n\t\t\t\t\tthis.logSeeked(e);\n\t\t\t\t\t// Pass along to seekBar\n\t\t\t\t\tthis.seekBar.handleMouseMove(e);\n\t\t\t\t} else {\n\t\t\t\t\tplayer.removeClass('vjs-rangeslider-user-active');\n\t\t\t\t\tplayer.removeClass(\n\t\t\t\t\t\t'vjs-rangeslider-sliding-' + this.draggingTarget + '-user-active',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Reset dragging/target\n\t\t\t\tthis.dragging = false;\n\t\t\t\tthis.draggingTarget = null;\n\n\t\t\t\t// Stop listening to desktop drag events\n\t\t\t\tthis.off(document, 'mouseup', this.onMouseUp, false);\n\t\t\t\tthis.off(document, 'mousemove', this.onMouseMove, false);\n\t\t\t\t// Stop listening to mobile touch events\n\t\t\t\tthis.off(document, 'tocuhmove', this.onMouseMove, false);\n\t\t\t\tthis.off(document, 'touchend', this.onMouseUp, false);\n\t\t\t},\n\t\t\t/**\n\t\t\t * Play the selected range\n\t\t\t * @method\n\t\t\t * @param {event} e Player tech event\n\t\t\t */\n\t\t\tplayRange(e) {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_,\n\t\t\t\t\tcurrentTime = player.currentTime(),\n\t\t\t\t\tjustSeeked = this.justSeeked,\n\t\t\t\t\trange = this.translateToTime();\n\n\t\t\t\t// Stop listening\n\t\t\t\tthis.stopTrackingRangePlay();\n\n\t\t\t\tif (!justSeeked && (e.type !== 'ended' || player.options_.loop)) {\n\t\t\t\t\t// Set start time - only if the user did not JUST seek to a different location\n\t\t\t\t\tplayer.currentTime(range.start);\n\t\t\t\t}\n\t\t\t\t// Otherwise we will fire an immediate play/pause and get a dom error\n\t\t\t\t// We also do not want to do anything if the user has explicitly moved the current time beyond play end\n\t\t\t\tif (range.duration > 0 && currentTime <= range.end + 0.1) {\n\t\t\t\t\t// Listen\n\t\t\t\t\tthis.on(\n\t\t\t\t\t\tplayer,\n\t\t\t\t\t\t'timeupdate',\n\t\t\t\t\t\tvideojs.bind(this, this.trackRangePlay),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * Range seleciton has been updated\n\t\t\t * @method\n\t\t\t * @param {object} range Range object\n\t\t\t */\n\t\t\trangeUpdated() {\n\t\t\t\t// Vars\n\t\t\t\tvar draggingTarget = this.draggingTarget,\n\t\t\t\t\tplayer = this.player_,\n\t\t\t\t\tplaying = !player.paused(),\n\t\t\t\t\trange = this.translateToTime();\n\n\t\t\t\t// Store\n\t\t\t\tplayer.options_.range = range;\n\n\t\t\t\t// Trigger event\n\t\t\t\tthis.player_.trigger('rangeupdated', {range: range});\n\n\t\t\t\tif (\n\t\t\t\t\tplaying &&\n\t\t\t\t\t(draggingTarget === 'start' ||\n\t\t\t\t\t\tdraggingTarget === 'end' ||\n\t\t\t\t\t\tdraggingTarget === 'rangeEndButton' ||\n\t\t\t\t\t\tdraggingTarget === 'selection')\n\t\t\t\t) {\n\t\t\t\t\tplayer.pause();\n\t\t\t\t}\n\n\t\t\t\t// Set current time to the location we are adjusting ( start/selection or end )\n\t\t\t\tswitch (this.draggingTarget) {\n\t\t\t\t\tcase 'start':\n\t\t\t\t\tcase 'selection':\n\t\t\t\t\t\t// Set current time to range start\n\t\t\t\t\t\t!isNaN(range.start) && player.currentTime(range.start);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'end':\n\t\t\t\t\t\t// Set current time to range end\n\t\t\t\t\t\tplayer.currentTime(range.end);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * Reset range to default\n\t\t\t * @method\n\t\t\t */\n\t\t\tresetRange(e) {\n\t\t\t\tthis.position = {start: 0, end: this.player_.duration()};\n\t\t\t},\n\t\t\t/**\n\t\t\t * Selection is a percentage of my parent's width\n\t\t\t * Selection must not leave the bounds of this._el or this.rangeSelectionEl.\n\t\t\t * @method\n\t\t\t */\n\t\t\tresized() {\n\t\t\t\tthis.containerWidth = this.currentWidth(); //this.el_.getBoundingClientRect().width;\n\t\t\t\tthis.rangeSelectionWidth = this.rangeSelectionEl.getBoundingClientRect().width;\n\t\t\t\tthis.updatePosition();\n\t\t\t},\n\t\t\t/**\n\t\t\t * Set range\n\t\t\t * @method\n\t\t\t * @param {object} range Range object (you can also pass the target)\n\t\t\t */\n\t\t\tsetRange(e, range) {\n\t\t\t\tif (_.isObject(range)) {\n\t\t\t\t\t// `selection`, `start`, `end` - will cause the currentTime to be updated\n\t\t\t\t\t// `rangeStartButton`, `rangeEndButton` - will not cause the currentTime to be updated\n\t\t\t\t\tif (range.target) {\n\t\t\t\t\t\tthis.draggingTarget = range.target;\n\t\t\t\t\t}\n\t\t\t\t\t// Update position\n\t\t\t\t\tthis.position = range;\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * Removes event listeners for `timeupdate`\n\t\t\t * @method\n\t\t\t */\n\t\t\tstopTrackingRangePlay() {\n\t\t\t\t// Stop listening\n\t\t\t\tthis.off(\n\t\t\t\t\tthis.player_,\n\t\t\t\t\t'timeupdate',\n\t\t\t\t\tvideojs.bind(this, this.trackRangePlay),\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t},\n\t\t\t/**\n\t\t\t * Sets listeners for `timeupdate`\n\t\t\t * Check each time play time updates to see if we have hit the end of our selection\n\t\t\t * @method\n\t\t\t */\n\t\t\ttrackRangePlay() {\n\t\t\t\t// Vars\n\t\t\t\tvar player = this.player_,\n\t\t\t\t\tcurrentTime = player.currentTime(),\n\t\t\t\t\tjustSeeked = this.justSeeked,\n\t\t\t\t\trange = player.options_.range;\n\n\t\t\t\t// From the top\n\t\t\t\tif (player.options_.loop) {\n\t\t\t\t\t// Do not want to get trapped in a 0 duration loop\n\t\t\t\t\tif (range.duration <= 0) {\n\t\t\t\t\t\tthis.stopTrackingRangePlay();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!justSeeked && currentTime >= range.end) {\n\t\t\t\t\t\t\t// Restart to beginning of range seleciton\n\t\t\t\t\t\t\tplayer.currentTime(range.start);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// We will catch them on ended or next play event\n\t\t\t\t\t\telse if (justSeeked && currentTime >= range.end) {\n\t\t\t\t\t\t\tthis.stopTrackingRangePlay();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// It's over\n\t\t\t\telse if (!justSeeked && currentTime >= range.end) {\n\t\t\t\t\t// Stop listening\n\t\t\t\t\tthis.stopTrackingRangePlay();\n\t\t\t\t\t// Stop the player\n\t\t\t\t\tif (!player.paused()) player.pause();\n\t\t\t\t\t// Deals with the minor discrepancy between when we wanted to stop and when videojs gave us a time stamp that met or exceeded that number ( milliseconds )\n\t\t\t\t\tif (currentTime > range.end) {\n\t\t\t\t\t\tplayer.currentTime(range.end);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// We will catch them on ended or next play event\n\t\t\t\telse if (justSeeked && currentTime >= range.end) {\n\t\t\t\t\tthis.stopTrackingRangePlay();\n\t\t\t\t}\n\t\t\t},\n\t\t\t/**\n\t\t\t * Given seconds, get the position\n\t\t\t * @method\n\t\t\t * @param {number} seconds Seconds\n\t\t\t * @return {number} Position\n\t\t\t */\n\t\t\ttranslateFromTime(range) {\n\t\t\t\t// Vars\n\t\t\t\tvar currentRange = this.translateToTime(),\n\t\t\t\t\tduration = this.player_.duration();\n\n\t\t\t\t// Check that we have a range (note - end is not required)\n\t\t\t\tif (\n\t\t\t\t\t_.isUndefined(range) ||\n\t\t\t\t\t(_.isUndefined(range.start) && _.isUndefined(range.end))\n\t\t\t\t) {\n\t\t\t\t\t// Range not provided\n\t\t\t\t\treturn this._position;\n\t\t\t\t}\n\t\t\t\t// If both start and end are provided make sure they are in bounds\n\t\t\t\telse if (!_.isUndefined(range.start) && !_.isUndefined(range.start)) {\n\t\t\t\t\t// Error - invalid range\n\t\t\t\t\tif (range.start > range.end || range.end < 0) {\n\t\t\t\t\t\treturn this._position;\n\t\t\t\t\t}\n\t\t\t\t\t// No negatives\n\t\t\t\t\tif (range.start < 0) range.start = 0;\n\t\t\t\t\t// No going over\n\t\t\t\t\tif (range.end > duration) range.end = duration;\n\t\t\t\t}\n\t\t\t\t// We have only defined range start\n\t\t\t\telse if (!_.isUndefined(range.start)) {\n\t\t\t\t\t// Cannot be *less than zero*\n\t\t\t\t\tif (range.start < 0) {\n\t\t\t\t\t\trange.start = 0;\n\t\t\t\t\t}\n\t\t\t\t\t// Cannot be after range end\n\t\t\t\t\telse if (currentRange.end <= range.start) {\n\t\t\t\t\t\tcurrentRange.end = range.start + 0.001;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// We have only defined range end\n\t\t\t\telse if (!_.isUndefined(range.end)) {\n\t\t\t\t\t// Cannot be greater than duration\n\t\t\t\t\tif (range.end > duration) {\n\t\t\t\t\t\trange.end = duration;\n\t\t\t\t\t}\n\t\t\t\t\t// Cannot be before range start\n\t\t\t\t\telse if (currentRange.start >= range.end) {\n\t\t\t\t\t\tcurrentRange.start = range.end - 0.001;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Get our percentage position for start\n\t\t\t\tif (!_.isUndefined(range.start)) {\n\t\t\t\t\tthis._position.start = range.start / duration;\n\t\t\t\t}\n\t\t\t\t// Get our percentage position for end\n\t\t\t\tif (!_.isUndefined(range.end)) {\n\t\t\t\t\tthis._position.end = 1 - range.end / duration;\n\t\t\t\t}\n\n\t\t\t\treturn this._position;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Translate the current selection (position) to a range of seconds\n\t\t\t * @method\n\t\t\t * @return {object} Range\n\t\t\t */\n\t\t\ttranslateToTime() {\n\t\t\t\t// Vars\n\t\t\t\tvar duration = this.player_.duration(),\n\t\t\t\t\tstart = +(this._position.start * duration).toFixed(3),\n\t\t\t\t\tend = +(duration - this._position.end * duration).toFixed(3),\n\t\t\t\t\t_duration = +(end - start).toFixed(3);\n\n\t\t\t\treturn {\n\t\t\t\t\tstart: start,\n\t\t\t\t\tend: end,\n\t\t\t\t\tduration: _duration,\n\t\t\t\t};\n\t\t\t},\n\t\t\t/**\n\t\t\t * Called when position is updated\n\t\t\t * @method\n\t\t\t */\n\t\t\tupdatePosition() {\n\t\t\t\t// Vars\n\t\t\t\tvar el = this.rangeSelectionEl,\n\t\t\t\t\thasDraggingTarget = this.draggingTarget !== null,\n\t\t\t\t\tlastPosition = this._lastPosition,\n\t\t\t\t\tposition = this._position,\n\t\t\t\t\tprettyRange = this.getPrettyRange(),\n\t\t\t\t\tupdated = false;\n\n\t\t\t\tthis.startHandleTooltipEl.innerHTML = prettyRange.start;\n\t\t\t\tthis.endHandleTooltipEl.innerHTML = prettyRange.end;\n\n\t\t\t\t// We have updated the end position\n\t\t\t\tif (lastPosition.end !== position.end) {\n\t\t\t\t\tel.style.right = position.end * 100 + '%';\n\t\t\t\t\tlastPosition.end = position.end;\n\t\t\t\t\tupdated = true;\n\t\t\t\t\t// If no target was specified assume `end`\n\t\t\t\t\tif (!hasDraggingTarget) this.draggingTarget = 'end';\n\t\t\t\t}\n\t\t\t\t// We have updated the start position\n\t\t\t\tif (lastPosition.start !== position.start) {\n\t\t\t\t\tel.style.left = position.start * 100 + '%';\n\t\t\t\t\tlastPosition.start = position.start;\n\t\t\t\t\tupdated = true;\n\t\t\t\t\t// If not target was specified assume `start`\n\t\t\t\t\tif (!hasDraggingTarget) this.draggingTarget = 'start';\n\t\t\t\t}\n\t\t\t\tif (!updated) return;\n\n\t\t\t\tthis.rangeUpdated();\n\t\t\t\t// Let anything finish so we can be sure\n\t\t\t\t_.defer(() => {\n\t\t\t\t\t// If we assumed a target (becuase one was not specified) undo that now\n\t\t\t\t\tif (!hasDraggingTarget) this.draggingTarget = null;\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\n\t\t// Make getting / setting time (position) easier\n\t\tObject.defineProperty(NxRangeSlider.prototype, 'position', {\n\t\t\t// Translated to seconds\n\t\t\tget() {\n\t\t\t\treturn this.translateToTime();\n\t\t\t},\n\t\t\t// Translate to seconds and then update the position\n\t\t\tset(range) {\n\t\t\t\tthis._position = this.translateFromTime(range);\n\t\t\t\treturn this.updatePosition();\n\t\t\t},\n\t\t});\n\n\t\t// Return constructor\n\t\treturn NxRangeSlider;\n\t})(Component),\n);\n\n/**\n * Stop player\n * @memberof videojs.Components.ControlBar\n */\nvideojs.registerComponent(\n\t'NxStopButton',\n\t(function(_Button) {\n\t\t// Extend on Component\n\t\tvideojs.extend(_Button, NxStopButton);\n\n\t\t// Our constructor\n\t\tfunction NxStopButton(player, options = {}) {\n\t\t\t// Super\n\t\t\t_Button.call(this, player, options);\n\n\t\t\t///////////////////////////////////\n\t\t\t// LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t\tthis.on('click', videojs.bind(this, this.onClick));\n\t\t\t///////////////////////////////////\n\t\t\t// !LIFE CYCLE LISTENERS\n\t\t\t///////////////////////////////////\n\t\t}\n\n\t\t// Our prototype\n\t\t_.extend(NxStopButton.prototype, {\n\t\t\t/**\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tcontrolText_: i18n.t('i18n.stop', {defaultValue: 'Stop'}),\n\t\t\t/**\n\t\t\t * @override\n\t\t\t * @return {Element}\n\t\t\t */\n\t\t\tcreateEl() {\n\t\t\t\t// Main element\n\t\t\t\tconst el = _Button.prototype.createEl.call(\n\t\t\t\t\tthis,\n\t\t\t\t\t'button',\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: 'vjs-rangeslider-stop-control vjs-button vjs-control',\n\t\t\t\t\t\tinnerHTML: `${icons.faStop}`\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\trole: 'button',\n\t\t\t\t\t\ttitle: i18n.t('i18n.stop', {defaultValue: 'Stop'}),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\t/**\n\t\t\t * So videojs buttons listen for Enter/Space bar and fire off the last focused button\n\t\t\t * @todo Tap in and make the space bar only play/pause and make the event on the wholde video div\n\t\t\t * @override\n\t\t\t */\n\t\t\thandleKeyPress(e) {\n\t\t\t\t// This method would normally call - BAD\n\t\t\t\t// ClickableComponent.prototype.handleKeyPress = function handleKeyPress(event) {\n\t\t\t\t// \t// Support Space (32) or Enter (13) key operation to fire a click event\n\t\t\t\t// \tif (event.which === 32 || event.which === 13) {\n\t\t\t\t// \t\tevent.preventDefault();\n\t\t\t\t// \t\tthis.handleClick(event);\n\t\t\t\t// \t} else if (_Component.prototype.handleKeyPress) {\n\t\t\t\t// \t\t_Component.prototype.handleKeyPress.call(this, event); // Pass keypress handling up for unsupported keys\n\t\t\t\t// \t}\n\t\t\t\t// };\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {event} e Mouse event\n\t\t\t */\n\t\t\tonClick(e) {\n\t\t\t\tthis.player_.trigger('stop');\n\t\t\t},\n\t\t});\n\n\t\treturn NxStopButton;\n\t})(Button),\n);\n\nexport default NxRange;\n","/**\n * A WARNING TO ALL THEE WHO APPROACHETH:\n * This view is very in flux - it is a base view for editing video and was built with only the clip editor in mind and that we will offer some sort of video editing later\n * Some assumptions made here may later prove to belong in VideoClipEditorView - but I can't know that yet.\n * Also, since more than likely all editing (other than selecting formats) will be done via videojs plugins - we can not get the ball rolling with operations until the player\n * and the respective plugins are ready to go in postRender\n * @class\n */\nimport Base from '@netx/core/lib/netx-view';\nimport Template from '../templates/videoEditorView.html';\n\nimport VideoEditorOperationControlsView from './videoEditorOperationControlsView';\n\n// Rangeslider plugin for video js\nimport 'core-libs/videojs/videojs-netx-rangeslider';\n\n// Resize listener\nimport 'core-libs/jquery.resize';\n\nexport default class VideoEditorView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.eventStr = opts.eventStr || 'videoEditor:edit';\n\t\topts.events = {\n\t\t\t'click .nx-save': 'submit',\n\t\t\t...opts.events,\n\t\t};\n\t\topts.headerTitle = opts.headerTitle || i18n.t('i18n.videoEditor');\n\t\topts.id = opts.id || 'video-editor-view';\n\t\topts.removeOnHide = opts.removeOnHide !== false;\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\n\t\t// Debounced/throttled methods\n\t\tthis.stageResized = _.throttle(this.stageResized, 100);\n\n\t\tthis.eventStr = opts.eventStr;\n\n\t\t/**\n\t\t * Hold data until the editor is ready to receive it at init\n\t\t * @type {object}\n\t\t */\n\t\tthis.cachedChanges = {};\n\n\t\tthis.playerDeferred = new $.Deferred();\n\t\tthis.playerReady = this.playerDeferred.promise();\n\t}\n\n\t/** @override */\n\tbindModelEvents() {\n\t\tsuper.bindModelEvents();\n\t\treturn this.listenTo(\n\t\t\tthis.model,\n\t\t\t'sync change:assetId',\n\t\t\t_.debounce(this.render, 100),\n\t\t).listenTo(this.model, 'operationsUpdated', this.applyOperations);\n\t}\n\n\t/** @override */\n\tpreRender() {\n\t\tthis.Plugins.Destroy('resizeListener');\n\t\tsuper.preRender();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tpostRender() {\n\t\tsuper.postRender();\n\n\t\t// We are loading until our player/plugin has reported being ready\n\t\tthis.simulateProgress();\n\n\t\t// Cache\n\t\tthis.$submit = this.$('.nx-save');\n\t\tthis.$stage = this.$('[data-nx-control=\"video\"]');\n\t\tthis.$operations = this.$('[data-nx-control=\"operations\"]');\n\n\t\t// Unfortunately we need to pass the video plugin around\n\t\t// And we cannot do that until we have one - and we cannot get one until we have en element\n\t\t// So, here in postRender we clean up and create\n\t\tif (this.operationControls) {\n\t\t\tthis.operationControls.remove();\n\t\t\tthis.removeSubView(this.operationControls);\n\t\t}\n\n\t\tthis.whenShown.then(() => {\n\t\t\tconst video = Netx.asset.video;\n\t\t\tvideo.revert();\n\t\t\tvideo.skin = 'vjs-nx-editor-skin';\n\t\t\tvideo.setSource(this.model, {poster: ''}).then((player, $el) => {\n\t\t\t\t// Store\n\t\t\t\tthis.videojs = player;\n\n\t\t\t\t$el.appendTo(this.$stage);\n\n\t\t\t\t// Hey, listen once!\n\t\t\t\tplayer.one('rangesliderready', () => {\n\t\t\t\t\tthis.stageResized();\n\n\t\t\t\t\t// Apply\n\t\t\t\t\tif (!_.isEmpty(this.cachedChanges)) {\n\t\t\t\t\t\tthis.applyOperations(this.cachedChanges);\n\t\t\t\t\t}\n\n\t\t\t\t\t// No longer loading\n\t\t\t\t\tthis.endProgressSimulation();\n\n\t\t\t\t\t// Defer gets us some feedback quicker as some heavy stuff could be listening for this resolved promise\n\t\t\t\t\t_.defer(() => {\n\t\t\t\t\t\tthis.playerDeferred.resolveWith(this, [player]);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// Plugin\n\t\t\t\tplayer.nxrangeslider();\n\n\t\t\t\tthis.operationControls = this.addSubView(\n\t\t\t\t\tnew VideoEditorOperationControlsView({\n\t\t\t\t\t\toperations: Netx.videoEditor.operations,\n\t\t\t\t\t\tcollection: this.model.operationsStack,\n\t\t\t\t\t\tmodel: this.model,\n\t\t\t\t\t\tplayer: player,\n\t\t\t\t\t\tplayerReady: this.playerReady,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tthis.operationControls.setElement(this.$operations).render();\n\n\t\t\t\t// Initialize resize listener plugin\n\t\t\t\tthis.Plugins.Initialize('resizeListener', this.$stage);\n\t\t\t});\n\t\t});\n\n\t\t// Check apply\n\t\tthis.checkSubmit();\n\t}\n\n\t/**\n\t * @method\n\t * @fires module:app#app:alert\n\t * @fires module:videoEditor#videoEditor:edit:confirmed\n\t */\n\tsubmit() {\n\t\tconst data = this.getData();\n\t\tif (_.isObject(data) && _.keys(data).length) {\n\t\t\tdispatcher.trigger(\n\t\t\t\tthis.eventStr + ':confirmed',\n\t\t\t\tdata,\n\t\t\t\tthis.model || this.collection,\n\t\t\t);\n\t\t} else {\n\t\t\tdispatcher.trigger(\n\t\t\t\t'app:alert',\n\t\t\t\ti18n.t('i18n.noValidEditOperationsFound', {\n\t\t\t\t\tdefaultValue: 'No valid edit operations were found.',\n\t\t\t\t}),\n\t\t\t\ti18n.t('i18n.error', {defaultValue: 'Error'}),\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Apply operations to video\n\t * @method\n\t * @param {object} changes Object of operation changes\n\t */\n\tapplyOperations(changes) {\n\t\t// Ready\n\t\tif (!_.isUndefined(this.videojs) && !_.isEmpty(changes)) {\n\t\t\t// Apply operation stack to image\n\t\t\t_.each(this.model.operationsStack.strictOrder(), (op, k) => {\n\t\t\t\t// console.log(\"applying\", op.name);\n\t\t\t\t// Make life easier\n\t\t\t\tconst alias = op.get('alias');\n\t\t\t\tconst map = op.get('map');\n\t\t\t\tconst name = op.get('name');\n\t\t\t\tconst type = op.get('type');\n\t\t\t\tconst value = op.get('value');\n\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'range':\n\t\t\t\t\t\tif (this.videojs.nxrangeslider_instance) {\n\t\t\t\t\t\t\tthis.videojs.nxrangeslider_instance.setRange(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t// Still initializing\n\t\telse {\n\t\t\t// Store the changes for when we are initialized\n\t\t\tthis.cachedChanges = changes;\n\t\t}\n\t\t// Check apply\n\t\tthis.checkSubmit();\n\t}\n\n\t/**\n\t * @method\n\t */\n\tcheckSubmit() {\n\t\tconst data = this.getData();\n\t\tthis.$submit.enableIf(_.isObject(data) && _.keys(data).length);\n\t}\n\n\t/**\n\t * Get our data\n\t * @method\n\t * @return {object} Operations\n\t */\n\tgetData() {\n\t\treturn this.model.operationsStack.getData(this.model);\n\t}\n\n\t/**\n\t * Get operation object from stack\n\t * @method\n\t * @param {string} key Operation key\n\t * @param {boolean} alias Whether or not to use alias instead of name\n\t * @return {object} Operation object\n\t */\n\tgetOperation(key, alias) {\n\t\treturn this.model.getOperation(key, alias);\n\t}\n\n\t/**\n\t * Check if operation is in stack\n\t * @method\n\t * @param {string} key Operation key\n\t * @return {boolean} Operation is present\n\t */\n\thasOperation(key) {\n\t\treturn !_.isUndefined(this.getOperation(key));\n\t}\n\n\t/** @method */\n\tresize() {\n\t\tthis.stageResized();\n\t}\n\n\t/**\n\t * We need to manually set widths and heights on our videojs el and video el\n\t * This is mainly due to the fact that videojs runs primarily with absolute position styles within\n\t * @method\n\t */\n\tstageResized() {\n\t\tconst model = this.model;\n\t\tconst video = Netx.asset.video;\n\n\t\tif (!this.$stage) return;\n\n\t\tconst h = this.$stage.outerHeight();\n\t\tconst w = this.$stage.outerWidth();\n\n\t\tif (video && video.videojs && video.videojs.el_) {\n\t\t\tconst $videojs = this.$(video.videojs.el_);\n\t\t\t// Set the dimensions for videojs wrapper element\n\t\t\t$videojs.width(w).height(h);\n\n\t\t\tconst maxVideoWidth = model.get('filewidth');\n\t\t\tconst maxVideoHeight = model.get('fileheight');\n\n\t\t\t// I do not want to cache this element as we could have posibly disposed and recreated any number of things to do with videojs elements\n\t\t\t// But at the very least it has been narrowed down some as we are accessing it from a cached element\n\t\t\tlet videoHeight = h - this.$stage.find('.vjs-control-bar').height() - 20;\n\t\t\tlet videoWidth = w;\n\t\t\t// Check that we are not blowing up the video\n\t\t\tif (maxVideoHeight && maxVideoWidth) {\n\t\t\t\tif (maxVideoHeight < videoHeight) {\n\t\t\t\t\tvideoHeight = maxVideoHeight;\n\t\t\t\t}\n\t\t\t\tif (maxVideoWidth < videoWidth) {\n\t\t\t\t\tvideoWidth = maxVideoWidth;\n\t\t\t\t}\n\t\t\t}\n\t\t\t$videojs\n\t\t\t\t.find('video')\n\t\t\t\t.width(videoWidth)\n\t\t\t\t.height(videoHeight);\n\t\t}\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorView';\n\t}\n}\n","/**\n * @class\n * @override\n */\nimport Base from '@netx/core-video-editor/views/videoEditorView';\n\nimport {faTimes} from '@fortawesome/pro-solid-svg-icons';\nconst icons = Base.initializeIcons({\n\tfaTimes,\n});\n\nexport default class VideoEditorView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.icons = {...icons, ...opts.icons};\n\t\tsuper(opts);\n\t}\n}\n","import React, {useMemo, useCallback} from 'react';\nimport {i18n} from '@netx/core/i18n';\nimport clsx from 'clsx';\n\nimport {\n\tgetInputFormObject,\n\tisEmptyValue,\n\tuseForm,\n\tForm,\n\tTextField,\n} from '@netx/core-components/Form';\n\n// TODO: clip service in core-asset/services/attribute/services\nimport type {AttributeId} from '@netx/core-attribute';\nimport {clipAttributes} from '@netx/core-asset/collections/singleton/attributes';\nimport {useMetadataLookups} from '@netx/core-attribute/hooks/useMetadataLookups';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport Attribute, {\n\tAttributeContainerProps,\n} from '@netx/core-attribute/containers/Attribute';\nimport {normalizeValue} from '@netx/core-attribute/utils';\nimport {Permissions, Values} from '@netx/core-asset/models/attribute';\nimport SubmitButton from '@netx/core-components/SubmitButton';\n\nimport useUpdateEffect from '@netx/core-components/hooks/useUpdateEffect';\nexport type SubmitData = {\n\ttemplateId: AttributeId;\n\tvalues: any[];\n};\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: '1 1 auto',\n\t\t\tflexDirection: 'column',\n\t\t\tminHeight: 0,\n\t\t\toverflow: 'hidden',\n\t\t\t'&.disabled': {\n\t\t\t\tpointerEvents: 'none',\n\t\t\t},\n\t\t\t'& footer': {\n\t\t\t\t...theme.mixins.formFooter,\n\t\t\t},\n\t\t},\n\t\tattributes: {\n\t\t\tflex: '1 1 auto',\n\t\t\tpadding: theme.spacing(0.5, 2),\n\t\t\t...theme.mixins.scrollable,\n\t\t},\n\t\theader: {\n\t\t\tflex: '0 0 auto',\n\t\t\tpadding: theme.spacing(0.5, 2, 1, 2),\n\t\t},\n\t\tfooter: {\n\t\t\tposition: 'relative',\n\t\t},\n\t});\n\n/** Get submit data from attribute values */\nfunction getSubmitData(values: Values) {\n\tconst submitData: SubmitData[] = [];\n\tObject.keys(values).forEach((key) => {\n\t\tconst attr = clipAttributes.get(parseInt(key));\n\t\tif (!attr) return;\n\n\t\tconst value = values[key];\n\n\t\t// Cannot empty a mandatory attribute\n\t\tconst empty = isEmptyValue(value);\n\t\tif (empty && attr.get('mandatory') === 1) return;\n\n\t\tconst sendValues = normalizeValue(value);\n\t\tsubmitData.push({\n\t\t\ttemplateId: attr.id,\n\t\t\tvalues: sendValues,\n\t\t});\n\t});\n\n\treturn submitData;\n}\n\nexport interface ClipAttributesProps {\n\tdisableLookups?: boolean;\n\tdisabled?: boolean;\n\tenforceMandatory?: boolean;\n\tloading?: boolean;\n\tonChange?: (hasChanged: boolean, isValid: boolean) => void;\n\tonSubmit: (attributes: SubmitData[], title: string) => Promise;\n\totherDataChanged?: boolean;\n\tpermissions: Permissions;\n\tvalues: Values;\n\tsubmitting?: boolean;\n\tAttributeProps?: Partial<\n\t\tOmit\n\t>;\n}\n\n/**\n * Clip attributes/title editor\n */\nconst ClipAttributes = ({\n\tclasses,\n\tdisableLookups,\n\tdisabled,\n\tenforceMandatory = true,\n\tloading,\n\tonChange,\n\tonSubmit,\n\totherDataChanged,\n\tpermissions,\n\tsubmitting,\n\tvalues,\n\tAttributeProps,\n}: WithStyles & ClipAttributesProps) => {\n\t// Normalize our submit data\n\tconst handleSubmit = useCallback(\n\t\tasync (values) => {\n\t\t\treturn onSubmit(getSubmitData(values), values['clip-title']);\n\t\t},\n\t\t[onSubmit],\n\t);\n\n\tconst form = useForm(undefined, {\n\t\tonChange,\n\t\tonSubmit: handleSubmit,\n\t\tresetOnSubmit: true,\n\t\tresetWithCurrentValues: true,\n\t});\n\tconst inputForm = getInputFormObject(form);\n\n\tuseUpdateEffect(() => {\n\t\tform.reset(values);\n\t}, [values]);\n\n\t// Memo-ize since `clipAttributes.ids()` will always return a new array and will\n\t// cause an infinite state loop if used directly\n\tconst attributeIds = useMemo(() => clipAttributes.ids(), [\n\t\tclipAttributes.length,\n\t]);\n\n\t// Support lookups\n\tconst {attributesWorking, lookup, lookupsAllowed} = useMetadataLookups(\n\t\tattributeIds,\n\t\tdisableLookups,\n\t\tform,\n\t);\n\n\t// Make bare objects\n\tconst attributes = clipAttributes.map((attr) => attr.attributes);\n\n\t// TODO: we need to revisit our attribute set component and create a base one\n\t// that does not rely on the attribute set itself but the data it would contain\n\t// then we can have the current behavior of the set manage that and call on\n\t// the base set component - then we can just pass attributeIds/values etc to the\n\t// base set without having to worry about clip attrs not being a part of sets\n\t// It would also cut down on almost all (repeated) the code in this file\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{attributes.map((attribute) => {\n\t\t\t\t\tconst {attributeid} = attribute;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default withStyles(styles)(React.memo(ClipAttributes));\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-react-view';\nimport '../css/clip-attributes.less';\n\nimport {withTheme} from '@netx/core-components/Theme';\nimport Component from '../components/ClipAttributes';\nconst ThemedComponent = withTheme(Component);\n\nimport {isEmptyValue} from '@netx/core-components/Form';\nimport {getAttributeById} from '@netx/core-asset/components/Attributes/Attribute/utils';\nimport {parseValue} from '@netx/core-attribute/utils';\n\n/** Normalize data */\nconst getDataFromAttributes = (attributeData = [], clipTitle = '') => {\n\tconst permissions = {};\n\tconst values = {'clip-title': clipTitle};\n\tattributeData.forEach((attrData) => {\n\t\tconst clipAttr = getAttributeById(attrData.templateId);\n\t\tif (!clipAttr) return;\n\t\tconst value = parseValue(clipAttr.type, attrData.values);\n\t\tpermissions[clipAttr.attributeid] = attrData.permission;\n\t\tvalues[clipAttr.attributeid] = isEmptyValue(value) ? null : value;\n\t});\n\treturn {\n\t\tpermissions,\n\t\tvalues,\n\t};\n};\n\n/**\n * This is a wrapper for our video clip attributes/title\n * It is more complicated than it needs to be due to the fact this is the only react piece\n * ready at the moment\n */\nexport default class VideoClipEditorView_Attributes extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\tsuper(opts);\n\n\t\tthis.enforceMandatory = opts.enforceMandatory === true;\n\t\tthis.onSubmit = opts.onSubmit;\n\t\tthis.attributeData = getDataFromAttributes(\n\t\t\topts.attributeData || [],\n\t\t\topts.clipTitle,\n\t\t);\n\t\tthis.dataHasChanged = false;\n\t\tthis.hasOutsideChanged = false;\n\t\tthis.submitting = false;\n\t}\n\n\t/** @override */\n\trender() {\n\t\t// TODO: this is freaking out about \"permissions\" not being typed properly (it is the right\n\t\t// format of data, just it is initialized as a an empty `{}`)\n\t\t// but you cannot use types in `.js` files - so going to let this one got for a bit\n\t\treturn super.render(ThemedComponent, {\n\t\t\t...this.attributeData,\n\t\t\tenforceMandatory: this.enforceMandatory,\n\t\t\tloading: this.loading,\n\t\t\tonChange: this.handleChange.bind(this),\n\t\t\tonSubmit: this.onSubmit,\n\t\t\totherDataChanged: this.hasOutsideChanged,\n\t\t\tsubmitting: this.submitting,\n\t\t});\n\t}\n\n\t/**\n\t * When data in the component changes\n\t * @param {boolean} hasChanged\n\t */\n\thandleChange(hasChanged) {\n\t\tthis.dataHasChanged = hasChanged;\n\t}\n\n\t/**\n\t * Allow for the outside to enable the submit button by saying there are other changes\n\t * @param {boolean} hasChanges\n\t */\n\tsetHasChanges(hasChanges) {\n\t\tthis.hasOutsideChanged = hasChanges;\n\t\tthis.render();\n\t}\n\n\t/**\n\t * Allow for the outside to set a loading state on the component\n\t * @param {boolean} loading\n\t */\n\tsetLoading(loading) {\n\t\tthis.loading = loading;\n\t\tthis.render();\n\t}\n\n\t/**\n\t * Allow for the outside to set a submitting state on the component\n\t * @param {boolean} submitting\n\t */\n\tsetSubmitting(submitting) {\n\t\tthis.submitting = submitting;\n\t\tthis.render();\n\t}\n\n\t/**\n\t * Allow for the outside to set new data in component\n\t * @param {array} attributeData {templateId: 0, values: [], permission: 'd'}[]\n\t * @param {string} clipTitle\n\t */\n\tupdateAttributes(\n\t\tattributeData = [],\n\t\tclipTitle = '',\n\t\tenforceMandatory = true,\n\t) {\n\t\tthis.attributeData = getDataFromAttributes(attributeData, clipTitle);\n\t\tthis.enforceMandatory = enforceMandatory;\n\t\tthis.render();\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoClipEditorView_Attributes';\n\t}\n}\n","/**\n * @class\n */\nimport Base from '@netx/core-asset/views/assetConstituentView_clip';\nimport Template from '../templates/videoEditorClipView.html';\n\nexport default class VideoEditorClipView extends Base {\n\t/**\n\t * @override\n\t * @listens module:videoEditor#videoEditor:clip:loaded\n\t * @listens module:videoEditor#videoEditor:clip:new\n\t */\n\tconstructor(opts = {}) {\n\t\topts.className = opts.className || 'clip';\n\t\topts.events = {\n\t\t\tclick: 'loadClip',\n\t\t\t...opts.events,\n\t\t};\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\n\t\t// Hey listen!\n\t\tthis.listenTo(\n\t\t\tdispatcher,\n\t\t\t'videoEditor:clip:loaded',\n\t\t\tthis.clipLoaded,\n\t\t).listenTo(dispatcher, 'videoEditor:clip:new', this.inactive);\n\t}\n\n\t/**\n\t * Make active\n\t * @method\n\t */\n\tactive() {\n\t\tthis.$el.addClass('current');\n\t}\n\n\t/**\n\t * A clip has been loaded (selected)\n\t * @method\n\t * @param {Netx.Models.Constituent_clip} clip Consitutent (clip) model\n\t * @see module:videoEditor#videoEditor:clip:loaded\n\t */\n\tclipLoaded(clip) {\n\t\tclip.id !== this.model.id ? this.inactive() : this.active();\n\t}\n\n\t/**\n\t * Make inactive\n\t * @method\n\t * @see module:videoEditor#videoEditor:clip:new\n\t */\n\tinactive() {\n\t\tthis.$el.removeClass('current');\n\t}\n\n\t/**\n\t * @method\n\t * @param {event} e Mouse event\n\t */\n\tloadClip(e) {\n\t\tif (e?.target?.closest('.nx-action')) return;\n\t\tdispatcher.trigger('videoEditor:clip:load', this.model);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorClipView';\n\t}\n}\n","/**\n * @class\n * @override\n */\nimport Base from '@netx/core-video-editor/views/videoEditorClipView';\n\nimport {faTrashAlt} from '@fortawesome/pro-solid-svg-icons';\nconst icons = Base.initializeIcons({\n\tfaTrashAlt,\n});\n\nexport default class VideoEditorClipView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.icons = {...icons, ...opts.icons};\n\t\tsuper(opts);\n\t}\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-view';\nimport Template from '../templates/videoEditorClipsView.html';\n\nimport ChildView from './videoEditorClipView';\nimport ChildViews from '@netx/core/functionality/childViews';\n\nexport default class VideoEditorClipsView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.childView = {\n\t\t\tviewClass: ChildView,\n\t\t\tid(model) {\n\t\t\t\treturn `clip-${model.id}`;\n\t\t\t},\n\t\t\t...opts.childView,\n\t\t};\n\t\topts.id = opts.id || 'videoEditor-clips-view';\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoEditorClipsView';\n\t}\n}\n\n// Functionality\nChildViews(VideoEditorClipsView);\n","/**\n * @class\n * @override\n */\nimport Base from '@netx/core-video-editor/views/videoEditorClipsView';\n\nimport Collapsable from '@netx/core/functionality/collapsable';\nimport Resizable from '@netx/core/functionality/resizable';\n\nimport {faAngleLeft} from '@fortawesome/pro-solid-svg-icons';\nconst icons = Base.initializeIcons({\n\tfaAngleLeft,\n});\n\nclass VideoEditorClipsView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.className = `panel panel--horizontal panel--left ${\n\t\t\topts.className || ''\n\t\t}`;\n\t\topts.collapsable = {\n\t\t\tcollapsed: true,\n\t\t\t...opts.collapsable,\n\t\t};\n\n\t\topts.resizeDragFrom = 'right';\n\t\topts.resizeMinWidth = 230;\n\n\t\topts.icons = {...icons, ...opts.icons};\n\t\tsuper(opts);\n\t}\n}\n\nCollapsable(VideoEditorClipsView);\nResizable(VideoEditorClipsView);\n\nexport default VideoEditorClipsView;\n","/**\n * @class\n */\n\nimport Base from './videoEditorView';\nimport Template from '../templates/videoClipEditorView.html';\n\nimport AssetConstituentClipModel from '@netx/core-asset/models/assetConstituent_clip';\nimport VideoClipEditorView_Attributes from './videoClipEditorView_attributes';\nimport VideoEditorClipsView from './videoEditorClipsView';\n\nexport default class VideoClipEditorView extends Base {\n\t/**\n\t * @override\n\t * @listens module:videoEditor#videoEditor:clip:load\n\t * @listens module:videoEditor#videoEditor:clip:load:confirmed\n\t * @listens module:videoEditor#videoEditor:clip:new\n\t * @listens module:videoEditor#videoEditor:clip:new:confirmed\n\t * @listens module:asset#asset:constituent:clip:delete:success\n\t */\n\tconstructor(opts = {}) {\n\t\topts.collection = opts.collection || Netx.asset.current.constituents.clips;\n\t\topts.eventStr = opts.eventStr || 'asset:constituent:clip:edit';\n\t\topts.headerTitle = opts.headerTitle || i18n.t('i18n.videoClipEditor');\n\t\topts.id = opts.id || 'video-clip-editor-view';\n\t\topts.removeOnHide = opts.removeOnHide !== false;\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\n\t\t// Debounced/throttled methods\n\t\tthis.checkSubmit = _.debounce(this.checkSubmit, 100);\n\n\t\tthis.clipsPanelOpen = opts.clipsPanelOpen === true;\n\n\t\t/**\n\t\t * @memberOf Netx.Views.VideoClipEditorView\n\t\t * @alias clipAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.clipAttributes =\n\t\t\topts.clipAttributes || Netx.getAttributesByObjectType('clip');\n\t\t/**\n\t\t * A copy of default clip data attributes\n\t\t * @memberOf Netx.Views.VideoClipEditorView\n\t\t * @alias clipData\n\t\t * @type {object}\n\t\t */\n\t\tthis.clipData = AssetConstituentClipModel.GetDefaults();\n\n\t\tthis.clip = opts.clip;\n\n\t\t////////////////////////////////////\n\t\t// Sub views\n\t\t////////////////////////////////////\n\t\t/**\n\t\t * Clip attributes view\n\t\t * @memberOf Netx.Views.VideoClipEditorView\n\t\t * @alias clipAttributesView\n\t\t * @type {object}\n\t\t */\n\t\tthis.clipAttributesView = this.addSubView(\n\t\t\tnew VideoClipEditorView_Attributes({\n\t\t\t\tonSubmit: this.submit.bind(this),\n\t\t\t}),\n\t\t);\n\t\t/**\n\t\t * Clips view\n\t\t * @memberOf Netx.Views.VideoClipEditorView\n\t\t * @alias clipsView\n\t\t * @type {object}\n\t\t */\n\t\tthis.clipsView = this.addSubView(\n\t\t\tnew VideoEditorClipsView({\n\t\t\t\tcollection: this.collection,\n\t\t\t}),\n\t\t);\n\t\t////////////////////////////////////\n\t\t// !Sub views\n\t\t////////////////////////////////////\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tthis.clipAttributesView,\n\t\t\t'formChanged',\n\t\t\tthis.attributesChanged,\n\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'videoEditor:clip:load',\n\t\t\t\t_.debounce(this.loadClip, 100),\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'videoEditor:clip:load:confirmed',\n\t\t\t\t_.debounce(this.loadClipConfirmed, 100),\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'videoEditor:clip:new',\n\t\t\t\t_.debounce(this.newClip, 100),\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'videoEditor:clip:new:confirmed',\n\t\t\t\t_.debounce(this.newClipConfirmed, 100),\n\t\t\t)\n\t\t\t.listenTo(dispatcher, this.eventStr + ':success', this.applied)\n\t\t\t.listenTo(dispatcher, this.eventStr + ':error', this.errored);\n\t}\n\n\t/** @override */\n\tbindCollectionEvents() {\n\t\tsuper.bindCollectionEvents();\n\t\treturn this.listenTo(this.collection, 'remove', this.clipRemoved);\n\t}\n\n\t/** @override */\n\tpostRender() {\n\t\tsuper.postRender();\n\n\t\t// Cache\n\t\tthis.$attributes = this.$el.find('[data-nx-control=\"attributes\"]');\n\t\tthis.$clips = this.$el.find('[data-nx-control=\"clips\"]');\n\n\t\t// Append our panels\n\t\tthis.clipAttributesView.setElement(this.$attributes).render();\n\t\t//this.$attributes.append(this.clipAttributesView.$el);\n\t\tthis.clipsView.setElement(this.$clips).render();\n\n\t\t// When we are shown\n\t\tthis.whenShown.then(() => {\n\t\t\tthis.clipAttributesView.show();\n\t\t\tthis.clipsView.show();\n\t\t});\n\n\t\t// When player is ready\n\t\tthis.playerReady.then(() => {\n\t\t\t// Load clip off the bat (otherwise they will be creating a new clip)\n\t\t\tif (this.clip) {\n\t\t\t\treturn this.loadClipConfirmed(this.clip);\n\t\t\t}\n\t\t\t// New clip\n\t\t\tthis.newClipConfirmed();\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @fires module:app#app:alert\n\t * @fires module:videoEditor#videoEditor:edit:confirmed\n\t */\n\tsubmit(attributes, title) {\n\t\tconst data = this.getData();\n\n\t\tthis.clipAttributesView.setSubmitting(true);\n\n\t\t// Get additional attribute/title data\n\t\tObject.assign(data, {\n\t\t\tattributes,\n\t\t\ttitle,\n\t\t});\n\n\t\tif (_.isObject(data) && _.keys(data).length) {\n\t\t\tdispatcher.trigger(\n\t\t\t\t`${this.eventStr}:confirmed`,\n\t\t\t\tthis.model,\n\t\t\t\tthis.clip,\n\t\t\t\tdata,\n\t\t\t);\n\t\t} else {\n\t\t\tthis.clipAttributesView.setSubmitting(false);\n\t\t\tdispatcher.trigger(\n\t\t\t\t'app:alert',\n\t\t\t\ti18n.t('i18n.noValidEditOperationsFound'),\n\t\t\t\ti18n.t('i18n.error'),\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} assetId Asset id\n\t * @param {module:asset/models/assetConstituent_clip} clip Constituent (clip) model\n\t * @fires module:videoEditor#videoEditor:clip:loaded\n\t */\n\tapplied(assetId, clip) {\n\t\tthis.clipAttributesView.setSubmitting(false);\n\n\t\t// Store current clip\n\t\tthis.clip = clip;\n\t\tthis.clipData = _.clone(clip.attributes);\n\n\t\t// Load attributes\n\t\tthis.loadAttributes(clip);\n\n\t\t// In case we were new around here\n\t\tdispatcher.trigger('videoEditor:clip:loaded', clip);\n\n\t\t// Check apply\n\t\tthis.checkSubmit();\n\t}\n\n\t/**\n\t * @method\n\t */\n\tattributesChanged($input) {\n\t\t// Check apply\n\t\tthis.checkSubmit();\n\t}\n\n\t/**\n\t * @method\n\t */\n\tcheckSubmit() {\n\t\tthis.$submit.enableIf(this.hasChanges());\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:asset/models/assetConstituent_clip} clip Constituent (clip) model\n\t */\n\tclipRemoved(clip) {\n\t\t// The clip we had loaded is no longer with us\n\t\tif (this.clip && this.clip.id === clip.id) {\n\t\t\tthis.newClip();\n\t\t}\n\t}\n\n\t/** @method */\n\terrored() {\n\t\tthis.clipAttributesView.setSubmitting(false);\n\t}\n\n\t/**\n\t * @override\n\t * @return {boolean}\n\t */\n\thasAssets() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Changed\n\t */\n\thasChanges() {\n\t\tconst data = this.getData();\n\n\t\tlet changes = this.clipAttributesView.dataHasChanged;\n\n\t\tif (_.isObject(data) && _.keys(data).length) {\n\t\t\tif (data.range) {\n\t\t\t\tif (\n\t\t\t\t\tdata.range.start != this.clipData?.startTime ||\n\t\t\t\t\tdata.range.end != this.clipData?.endTime\n\t\t\t\t) {\n\t\t\t\t\tchanges = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.clipAttributesView.setHasChanges(changes);\n\t\treturn changes;\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:asset/models/assetConstituent_clip} clip Constituent (clip) model\n\t */\n\tloadAttributes(clip) {\n\t\tthis.clipAttributesView.updateAttributes(\n\t\t\tclip.get('attributes'),\n\t\t\tclip.get('title'),\n\t\t\tthis.clip?.id == null,\n\t\t);\n\t}\n\n\t/**\n\t * Load the clip\n\t * @method\n\t * @param {module:asset/models/assetConstituent_clip} clip Constituent (clip) model\n\t * @fires module:app#app:confirm\n\t * @see mdoule:videoEditor#videoEditor:clip:load:confirmed\n\t * @see mdoule:videoEditor#videoEditor:clip:load:cancelled\n\t */\n\tloadClip(clip) {\n\t\t// Unsaved changes\n\t\tif (this.hasChanges()) {\n\t\t\tdispatcher.trigger('app:confirm', {\n\t\t\t\tmessage: i18n.t('i18n.loadUnsavedChanges'),\n\t\t\t\teventStr: 'videoEditor:clip:load',\n\t\t\t\targs: [clip],\n\t\t\t});\n\t\t}\n\t\t// Just load it\n\t\telse {\n\t\t\tthis.clipAttributesView.setLoading(true);\n\t\t\tthis.loadClipConfirmed(clip);\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:asset/models/assetConstituent_clip} clip Constituent (clip) model\n\t * @fires module:videoEditor#videoEditor:operation:set:value\n\t * @fires module:videoEditor#videoEditor:clip:loaded\n\t * @see module:videoEditor#videoEditor:clip:load:confirmed\n\t */\n\tloadClipConfirmed(clip) {\n\t\t// Range object\n\t\tconst range = {\n\t\t\tstart: parseFloat(clip.get('startTime')),\n\t\t\tend: parseFloat(clip.get('endTime')),\n\t\t};\n\n\t\t// Store current clip\n\t\tthis.clip = clip;\n\n\t\t// Copy of clip's data\n\t\tthis.clipData = _.clone(clip.attributes);\n\n\t\tthis.clipAttributesView.setLoading(false);\n\n\t\t// Load attributes\n\t\tthis.loadAttributes(clip);\n\n\t\t// Update operations\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operation:set:value',\n\t\t\tthis.model.operationsStack,\n\t\t\t'range',\n\t\t\trange,\n\t\t\trange,\n\t\t);\n\t\t// Let it be known\n\t\tdispatcher.trigger('videoEditor:clip:loaded', clip);\n\n\t\t// Check apply\n\t\tthis.checkSubmit();\n\t}\n\n\t/**\n\t * @method\n\t * @param {event} e Mouse event\n\t * @fires module:app#app:confirm\n\t * @see module:videoEditor#videoEditor:clip:new\n\t */\n\tnewClip(e) {\n\t\t// Unsaved changes\n\t\tif (this.hasChanges()) {\n\t\t\tdispatcher.trigger('app:confirm', {\n\t\t\t\tmessage: i18n.t('i18n.loadUnsavedChanges', {\n\t\t\t\t\tdefaultValue:\n\t\t\t\t\t\t'You have unsaved changes. If you choose to create a new clip, without saving, all changes will be lost. Create new clip anyways?',\n\t\t\t\t}),\n\t\t\t\teventStr: 'videoEditor:clip:new',\n\t\t\t});\n\t\t} else {\n\t\t\tthis.newClipConfirmed();\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @fires module:videoEditor#videoEditor:operation:set:value\n\t * @see module:videoEditor#videoEditor:clip:new:confirmed\n\t */\n\tnewClipConfirmed() {\n\t\t// Range object ( 0 - end )\n\t\tconst range = {start: 0, end: this.videojs.duration()};\n\n\t\t// If existing clip and end time is less than duration, set the new clip's start time to the last clip's end time\n\t\tif (this.clip) {\n\t\t\tconst endTime = parseFloat(this.clip.get('endTime'));\n\t\t\tif (endTime < this.videojs.duration()) {\n\t\t\t\trange.start = endTime;\n\t\t\t}\n\t\t}\n\n\t\t// No exisiting clip model currently\n\t\tthis.clip = null;\n\t\tthis.clipData = AssetConstituentClipModel.GetDefaults();\n\n\t\t// Load attributes\n\t\tthis.loadAttributes(new AssetConstituentClipModel());\n\n\t\t// Update operations\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operation:set:value',\n\t\t\tthis.model.operationsStack,\n\t\t\t'range',\n\t\t\trange,\n\t\t\trange,\n\t\t);\n\n\t\t// Check apply\n\t\tthis.checkSubmit();\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'VideoClipEditorView';\n\t}\n}\n","/**\n * @class\n * @override\n */\nimport Base from '@netx/core-video-editor/views/videoClipEditorView';\n\nimport Collapsable from '@netx/core/functionality/collapsable';\nimport Resizable from '@netx/core/functionality/resizable';\n\nimport {\n\tfaAngleRight,\n\tfaPlus,\n\tfaSave,\n\tfaTimes,\n} from '@fortawesome/pro-solid-svg-icons';\nconst icons = Base.initializeIcons({\n\tfaAngleRight,\n\tfaPlus,\n\tfaSave,\n\tfaTimes,\n});\n\nexport default class VideoClipEditorView extends Base {\n\t/** @override */\n\tconstructor(opts = {}) {\n\t\topts.collapsable = {\n\t\t\telSelector: '.attributes-panel',\n\t\t\t...opts.collapsable,\n\t\t};\n\n\t\topts.icons = {...icons, ...opts.icons};\n\n\t\topts.resizeDragFrom = 'left';\n\t\topts.resizeMinWidth = 230;\n\t\topts.resizeTargetSelector = '.attributes-panel';\n\n\t\tsuper(opts);\n\n\t\tthis.resized = _.throttle(this.resized, 150);\n\t}\n}\n\nCollapsable(VideoClipEditorView);\nResizable(VideoClipEditorView);\n","export default {\n\t// /**\n\t// * videoeditor route. (Lowercased.) Keep routes simple; they should just fire events handled elsewhere.\n\t// * @route\n\t// * @param {number} id\n\t// */\n\t// \"asset/:id/videoeditor\": function(id){\n\t// \tdispatcher.trigger('videoEditor:routed', id);\n\t// }\n};\n","/**\n * Video Editor module\n *\n * @module videoEditor\n */\n\n// Models\nimport AssetModel from '@netx/core-asset/models/asset';\nimport VideoEditorOperationModel from './models/videoEditorOperation';\nimport VideoEditorVideoModel from './models/videoEditorVideo';\n\n// Views\nimport VideoClipEditorView from './views/videoClipEditorView';\nimport VideoEditorView from './views/videoEditorView';\n\n// Collections\nimport AttributesCollection from '@netx/core-asset/collections/attributes';\nimport VideoEditorOperationsCollection from './collections/videoEditorOperations';\n\nimport customConfig from './config';\nimport routes from './routes';\n\n// MODULE INITIALIZATION\n// =====================\n// All collection and model instances and event listeners\n// are created when the module is initialized.\n\n/**\n * Init handler\n * @event {@link module:videoEditor#videoEditor:init|videoEditor:init}\n * @param {object} options Normally undefined, but a manual init trigger may override properties of Netx.custom.videoEditor here.\n */\ndispatcher.once('videoEditor:init', function(options) {\n\tvar NS = (Netx.videoEditor = {});\n\t// Check for module options\n\tNS.options = options = _.extend({}, customConfig, options);\n\n\t// PUBLIC MODELS & COLLECTIONS\n\t// ===========================\n\t// Object initializations, etc, go here.\n\n\t// Turn our config.OPERATIONS into a legitimate collection - just makes life easier\n\tNS.operations = new VideoEditorOperationsCollection([]);\n\tNS.operations.add(\n\t\t_.map(options.OPERATIONS, function(o, k) {\n\t\t\treturn _.extend(\n\t\t\t\t{\n\t\t\t\t\tname: k,\n\t\t\t\t},\n\t\t\t\to,\n\t\t\t);\n\t\t}),\n\t);\n\n\t// Will need adjusting\n\tNS.video = {};\n\n\t// BEGIN DISPATCHER EVENT LISTENERS\n\t// ================================\n\t// All other module event listeners are added here, inside the init handler.\n\n\t/**\n\t * @event module:videoEditor#videoEditor:routed\n\t * @param {string} id Asset id\n\t * @fires module:videoEditor#videoEditor:repurpose\n\t * @fires module:videoEditor#videoEditor:error\n\t */\n\tdispatcher.on('videoEditor:routed', function(id) {\n\t\tvar asset = new AssetModel({assetId: parseInt(id)});\n\n\t\tasset.fetch().then(\n\t\t\tfunction() {\n\t\t\t\tdispatcher.trigger('videoEditor:repurpose', asset);\n\t\t\t},\n\t\t\tfunction(err) {\n\t\t\t\tdispatcher.trigger('videoEditor:error', err);\n\t\t\t},\n\t\t);\n\t});\n\n\t/**\n\t * @event module:videoEditor#videoEditor:clips:routed\n\t * @param {string} id Asset id\n\t * @param {string} clipId Constituent (clip) id\n\t * @fires module:videoEditor#videoEditor:clips:edit\n\t * @fires module:videoEditor#videoEditor:error\n\t */\n\tdispatcher.on('videoEditor:clips:routed', function(id, clipId) {\n\t\tvar asset = new AssetModel({assetId: parseInt(id)});\n\n\t\tasset.fetch().then(\n\t\t\tfunction() {\n\t\t\t\tasset.fetchConstituents().then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tvar clip = asset.constituents.clips.get(clipId);\n\t\t\t\t\t\tdispatcher.trigger('videoEditor:clips:edit', asset, clip);\n\t\t\t\t\t},\n\t\t\t\t\tfunction(err) {\n\t\t\t\t\t\tdispatcher.trigger('videoEditor:error', err);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t},\n\t\t\tfunction(err) {\n\t\t\t\tdispatcher.trigger('videoEditor:error', err);\n\t\t\t},\n\t\t);\n\t});\n\n\t/**\n\t * @event module:asset#asset:constituent:clip:edit:error\n\t * @param {string} error Error string\n\t * @fires module:app#app:alert\n\t * @see module:asset#asset:constituent:clip:edit:confirmed\n\t */\n\tdispatcher.on(\n\t\t'videoEditor:error',\n\t\tfunction(error) {\n\t\t\tdispatcher.trigger('app:alert', error, i18n.t('i18n.error'));\n\t\t},\n\t\twindow,\n\t);\n\n\t/**\n\t * @event module:videoEditor#videoEditor:clips:edit:show\n\t * @param {object} viewOptions View options\n\t */\n\tdispatcher.on(\n\t\t'videoEditor:clips:edit:show',\n\t\tfunction(viewOptions) {\n\t\t\tNetx.app.fsViews.add({\n\t\t\t\tviewClass: VideoClipEditorView,\n\t\t\t\tshowActions: ['videoEditor:clips:edit:show'],\n\t\t\t\tviewOptions: viewOptions,\n\t\t\t});\n\t\t},\n\t\twindow,\n\t);\n\t/**\n\t * @event module:videoEditor#videoEditor:clips:edit\n\t * @param {module:asset/models/asset} asset Asset\n\t * @param {module:asset/models/assetConstituent_clip} clip Clip\n\t * @fires module:videoEditor#videoEditor:clips:edit:show\n\t */\n\tdispatcher.on('videoEditor:clips:edit', function(asset, clip) {\n\t\tif (_.indexOf(asset.get('fileFormatFamily'), 'video') < 0) {\n\t\t\tconsole.error('Asset is not a video file');\n\t\t\treturn;\n\t\t}\n\n\t\tif (!window.location.hash.includes('/clips/edit')) {\n\t\t\tvar route = 'asset/' + asset.id + '/clips/edit';\n\t\t\tif (clip) route += '/' + clip.id;\n\t\t\tNetx.router.navigate(route);\n\t\t}\n\n\t\t// Set our current audio\n\t\tNS.video.current = new VideoEditorVideoModel({}, {asset: asset});\n\n\t\t// Get supported processes list\n\t\tNS.operations.fetch(asset).then(function() {\n\t\t\t// Get attributes for our clips\n\t\t\tvar attributes = new AttributesCollection([], {\n\t\t\t\tcategoryIds: asset.get('categories') || [],\n\t\t\t});\n\t\t\tattributes.fetch();\n\n\t\t\t// Show\n\t\t\tdispatcher.trigger('videoEditor:clips:edit:show', {\n\t\t\t\tcollection: asset.constituents.clips,\n\t\t\t\tmodel: NS.video.current,\n\t\t\t\tclip: clip,\n\t\t\t\tclipAttributes: attributes.filterByObjectType('clip'),\n\t\t\t\trouteMatch: new RegExp(/^asset\\/(\\d+)\\/clips\\/edit/),\n\t\t\t\tisRouted: true,\n\t\t\t});\n\t\t});\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:repurpose:show\n\t * @param {object} viewOptions View options\n\t */\n\tdispatcher.on(\n\t\t'videoEditor:repurpose:show',\n\t\tfunction(viewOptions) {\n\t\t\tNetx.app.fsViews.add({\n\t\t\t\tviewClass: VideoEditorView,\n\t\t\t\tshowActions: ['videoEditor:repurpose:show'],\n\t\t\t\tviewOptions: viewOptions,\n\t\t\t});\n\t\t},\n\t\twindow,\n\t);\n\t/**\n\t * @event module:videoEditor#videoEditor:repurpose\n\t * @param {module:asset/models/asset} asset Asset model\n\t * @fires module:videoEditor#videoEditor:repurpose:error\n\t * @fires module:videoEditor#videoEditor:clips:edit\n\t */\n\tdispatcher.on('videoEditor:repurpose', function(asset) {\n\t\tif (_.indexOf(asset.get('fileFormatFamily'), 'video') < 0) {\n\t\t\tconsole.error('Asset is not a video file');\n\t\t\treturn;\n\t\t}\n\n\t\tif (!window.location.hash.includes('/videoeditor')) {\n\t\t\tNetx.router.navigate('asset/' + asset.id + '/videoeditor');\n\t\t}\n\n\t\t// Set our current audio\n\t\tNS.video.current = new VideoEditorVideoModel({}, {asset: asset});\n\n\t\t// Get supported processes list\n\t\tNS.operations.fetch(asset).then(function() {\n\t\t\t// Show\n\t\t\tdispatcher.trigger('videoEditor:repurpose:show', {\n\t\t\t\tmodel: NS.video.current,\n\t\t\t\trouteMatch: new RegExp(/^asset\\/(\\d+)\\/videoeditor/),\n\t\t\t\tisRouted: true,\n\t\t\t});\n\t\t});\n\t});\n\n\t/**\n\t * @event module:videoEditor#videoEditor:operation:control:move:down\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t * @param {Netx.Models.VideoEditorOperation} model VideoEditorOperation model\n\t * @fires module:videoEditor#videoEditor:operations:update\n\t */\n\tdispatcher.on('videoEditor:operation:control:move:down', function(\n\t\tcollection,\n\t\tmodel,\n\t) {\n\t\tcollection.updateIndex(model, 1);\n\t\tdispatcher.trigger('videoEditor:operations:update', collection);\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:operation:control:move:up\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t * @param {Netx.Models.VideoEditorOperation} model VideoEditorOperation model\n\t * @fires module:videoEditor#videoEditor:operations:update\n\t */\n\tdispatcher.on('videoEditor:operation:control:move:up', function(\n\t\tcollection,\n\t\tmodel,\n\t) {\n\t\tcollection.updateIndex(model, -1);\n\t\tdispatcher.trigger('videoEditor:operations:update', collection);\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:operation:controls:reset\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t */\n\tdispatcher.on('videoEditor:operation:controls:reset', function(collection) {\n\t\tcollection.reset();\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:operation:set:value\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t * @param {string} name Operation name\n\t * @param {array|number|object|string} value Operation value\n\t * @param {array|number|object|string} serverValue Operation value that will be passed to server\n\t * @param {boolean} bypassUpdate Whether or not to bypass firing module:videoEditor#videoditor:operations:update\n\t * @fires module:videoEditor#videoEditor:operations:update\n\t */\n\tdispatcher.on('videoEditor:operation:set:value', function(\n\t\tcollection,\n\t\tname,\n\t\tvalue,\n\t\trealValue,\n\t\tbypassUpdate,\n\t) {\n\t\t// Get operation model\n\t\tvar model = collection.findWhere({name: name});\n\t\tif (model) {\n\t\t\t// Set silently\n\t\t\tmodel.set(\n\t\t\t\t{\n\t\t\t\t\tvalue: value,\n\t\t\t\t\trealValue: realValue,\n\t\t\t\t},\n\t\t\t\t{silent: true},\n\t\t\t);\n\t\t\t// Fire update\n\t\t\tif (!bypassUpdate)\n\t\t\t\tdispatcher.trigger('videoEditor:operations:update', collection);\n\t\t}\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:operations:add:control\n\t * @param {object} control Operation control object ( will be converted to Netx.Models.VideoEditorOperation )\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t * @param {boolean} bypassUpdate Whether or not to bypass firing module:videoEditor#audioEditor:operations:update\n\t * @fires module:app#app:confirm\n\t * @fires module:videoEditor#videoEditor:operations:add:control:confirmed\n\t */\n\tdispatcher.on('videoEditor:operations:add:control', function(\n\t\tcontrol,\n\t\tcollection,\n\t\tbypassUpdate,\n\t) {\n\t\tif (!control || !collection) return;\n\n\t\tif (!_.isUndefined(control.excludes)) {\n\t\t\t// See if this affects any other set operations\n\t\t\tvar affected = collection.filter(function(m) {\n\t\t\t\treturn _.indexOf(control.excludes, m.get('name')) > -1;\n\t\t\t});\n\t\t\tif (affected.length) {\n\t\t\t\treturn dispatcher.trigger('app:confirm', {\n\t\t\t\t\tmessage: i18n.t(\n\t\t\t\t\t\t'videoEditor:i18n.theFollowingControlsWillBeRemoved',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdefaultValue:\n\t\t\t\t\t\t\t\t'The following controls will be removed: __things__',\n\t\t\t\t\t\t\tthings: _.map(affected, function(m) {\n\t\t\t\t\t\t\t\treturn m.get('name');\n\t\t\t\t\t\t\t}).toString(),\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\teventStr: 'videoEditor:operations:add:control',\n\t\t\t\t\targs: [control, collection, bypassUpdate, affected],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tdispatcher.trigger(\n\t\t\t'videoEditor:operations:add:control:confirmed',\n\t\t\tcontrol,\n\t\t\tcollection,\n\t\t\tbypassUpdate,\n\t\t);\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:operations:add:control:confirmed\n\t * @param {object} control Operation control object ( will be converted to Netx.Models.VideoEditorOperation )\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t * @param {boolean} bypassUpdate Whether or not to bypass firing module:videoEditor#videoEditor:operations:update\n\t */\n\tdispatcher.on('videoEditor:operations:add:control:confirmed', function(\n\t\tcontrol,\n\t\tcollection,\n\t\tbypassUpdate,\n\t\ttoRemove,\n\t) {\n\t\tif (toRemove) {\n\t\t\t_.each(toRemove, function(op) {\n\t\t\t\tcollection.remove(op);\n\t\t\t});\n\t\t}\n\t\t// Make into model\n\t\tvar m = new VideoEditorOperationModel(\n\t\t\t_.extend(control, {order: collection.length}),\n\t\t);\n\t\t// Add to collection\n\t\tcollection.add(m);\n\t\t// Fire update\n\t\tif (!bypassUpdate)\n\t\t\tdispatcher.trigger('videoEditor:operations:update', collection);\n\t});\n\t/**\n\t * @event module:videoEditor#videoEditor:operations:remove:control\n\t * @param {Netx.Collections.VideoEditorOperations} collection VideoEditorOperations collection\n\t * @param {Netx.Models.VideoEditorOperation} model VideoEditorOperation model\n\t * @param {boolean} bypassUpdate Whether or not to bypass firing module:videoEditor#audioEditor:operations:update\n\t */\n\tdispatcher.on('videoEditor:operations:remove:control', function(\n\t\tcollection,\n\t\tmodel,\n\t\tbypassUpdate,\n\t) {\n\t\t// Remove operation from collection\n\t\tcollection.remove(model);\n\t\t// Fire update\n\t\tif (!bypassUpdate)\n\t\t\tdispatcher.trigger('videoEditor:operations:update', collection);\n\t});\n\n\t// END DISPATCHER EVENT LISTENERS\n\n\t// LAST STEPS:\n\t// non-core extensions may listen on this event to hook into the init process:\n\tdispatcher.trigger('videoEditor:extend', NS);\n\t// Tell the module loader we're initialized.\n\tdispatcher.trigger('videoEditor:initialized', NS);\n});\n\nexport default {\n\tinitialize(opts) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tdispatcher.once('videoEditor:initialized', () => {\n\t\t\t\tresolve(routes);\n\t\t\t});\n\t\t\tdispatcher.trigger('videoEditor:init');\n\t\t});\n\t},\n};\n","/**\n * VideoEditor module\n */\n\nimport actions from './actions';\nimport menus from './menus';\nimport controller from './controller';\n\n/**\n * @property {object} exports - Our module exports\n * @property {string} exports.namespace - Module namespace\n * @property {function} exports.initialize - Module initializer\n */\nexport default {\n\tnamespace: 'videoEditor',\n\tinitialize() {\n\t\t// Register actions\n\t\tNetx.Actions.Register(actions);\n\t\t// Extend menus\n\t\tNetx.addMenus(menus);\n\n\t\treturn controller.initialize();\n\t},\n};\n","import {UserLevel} from '@netx/core-user/constants';\n\nexport const MINIMUM_USER_LEVEL = UserLevel.MANAGER;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const CHIP_SKELETON_CLASS_NAME = 'ChipSkeleton';\nexport const CHIP_SKELETON_CLASS_SLOTS = ['root'] as const;\n\nexport type ChipSkeletonClassSlot = typeof CHIP_SKELETON_CLASS_SLOTS[number];\n\nexport interface ChipSkeletonClasses {\n\troot: string;\n}\n\nexport type ChipSkeletonClassKey = keyof ChipSkeletonClasses;\n\nexport const getChipSkeletonUtilityClass = (slot: ChipSkeletonClassSlot) =>\n\tgenerateUtilityClass(CHIP_SKELETON_CLASS_NAME, slot);\n\nexport const chipSkeletonClasses: ChipSkeletonClasses = generateUtilityClasses(\n\tCHIP_SKELETON_CLASS_NAME,\n\t['root'],\n);\n\nexport default chipSkeletonClasses;\n","import React from 'react';\nimport {i18n} from '@netx/core/i18n';\n\nimport Chip, {ChipProps, ChipSkeleton} from '@netx/core-components/Chip';\n\nimport {Avatar, Tooltip} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {\n\tfaBookMedical as PlusIcon,\n\tfaSearch as SearchIcon,\n} from '@fortawesome/pro-solid-svg-icons';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\ticon: {\n\t\t\tflex: '0 0 auto',\n\t\t\tlineHeight: 1,\n\t\t},\n\t\tsearch: {\n\t\t\tcursor: 'pointer',\n\t\t},\n\t});\n\nexport type ValueChipProps = ChipProps & {\n\tloading?: boolean;\n\tonSearch?: (value: string) => void;\n\tuncontrolledValue?: boolean;\n\tvalue?: string;\n};\n\nconst ValueChip = ({\n\tclasses,\n\tloading,\n\tonSearch,\n\tuncontrolledValue,\n\tvalue,\n\t...props\n}: WithStyles & ValueChipProps) => {\n\tif (loading) return ;\n\tif (value == null) return null;\n\treturn (\n\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t) : onSearch ? (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonSearch(value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport default withStyles(styles)(ValueChip);\n","import React, {useEffect} from 'react';\nimport {FormValidationError} from '..';\n\ntype Options = {\n\terror?: FormValidationError | boolean;\n\tinputRef: React.RefObject;\n};\n\nconst IGNORE = ['INPUT', 'SELECT'];\n\nexport const useErrorFocus = ({error, inputRef}: Options) => {\n\tuseEffect(() => {\n\t\tif (\n\t\t\t!error ||\n\t\t\t(document.activeElement &&\n\t\t\t\tIGNORE.includes(document.activeElement?.nodeName))\n\t\t)\n\t\t\treturn;\n\n\t\t// console.log(document.activeElement?.nodeName);\n\t\tinputRef.current?.focus();\n\t}, [error]);\n};\n\nexport default useErrorFocus;\n","/**\n * Our generic attribute set\n * We have two different kinds of \"attribute sets\", a system set and a user set.\n * They both do virtually the exact same thing aside from how they are created/deleted/read/updated from the server.\n * This is so both can extend and get the same functionality and so we can have a unified collection at some level.\n * @class\n * @extends Netx.Model\n * @todo DAM-11838 When we are able to deprecate the system sets this model will cease to exist\n * and UserAssetAttributeSet will be renamed to AssetAttributeSet and be the only model\n * for attribute sets (period).\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport AttributesCollection from '../collections/attributes';\n\nimport attributesSingleton from '../collections/singleton/attributes';\n\nexport default class AssetAttributeSet extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {string} defaults.id - The default attribute set id (will be the id of the set prepended by either \"system-\" or \"user-\")\n\t * @property {array} defaults.attributeIds - The default attribute template ids\n\t * @property {string} defaults.name - The default attribute set name\n\t * @property {Netx.Collections.AssetAttributes} defaults.attributes - The default collection of attribute templates (client side)\n\t * @property {string} defaults.description - The default description (client side)\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\t// id : '',\n\t\t\tattributeIds: [],\n\t\t\tname: '',\n\n\t\t\t// system\n\t\t\tactive: 1,\n\n\t\t\t// Client attributes\n\t\t\tdescription: '',\n\t\t};\n\t}\n\t/** @type {object} */\n\tget clientAttrs() {\n\t\treturn ['attributes', 'description'];\n\t}\n\n\t/**\n\t * @property {object} methods - Methods for this model\n\t * @property {array} methods.fetchBean - Fetch attribute field set bean\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Fetch attribute field set bean\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t * @todo This is a hack until the user and system sets are unified - see todo in class description\n\t\t\t */\n\t\t\tfetchBean(opts) {\n\t\t\t\treturn ['getAttributeFieldSet', parseInt(this.id.replace('user-', ''))];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Parsers for this model\n\t * @property {method} parsers.fetchBean - Parse response of fetch attribute set bean\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} data Response data\n\t\t\t * @param {object} opts Request options\n\t\t\t * @todo This is a hack until the user and system sets are unified - see todo in class description\n\t\t\t */\n\t\t\tfetchBean(data, opts) {\n\t\t\t\t// We set the ids around here\n\t\t\t\tthis.set(_.omit(data, 'id'), opts);\n\t\t\t\t!opts.silent && this.trigger('sync', this, data, opts);\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attr Model attributes\n\t * @param {object} opts Model options\n\t * @listens module:user#user:attributeSet:edit:success\n\t */\n\tconstructor(attr, opts = {}) {\n\t\tsuper(attr, opts);\n\n\t\t/**\n\t\t * Contains all avialable asset attribute templates\n\t\t * @memberOf module:asset/models/assetAttributeSet\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t * @todo we need to find a good way of passing additonal arguments to our models\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || attributesSingleton;\n\n\t\t/**\n\t\t * Contains all attribute templates for this set\n\t\t * @memberOf module:asset/models/assetAttributeSet\n\t\t * @alias setAttributes\n\t\t */\n\t\tthis.attributeTemplates = new AttributesCollection([], {comparator: null});\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'change:attributeIds', this.populateAttributes)\n\t\t\t.listenTo(this, 'request:fetchBean', (model, xhr, opts) => {\n\t\t\t\tthis.trigger('request:read', this, xhr, opts);\n\t\t\t})\n\t\t\t// TODO: This is a hack until the user and system sets are unified - see todo in class description\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'user:attributeSet:edit:success',\n\t\t\t\t(attributeSet, isNew) => {\n\t\t\t\t\tif ('user-' + attributeSet.id === this.id && attributeSet !== this) {\n\t\t\t\t\t\tthis.set(_.clone(_.omit(attributeSet.attributes, 'id')));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\n\t\t// Populate from the get go\n\t\t// We want this to happen right after initialize completes\n\t\t_.defer(_.bind(this.populateAttributes, this));\n\t}\n\n\t/**\n\t * @method\n\t * @return {module:asset/collections/assetAttributeDatum} Asset attribute datum\n\t */\n\tgetAttributeDatum() {\n\t\treturn this.attributeTemplates.getAttributeDatum();\n\t}\n\n\t/**\n\t * @method\n\t * @return {number} Attribute count\n\t */\n\tgetAttributeCount() {\n\t\treturn (this.get('attributeIds') || []).length;\n\t}\n\n\t/**\n\t * Return an array of assetAttribute models (attribute templates, in DAM parlance) defined by this model\n\t * @method\n\t * @return {array}\n\t */\n\tgetAttributes() {\n\t\tconst assetAttributes = this.assetAttributes;\n\t\treturn _.compact(\n\t\t\t_.map(_.unique(this.get('attributeIds')) || [], (id) =>\n\t\t\t\tassetAttributes.get(id),\n\t\t\t),\n\t\t);\n\t}\n\n\t/**\n\t * Get a collection of only the mandatory attributes in this set\n\t * @method\n\t * @param {boolean} withDefaultValue Return even those mandatory attributes that have default values\n\t * @return {Netx.Collections.AssetAttributes}\n\t */\n\tgetMandatoryAttributes(withDefaultValue) {\n\t\treturn new AttributesCollection(\n\t\t\tthis.attributeTemplates.filter(\n\t\t\t\t(m) =>\n\t\t\t\t\tm.get('mandatory') == 1 &&\n\t\t\t\t\t(m.get('value') == false || withDefaultValue),\n\t\t\t),\n\t\t);\n\t}\n\n\t/**\n\t * Populate the attribute templates in this set\n\t * @method\n\t */\n\tpopulateAttributes() {\n\t\tconst assetAttributes = this.assetAttributes;\n\n\t\tthis.attributeTemplates.set(\n\t\t\tthis.get('attributeIds')\n\t\t\t\t.map((id) => assetAttributes.get(id))\n\t\t\t\t.filter((attr) => attr != null),\n\t\t);\n\t\t// Fire custom event\n\t\tthis.trigger('nx:change:attributes', this, this.attributeTemplates);\n\t}\n\n\t/**\n\t * Provided with an array of attribute ids, set them on this model and populate the attributes\n\t * @method\n\t * @param {array} attributeIds An array of attribute ids\n\t */\n\tsetAttributes(attributeIds) {\n\t\tthis.set({\n\t\t\tattributeIds: _.unique(attributeIds),\n\t\t});\n\t\tthis.populateAttributes();\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSet';\n\t}\n}\n","export const SearchTypeFileAspect = 22 as const;\nexport type TSearchTypeFileAspect = typeof SearchTypeFileAspect;\n\n/** elementSubType1 */\nexport enum FileAspectType {\n\tORIENTATION = 0,\n\t/** seconds */\n\tDURATION = 1,\n\tWIDTH = 2,\n\tHEIGHT = 3,\n}\n\n/** elementSubType2 */\nexport enum FileAspectSubType {\n\tAPPROXIMATELY = 0,\n\tGREATER_THAN = 1,\n\tLESS_THAN = 2,\n\tEQUAL_TO = 3,\n}\n\n/** elementValue1 if `ORIENTATION` */\nexport enum FileAspectOrientationValue {\n\tPORTRAIT = 1,\n\tLANDSCAPE = 2,\n}\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const CONTEXT_MENU_CLASS_NAME = 'ContextMenu';\nexport const CONTEXT_MENU_CLASS_SLOTS = ['root'] as const;\n\nexport type ContextMenuClassSlot = typeof CONTEXT_MENU_CLASS_SLOTS[number];\n\nexport interface ContextMenuClasses {\n\troot: string;\n}\n\nexport type ContextMenuClassKey = keyof ContextMenuClasses;\n\nexport const getContextMenuUtilityClass = (slot: ContextMenuClassSlot) =>\n\tgenerateUtilityClass(CONTEXT_MENU_CLASS_NAME, slot);\n\nexport const contextMenuClasses: ContextMenuClasses = generateUtilityClasses(\n\tCONTEXT_MENU_CLASS_NAME,\n\t['root'],\n);\n\nexport default contextMenuClasses;\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tcapitalize,\n\tClickAwayListener,\n\tPopover,\n\tPopoverProps,\n\tpopoverClasses,\n} from '@mui/material';\nimport {ReactAction as Action} from '@netx/core/bootstrap';\nimport {\n\tcomposeClasses,\n\tgetSeverityColors,\n\tstyled,\n\tWithClasses,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\nimport Title, {titleClasses} from '@netx/core-components/Title';\nimport {useWhenChangedEffect} from '../hooks';\nimport ActionMenuList from '../ActionMenuList';\nimport {\n\tcontextMenuClasses,\n\tgetContextMenuUtilityClass,\n\tContextMenuClasses,\n\tCONTEXT_MENU_CLASS_NAME,\n} from './contextMenuClasses';\n\ntype ContextMenuHeaderSeverity =\n\t| 'default'\n\t| 'primary'\n\t| 'secondary'\n\t| 'inherit'\n\t| 'error'\n\t| 'info'\n\t| 'success'\n\t| 'warning';\n\ntype ContextMenuUtiltiyClassProps = WithClasses<\n\tContextMenuClasses,\n\t{\n\t\theaderSeverity?: ContextMenuHeaderSeverity;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: ContextMenuUtiltiyClassProps) => {\n\tconst {classes, headerSeverity} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t\theader: [\n\t\t\t'header',\n\t\t\theaderSeverity && `severity${capitalize(headerSeverity)}`,\n\t\t],\n\t};\n\treturn composeClasses(slots, getContextMenuUtilityClass, classes);\n};\n\nconst ContextMenuRoot = styled(Popover, {\n\tname: CONTEXT_MENU_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\t[`& .${popoverClasses.paper}`]: {\n\t\tmarginRight: theme.spacing(2),\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\toverflow: 'hidden',\n\t\tminHeight: 0,\n\t},\n}));\n\nconst ContextMenuWrapper = styled('div', {\n\tname: CONTEXT_MENU_CLASS_NAME,\n\tslot: 'Wrapper',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tflexDirection: 'column',\n\toverflow: 'hidden',\n}));\n\nconst ContextMenuList = styled('div', {\n\tname: CONTEXT_MENU_CLASS_NAME,\n\tslot: 'Wrapper',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tflexDirection: 'column',\n\t...theme.mixins.scrollable,\n}));\n\nconst ContextMenuHeader = styled('div', {\n\tname: CONTEXT_MENU_CLASS_NAME,\n\tslot: 'Header',\n})(({theme, ownerState}) => {\n\tconst colors = getSeverityColors(theme);\n\treturn {\n\t\tflex: '0 0 auto',\n\t\tpadding: theme.spacing(1, 2),\n\t\t...(ownerState.headerSeverity === 'default'\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: theme.palette.background.paper,\n\t\t\t\t\tcolor: theme.palette.text.primary,\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tbackgroundColor: colors[ownerState.headerSeverity]?.default,\n\t\t\t\t\tcolor: colors[ownerState.headerSeverity]?.text,\n\t\t\t }),\n\t\t[`& .${titleClasses.icon}`]: {\n\t\t\theight: 24,\n\t\t\twidth: 24,\n\t\t\tbackground: 'transparent',\n\t\t\t...(ownerState.headerSeverity !== 'default'\n\t\t\t\t? {\n\t\t\t\t\t\tcolor: colors[ownerState.headerSeverity]?.text,\n\t\t\t\t }\n\t\t\t\t: null),\n\t\t},\n\t};\n});\n\nexport interface ContextMenuOptions {\n\tactions: Array;\n\theaderIcon?: any;\n\tleft: number;\n\ttop: number;\n\theaderSeverity?: ContextMenuHeaderSeverity;\n\theaderPrimary?: React.ReactElement | string;\n\theaderSecondary?: React.ReactElement | string;\n}\n\nexport interface ContextMenuProps\n\textends ContextMenuOptions,\n\t\tPartial<\n\t\t\tOmit<\n\t\t\t\tWithMuiPropOverrides,\n\t\t\t\t| 'classes'\n\t\t\t\t| 'className'\n\t\t\t\t| 'anchorReference'\n\t\t\t\t| 'anchorPosition'\n\t\t\t\t| 'onExited'\n\t\t\t\t| 'open'\n\t\t\t\t| 'role'\n\t\t\t>\n\t\t>,\n\t\tWithClasses<\n\t\t\tContextMenuClasses,\n\t\t\t{\n\t\t\t\tonExited(action?: Action): void;\n\t\t\t\topen: boolean;\n\t\t\t}\n\t\t> {}\n\nexport const ContextMenuPrimitive = ({\n\tclasses: _classes,\n\tclassName,\n\n\tactions,\n\theaderSeverity = 'default',\n\theaderIcon,\n\theaderPrimary,\n\theaderSecondary,\n\tleft,\n\ttop,\n\tonExited,\n\topen,\n\t...props\n}: ContextMenuProps) => {\n\tconst [isOpen, setIsOpen] = useState(open);\n\tconst selectedAction = useRef();\n\n\tconst ownerState = {\n\t\tclasses: _classes,\n\t\theaderSeverity,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\tuseEffect(() => {\n\t\tsetIsOpen(open);\n\t}, [open]);\n\n\tconst handleAction = useCallback(\n\t\t(action: Action) => {\n\t\t\tselectedAction.current = action;\n\t\t\tsetIsOpen(false);\n\t\t},\n\t\t[actions],\n\t);\n\n\tconst handleClickAway = useCallback(() => setIsOpen(false), []);\n\n\tconst handleExited = useCallback(\n\t\t(node: HTMLElement) => {\n\t\t\tonExited(selectedAction.current);\n\t\t\tselectedAction.current = undefined;\n\t\t},\n\t\t[actions, onExited],\n\t);\n\n\tuseWhenChangedEffect(\n\t\tisOpen,\n\t\tuseCallback((isOpen) => {\n\t\t\tif (!isOpen) return;\n\n\t\t\tconst listener = (e: MouseEvent) => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tselectedAction.current = undefined;\n\t\t\t\tsetIsOpen(false);\n\t\t\t};\n\n\t\t\tdocument.addEventListener('contextmenu', listener);\n\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener('contextmenu', listener);\n\t\t\t};\n\t\t}, []),\n\t\t{\n\t\t\texecuteAtMount: true,\n\t\t},\n\t);\n\n\tconst handleListKeyDown = useCallback(\n\t\t(event: React.KeyboardEvent) => {\n\t\t\t// These events keep this inline with what you would expect using\n\t\t\t// the mui menu component itself\n\t\t\tif (event.key === 'Tab' || event.key === 'Escape') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tsetIsOpen(false);\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\tif (left == null || top == null) return null;\n\n\t// MUI menus require an anchor ref and will not accept anchor position\n\t// but popover will\n\t// This is essentially how a MUI menu works - it just does not expose the\n\t// anchor position options\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{headerPrimary ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const ContextMenu = ContextMenuPrimitive;\n\nexport default ContextMenu;\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nexport default class Participant extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'uniqueId';\n\t}\n\t/** @type {string} */\n\tget titleAttribute() {\n\t\treturn 'label';\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @property {object} defaults - Model defaults\n\t * @property {string} defaults.uniqueId - Participant `-`\n\t * @property {number} defaults.id - Participant id\n\t * @property {string} defaults.label - Participant label\n\t * @property {string} defaults.permission - Participant permission\n\t * @property {number} defaults.resourceId - Participant resource id\n\t * @property {string} defaults.resourceName - Participant resource name\n\t * @property {string} defaults.type - Participant type (all, group, user)\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\tid: 0,\n\t\t\tlabel: '',\n\t\t\tpermission: 'read',\n\t\t\tresourceId: 0,\n\t\t\tresourceName: '',\n\t\t\ttype: 'user',\n\n\t\t\t// We have an issue - the unique id for these records are two keys: id and type\n\t\t\t// Backbone does not support this, so we have to make our own single id on the client of the two\n\t\t\t// uniqueId : ''\n\t\t};\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn ['uniqueId'];\n\t}\n\n\t/**\n\t * @property {object} methods - Model methods\n\t * @property {method} methods.create - Add particpant to shared resource\n\t * @property {method} methods.remove - Remove participant from shared resource\n\t * @property {method} methods.update - Update participant on shared resource\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate: function(opts) {\n\t\t\t\treturn ['addParticipant', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tremove: function(opts) {\n\t\t\t\treturn ['removeParticipant', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tupdate: function(opts) {\n\t\t\t\treturn ['updateParticipant', this.self()];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Model parsers\n\t * @property {method} parsers.create - Parse newly created participant\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} participant Participant\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate: function(participant, opts) {\n\t\t\t\t// We want to combine the type and id `-`\n\t\t\t\t// `all` has no id and is just \"all\"\n\t\t\t\tvar uniqueId = _.compact(\n\t\t\t\t\t_.values(_.pick(participant, 'type', 'id')),\n\t\t\t\t).join('-');\n\n\t\t\t\treturn _.extend(participant, {\n\t\t\t\t\tuniqueId: uniqueId,\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {string} attr Attribute\n\t * @return {mixed} Value\n\t */\n\tget(attr) {\n\t\tif (attr === 'label' && this.attributes.type === 'all') {\n\t\t\treturn i18n.t('i18n.allUsers');\n\t\t}\n\t\treturn super.get(attr);\n\t}\n\n\t/** @override */\n\tgetLabel() {\n\t\treturn this.get('type') === 'all'\n\t\t\t? i18n.t('i18n.allUsers')\n\t\t\t: super.getLabel();\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} data Data\n\t * @param {object} opts Request options\n\t */\n\tparseAndSave(data, opts) {\n\t\treturn this.save(\n\t\t\t_.pick.apply(_, [data].concat(_.keys(this.constructor.GetDefaults()))),\n\t\t\topts,\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Participant';\n\t}\n}\n","import React from 'react';\n\nimport {compareProps} from '@netx/core-components/util';\n\nimport {DateField} from '@netx/core-components/Form';\nimport type {DateValue} from '@netx/core-asset/models/attribute';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\n\nexport interface DateAttributeProps extends CommonProps {}\n\nconst DateAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonLookup,\n\tonSearch,\n\tplaceholder = '',\n\tvalue,\n\t...props\n}: DateAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst defaultValue = value != null ? value : null;\n\tconst shrinkLabel = multipleValues || cleared;\n\n\tconst textfieldPlaceholder = usePlaceholder(attrData, placeholder, {\n\t\tcleared,\n\t\tmultipleValues,\n\t\tvalue: defaultValue,\n\t});\n\n\treturn (\n\t\t\n\t);\n};\n\nexport const DateAttribute = React.memo(\n\tDateAttributeComponent,\n\tcompareProps([], 'attribute-date'),\n);\nexport default DateAttribute;\n","import React, {useCallback} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport SelectField from '@netx/core-components/Form/SelectField';\nimport {compareProps} from '@netx/core-components/util';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\n\nexport interface MultiSelectAttributeProps extends CommonProps {\n\tonChange(value: string[]): void;\n}\n\nconst MultiSelectAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonLookup,\n\tonSearch,\n\tplaceholder,\n\tvalue,\n\t...props\n}: MultiSelectAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst options = attrData.pulldownOptions || [];\n\tconst defaultValue = value == null ? [] : value;\n\n\tconst textfieldPlaceholder = usePlaceholder(\n\t\tattrData,\n\t\tplaceholder !== '' ? placeholder : i18n.t('i18n.makeSelection'),\n\t\t{\n\t\t\tcleared,\n\t\t\tmultipleValues,\n\t\t\treadOnly: props.readOnly,\n\t\t\tvalue: defaultValue,\n\t\t},\n\t);\n\n\tconst handleSearch = useCallback(\n\t\t(value) => {\n\t\t\tonSearch?.(value);\n\t\t},\n\t\t[onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\thideErrorMessage\n\t\t\tid={attrData.attributeid.toString()}\n\t\t\tlabel={hideLabel ? undefined : attrData.name}\n\t\t\tmultiple\n\t\t\t{...props}\n\t\t\toptions={options}\n\t\t\tonSearch={onSearch ? handleSearch : undefined}\n\t\t\tplaceholder={textfieldPlaceholder}\n\t\t\tvalue={defaultValue}\n\t\t\tInputLabelProps={{\n\t\t\t\tshrink: multipleValues || cleared ? true : undefined,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const MultiSelectAttribute = React.memo(\n\tMultiSelectAttributeComponent,\n\tcompareProps([], 'attribute-multiSelect'),\n);\nexport default MultiSelectAttributeComponent;\n","import React, {useEffect} from 'react';\nimport {useRef, useState} from 'react';\n\nimport {Autocomplete, AutocompleteRenderInputParams} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {AttributeAttributes} from '@netx/core-asset/models/attribute';\nimport {metadataDatasetAutoList} from '../../../../api';\n\nimport useUpdateEffect from '@netx/core-components/hooks/useUpdateEffect';\nimport {isEmptyValue} from '@netx/core-components/Form';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\twidth: '100%',\n\t\t\tposition: 'relative',\n\t\t},\n\t\tlabelIcon: {\n\t\t\tfontSize: '1em',\n\t\t\tmarginRight: 8,\n\t\t},\n\t\tlabelWrapper: {\n\t\t\talignItems: 'center',\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '0 0 auto',\n\t\t},\n\t});\n\nexport interface LookupProps {\n\tattrData: AttributeAttributes;\n\tdisabled?: boolean;\n\tonChange?: (value: string | null | undefined) => void;\n\tonLookup: (lookupValue: string) => void;\n\trenderInput: (params: AutocompleteRenderInputParams) => React.ReactNode;\n\tvalue?: string;\n}\n\ntype Option = string;\n\nconst Lookup = ({\n\tclasses,\n\n\tattrData,\n\tdisabled = false,\n\tonChange,\n\tonLookup,\n\trenderInput,\n\tvalue,\n}: WithStyles & LookupProps) => {\n\tconst defaultValue: string = !isEmptyValue(value)\n\t\t? Array.isArray(value)\n\t\t\t? value[0]\n\t\t\t: value\n\t\t: '';\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [options, setOptions] = useState([]);\n\tconst [textValue, setTextValue] = useState(defaultValue);\n\n\tconst lookupRef = useRef('');\n\n\tuseEffect(() => {\n\t\tlookupRef.current = '';\n\t}, []);\n\n\tuseUpdateEffect(() => {\n\t\tsetTextValue(Array.isArray(value) ? value[0] : value);\n\t}, [value]);\n\n\tconst testLookup = (lookupValue: string) => {\n\t\t// TODO: We can attach listeners to the list component and deduce actual selection\n\t\t// I am making this behave as it does in core at this moment\n\t\tif (options.includes(lookupValue)) {\n\t\t\tif (lookupRef.current !== lookupValue) {\n\t\t\t\tlookupRef.current = lookupValue;\n\t\t\t\tonLookup(lookupValue);\n\t\t\t\t// Wipe out options otherwise they menu will open when we change the value\n\t\t\t\t// programatically (if the new value does not match all available options)\n\t\t\t\tsetOptions([]);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tlookupRef.current = '';\n\t\treturn false;\n\t};\n\n\tconst autoList = async (lookupString: string) => {\n\t\tsetOptions([]);\n\n\t\tif (lookupString == null || !lookupString.length) return;\n\n\t\tsetIsLoading(true);\n\t\tconst results = await metadataDatasetAutoList({\n\t\t\tid: attrData.attributeid,\n\t\t\tvalue: lookupString,\n\t\t});\n\t\tsetIsLoading(false);\n\n\t\tsetOptions(results);\n\t\ttestLookup(lookupString);\n\t};\n\n\tconst handleInputChange = (event: React.SyntheticEvent, str: string) => {\n\t\tif (!event || disabled) return;\n\n\t\tsetTextValue(str);\n\t\tonChange?.(str);\n\n\t\tif (\n\t\t\tevent.type === 'click' ||\n\t\t\t(event.type === 'keydown' &&\n\t\t\t\t(event as React.KeyboardEvent).key === 'Enter')\n\t\t) {\n\t\t\ttestLookup(str);\n\t\t} else {\n\t\t\t!testLookup(str) && autoList(str);\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\tclassName={classes.root}\n\t\t\tfreeSolo\n\t\t\tautoComplete\n\t\t\tautoHighlight\n\t\t\tblurOnSelect\n\t\t\tdisableClearable\n\t\t\tloading={isLoading}\n\t\t\tid=\"autocomplete-text\"\n\t\t\tdisabled={disabled}\n\t\t\tinputValue={textValue}\n\t\t\tonChange={handleInputChange}\n\t\t\tonInputChange={handleInputChange}\n\t\t\toptions={options}\n\t\t\trenderInput={renderInput}\n\t\t\tvalue={defaultValue}\n\t\t/>\n\t);\n};\n\nexport default withStyles(styles, {\n\tname: 'Attributes-Attribute-Lookup',\n})(Lookup);\n","import React, {useCallback} from 'react';\n\nimport {compareProps} from '@netx/core-components/util';\n\nimport type {InputLabelProps, InputBaseComponentProps} from '@mui/material';\nimport Lookup from '../MetadataLookup/Lookup';\nimport {numberTypes} from '@netx/core-asset/properties/attributes';\nimport {usePlaceholder} from '../../../../hooks';\nimport type {AttributeTemplate} from '../../../../types';\nimport type {CommonProps} from '../../types';\n\nimport {NumberField, NumberFieldProps} from '@netx/core-components/Form';\ntype NumberFieldRequiredProps = Required;\n\nimport {NumberValue} from '@netx/core-asset/models/attribute';\n\nconst formatNumber = (attrData: AttributeTemplate, value: string) => {\n\tlet numberLength = value.length;\n\tif (!numberLength) return '';\n\n\tconst numberType = numberTypes[attrData.spec2];\n\tconst maxDecimal = (numberType && numberType.maxDecimal) || Infinity;\n\n\tnumberLength = value.length;\n\n\tif (!numberLength) return '';\n\tif (!numberType) return value;\n\n\tif (numberType.key === 'whole') {\n\t\treturn value.split('.')[0].substr(0, attrData.spec1 || value.length);\n\t}\n\n\tif (numberType.key === 'unlimited') {\n\t\treturn value;\n\t}\n\n\tconst decimalIndex = value.indexOf('.');\n\tif (maxDecimal !== Infinity) {\n\t\tif (decimalIndex > -1) {\n\t\t\tconst decimalDigitCount = numberLength - (decimalIndex + 1);\n\t\t\tif (decimalDigitCount > maxDecimal) {\n\t\t\t\tvalue = value.substr(\n\t\t\t\t\t0,\n\t\t\t\t\tnumberLength - (decimalDigitCount - maxDecimal),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nexport interface NumberAttributeProps extends CommonProps {}\n\nconst NumberAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonChange,\n\tonLookup,\n\tonSearch,\n\tplaceholder,\n\treadOnly,\n\tvalue,\n\t...props\n}: NumberAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst defaultValue = value == null ? '' : value.toString();\n\tconst maxLength =\n\t\tattrData.spec2 === 0 ? attrData.spec1 || undefined : undefined;\n\n\tconst textfieldPlaceholder = usePlaceholder(attrData, placeholder, {\n\t\tcleared,\n\t\tmultipleValues,\n\t\treadOnly,\n\t\tvalue: defaultValue,\n\t});\n\n\tconst handleChange = useCallback(\n\t\t(value) => onChange?.(formatNumber(attrData, value)),\n\t\t[attrData, onChange],\n\t);\n\n\tconst renderInput = useCallback(\n\t\t(params?: {\n\t\t\tinputProps: InputBaseComponentProps;\n\t\t\tInputLabelProps: InputLabelProps;\n\t\t}) => {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[defaultValue, props, handleChange, textfieldPlaceholder],\n\t);\n\n\tif (isMetadataLookup && onLookup) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn renderInput();\n};\n\nexport const NumberAttribute = React.memo(\n\tNumberAttributeComponent,\n\tcompareProps(),\n);\nexport default NumberAttribute;\n","import React, {useCallback} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\nimport SelectField from '@netx/core-components/Form/SelectField';\nimport {compareProps} from '@netx/core-components/util';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\n\nexport interface SelectAttributeProps extends CommonProps {\n\tonChange(value: string): void;\n}\n\nconst SelectAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonChange,\n\tonLookup,\n\tonSearch,\n\tplaceholder = '',\n\treadOnly,\n\tvalue,\n\t...props\n}: SelectAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst options = attrData.pulldownOptions || [];\n\n\tconst textfieldPlaceholder = usePlaceholder(\n\t\tattrData,\n\t\tplaceholder !== '' ? placeholder : i18n.t('i18n.chooseOne'),\n\t\t{\n\t\t\tcleared,\n\t\t\tmultipleValues,\n\t\t\treadOnly,\n\t\t\tvalue,\n\t\t},\n\t);\n\n\tconst handleChange = useCallback(\n\t\t(value) => {\n\t\t\tif (isMetadataLookup) onLookup?.(value);\n\t\t\tonChange?.(value);\n\t\t},\n\t\t[isMetadataLookup, onChange, onLookup],\n\t);\n\n\treturn (\n\t\t\n\t\t\thideErrorMessage\n\t\t\tid={attrData.attributeid.toString()}\n\t\t\tlabel={hideLabel ? undefined : attrData.name}\n\t\t\t{...props}\n\t\t\tonChange={handleChange}\n\t\t\toptions={options}\n\t\t\tplaceholder={textfieldPlaceholder}\n\t\t\treadOnly={readOnly}\n\t\t\tvalue={value}\n\t\t\tInputLabelProps={{\n\t\t\t\tshrink: multipleValues || cleared ? true : undefined,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const SelectAttribute = React.memo(\n\tSelectAttributeComponent,\n\tcompareProps(),\n);\nexport default SelectAttribute;\n","import React, {useCallback} from 'react';\n\nimport {compareProps} from '@netx/core-components/util';\n\nimport AutoListField from '@netx/core-components/Form/AutoListField';\n\nimport type {SemanticValue} from '@netx/core-asset/models/attribute';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\nimport {getSemanticObjectAutoList} from '../../../../api';\n\nexport interface SemanticAttributeProps extends CommonProps {}\n\nconst SemanticAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonLookup,\n\tonSearch,\n\tplaceholder,\n\treadOnly,\n\tvalue,\n\t...props\n}: SemanticAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst defaultValue = value == null ? [] : value;\n\n\tconst textfieldPlaceholder = usePlaceholder(\n\t\tattrData,\n\t\tplaceholder !== '' ? placeholder : i18n.t('i18n.typeToAddSemantics'),\n\t\t{\n\t\t\tcleared,\n\t\t\tmultipleValues,\n\t\t\treadOnly,\n\t\t\tvalue: defaultValue,\n\t\t},\n\t);\n\n\tconst handleLookup = useCallback(\n\t\tasync (value) => {\n\t\t\tconst results = await getSemanticObjectAutoList({\n\t\t\t\tid: attrData.semanticTypeId,\n\t\t\t\tvalue,\n\t\t\t});\n\t\t\treturn results.map((result) => result.label);\n\t\t},\n\t\t[attrData.semanticTypeId],\n\t);\n\n\tconst handleSearch = useCallback(\n\t\t(value) => {\n\t\t\tonSearch?.(value);\n\t\t},\n\t\t[onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\t{...props}\n\t\t\thideErrorMessage\n\t\t\tid={attrData.attributeid.toString()}\n\t\t\tlabel={hideLabel ? undefined : attrData.name}\n\t\t\tmultiple\n\t\t\tonLookup={handleLookup}\n\t\t\tonSearch={onSearch ? handleSearch : undefined}\n\t\t\tplaceholder={textfieldPlaceholder}\n\t\t\treadOnly={readOnly}\n\t\t\tvalue={defaultValue}\n\t\t\tInputLabelProps={{\n\t\t\t\tshrink: multipleValues || cleared ? true : undefined,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const SemanticAttribute = React.memo(\n\tSemanticAttributeComponent,\n\tcompareProps(),\n);\nexport default SemanticAttribute;\n","import React, {useCallback} from 'react';\nimport {i18n} from '@netx/core/i18n';\n\nimport {compareProps} from '@netx/core-components/util';\nimport {AutoListField} from '@netx/core-components/Form';\nimport type {TagValue} from '@netx/core-asset/models/attribute';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\nimport {metadataAutoCompleteLookup} from '../../../../api';\n\nexport interface TagAttributeProps extends CommonProps {}\n\nconst TagAttributeComponent = ({\n\taction,\n\tdisableFolksonomy,\n\tattrData,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonLookup,\n\tonSearch,\n\tplaceholder = '',\n\treadOnly,\n\tvalue,\n\n\t...props\n}: TagAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst defaultValue = value == null ? [] : value;\n\tconst flexible = !disableFolksonomy && attrData.spec2 === 1;\n\n\tconst textfieldPlaceholder = usePlaceholder(\n\t\tattrData,\n\t\tplaceholder !== '' ? placeholder : i18n.t('i18n.typeToAddTags'),\n\t\t{\n\t\t\tcleared,\n\t\t\tdisable: props.loadingValue,\n\t\t\tmultipleValues,\n\t\t\treadOnly,\n\t\t\tvalue: defaultValue,\n\t\t},\n\t);\n\n\tconst handleLookup = useCallback(\n\t\t(value) =>\n\t\t\tmetadataAutoCompleteLookup({\n\t\t\t\tid: attrData.spec1,\n\t\t\t\tvalue,\n\t\t\t}),\n\t\t[attrData.spec1],\n\t);\n\n\tconst handleSearch = useCallback(\n\t\t(value) => {\n\t\t\tonSearch?.(value);\n\t\t},\n\t\t[onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\t{...props}\n\t\t\thideErrorMessage\n\t\t\tflexible={flexible}\n\t\t\tonLookup={handleLookup}\n\t\t\tid={attrData.attributeid.toString()}\n\t\t\tlabel={hideLabel ? undefined : attrData.name}\n\t\t\tname={attrData.name}\n\t\t\tonSearch={onSearch ? handleSearch : undefined}\n\t\t\tplaceholder={textfieldPlaceholder}\n\t\t\tvalue={defaultValue}\n\t\t\tInputLabelProps={{\n\t\t\t\tshrink: multipleValues || cleared ? true : undefined,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const TagAttribute = React.memo(\n\tTagAttributeComponent,\n\tcompareProps([], 'attribute-tag'),\n);\nexport default TagAttribute;\n","import React, {useCallback} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\nimport {compareProps} from '@netx/core-components/util';\nimport {AutoListField} from '@netx/core-components/Form';\nimport type {TagValue} from '@netx/core-asset/models/attribute';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\nimport {vocabularyValueLookup} from '../../../../api';\n\nexport interface TagVocabAttributeProps extends CommonProps {}\n\nconst TagVocabAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonLookup,\n\tonSearch,\n\tplaceholder = '',\n\treadOnly,\n\tvalue,\n\t...props\n}: TagVocabAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst defaultValue = value == null || !Array.isArray(value) ? [] : value;\n\tconst flexible = !disableFolksonomy && attrData.spec2 === 1;\n\n\tconst textfieldPlaceholder = usePlaceholder(\n\t\tattrData,\n\t\tplaceholder !== '' ? placeholder : i18n.t('i18n.typeToAddTags'),\n\t\t{\n\t\t\tcleared,\n\t\t\tdisable: props.loadingValue,\n\t\t\tmultipleValues,\n\t\t\treadOnly,\n\t\t\tvalue: defaultValue,\n\t\t},\n\t);\n\n\tconst handleLookup = useCallback(\n\t\t(value) =>\n\t\t\tvocabularyValueLookup({\n\t\t\t\tid: attrData.spec1,\n\t\t\t\tvalue,\n\t\t\t}),\n\t\t[attrData.spec1],\n\t);\n\n\tconst handleSearch = useCallback(\n\t\t(value) => {\n\t\t\tonSearch?.(value);\n\t\t},\n\t\t[onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\t{...props}\n\t\t\thideErrorMessage\n\t\t\tflexible={flexible}\n\t\t\tid={attrData.attributeid.toString()}\n\t\t\tlabel={hideLabel ? undefined : attrData.name}\n\t\t\tname={attrData.name}\n\t\t\tonLookup={handleLookup}\n\t\t\tonSearch={onSearch ? handleSearch : undefined}\n\t\t\tplaceholder={textfieldPlaceholder}\n\t\t\tvalue={defaultValue}\n\t\t\tInputLabelProps={{\n\t\t\t\tshrink: multipleValues || cleared ? true : undefined,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const TagVocabAttribute = React.memo(\n\tTagVocabAttributeComponent,\n\tcompareProps([], 'attribute-tagVocab'),\n);\nexport default TagVocabAttribute;\n","import createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"\n}), 'VpnKey');","import createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"m19.07 4.93-1.41 1.41C19.1 7.79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z\"\n}), 'TrackChanges');","import React from 'react';\n\nimport {CircularProgress, Tooltip} from '@mui/material';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {AttributeAttributes} from '@netx/core-asset/models/attribute';\nimport {attributes as attributesSingleton} from '@netx/core-asset/collections/singleton/attributes';\n\nimport {\n\tTrackChanges as TargetIcon,\n\tVpnKey as KeyIcon,\n} from '@mui/icons-material';\n\nconst styles = (theme: Theme) => {\n\tconst ThemeProps = theme.components || {};\n\tconst TextFieldProps = ThemeProps.MuiTextField || {};\n\tconst InputVariant = TextFieldProps?.defaultProps?.variant || 'standard';\n\n\treturn createStyles({\n\t\tinputAdornmentStart: {\n\t\t\talignItems: 'center',\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '0 0 auto',\n\t\t\tjustifyContent: 'center',\n\t\t\tborderRadius: InputVariant === 'outlined' ? '4px 0 0 4px' : undefined,\n\t\t\tborder:\n\t\t\t\tInputVariant === 'outlined'\n\t\t\t\t\t? `1px solid ${theme.palette.custom.border}`\n\t\t\t\t\t: undefined,\n\t\t\tborderRight: 0,\n\t\t\tmarginRight: 0,\n\t\t\tpadding: theme.spacing(0, 1),\n\t\t\t'& + div [class*=\"MuiOutlinedInput-root\"]': {\n\t\t\t\tborderRadius: '0 4px 4px 0',\n\t\t\t},\n\t\t},\n\t});\n};\n\nexport interface MetadataLookupAdornmentProps {\n\tattrData: AttributeAttributes;\n\tattributeWorking?: boolean;\n\tdisabled?: boolean;\n\tisMetadataLookup?: boolean;\n\tisMetadataTarget?: boolean;\n}\n\nconst MetadataLookupAdornment = ({\n\tclasses,\n\n\tattrData,\n\tattributeWorking = false,\n\tdisabled = false,\n\tisMetadataLookup = false,\n\tisMetadataTarget = false,\n}: WithStyles & MetadataLookupAdornmentProps) => {\n\tif (!isMetadataLookup && !isMetadataTarget) return null;\n\n\tconst title = isMetadataLookup\n\t\t? 'Metadata lookup key'\n\t\t: 'Metadata lookup target';\n\n\tconst Icon = isMetadataLookup ? KeyIcon : TargetIcon;\n\n\tconst attributeNames = new Set();\n\n\tif (isMetadataLookup) {\n\t\tattrData.keyDatasets.forEach((attributeId) => {\n\t\t\tattributesSingleton.forEach((attribute) => {\n\t\t\t\tif ((attribute.get('targetDatasets') || []).includes(attributeId)) {\n\t\t\t\t\tattributeNames.add(attribute.get('name'));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tattrData.targetDatasets.forEach((attributeId) => {\n\t\t\tattributesSingleton.forEach((attribute) => {\n\t\t\t\tif ((attribute.get('keyDatasets') || []).includes(attributeId)) {\n\t\t\t\t\tattributeNames.add(attribute.get('name'));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t
{title}
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{[...attributeNames].map((attributeName) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
{attributeName}
\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\tplacement=\"top\"\n\t\t\t\tstyle={{\n\t\t\t\t\topacity: disabled ? 0.7 : undefined,\n\t\t\t\t\tpointerEvents: disabled ? 'none' : undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t{(attributeWorking && !isMetadataLookup && (\n\t\t\t\t\t\t\n\t\t\t\t\t)) || }\n\t\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n\nexport default withStyles(styles, {\n\tname: 'Attributes-Attribute-MetadataLookupAdornment',\n})(MetadataLookupAdornment);\n","import React, {useCallback} from 'react';\n\nimport {compareProps} from '@netx/core-components/util';\n\nimport {TextField} from '@netx/core-components/Form';\nimport type {TextValue} from '@netx/core-asset/models/attribute';\nimport Lookup from '../MetadataLookup';\nimport type {CommonProps} from '../../types';\nimport {usePlaceholder} from '../../../../hooks';\nimport type {InputBaseComponentProps, InputLabelProps} from '@mui/material';\n\nexport interface TextAttributeProps extends CommonProps {}\n\nconst TextAttributeComponent = ({\n\taction,\n\tattrData,\n\tdisableFolksonomy,\n\thideLabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tmultipleValues,\n\tonLookup,\n\tonSearch,\n\tplaceholder,\n\treadOnly,\n\tvalue,\n\t...props\n}: TextAttributeProps) => {\n\tconst cleared = action === 'clear';\n\tconst defaultValue = value == null ? '' : value;\n\tconst isTextArea = attrData.type === 2;\n\tconst shrinkLabel = multipleValues || cleared;\n\n\tconst textfieldPlaceholder = usePlaceholder(attrData, placeholder, {\n\t\tcleared,\n\t\tmultipleValues,\n\t\treadOnly,\n\t\tvalue: defaultValue,\n\t});\n\n\tconst renderInput = useCallback(\n\t\t(params?: {\n\t\t\tinputProps: InputBaseComponentProps;\n\t\t\tInputLabelProps: InputLabelProps;\n\t\t}) => {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\tattrData,\n\t\t\tdefaultValue,\n\t\t\thideLabel,\n\t\t\tisTextArea,\n\t\t\tprops,\n\t\t\tshrinkLabel,\n\t\t\ttextfieldPlaceholder,\n\t\t],\n\t);\n\n\tif (isMetadataLookup && onLookup) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn renderInput();\n};\n\nexport const TextAttribute = React.memo(\n\tTextAttributeComponent,\n\tcompareProps([], 'attribute-text'),\n);\nexport default TextAttribute;\n","import React, {useCallback, useEffect, useState} from 'react';\n\nimport {faTrashAlt as TrashIcon} from '@fortawesome/pro-solid-svg-icons';\n\nimport {ToggleButton, useUpdateEffect} from '@netx/core-components';\n\nimport {i18n} from '@netx/core/i18n';\n\nexport interface ClearToggleProps {\n\tdisabled?: boolean;\n\ton?: boolean;\n\tonChange(cleared: boolean): void;\n}\n\nconst ClearToggle: React.FunctionComponent = ({\n\tdisabled,\n\ton,\n\tonChange,\n}) => {\n\tconst [cleared, setCleared] = useState(on === true);\n\n\tuseUpdateEffect(() => {\n\t\tsetCleared(on === true);\n\t}, [on]);\n\n\tuseEffect(() => {\n\t\tdisabled && setCleared(false);\n\t}, [disabled]);\n\n\tconst handleToggle = useCallback(\n\t\t(event, on: boolean) => {\n\t\t\tsetCleared(on);\n\t\t\tonChange(on);\n\t\t},\n\t\t[onChange],\n\t);\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default React.memo(ClearToggle);\n","import React, {\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {useUpdateEffect, useRefState} from '@netx/core-components/hooks';\nimport ClearToggle from './components/Action/ClearToggle';\nimport {\n\tisEmptyValue,\n\tvaluesMatch,\n\tErrorField,\n\tFormValidationError,\n\tInputForm,\n} from '@netx/core-components/Form';\n\nimport {InputAdornment as MetadataLookupAdornment} from './components/MetadataLookup';\nimport validators from '../../validators';\nimport {ATTRIBUTE_APPENDABLE_TYPES} from '../../constants';\nimport {AttributeAction} from '../../types';\n\nimport {AttributeAttributes, Value} from '@netx/core-asset/models/attribute';\n\nimport {compareProps} from '@netx/core-components/util';\n\nimport {actionChangesValue, getAttributeComponent} from '../../utils';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\talignItems: 'flex-start',\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '1 1 auto',\n\t\t\tflexDirection: 'column',\n\t\t\tminWidth: 0,\n\t\t\twidth: '100%',\n\t\t\tmargin: theme.spacing(1, 0),\n\t\t\t// Call out fields that are appendable\n\t\t\t// (appendable fields will be disabled)\n\t\t\t'&.append': {\n\t\t\t\t'&[data-nx-appendable=\"true\"] [class*=\"MuiInputBase-root\"]': {\n\t\t\t\t\t'& [class*=\"MuiOutlinedInput-notchedOutline\"]': {\n\t\t\t\t\t\tborderColor: theme.palette.primary.main,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&.error': {},\n\t\t\t'&.multipleValues': {},\n\t\t},\n\n\t\tleadingControls: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '0 0 auto',\n\t\t\theight: 'max-content',\n\n\t\t\t'& > *': {\n\t\t\t\tmarginRight: theme.spacing(1),\n\t\t\t},\n\t\t},\n\n\t\tlimitHeightToContainer: {\n\t\t\t'&, & $matchContainerHeight': {\n\t\t\t\theight: '100%',\n\t\t\t\t'& textarea': {\n\t\t\t\t\theight: 'auto !important',\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t\toverflow: 'auto !important',\n\t\t\t\t},\n\t\t\t\t'& $inputWrapper': {\n\t\t\t\t\theight: '100%',\n\t\t\t\t},\n\t\t\t\t'& $input': {\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t},\n\t\t\t\t'& [class*=\"MuiAutocomplete-root\"]': {\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t},\n\t\t\t\t'& [class*=\"MuiFormControl-root\"]': {\n\t\t\t\t\theight: '100%',\n\t\t\t\t\tmaxHeight: '100%',\n\t\t\t\t},\n\t\t\t\t'& [class*=\"MuiInputBase-root\"]': {\n\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\tposition: 'static',\n\t\t\t\t\theight: '100%',\n\t\t\t\t},\n\t\t\t\t'& fieldset': {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\ttop: -5,\n\t\t\t\t\tbottom: -1,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tmatchContainerHeight: {\n\t\t\t'&': {\n\t\t\t\tmargin: 0,\n\t\t\t},\n\t\t\t'& $input': {\n\t\t\t\theight: '100%',\n\t\t\t},\n\t\t\t'& textarea': {\n\t\t\t\theight: '100% !important',\n\t\t\t},\n\t\t},\n\n\t\ttrailingControls: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '0 0 auto',\n\t\t\theight: 'max-content',\n\t\t\tmarginRight: -4,\n\t\t\t'& > *': {\n\t\t\t\tmarginLeft: theme.spacing(1),\n\t\t\t},\n\t\t},\n\n\t\tinput: {\n\t\t\talignSelf: 'center',\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '1 1 auto',\n\t\t\tminWidth: 0,\n\t\t\t// \"temp\" fix for floating labels\n\t\t\t// minWidth: 150,\n\t\t},\n\n\t\tinputWrapper: {\n\t\t\talignItems: 'flex-start',\n\t\t\tdisplay: 'inline-flex',\n\t\t\twidth: '100%',\n\t\t},\n\t\t'align-top': {\n\t\t\t'& $inputWrapper': {\n\t\t\t\talignItems: 'flex-start',\n\t\t\t},\n\t\t},\n\t\t'align-bottom': {\n\t\t\t'& $inputWrapper': {\n\t\t\t\talignItems: 'flex-end',\n\t\t\t},\n\t\t},\n\t\t'align-center': {\n\t\t\t'& $inputWrapper': {\n\t\t\t\talignItems: 'center',\n\t\t\t},\n\t\t},\n\t});\n\nexport type AttributeEvent = {\n\tattribute: AttributeAttributes;\n\tvalue: Value;\n\taction: AttributeAction;\n};\n\nexport interface EditableAttributeProps {\n\taction?: AttributeAction;\n\talignActions?: 'top' | 'bottom' | 'center';\n\tappendable?: boolean;\n\tattrData: AttributeAttributes;\n\tattributeWorking?: boolean;\n\tchanged?: boolean;\n\tclearable?: boolean;\n\tdisabled?: boolean;\n\tdisableFolksonomy?: boolean;\n\tenforceMandatory?: boolean;\n\terror?: FormValidationError;\n\tform?: InputForm;\n\tforceClearable?: boolean;\n\thideLabel?: boolean;\n\t/** override attribute name label */\n\tlabel?: string;\n\tloadingValue?: boolean;\n\tlimitHeightToContainer?: boolean;\n\tmatchContainerHeight?: boolean;\n\tisMetadataLookup?: boolean;\n\tisMetadataTarget?: boolean;\n\tmode?: AttributeAction;\n\tmultipleValues?: boolean;\n\tname?: string;\n\tonLookup?: (\n\t\tattribute: AttributeAttributes,\n\t\tlookupValue: string,\n\t) => Promise | undefined;\n\tonSearch?: (value: string) => void;\n\tonValueChange?: (value: Value) => void;\n\toriginalValue?: Value;\n\tplaceholder?: string;\n\tvalue?: any;\n}\n\nconst hasChanged = (\n\tvalue: Value,\n\toriginalValue: Value,\n\tmultipleValues: boolean,\n\taction: AttributeAction,\n) =>\n\t!valuesMatch(value, originalValue, multipleValues) ||\n\tactionChangesValue(value, originalValue, action);\n\nconst EditableAttributeComponent = ({\n\tclasses,\n\talignActions = 'top',\n\tappendable,\n\tmode = 'overwrite',\n\taction = 'overwrite',\n\tchanged,\n\tclearable,\n\tdisableFolksonomy,\n\tenforceMandatory = true,\n\tform,\n\tforceClearable,\n\tattrData,\n\tattributeWorking,\n\tdisabled,\n\terror,\n\thideLabel,\n\tlabel,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\tlimitHeightToContainer,\n\tloadingValue,\n\tmatchContainerHeight,\n\tmultipleValues,\n\tname,\n\tonLookup,\n\tonSearch,\n\tonValueChange,\n\toriginalValue = null,\n\tplaceholder,\n\tvalue = null,\n}: WithStyles & EditableAttributeProps) => {\n\tconst fieldName = name || `${attrData.attributeid}`;\n\n\tconst attributeName =\n\t\tlabel != null\n\t\t\t? label\n\t\t\t: // TODO: handle this before we get here via the attributes context methods\n\t\t\tattrData.system\n\t\t\t? i18n.t(`i18n.${attrData.name}`)\n\t\t\t: attrData.name;\n\n\tconst AttributeComponent = getAttributeComponent(attrData.type);\n\tif (!AttributeComponent) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t<>Error finding component for attribute type {attrData.type}\n\t\t\t
\n\t\t);\n\t}\n\n\tconst checkRequired = () => {\n\t\t// We are enforcing mandatory if we:\n\t\t// started with no value\n\t\t// do not have multiple values\n\t\t// If neither of those are true we fallback to the prop passed in\n\t\treturn (\n\t\t\tattrData.mandatory === 1 &&\n\t\t\t(!isEmptyValue(originalValue) && !multipleValues\n\t\t\t\t? true\n\t\t\t\t: enforceMandatory)\n\t\t);\n\t};\n\n\tconst canAppend =\n\t\tappendable && ATTRIBUTE_APPENDABLE_TYPES.includes(attrData.type as any);\n\tconst [required, requiredRef, setRequired] = useRefState(checkRequired());\n\n\tconst modeRef = useRef(mode);\n\tuseEffect(() => {\n\t\tmodeRef.current = mode;\n\t}, [mode]);\n\n\t// Will be sent to attribute component\n\tconst sendProps = {\n\t\taction,\n\t\tattrData: {\n\t\t\t...attrData,\n\t\t\tname: attributeName,\n\t\t},\n\t\tchanged,\n\t\tdisabled: attributeWorking || disabled || (mode === 'append' && !canAppend),\n\t\tdisableFolksonomy,\n\t\terror,\n\t\thideLabel,\n\t\tisMetadataLookup,\n\t\tisMetadataTarget,\n\t\tloadingValue,\n\t\tmultipleValues,\n\t\tname: fieldName,\n\t\tonSearch,\n\t\tplaceholder,\n\t\trequired,\n\t\tvalue: value as any,\n\t};\n\n\tconst lastActionRef = useRef(action);\n\tconst lastValueRef = useRef(value);\n\n\tconst getDisabledActions = () => {\n\t\tconst disabledActions: AttributeAction[] = [];\n\t\tif (!clearable || (!forceClearable && attrData.mandatory === 1)) {\n\t\t\tdisabledActions.push('clear');\n\t\t}\n\t\treturn disabledActions;\n\t};\n\n\tconst [disabledActions, setDisabledActions] = useState(\n\t\tgetDisabledActions(),\n\t);\n\n\t/**\n\t * Set attribute value\n\t * A helper so you do not need to keep proving `attrData.name`\n\t */\n\tconst setValue = useCallback(\n\t\t(value: Value) => form?.setValue(fieldName, value),\n\t\t[fieldName, form?.setValue],\n\t);\n\n\t/**\n\t * Set attribute action\n\t * A helper so you do not need to keep proving `attrData.name`\n\t */\n\tconst setAction = useCallback(\n\t\t(newAction: AttributeAction) => {\n\t\t\tif (newAction === 'clear') {\n\t\t\t\t// If the new `action` is `clear`, clear the value\n\t\t\t\tsetValue(null);\n\t\t\t} else if (action === 'clear') {\n\t\t\t\t// If the current `action` is `clear`, and the value is null,\n\t\t\t\t// set the value back to original\n\t\t\t\tvalue == null && setValue(originalValue);\n\t\t\t}\n\t\t\tform?.setAction(fieldName, newAction);\n\t\t},\n\t\t[fieldName, action, setValue, value],\n\t);\n\n\t// On every render we will check the value\n\t// We want to know if the value impacts the action\n\tuseLayoutEffect(() => {\n\t\t// Do nothing if there was no change\n\t\tif (lastValueRef.current === value) return;\n\n\t\tlastValueRef.current = value;\n\n\t\tconst cleared = action === 'clear';\n\t\tlet newAction = action;\n\t\tif (cleared && value != null) {\n\t\t\tnewAction = mode || 'overwrite';\n\t\t} else if (\n\t\t\tvalue == null &&\n\t\t\t!disabledActions.includes('clear') &&\n\t\t\t!isEmptyValue(originalValue) &&\n\t\t\t!multipleValues\n\t\t) {\n\t\t\tnewAction = 'clear';\n\t\t}\n\n\t\tnewAction !== action && setAction(newAction);\n\t});\n\n\t// On every render we will check the action\n\t// We want to know if the action impacts the value\n\t// or was an invalid action\n\tuseLayoutEffect(() => {\n\t\t// Do nothing if there was no change\n\t\tif (lastActionRef.current === action) return;\n\n\t\tconst lastAction = lastActionRef.current;\n\n\t\tlastActionRef.current = action;\n\t\t// We were passed down an action that is not allowed\n\t\tif (disabledActions.includes(action)) {\n\t\t\tsetAction(mode !== action ? mode : 'overwrite');\n\t\t\treturn;\n\t\t}\n\n\t\tlet newValue = value;\n\t\t// Put back original value when last action was `clear`\n\t\tif (lastAction === 'clear' && value === null) newValue = originalValue;\n\t\t// Empty value on action `clear`\n\t\tif (action === 'clear') newValue = null;\n\n\t\tsetValue(newValue);\n\t});\n\n\t// Setup and tear down of our component\n\t// This will cause an initial re-render due to the action\n\tuseEffect(() => {\n\t\tconst validator = (value: Value) =>\n\t\t\trequiredRef.current && isEmptyValue(value)\n\t\t\t\t? new Error(i18n.t('i18n.mandatory'))\n\t\t\t\t: validators[attrData.type](value, attrData);\n\n\t\tform?.register(fieldName, {\n\t\t\tvalidator,\n\t\t\thasChanged,\n\t\t\tvalue,\n\t\t\taction: modeRef.current,\n\t\t});\n\n\t\treturn () => {\n\t\t\tform?.unregister(fieldName);\n\t\t};\n\t}, [fieldName, attrData.type]);\n\n\t// Props related to the fields requirement have changed\n\tuseUpdateEffect(() => {\n\t\tsetRequired(checkRequired());\n\t}, [attrData.mandatory, enforceMandatory, originalValue]);\n\n\t// Props related to the fields validation have changed\n\tuseUpdateEffect(() => {\n\t\t// Only need to re-run validation for fields with an error already\n\t\t// if the field was not valid, it will be caught at submit\n\t\tform?.errorsRef.current[fieldName] && form?.validateField(fieldName, value);\n\t}, [attrData.mandatory, enforceMandatory]);\n\n\t// Props related to disabled/enabled actions have changed\n\tuseUpdateEffect(() => {\n\t\tsetDisabledActions(getDisabledActions());\n\t}, [clearable, forceClearable, attrData.mandatory]);\n\n\t/** Clear toggle */\n\tconst handleClearToggle = useCallback(\n\t\t(cleared: boolean) => {\n\t\t\tsetAction(cleared ? 'clear' : mode || 'overwrite');\n\t\t},\n\t\t[mode, setAction],\n\t);\n\n\t/** Metadata lookup */\n\tconst handleLookup = useCallback(\n\t\t(lookupValue: string) => onLookup?.(attrData, lookupValue),\n\t\t[attrData, onLookup],\n\t);\n\n\t/** Update value */\n\tconst handleValueChange = useCallback(\n\t\t(newValue: Value) => {\n\t\t\t// Empty value\n\t\t\tif (isEmptyValue(newValue)) {\n\t\t\t\t// If we opted to clear then there is nothing more to do\n\t\t\t\tif (action === 'clear') return;\n\t\t\t\t// Otherwise, normalize our empty values as `null`\n\t\t\t\tnewValue = null;\n\t\t\t}\n\t\t\tonValueChange?.(newValue);\n\t\t\tsetValue(newValue);\n\t\t},\n\t\t[action, setValue, onValueChange],\n\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{isMetadataLookup || isMetadataTarget ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{clearable || forceClearable ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : null}\n\t\t\t
\n\n\t\t\t\n\t\t\n\t);\n};\n\nexport const EditableAttribute = withStyles(styles, {\n\tname: 'Attributes-Attribute-Editable',\n})(\n\tReact.memo(\n\t\tEditableAttributeComponent,\n\t\tcompareProps([], 'attribute-editable'),\n\t),\n);\n\nexport default EditableAttribute;\n","import base from './base';\nimport {dateToHTML} from '@netx/core/utils';\n\ntype Value = number | string | Array;\n\nexport const date = (value?: Value) => {\n\tvalue = base(value);\n\tif (value == null) return value;\n\tif (Array.isArray(value)) {\n\t\tvalue = value.map((v) => {\n\t\t\tif (v.toString().includes('/') || Number.isInteger(v)) v = dateToHTML(v);\n\t\t\treturn v;\n\t\t});\n\t} else if (Number.isInteger(value) || value.toString().includes('/')) {\n\t\tvalue = dateToHTML(value);\n\t}\n\n\treturn value;\n};\n\nexport default date;\n","import base from './base';\n\nexport const number = (value: any) => base(value);\n\nexport default number;\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/participant';\n\nimport PagerModel from '@netx/core-app/models/pager';\nimport SorterModel from '@netx/core-app/models/sorter';\n\nexport default class Participants extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @property {object} methods - Collection methods\n\t * @property {method} methods.read - Fetch participants\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'getParticipants',\n\t\t\t\t\tthis.resourceName,\n\t\t\t\t\tthis.resourceId,\n\t\t\t\t\tthis.filterStr,\n\t\t\t\t\tthis.sorter.getSortDTO(),\n\t\t\t\t\tthis.pager.getPageDTO(),\n\t\t\t\t];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.read - Parse participants\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} participants Participants\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(participants, opts) {\n\t\t\t\treturn _.map(participants, participant => {\n\t\t\t\t\t// We want to combine the type and id `-`\n\t\t\t\t\t// `all` has no id and is just \"all\"\n\t\t\t\t\tconst uniqueId = _.compact(\n\t\t\t\t\t\t_.values(_.pick(participant, 'type', 'id')),\n\t\t\t\t\t).join('-');\n\n\t\t\t\t\treturn _.extend(participant, {\n\t\t\t\t\t\tuniqueId: uniqueId,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * @memberof module:asset/collections/participants\n\t\t * @alias resourceId\n\t\t * @type {number}\n\t\t */\n\t\tthis.resourceId = opts.resourceId;\n\n\t\t/**\n\t\t * @memberof module:asset/collections/participants\n\t\t * @alias resourceName\n\t\t * @type {string}\n\t\t */\n\t\tthis.resourceName = opts.resourceName;\n\n\t\t/**\n\t\t * Paging model\n\t\t * @memberof module:asset/collections/participants\n\t\t * @alias pager\n\t\t * @type {module:app/models/pager}\n\t\t */\n\t\tthis.pager = new PagerModel(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tcollection: this,\n\t\t\t},\n\t\t);\n\n\t\t/**\n\t\t * Sorting model\n\t\t * @memberof module:asset/collections/participants\n\t\t * @alias sorter\n\t\t * @type {module:app/models/sorter}\n\t\t */\n\t\tthis.sorter = new SorterModel(\n\t\t\t{\n\t\t\t\tfield: opts.sortField || 'label',\n\t\t\t\torder: opts.sortOrder || 'desc',\n\t\t\t},\n\t\t\t{\n\t\t\t\tcollection: this,\n\t\t\t},\n\t\t);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tdispatcher,\n\t\t\t'permissions:participant:edit:success',\n\t\t\t(participant, isNew) => {\n\t\t\t\tif (\n\t\t\t\t\tparticipant.get('resourceName') !== this.resourceName ||\n\t\t\t\t\tparticipant.get('resourceId') !== this.resourceId ||\n\t\t\t\t\tthis.get(participant.id)\n\t\t\t\t)\n\t\t\t\t\treturn;\n\n\t\t\t\tthis.add(participant);\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} participant Participant object\n\t * @param {object} opts Request options\n\t */\n\taddParticipant(participant, opts) {\n\t\tconst model = new this.model(\n\t\t\t_.extend(\n\t\t\t\t_.pick.apply(_, [participant].concat(_.keys(this.model.GetDefaults()))),\n\t\t\t\t{\n\t\t\t\t\tresourceId: this.resourceId,\n\t\t\t\t\tresourceName: this.resourceName,\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\n\t\treturn model.save().then(() => this.add(model, opts));\n\t}\n\n\t/**\n\t * Filter by participant type\n\t * @param {string} type Type (user/group/all)\n\t * @return {module:permissions/collections/participants} Participants\n\t */\n\tfilterByType(type) {\n\t\treturn new this.constructor(\n\t\t\tthis.filter(model => model.get('type') === type),\n\t\t\t{\n\t\t\t\tresourceName: this.resourceName,\n\t\t\t\tresourceId: this.resourceId,\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Get participant by type (and id)\n\t * @param {string} type Type\n\t * @param {number} id ID\n\t * @return {module:permissions/models/participant} Participant\n\t */\n\tgetParticipant(type, id) {\n\t\tif (type === 'all') {\n\t\t\treturn this.findWhere({type: type});\n\t\t}\n\t\treturn this.findWhere({type: type, id: id});\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} id Participant id\n\t */\n\tremoveParticipant(id) {\n\t\tconst model = this.get(id);\n\n\t\tif (!model) {\n\t\t\treturn new $.Deferred().reject(\n\t\t\t\tnew Error('Participant model with id `' + id + '` not found.'),\n\t\t\t);\n\t\t}\n\n\t\treturn model.destroy({wait: true});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Participants';\n\t}\n}\n","export {default as attributes} from './attributes';\nexport * from './attributes';\n\nexport {default as attributeSets} from './attributeSets';\nexport * from './attributeSets';\n","export const ACTIONS = {\n\tITEM_MANAGER_ADD: 'ITEM_MANAGER_ADD' as const,\n\tITEM_MANAGER_ADD_MULTIPLE: 'ITEM_MANAGER_ADD_MULTIPLE' as const,\n\tITEM_MANAGER_REMOVE: 'ITEM_MANAGER_REMOVE' as const,\n\tITEM_MANAGER_REORDER: 'ITEM_MANAGER_REORDER' as const,\n\tITEM_MANAGER_RESET: 'ITEM_MANAGER_RESET' as const,\n\tITEM_MANAGER_SET_MAX_ITEMS: 'ITEM_MANAGER_SET_MAX_ITEMS' as const,\n} as const;\n","import {nanoid} from 'nanoid';\nimport arrayMove from 'array-move';\nimport {ACTIONS} from '../constants';\nimport {Action, Items} from './actions';\n\ntype State = {\n\tcount: number;\n\thasMaxItems: boolean;\n\titems: Items;\n\tlastAction: null | 'add' | 'remove' | 'reorder';\n\tlastId: null | number | string;\n\tmaxItems: number;\n};\n\nexport const initialState: State = {\n\tcount: 0,\n\thasMaxItems: false,\n\titems: [],\n\tlastAction: null,\n\tlastId: null,\n\tmaxItems: Infinity,\n};\n\nconst limitItems = (items: Items, limit: number) => {\n\tif (items.length <= limit) return items;\n\treturn items.slice(0, limit);\n};\n\nconst onRemove = (items: Items, id: number | string) =>\n\titems.filter((item) => item !== id);\n\nexport default (state: State, action: Action): State => {\n\tif (process.env.NODE_ENV === 'development') {\n\t\tconsole.log(action.type);\n\t}\n\tswitch (action.type) {\n\t\tcase ACTIONS.ITEM_MANAGER_ADD: {\n\t\t\tconst id = action.data || nanoid();\n\t\t\tconst items = [...state.items, id];\n\t\t\tconst count = items.length;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcount,\n\t\t\t\thasMaxItems: count === state.maxItems,\n\t\t\t\titems,\n\t\t\t\tlastAction: 'add',\n\t\t\t\tlastId: id,\n\t\t\t};\n\t\t}\n\t\tcase ACTIONS.ITEM_MANAGER_ADD_MULTIPLE: {\n\t\t\tconst items = limitItems(\n\t\t\t\t[...state.items, ...action.data],\n\t\t\t\tstate.maxItems,\n\t\t\t);\n\t\t\tconst count = items.length;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcount,\n\t\t\t\thasMaxItems: count === state.maxItems,\n\t\t\t\tlastAction: 'add',\n\t\t\t\titems,\n\t\t\t};\n\t\t}\n\t\tcase ACTIONS.ITEM_MANAGER_REMOVE: {\n\t\t\tconst items = onRemove(state.items, action.data);\n\t\t\tconst count = items.length;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcount,\n\t\t\t\thasMaxItems: count === state.maxItems,\n\t\t\t\titems,\n\t\t\t\tlastAction: 'remove',\n\t\t\t};\n\t\t}\n\t\tcase ACTIONS.ITEM_MANAGER_REORDER: {\n\t\t\tconst {fromIndex, toIndex} = action.data;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titems: arrayMove(state.items, fromIndex, toIndex),\n\t\t\t\tlastAction: 'reorder',\n\t\t\t};\n\t\t}\n\t\tcase ACTIONS.ITEM_MANAGER_RESET: {\n\t\t\tif (action.data) {\n\t\t\t\tconst items = limitItems(action.data, state.maxItems);\n\t\t\t\tconst count = items.length;\n\t\t\t\treturn {\n\t\t\t\t\t...initialState,\n\t\t\t\t\tcount,\n\t\t\t\t\thasMaxItems: count === state.maxItems,\n\t\t\t\t\titems,\n\t\t\t\t\tmaxItems: state.maxItems,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...initialState,\n\t\t\t\tmaxItems: state.maxItems,\n\t\t\t};\n\t\t}\n\t\tcase ACTIONS.ITEM_MANAGER_SET_MAX_ITEMS: {\n\t\t\tconst maxItems = Math.max(action.data || Infinity, 0);\n\t\t\tif (state.count > maxItems) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tcount: maxItems,\n\t\t\t\t\thasMaxItems: true,\n\t\t\t\t\titems: limitItems(state.items, maxItems),\n\t\t\t\t\tmaxItems,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\thasMaxItems: state.count === maxItems,\n\t\t\t\tmaxItems,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn state;\n};\n","import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseMemo,\n\tuseReducer,\n} from 'react';\n\nimport {nanoid} from 'nanoid';\n\nimport {useForm, FormType, FormValues} from '@netx/core-components/Form';\n\nimport actions, {ActionType} from './store/actions';\nimport reducer, {initialState} from './store/reducers';\n\nexport type ItemManagerStoreContextType = {\n\tstate: typeof initialState;\n\tgetItems(): any[];\n\taddItem(values: FormValues): void;\n\taddItems(items: FormValues[]): void;\n\tremoveItem(id: number | string): void;\n\tresetItems(items?: FormValues[]): void;\n\tform: FormType;\n};\n\nconst ActionsContext = createContext({} as any);\nconst ItemsManagerServiceContext = createContext(\n\t{} as any,\n);\n\nexport const useItemManagerActions = () =>\n\tuseContext>(ActionsContext);\nexport const useItemManagerStore = () =>\n\tuseContext(ItemsManagerServiceContext);\n\nconst getNewItemValues = (formValues: FormValues, id: number | string) => {\n\tconst values: FormValues = {};\n\tObject.entries(formValues).forEach(([key, value]) => {\n\t\tvalues[`${key}[${id}]`] = value;\n\t});\n\treturn values;\n};\n\nconst getNewItemsValues = (\n\titems: FormValues[],\n\tids: Array,\n) => {\n\treturn items\n\t\t.map((item, idx) => getNewItemValues(item, ids[idx]))\n\t\t.reduce((result, currentObject) => {\n\t\t\tfor (const key in currentObject) {\n\t\t\t\tif (currentObject.hasOwnProperty(key)) {\n\t\t\t\t\tresult[key] = currentObject[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}, {});\n};\n\nexport const ItemManagerServiceProvider = ({children}) => {\n\tconst [state, dispatch] = useReducer(reducer, initialState);\n\tconst dispatchActions = useMemo(() => actions(dispatch), [dispatch]);\n\n\tconst form = useForm(undefined, {\n\t\talwaysValidate: true,\n\t\tremoveValueOnUnregister: false,\n\t});\n\n\tconst addItem = useCallback(\n\t\t(values) => {\n\t\t\tconst id = dispatchActions.add();\n\t\t\tform.setValues((formValues) => ({\n\t\t\t\t...formValues,\n\t\t\t\t...getNewItemValues(values, id),\n\t\t\t}));\n\t\t},\n\t\t[dispatchActions.add, form.setValues],\n\t);\n\n\tconst addItems = useCallback(\n\t\t(items: FormValues[]) => {\n\t\t\tconst ids = items.map(() => nanoid());\n\t\t\tdispatchActions.addMultiple(ids);\n\t\t\tform.setValues((formValues) => ({\n\t\t\t\t...formValues,\n\t\t\t\t...getNewItemsValues(items, ids),\n\t\t\t}));\n\t\t},\n\t\t[addItem],\n\t);\n\n\tconst removeItem = useCallback((id: number | string) => {\n\t\tdispatchActions.remove(id);\n\t\tform.setValues((formValues) => {\n\t\t\tconst newValues = {...formValues};\n\t\t\tdelete newValues[`value[${id}]`];\n\t\t\treturn newValues;\n\t\t});\n\t}, []);\n\n\tconst resetItems = useCallback(\n\t\t(items: FormValues[] = []) => {\n\t\t\tconst ids = items.map(() => nanoid());\n\t\t\tdispatchActions.reset(ids);\n\t\t\tform.setValues((formValues) => ({\n\t\t\t\t...formValues,\n\t\t\t\t...getNewItemsValues(items, ids),\n\t\t\t}));\n\t\t},\n\t\t[dispatchActions.reset],\n\t);\n\n\tconst getItems = useCallback(() => {\n\t\tconst values: FormValues = {};\n\t\tconst orderedValues: FormValues[] = [];\n\n\t\t// First collect the values all under their respective uuid\n\t\tconst formValues = form.valuesRef.current;\n\t\tfor (const key in formValues) {\n\t\t\tconst pieces = key.match(/(.*)\\[(.*)\\]/);\n\t\t\tif (!pieces) continue;\n\n\t\t\tconst [, fieldName, uuid] = pieces;\n\t\t\tif (!values[uuid]) values[uuid] = {};\n\t\t\tvalues[uuid][fieldName] = formValues[key];\n\t\t}\n\n\t\t// Then put values, in order, into an array (without the uuid)\n\t\tconst {items} = state;\n\t\tfor (const key in values) {\n\t\t\tconst idx = items.indexOf(key);\n\t\t\tif (idx < 0) continue;\n\t\t\torderedValues[idx] = values[key];\n\t\t}\n\n\t\treturn orderedValues;\n\t}, [state.items]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n};\n","import {ACTIONS} from '../constants';\nimport {nanoid} from 'nanoid';\n\nexport type Id = number | string;\nexport type Items = Array;\n\nexport type ReorderParams = {\n\tfromIndex: number;\n\ttoIndex: number;\n};\n\nexport type Action =\n\t| {type: typeof ACTIONS.ITEM_MANAGER_ADD; data?: Id}\n\t| {\n\t\t\ttype: typeof ACTIONS.ITEM_MANAGER_ADD_MULTIPLE;\n\t\t\tdata: Id[];\n\t }\n\t| {type: typeof ACTIONS.ITEM_MANAGER_REMOVE; data: Id}\n\t| {type: typeof ACTIONS.ITEM_MANAGER_REORDER; data: ReorderParams}\n\t| {type: typeof ACTIONS.ITEM_MANAGER_RESET; data?: Id[]}\n\t| {type: typeof ACTIONS.ITEM_MANAGER_SET_MAX_ITEMS; data: number};\n\nexport default function actions(dispatch: React.Dispatch) {\n\treturn {\n\t\t/**\n\t\t * Add item\n\t\t * @return Item ID\n\t\t */\n\t\tadd(id?: Id) {\n\t\t\tid = id != null ? id : nanoid();\n\t\t\tdispatch({type: ACTIONS.ITEM_MANAGER_ADD, data: id});\n\t\t\treturn id;\n\t\t},\n\t\t/**\n\t\t * Add multiple items\n\t\t * @return Item IDs\n\t\t */\n\t\taddMultiple(ids?: Id[], count = 0) {\n\t\t\tids =\n\t\t\t\tids != null ? ids : ([] as number[]).fill(count).map(() => nanoid());\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.ITEM_MANAGER_ADD_MULTIPLE,\n\t\t\t\tdata: ids,\n\t\t\t});\n\t\t\treturn ids;\n\t\t},\n\t\t/** Remove item */\n\t\tremove: (id: Id) => dispatch({type: ACTIONS.ITEM_MANAGER_REMOVE, data: id}),\n\t\t/** Reorder item */\n\t\treorder: (fromIndex: number, toIndex: number) =>\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.ITEM_MANAGER_REORDER,\n\t\t\t\tdata: {fromIndex, toIndex},\n\t\t\t}),\n\t\t/** Reset items */\n\t\treset: (items?: Id[]) =>\n\t\t\tdispatch({type: ACTIONS.ITEM_MANAGER_RESET, data: items}),\n\t\t/** Set max items */\n\t\tsetMaxItems: (maxItems: number) =>\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.ITEM_MANAGER_SET_MAX_ITEMS,\n\t\t\t\tdata: maxItems,\n\t\t\t}),\n\t};\n}\n\nexport type ActionType = ReturnType;\n","import React, {useEffect, useCallback, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {SortableContainer} from 'react-sortable-hoc';\n\nimport {\n\tgetInputFormObject,\n\tFormValidationErrors,\n\tFormValues,\n\tFormActions,\n} from '@netx/core-components/Form';\n\nimport ScrollShadow from '../ScrollShadow';\n\nimport {useItemManagerStore, useItemManagerActions} from './ItemManagerService';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: '1 0 auto',\n\t\t\tflexDirection: 'column',\n\t\t\tminHeight: 0,\n\t\t\tposition: 'relative',\n\t\t\twidth: '100%',\n\t\t\t'&.hasItems': {\n\t\t\t\tflex: '0 1 auto',\n\t\t\t},\n\t\t},\n\t\twrapper: {\n\t\t\tflex: '1 1 auto',\n\t\t\tminHeight: 0,\n\t\t\toverflow: 'auto',\n\t\t\t'&.hasItems': {\n\t\t\t\tmargin: theme.spacing(2, 0, 1, 0),\n\t\t\t},\n\t\t},\n\t\tdisabled: {\n\t\t\topacity: 0.5,\n\t\t\t...theme.mixins.disabled,\n\t\t},\n\t\tsorting: {\n\t\t\t'& *': {\n\t\t\t\t// pointerEvents: 'none',\n\t\t\t},\n\t\t},\n\t});\n\nconst getItemMatchRegExp = (id: number | string) => {\n\treturn new RegExp(`\\\\[${id}\\\\]`);\n};\n\n/** Get item errors from form error entries */\nconst getItemErrors = (errors: FormValidationErrors, id: number | string) => {\n\tconst itemErrors = {};\n\tconst regex = getItemMatchRegExp(id);\n\tfor (const key in errors) {\n\t\tif (!key.match(regex)) continue;\n\t\titemErrors[key.replace(regex, '')] = errors[key];\n\t}\n\treturn itemErrors;\n};\n\n/** Get item values from form value entries */\nconst getItemValues = (values: FormValues, id: number | string) => {\n\tconst itemValues = {};\n\tconst regex = getItemMatchRegExp(id);\n\tfor (const key in values) {\n\t\tif (!key.match(regex)) continue;\n\t\titemValues[key.replace(regex, '')] = values[key];\n\t}\n\treturn itemValues;\n};\n\nconst getItemActions = (actions: FormActions, id: number | string) => {\n\tconst itemActions = {};\n\tconst regex = getItemMatchRegExp(id);\n\tfor (const key in actions) {\n\t\tif (!key.match(regex)) continue;\n\t\titemActions[key.replace(regex, '')] = actions[key];\n\t}\n\treturn itemActions;\n};\n\nexport interface ItemManagerProps {\n\tclassName?: string;\n\tdisabled?: boolean;\n\tfallback?: React.ReactNode;\n\titems?: any[];\n\tloading?: boolean;\n\tonRemoveClick?: (id: number | string) => boolean | void;\n\tscrollNewItemsIntoView?: boolean;\n\tItemComponent: React.FunctionComponent | React.ComponentType;\n\tItemComponentProps?: any;\n}\n\nconst ItemManagerWrapper = SortableContainer(\n\tScrollShadow(\n\t\tReact.forwardRef((props, ref) => {\n\t\t\treturn
;\n\t\t}),\n\t),\n);\n\nconst ItemManager: React.FunctionComponent<\n\tWithStyles & ItemManagerProps\n> = ({\n\tclassName,\n\tclasses,\n\tdisabled,\n\tfallback,\n\titems,\n\tloading,\n\tonRemoveClick,\n\tscrollNewItemsIntoView = true,\n\tItemComponent,\n\tItemComponentProps,\n}) => {\n\tconst {form, removeItem, resetItems, state} = useItemManagerStore();\n\tconst actions = useItemManagerActions();\n\tconst [isSorting, setIsSorting] = useState(-1);\n\n\tconst inputForm = getInputFormObject(form);\n\n\tuseEffect(() => {\n\t\tresetItems(items || []);\n\t}, [items]);\n\n\tuseEffect(() => {\n\t\tconst sorting = isSorting > -1;\n\t\tdocument.body.style.cursor = sorting ? 'grabbing' : '';\n\t\tdocument.body.style['-webkit-touch-callout'] = sorting ? 'none' : '';\n\t\tdocument.body.style['-webkit-user-select'] = sorting ? 'none' : '';\n\t\tdocument.body.style['user-select'] = sorting ? 'none' : '';\n\t}, [isSorting]);\n\n\tconst handleBeforeSortStart = useCallback(\n\t\t(sorting) => setIsSorting(sorting.index),\n\t\t[],\n\t);\n\n\tconst handleRemoveClick = useCallback(\n\t\t(id: number | string) => {\n\t\t\tif (onRemoveClick && onRemoveClick(id) === false) return;\n\t\t\tremoveItem(id);\n\t\t},\n\t\t[actions.remove],\n\t);\n\n\tconst handleSortEnd = useCallback(\n\t\t({oldIndex, newIndex}) => {\n\t\t\tsetIsSorting(-1);\n\t\t\tif (oldIndex === newIndex) return;\n\t\t\tactions.reorder(oldIndex, newIndex);\n\t\t},\n\t\t[actions.reorder],\n\t);\n\n\treturn (\n\t\t -1,\n\t\t\t\thasItems: !!state.items.length,\n\t\t\t})}\n\t\t>\n\t\t\t{loading ?
: null}\n\t\t\t{!loading && !!state.items.length ? (\n\t\t\t\t\n\t\t\t\t\t{state.items.map((id, idx) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t(!loading && fallback) || null\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default withStyles(styles)(React.memo(ItemManager));\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {faEquals as EqualsIcon} from '@fortawesome/pro-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\n\nimport {SortableHandle} from 'react-sortable-hoc';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tcursor: 'grab',\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '0 0 auto',\n\t\t\tmarginRight: 8,\n\t\t\twidth: 48,\n\t\t\theight: 48,\n\t\t\tpadding: 12,\n\t\t\tjustifyContent: 'center',\n\t\t\talignItems: 'center',\n\t\t\tverticalAlign: 'middle',\n\t\t},\n\t\tisSorting: {\n\t\t\tcursor: 'grabbing',\n\t\t},\n\t\tsortInProgress: {},\n\t});\n\nexport interface ItemManagerSortableHandle {\n\tisSorting?: boolean;\n}\n\nconst DragHandle: React.FunctionComponent<\n\tWithStyles & ItemManagerSortableHandle\n> = ({classes, isSorting}) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SortableHandle(withStyles(styles)(React.memo(DragHandle)));\n","import React, {useCallback} from 'react';\nimport clsx from 'clsx';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {faTimes as TimesIcon} from '@fortawesome/pro-solid-svg-icons';\nimport {InputForm} from '@netx/core-components/Form';\nimport ActionButton from '@netx/core-components/ActionButton';\n\nimport {compareProps} from '../util';\n\nimport DragHandle from './ItemManagerSortableHandle';\n\nconst styles = ({palette, spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tWebkitUserSelect: 'none',\n\t\t\tWebkitTouchCallout: 'none',\n\t\t\tuserSelect: 'none',\n\t\t\t'&:not($dense)': {\n\t\t\t\tmargin: spacing(0.5, 0),\n\t\t\t\tpadding: spacing(1),\n\t\t\t},\n\t\t\t'&$dense': {\n\t\t\t\tpadding: spacing(0.5),\n\t\t\t},\n\t\t\t'&.dragging-item': {\n\t\t\t\tbackground: palette.custom.background.light,\n\t\t\t\topacity: 0.95,\n\t\t\t\tzIndex: 99999,\n\t\t\t\t'& button': {\n\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&:not(.sortable)': {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tbottom: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\tmargin: 0,\n\t\t\t\ttransform: 'none !important',\n\t\t\t\tzIndex: 2,\n\t\t\t},\n\t\t},\n\t\tactions: {\n\t\t\tmarginLeft: 8,\n\t\t},\n\t\tdense: {},\n\t});\n\ninterface ChildProps extends Record {\n\tid: number | string;\n\terrors: any;\n\tform: InputForm;\n\tvalues: any;\n\tactions: any;\n}\n\nexport interface ItemManagerItemProps extends ChildProps {\n\tchildren(props: ChildProps): React.ReactNode | React.ReactNode[];\n\tdense?: boolean;\n\thideRemove?: boolean;\n\tonRemoveClick(id: number | string): void;\n\tsortable?: boolean;\n\tisSorting?: boolean;\n}\nconst ItemManagerItem: React.FunctionComponent<\n\tWithStyles & ItemManagerItemProps\n> = ({\n\tchildren,\n\tdense,\n\tclasses,\n\thideRemove,\n\tisSorting,\n\tonRemoveClick,\n\tsortable,\n\t...props\n}) => {\n\tconst handleRemoveClick = useCallback(() => {\n\t\tonRemoveClick(props.id);\n\t}, [onRemoveClick, props.id]);\n\n\treturn (\n\t\t\n\t\t\t{!sortable ? null : }\n\t\t\t{children(props)}\n\t\t\t{hideRemove !== true ? (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) : null}\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(\n\tReact.memo(ItemManagerItem, compareProps([], 'item-manager-item')),\n);\n","import React from 'react';\n\nimport {SortableElement, SortableElementProps} from 'react-sortable-hoc';\n\nimport Item, {ItemManagerItemProps} from './ItemManagerItem';\n\nexport interface ItemManagerSortableItemProps\n\textends ItemManagerItemProps,\n\t\tSortableElementProps {}\n\nexport default SortableElement((props) => (\n\t\n));\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.esm.js.map\n","import { focusManager } from './focusManager.esm.js';\nimport { onlineManager } from './onlineManager.esm.js';\nimport { sleep } from './utils.esm.js';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n if (isResolved || !shouldPause()) {\n return continueResolve(value);\n }\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n continueFn == null ? void 0 : continueFn();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.esm.js.map\n","import { Subscribable } from './subscribable.esm.js';\nimport { isServer } from './utils.esm.js';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.esm.js.map\n","import NetxQueryDam, {SuccessResponse} from '@netx/core/lib/netx-query-dam';\nexport type {QueryError} from '@netx/core/lib/netx-query-dam';\n\nimport {AttributeTemplate} from '../types';\n\nexport type MetadataDatasetLookup = {\n\tlabel: AttributeTemplate['name'];\n\tvalue: string;\n};\n\n/**\n * `metadataDatasetLookup` request params\n * (what is used to send to server)\n */\nexport type MetadataDatasetLookupRequestOptions = {\n\tname: AttributeTemplate['name'];\n\tvalue: string;\n};\n\n/**\n * `metadataDatasetLookup` request\n * (what gets sent to the server)\n */\nexport type MetadataDatasetLookupRequest = [\n\tMetadataDatasetLookupRequestOptions['name'],\n\tMetadataDatasetLookupRequestOptions['value'],\n];\n\n/**\n * `metadataDatasetLookup` response\n * (what comes back from the server)\n */\nexport type MetadataDatasetLookupResponse = SuccessResponse<\n\tMetadataDatasetLookupResult\n>;\n\n/**\n * `metadataDatasetLookup` result\n * (what is utilized from the server response)\n */\nexport type MetadataDatasetLookupResult = MetadataDatasetLookup[];\n\nexport const metadataDatasetLookupEndpoint = 'metadataDatasetLookup';\n\n/**\n * Metadata dataset lookup\n */\nexport const metadataDatasetLookup = async ({\n\tname,\n\tvalue,\n}: MetadataDatasetLookupRequestOptions) => {\n\tconst client = NetxQueryDam();\n\n\tconst requestParams: MetadataDatasetLookupRequest = [name, value];\n\n\treturn client\n\t\t.post(\n\t\t\tmetadataDatasetLookupEndpoint,\n\t\t\trequestParams,\n\t\t)\n\t\t.then((response) => response.data.result);\n};\n\nexport default metadataDatasetLookup;\n","import {ATTRIBUTE_TYPE} from '../constants';\nimport {AttributeType, AttributeValue} from '../types';\n\nimport {isEmptyValue} from '@netx/core-components/Form/util';\nimport dateParser from '../parsers/date';\n\n/**\n * In a lot of cases our values come through as arrays regardless of the multi-value\n * ability of an attribute template type\\\n * When utilizing a value from the server, pass it through this utility to ensure the\n * value is in the proper format (array vs non array) for that attribute template type\n * @param type Attribute template type\n * @param value Value to parse\n */\nexport const parseValue = (type: AttributeType, value: AttributeValue) => {\n\tswitch (type) {\n\t\tcase ATTRIBUTE_TYPE.DATE:\n\t\t\tvalue = Array.isArray(value)\n\t\t\t\t? !isEmptyValue(value[0])\n\t\t\t\t\t? value[0]\n\t\t\t\t\t: null\n\t\t\t\t: value;\n\t\t\treturn dateParser(value as string);\n\t\tcase ATTRIBUTE_TYPE.NUMBER:\n\t\tcase ATTRIBUTE_TYPE.SELECT:\n\t\tcase ATTRIBUTE_TYPE.TEXT:\n\t\tcase ATTRIBUTE_TYPE.TEXTAREA:\n\t\t\treturn Array.isArray(value)\n\t\t\t\t? !isEmptyValue(value[0])\n\t\t\t\t\t? value[0]\n\t\t\t\t\t: null\n\t\t\t\t: value;\n\t\tcase ATTRIBUTE_TYPE.MULTISELECT:\n\t\tcase ATTRIBUTE_TYPE.SEMANTIC:\n\t\tcase ATTRIBUTE_TYPE.TAG:\n\t\tcase ATTRIBUTE_TYPE.TAG_VOCAB:\n\t\t\treturn Array.isArray(value) ? value : !isEmptyValue(value) ? [value] : [];\n\t}\n\treturn value;\n};\n\nexport default parseValue;\n","/**\n * @class\n */\nimport Base from '@netx/core-permissions/models/permissionResource';\n\nimport ParticipantsCollection from '@netx/core-permissions/collections/participants';\n\nexport default class SharedResource extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.id - The default shared resource id (attribute set id, cart id, search id etc)\n\t * @property {boolean} defaults.canEdit - The default shared resource edit permission (can change the object's criteria [assets, attrs, etc])\n\t * @property {boolean} defaults.canManage - The default shared resource manage permission (can add new participants who can r/w, and can remove participants)\n\t * @property {number} defaults.contentCount - The default shared resource content count\n\t * @property {boolean} defaults.isFavorite - The default shared resource is favorited\n\t * @property {number} defaults.participantCount - The default shared resource other user particpation count\n\t * @property {string} defaults.title - The default shared resource title\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\t// id: 0,\n\t\t\tcanEdit: false,\n\t\t\tcanManage: false,\n\t\t\tcontentCount: 0,\n\t\t\tisFavorite: false,\n\t\t\tparticipantCount: 0,\n\t\t\ttitle: '',\n\t\t});\n\t}\n\n\t/**\n\t * These are not client side defined, but are also not to be sent to the server when\n\t * `this.self()` is called from the extending model\n\t * @memberof module:share/model/sharedResource\n\t * @alias clientAttrs\n\t * @type {array}\n\t */\n\tget clientAttrs() {\n\t\treturn [\n\t\t\t'canEdit',\n\t\t\t'canManage',\n\t\t\t'contentCount',\n\t\t\t'isFavorite',\n\t\t\t'participantCount',\n\t\t];\n\t}\n\n\t/**\n\t * @property {object} methods - Methods for this model\n\t * @property {method} methods.read - Fetch shared resource\n\t *\n\t * @property {method} methods.sendMessageBySharedResource - Notify user that resource has been shared with them\n\t * @property {method} methods.setFavorite - Set/unset shared resource as favorite\n\t */\n\tget methods() {\n\t\treturn _.extend(super.methods, {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread: function(opts) {\n\t\t\t\treturn ['getSharedResource', this.resourceName, this.id];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Notify user that resource has been shared with them\n\t\t\t * @method\n\t\t\t * @param {string} message Message\n\t\t\t * @param {object} userSelector User selector\n\t\t\t */\n\t\t\tsendMessageBySharedResource: function(message, userSelector, opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'sendMessageBySharedResource',\n\t\t\t\t\tthis.resourceName,\n\t\t\t\t\tthis.id,\n\t\t\t\t\tmessage || '',\n\t\t\t\t\tuserSelector,\n\t\t\t\t];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {boolean} favorite Favorite\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetFavorite: function(favorite, opts) {\n\t\t\t\treturn ['setFavorite', this.resourceName, this.id, favorite || false];\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @property {object} parsers - Parsers for this model\n\t * @property {function} parsers.fetchBean - Parse the result of full bean tied to shared resource\n\t * @property {function} parsers.setFavorite - Parse the result of set/unset favorite\n\t */\n\tget parsers() {\n\t\treturn _.extend(super.parsers, {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} fullBean Full bean of the thing shared resource is tied to\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tfetchBean: function(fullBean, opts) {\n\t\t\t\tthis.set(fullBean, opts);\n\t\t\t\t!opts.silent && this.trigger('sync', this, fullBean, opts);\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {boolean} resp Response (success as a boolean)\n\t\t\t * @param {boolean} favorite Favorite\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetFavorite: function(resp, favorite, opts) {\n\t\t\t\t// If it was successful\n\t\t\t\t// Technically an unsuccessful response should be an error and so we should never hit this parser with a response of `false`\n\t\t\t\tresp && this.set('isFavorite', favorite);\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * @memberof module:share/model/sharedResource\n\t\t * @alias participants\n\t\t * @type {module:share/collections/participants}\n\t\t */\n\t\tlet participants = opts.participants;\n\t\tif (_.isFunction(participants)) {\n\t\t\tparticipants = new participants([], {\n\t\t\t\tresourceId: this.id,\n\t\t\t\tresourceName: this.resourceName,\n\t\t\t});\n\t\t}\n\t\tthis.participants =\n\t\t\tparticipants ||\n\t\t\tnew ParticipantsCollection([], {\n\t\t\t\tresourceId: this.id,\n\t\t\t\tresourceName: this.resourceName,\n\t\t\t});\n\t\tthis.addSubCollection(this.participants);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'sync', function(model, id) {\n\t\t\tthis.participants.resourceId = this.id;\n\t\t});\n\t\tthis.listenTo(this, 'request:fetchBean', function(model, xhr, opts) {\n\t\t\tthis.trigger('request:read', this, xhr, opts);\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} participant Participant object\n\t * @param {object} opts Request options\n\t * @return {module:permissions/model/participant} Particpant model\n\t */\n\taddParticipant(participant, opts) {\n\t\treturn this.participants.addParticipant(participant, opts);\n\t}\n\n\t/**\n\t * ACL\n\t * @method\n\t * @param {string} perm Permission string ( \"delete\", \"write/(edit)\", \"share\", etc )\n\t * @return {boolean} Allowed\n\t */\n\tallows(perm) {\n\t\tif (perm == null) return;\n\n\t\t// If the data came from the server we can always read it\n\t\tif (perm === 'read') return true;\n\n\t\tswitch (perm) {\n\t\t\t// Can delete saved cart\n\t\t\tcase 'delete':\n\t\t\t\treturn this.canManage();\n\t\t\t// Can download\n\t\t\t// DAM-6555. (Allow access to download; the download process will reveal what can/can't be downloaded.)\n\t\t\tcase 'download':\n\t\t\t\treturn true;\n\t\t\t// Can manage user access to shared resource\n\t\t\tcase 'manage':\n\t\t\tcase 'share':\n\t\t\t\treturn this.canManage();\n\t\t\t// Can add/remove items from shared resource\n\t\t\tcase 'edit':\n\t\t\tcase 'write':\n\t\t\t\treturn this.canManage() || this.canEdit();\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\tcanEdit() {\n\t\tvar perm = this.get('permission');\n\n\t\treturn (\n\t\t\tthis.get('canEdit') === true || perm === 'delete' || perm === 'write'\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\tcanManage() {\n\t\tvar perm = this.get('permission');\n\n\t\treturn this.get('canManage') === true || perm === 'delete';\n\t}\n\n\t/**\n\t * Shared resources use participants\n\t * We should try and unify the two and have particpants be how all\n\t * permissions are handled\n\t * @override\n\t * @param {object} opts Request options\n\t */\n\tgetPermissions(opts) {\n\t\treturn this.getParticipants.apply(this, arguments);\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} opts Request options\n\t */\n\tgetParticipants(opts) {\n\t\tif (this.isNew()) return new $.Deferred().resolveWith(this.participants);\n\n\t\treturn this.participants.fetch(opts);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\tisFavorite() {\n\t\treturn this.get('isFavorite') === true;\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} id Participant id\n\t * @param {object} opts Request options\n\t * @return {module:permissions/model/participant} Particpant model\n\t */\n\tremoveParticipant(id, opts) {\n\t\treturn this.participants.removeParticipant(id, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} message Message\n\t * @param {object} userSelector User selector\n\t * @param {object} opts Options\n\t */\n\tsendMessage(message, userSelector, opts) {\n\t\treturn this.sendMessageBySharedResource(message, userSelector, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} opts Request options\n\t */\n\ttoggleFavorite(opts) {\n\t\tvar favorite = !this.isFavorite();\n\t\treturn this.setFavorite(favorite, opts).then(function() {\n\t\t\treturn this.isFavorite();\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'SharedResource';\n\t}\n}\n","import {useEffect, useState} from 'react';\n\nimport type {AttributeId, Lookups} from '../types';\nimport {attributes as attributesSingleton} from '@netx/core-asset/collections/singleton';\n\nexport type LookupsAllowed = Lookups;\n\n/**\n * Get valid targets/keys for lookups in sets\n */\nexport const useMetadataLookupsAllowed = (\n\tattributeIds: AttributeId[],\n\tdisableLookups = false,\n): LookupsAllowed => {\n\tconst [lookupsAllowed, setLookupsAllowed] = useState({\n\t\tkeys: [],\n\t\ttargets: [],\n\t});\n\n\t/** Set the lookup keys and targets to empty */\n\tconst setEmpty = () => {\n\t\tsetLookupsAllowed({\n\t\t\tkeys: [],\n\t\t\ttargets: [],\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (disableLookups) {\n\t\t\tsetEmpty();\n\t\t\treturn;\n\t\t}\n\n\t\t// Get templates for ids\n\t\tconst templates = attributesSingleton.filter((attr) =>\n\t\t\tattributeIds.includes(attr.id),\n\t\t);\n\n\t\t// Get all key related attributes\n\t\tconst keys = templates.filter((attr) => !!attr.get('keyDatasets').length);\n\t\t// Get all target related attributes\n\t\tconst targets = templates.filter(\n\t\t\t(attr) => !!attr.get('targetDatasets').length,\n\t\t);\n\n\t\t// Nohting here\n\t\tif (!keys.length || !targets.length) {\n\t\t\tsetEmpty();\n\t\t\treturn;\n\t\t}\n\n\t\t// Get the attribute ids that are keys with target and targets with keys\n\t\t// we will not support lookups on keys that have no targets and vice versa\n\t\tsetLookupsAllowed({\n\t\t\tkeys: keys\n\t\t\t\t.filter((attr) =>\n\t\t\t\t\tattr\n\t\t\t\t\t\t.get('keyDatasets')\n\t\t\t\t\t\t.some((keyId: AttributeId) =>\n\t\t\t\t\t\t\ttemplates.some((attr) =>\n\t\t\t\t\t\t\t\tattr.get('targetDatasets').includes(keyId),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.map((attr) => attr.id),\n\t\t\ttargets: targets\n\t\t\t\t.filter((attr) =>\n\t\t\t\t\tattr\n\t\t\t\t\t\t.get('targetDatasets')\n\t\t\t\t\t\t.some((targetId: AttributeId) =>\n\t\t\t\t\t\t\ttemplates.some((attr) =>\n\t\t\t\t\t\t\t\tattr.get('keyDatasets').includes(targetId),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.map((attr) => attr.id),\n\t\t});\n\t}, [disableLookups, attributeIds]);\n\n\treturn lookupsAllowed;\n};\n\nexport default useMetadataLookupsAllowed;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const DRAG_RESIZE_CLASS_NAME = 'DragResize';\nexport const DRAG_RESIZE_CLASS_SLOTS = ['root', 'content', 'sentinel'] as const;\n\nexport type DragResizeClassSlot = typeof DRAG_RESIZE_CLASS_SLOTS[number];\n\nexport interface DragResizeClasses {\n\troot: string;\n\tcontent: string;\n\tsentinel: string;\n\n\tdragging: string;\n\tbottom: string;\n\tleft: string;\n\tright: string;\n\ttop: string;\n}\n\nexport type DragResizeClassKey = keyof DragResizeClasses;\n\nexport const getDragResizeUtilityClass = (slot: DragResizeClassSlot) =>\n\tgenerateUtilityClass(DRAG_RESIZE_CLASS_NAME, slot);\n\nexport const dragResizeClasses: DragResizeClasses = generateUtilityClasses(\n\tDRAG_RESIZE_CLASS_NAME,\n\t['root', 'content', 'dragging', 'left', 'right', 'sentinel', 'top', 'bottom'],\n);\n\nexport default dragResizeClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {composeClasses, styled, WithClasses} from '@netx/core-components/Theme';\nimport {DragResizeDirection, DRAG_RESIZE_DEFAULT_DIRECTION} from './constants';\nimport {\n\tdragResizeHandleClasses,\n\tgetDragResizeHandleUtilityClass,\n\tDragResizeHandleClasses,\n\tDRAG_RESIZE_HANDLE_CLASS_NAME,\n} from './dragResizeHandleClasses';\n\ntype DragResizeHandleUtiltiyClassProps = WithClasses<\n\tDragResizeHandleClasses,\n\t{\n\t\tdragging?: boolean;\n\t\tdirection: DragResizeDirection;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: DragResizeHandleUtiltiyClassProps) => {\n\tconst {classes, direction, dragging} = ownerState;\n\tconst slots = {\n\t\troot: ['root', direction, dragging && 'dragging'],\n\t\tellipsis: ['ellipsis'],\n\t};\n\treturn composeClasses(slots, getDragResizeHandleUtilityClass, classes);\n};\n\nconst DragResizeHandleRoot = styled('div', {\n\tname: DRAG_RESIZE_HANDLE_CLASS_NAME,\n\tslot: 'Root',\n})(({theme, ownerState}) => {\n\tconst {direction} = ownerState as DragResizeHandleUtiltiyClassProps;\n\treturn {\n\t\talignItems: 'center',\n\t\tbackground: theme.palette.custom.background.accent,\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\t// opacity: 1,\n\t\tposition: 'absolute',\n\t\t// transition: theme.transitions.create('opacity', {\n\t\t// \tduration: theme.transitions.duration.short,\n\t\t// \teasing: theme.transitions.easing.easeInOut,\n\t\t// }),\n\t\tuserSelect: 'none !important',\n\t\tzIndex: theme.zIndex.drawer,\n\t\t...([DragResizeDirection.LEFT, DragResizeDirection.RIGHT].includes(\n\t\t\tdirection,\n\t\t)\n\t\t\t? {\n\t\t\t\t\tbottom: 0,\n\t\t\t\t\tcursor: 'col-resize',\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: 3,\n\t\t\t\t\t...(direction === DragResizeDirection.LEFT\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tborderLeft: '1px solid transparent',\n\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tborderRight: '1px solid transparent',\n\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t }),\n\t\t\t\t\t[`& .${dragResizeHandleClasses.ellipsis}`]: {\n\t\t\t\t\t\theight: 17,\n\t\t\t\t\t\tmarginLeft: 8,\n\t\t\t\t\t\ttransform: 'rotate(90deg)',\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tcursor: 'row-resize',\n\t\t\t\t\theight: 3,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\t...(direction === DragResizeDirection.TOP\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tborderTop: '1px solid transparent',\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tborderBottom: '1px solid transparent',\n\t\t\t\t\t\t\t\tbottom: -1,\n\t\t\t\t\t\t }),\n\t\t\t\t\t[`& .${dragResizeHandleClasses.ellipsis}`]: {\n\t\t\t\t\t\twidth: 17,\n\t\t\t\t\t},\n\t\t\t }),\n\t\t[`&:hover, &.${dragResizeHandleClasses.dragging}`]: {\n\t\t\tborderColor: theme.palette.secondary.main,\n\t\t},\n\t} as any;\n});\n\nconst DragResizeHandleEllipsis = styled('div', {\n\tname: DRAG_RESIZE_HANDLE_CLASS_NAME,\n\tslot: 'ellipsis',\n})(({theme}) => ({\n\tdisplay: 'none',\n\tcolor:\n\t\ttheme.palette.mode === 'light'\n\t\t\t? 'rgba(0, 0, 0, 0.2)'\n\t\t\t: 'rgba(255, 255, 255, 0.2)',\n\tfontSize: '20px',\n\tuserSelect: 'none',\n}));\n\nexport type DragResizeHandleProps = WithClasses<\n\tDragResizeHandleClasses,\n\tReact.DetailedHTMLProps<\n\t\tReact.HTMLAttributes,\n\t\tHTMLDivElement\n\t> & {\n\t\tdirection?: DragResizeDirection;\n\t\tisDragging?: boolean;\n\t}\n>;\n\nexport const DragResizeHandle = ({\n\tclasses: _classes,\n\tclassName,\n\tdirection = DRAG_RESIZE_DEFAULT_DIRECTION,\n\tisDragging,\n\t...props\n}: DragResizeHandleProps) => {\n\tconst ownerState = {\n\t\tclasses: _classes,\n\t\tdirection,\n\t\tdragging: isDragging,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t…\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DragResizeHandle;\n","import React, {\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n} from 'react';\nimport _ from 'underscore';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport {useUserPref} from '@netx/core-components/hooks/useUserPref';\nimport {\n\tAxis,\n\tDragResizeDirection,\n\tDRAG_RESIZE_DEFAULT_DIRECTION,\n\tClientPosition,\n\tClientDimension,\n\tOffsetDimension,\n\tScrollDimension,\n} from './constants';\n\nconst getAxisFromDirection = (direction: DragResizeDirection) =>\n\tdirection === DragResizeDirection.LEFT ||\n\tdirection === DragResizeDirection.RIGHT\n\t\t? Axis.X\n\t\t: Axis.Y;\nconst getDirectionAsNumber = (direction: DragResizeDirection) =>\n\tdirection === DragResizeDirection.LEFT ||\n\tdirection === DragResizeDirection.TOP\n\t\t? -1\n\t\t: 1;\n\nexport type UseDragResizeProps = {\n\tdirection?: DragResizeDirection;\n\tdisabled?: boolean;\n\tmaxSize?: number;\n\tminSize?: number;\n\tsize?: number;\n\t/** TODO: changing this after the fact will result in unwanted results */\n\toverflowParentEl?: React.RefObject;\n\tuserPref?: string;\n\tonResize?: (size: number) => void;\n\tonResizeStarted?: () => void;\n\tonResizeEnded?: (size: number) => void;\n};\n\nexport const useDragResize = ({\n\tdisabled,\n\tmaxSize,\n\t// there will always be a minimum size for the sake of math the end user\n\tminSize = 10,\n\tsize,\n\tdirection = DRAG_RESIZE_DEFAULT_DIRECTION,\n\toverflowParentEl,\n\tuserPref,\n\tonResize,\n\tonResizeEnded,\n\tonResizeStarted,\n}: UseDragResizeProps) => {\n\tconst [userPrefSize, setUserPrefSize] = useUserPref(userPref, {\n\t\tparseIn: useCallback(\n\t\t\t(value) => (value != null ? parseInt(value) : size || 0),\n\t\t\t[],\n\t\t),\n\t});\n\n\tconst [currentSize, setCurrentSize] = useState(userPrefSize);\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst isDraggingRef = useRef(isDragging);\n\n\tconst initialSizeRef = useRef(0);\n\tconst lastSizeRef = useRef(0);\n\tconst pointerStartRef = useRef(0);\n\tconst lastMouseDownRef = useRef(Date.now());\n\tconst limitSize = useRef(0);\n\tconst draggedOnce = useRef(false);\n\n\tconst maxSizeRef = useRef(maxSize);\n\tmaxSizeRef.current = maxSize;\n\tconst minSizeRef = useRef(minSize);\n\tminSizeRef.current = minSize;\n\tconst currentSizeRef = useRef(currentSize);\n\tcurrentSizeRef.current = currentSize;\n\n\tconst sizeDirection = useRef(getDirectionAsNumber(direction));\n\tuseEffect(() => {\n\t\tsizeDirection.current = getDirectionAsNumber(direction);\n\t}, [direction]);\n\n\tconst axis = getAxisFromDirection(direction);\n\tconst axisRef = useRef(axis);\n\taxisRef.current = axis;\n\n\tconst timeout = useRef();\n\n\tconst [recheck, setRecheck] = useState({});\n\n\tconst checkLimits = useCallback(() => {\n\t\ttimeout.current && clearTimeout(timeout.current);\n\n\t\trequestAnimationFrame(() => {\n\t\t\tconst overflowEl = overflowParentEl?.current;\n\t\t\tif (!overflowEl) return;\n\n\t\t\tconst axis = axisRef.current;\n\t\t\tconst clientSize = Math.round(overflowEl[ClientDimension[axis]]);\n\t\t\tconst scrollSize = Math.round(overflowEl[ScrollDimension[axis]]);\n\t\t\tconst minSize = minSizeRef.current;\n\n\t\t\tsetCurrentSize((currentSize) => {\n\t\t\t\tif (clientSize < scrollSize || currentSize >= clientSize) {\n\t\t\t\t\tlet newSize = currentSize - (scrollSize - clientSize);\n\t\t\t\t\tif (newSize < minSize) newSize = minSize;\n\t\t\t\t\tconst limitToSize = newSize;\n\t\t\t\t\tif (draggedOnce.current) limitSize.current = limitToSize;\n\t\t\t\t\ttimeout.current = setTimeout(() => setRecheck({}), 200);\n\t\t\t\t\treturn newSize;\n\t\t\t\t}\n\t\t\t\treturn currentSize;\n\t\t\t});\n\t\t});\n\t}, []);\n\n\t// Cleanup timeout(s)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\ttimeout.current && clearTimeout(timeout.current);\n\t\t};\n\t}, []);\n\n\t// When the overflow parent size changes\n\t// this can be from other elements on the page or the window itself resizing\n\t// we want to keep all resizable areas in bounds\n\tuseEffect(() => {\n\t\tif (disabled) {\n\t\t\tsetIsDragging(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!overflowParentEl?.current) return;\n\t\tconst RO = new ResizeObserver(\n\t\t\t_.debounce(() => {\n\t\t\t\tsetRecheck({});\n\t\t\t}, 16),\n\t\t);\n\t\tRO.observe(overflowParentEl.current);\n\n\t\treturn () => {\n\t\t\tRO.disconnect();\n\t\t};\n\t}, [disabled]);\n\n\tuseEffect(() => {\n\t\tif (!isDragging) return;\n\t\t// setting global style via jss is EXPENSIVE\n\t\tconst classes = [`drag-resizing`, `drag-resizing-${axisRef.current}`];\n\t\tdocument.documentElement.classList.add(...classes);\n\t\treturn () => {\n\t\t\tdocument.documentElement.classList.remove(...classes);\n\t\t};\n\t}, [isDragging]);\n\n\tuseEffect(() => {\n\t\tif (lastSizeRef.current === currentSize) return;\n\t\tlastSizeRef.current = currentSize;\n\t\tonResize?.(currentSize);\n\t});\n\n\tuseLayoutEffect(() => {\n\t\tif (isDraggingRef.current === isDragging) return;\n\t\tisDraggingRef.current = isDragging;\n\t\tif (isDragging) {\n\t\t\tonResizeStarted?.();\n\t\t\treturn;\n\t\t}\n\t\tsetUserPrefSize(currentSize);\n\t\tonResizeEnded?.(currentSize);\n\t});\n\n\tuseLayoutEffect(() => {\n\t\tif (!isDragging) return;\n\n\t\tconst mousemove = _.throttle(\n\t\t\t(event: MouseEvent): void => {\n\t\t\t\tdraggedOnce.current = true;\n\n\t\t\t\tconst axis = axisRef.current;\n\t\t\t\tconst maxSize = limitSize.current || maxSizeRef.current;\n\t\t\t\tconst minSize = minSizeRef.current;\n\t\t\t\tconst initialSize = initialSizeRef.current;\n\t\t\t\tconst startPosition = pointerStartRef.current;\n\n\t\t\t\tlet size = Math.round(\n\t\t\t\t\tinitialSize +\n\t\t\t\t\t\t(event[ClientPosition[axis]] - startPosition) *\n\t\t\t\t\t\t\tsizeDirection.current,\n\t\t\t\t);\n\n\t\t\t\tif (maxSize && maxSize < size) {\n\t\t\t\t\tsize = maxSize;\n\t\t\t\t} else if (minSize && minSize > size) {\n\t\t\t\t\tsize = minSize;\n\t\t\t\t}\n\n\t\t\t\tsetCurrentSize((currentSize) => {\n\t\t\t\t\tif (size !== currentSize) setRecheck({});\n\t\t\t\t\treturn size;\n\t\t\t\t});\n\t\t\t},\n\t\t\t16,\n\t\t\t{trailing: true},\n\t\t);\n\n\t\tconst mouseup = () => {\n\t\t\tsetIsDragging(false);\n\t\t};\n\t\tdocument.addEventListener('mousemove', mousemove);\n\t\tdocument.addEventListener('mouseup', mouseup);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousemove', mousemove);\n\t\t\tdocument.removeEventListener('mouseup', mouseup);\n\t\t};\n\t}, [isDragging]);\n\n\t// When the width or overflow parent is changed\n\tuseLayoutEffect(() => {\n\t\tcheckLimits();\n\t}, [recheck, disabled]);\n\n\tconst handleMouseDown = useCallback(\n\t\t(event: React.MouseEvent) => {\n\t\t\tif (disabled) return;\n\n\t\t\tevent.stopPropagation();\n\n\t\t\tlimitSize.current = 0;\n\n\t\t\tif (Date.now() - lastMouseDownRef.current < 300) {\n\t\t\t\tsetCurrentSize(0);\n\t\t\t} else {\n\t\t\t\tconst axis = axisRef.current;\n\t\t\t\tinitialSizeRef.current =\n\t\t\t\t\t(event.target as HTMLElement)?.parentElement?.[\n\t\t\t\t\t\tOffsetDimension[axis]\n\t\t\t\t\t] || 0;\n\t\t\t\tpointerStartRef.current = event[ClientPosition[axis]];\n\t\t\t\tsetIsDragging(true);\n\t\t\t}\n\t\t\tlastMouseDownRef.current = Date.now();\n\t\t},\n\t\t[disabled],\n\t);\n\n\tconst styles = useMemo(() => {\n\t\tif (!currentSize || disabled) return undefined;\n\t\treturn axis === Axis.X\n\t\t\t? {width: currentSize, minWidth: currentSize, maxWidth: currentSize}\n\t\t\t: {height: currentSize, minHeight: currentSize, maxHeight: currentSize};\n\t}, [axis, currentSize, disabled]);\n\n\treturn {\n\t\tdirection,\n\t\tisDragging,\n\t\tstyles,\n\t\thandleMouseDown,\n\t\tcheckLimits,\n\t};\n};\n\nexport default useDragResize;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const FORM_DIALOG_CLASS_NAME = 'FormDialog';\nexport const FORM_DIALOG_CLASS_SLOTS = [\n\t'root',\n\t'actions',\n\t'cancelButton',\n\t'content',\n\t'form',\n\t'progress',\n\t'submit',\n] as const;\n\nexport type FormDialogClassSlot = typeof FORM_DIALOG_CLASS_SLOTS[number];\n\nexport interface FormDialogClasses {\n\troot: string;\n\tactions: string;\n\tcancelButton: string;\n\tcontent: string;\n\tform: string;\n\tprogress: string;\n\tsubmitButton: string;\n}\n\nexport type FormDialogClassKey = keyof FormDialogClasses;\n\nexport const getFormDialogUtilityClass = (slot: FormDialogClassSlot) =>\n\tgenerateUtilityClass(FORM_DIALOG_CLASS_NAME, slot);\n\nexport const formDialogClasses: FormDialogClasses = generateUtilityClasses(\n\tFORM_DIALOG_CLASS_NAME,\n\t[\n\t\t'root',\n\t\t'actions',\n\t\t'cancelButton',\n\t\t'content',\n\t\t'form',\n\t\t'progress',\n\t\t'submitButton',\n\t],\n);\n\nexport default formDialogClasses;\n","const NAME = 'collapsable';\n\nimport {simulateClickBody} from '@netx/core/lib/utils';\nimport {purgeEls} from '@netx/core/lib/utils';\n\nimport './css/collapsable.less';\n\nconst defaults = {\n\tcollapsed: false,\n\t// stickyUserPref: '',\n\t// stickyUserPrefDefault: '',\n\t// elSelector: this.el,\n\ttoggleSelector: '.nx-collapse-toggle, .nx-collapsable__toggle',\n\tuncollapseSelector: '.nx-uncollapse, .nx-collapsable__uncollapse',\n};\n\nexport class Collapsable {\n\t/** @method */\n\tconstructor(view, opts = {}) {\n\t\topts = this.options = {...defaults, ...opts};\n\t\tthis.view = view;\n\n\t\tview.collapse_plugin = this;\n\n\t\tthis.collapsed = null;\n\t\tthis.collapsable = opts.collapsable !== false;\n\n\t\tthis.onDragResizeStart = (e) => {\n\t\t\tthis.toggle(false);\n\t\t};\n\n\t\tthis.onToggleClick = (e) => {\n\t\t\tsimulateClickBody();\n\t\t\te.stopPropagation();\n\n\t\t\tif (!this.collapsable) return;\n\n\t\t\tthis.toggle();\n\t\t};\n\n\t\tthis.onUncollapseClick = (e) => {\n\t\t\tif (!this.collapsable) return;\n\n\t\t\tthis.toggle(false);\n\t\t};\n\n\t\tview\n\t\t\t.on('preRenderHook', (view) => {\n\t\t\t\tthis.cleanUp();\n\t\t\t})\n\t\t\t.on('postRenderHook', (view) => {\n\t\t\t\tthis.prepare(opts);\n\t\t\t})\n\t\t\t.on('collapse:toggle', (view, collapse) => {\n\t\t\t\tthis.toggle(collapse);\n\t\t\t})\n\t\t\t.on('collapse:disable', (view) => {\n\t\t\t\tthis.disable();\n\t\t\t})\n\t\t\t.on('collapse:enable', (view) => {\n\t\t\t\tthis.enable();\n\t\t\t});\n\t}\n\n\t/** @method */\n\tcleanUp() {\n\t\tthis.collapsed = null;\n\n\t\tif (this.reEnableTouchEventsTimeout) {\n\t\t\tclearTimeout(this.reEnableTouchEventsTimeout);\n\t\t\tdocument.body.style['pointer-events'] = '';\n\t\t}\n\n\t\tif (this.toggleEls) {\n\t\t\tthis.toggleEls.forEach((el) => {\n\t\t\t\tel.removeEventListener('click', this.onUncollapseClick);\n\t\t\t\tel.removeEventListener('touchstart', this.onUncollapseClick);\n\t\t\t});\n\t\t}\n\n\t\tif (this.uncollapseEls) {\n\t\t\tthis.uncollapseEls.forEach((el) => {\n\t\t\t\tel.removeEventListener('click', this.onUncollapseClick);\n\t\t\t\tel.removeEventListener('touchstart', this.onUncollapseClick);\n\t\t\t});\n\t\t}\n\n\t\tif (this.collapseTargetEl) {\n\t\t\tthis.collapseTargetEl.removeEventListener(\n\t\t\t\t'dragresizestart',\n\t\t\t\tthis.onDragResizeStart,\n\t\t\t);\n\t\t}\n\t}\n\n\t/** @method */\n\tcollapse() {\n\t\tconst changed = !this.collapsed;\n\t\tconst options = this.options;\n\n\t\tthis.reEnableTouchEventsTimeout &&\n\t\t\tclearTimeout(this.reEnableTouchEventsTimeout);\n\n\t\tthis.reEnableTouchEventsTimeout = setTimeout(() => {\n\t\t\tdocument.body.style['pointer-events'] = '';\n\t\t}, 300);\n\n\t\tthis.collapseTargetEl.classList.add(\n\t\t\t'collapsed',\n\t\t\t'nx-collapsable--collapsed',\n\t\t);\n\t\tthis.collapsed = true;\n\n\t\tif (!changed) return;\n\n\t\tdocument.body.style['pointer-events'] = 'none';\n\n\t\tif (options.stickyUserPref) {\n\t\t\tNetx.setPreference(options.stickyUserPref, false);\n\t\t}\n\n\t\tthis.view.trigger('collapsed', this);\n\t}\n\n\t/** @method */\n\tdestroy() {\n\t\tthis.cleanUp();\n\t\tdelete this.view.collapse_plugin;\n\t\tdelete this.view;\n\t\tdelete this.collapseTargetEl;\n\t\tdelete this.toggleEls;\n\t\tdelete this.uncollapseEls;\n\t}\n\n\t/** @method */\n\tdisable() {\n\t\tthis.collapsable = false;\n\n\t\tif (!this.collapseTargetEl) return;\n\n\t\tthis.toggleEls.forEach((el) => {\n\t\t\tel.setAttribute('disabled', true);\n\t\t});\n\t}\n\n\t/** @method */\n\tenable() {\n\t\tthis.collapsable = true;\n\n\t\tif (!this.toggleEls) return;\n\n\t\tthis.toggleEls.forEach((el) => {\n\t\t\tel.removeAttribute('disabled');\n\t\t});\n\t}\n\n\t/** @method */\n\tprepare() {\n\t\tconst options = this.options;\n\t\tconst view = this.view;\n\n\t\tconst collapseTargetEl = (this.collapseTargetEl = options.elSelector\n\t\t\t? purgeEls(\n\t\t\t\t\t[view.el.querySelector(options.elSelector)],\n\t\t\t\t\tview.getExcludedViews(),\n\t\t\t )[0]\n\t\t\t: view.el);\n\n\t\tif (!collapseTargetEl) return;\n\n\t\tcollapseTargetEl.addEventListener(\n\t\t\t'dragresizestart',\n\t\t\tthis.onDragResizeStart,\n\t\t);\n\n\t\tthis.toggleEls = purgeEls(\n\t\t\t[...view.el.querySelectorAll(options.toggleSelector)],\n\t\t\tview.getExcludedViews(),\n\t\t);\n\t\tthis.toggleEls.forEach((el) => {\n\t\t\tel.addEventListener('click', this.onToggleClick);\n\t\t\tel.addEventListener('touchstart', this.onToggleClick);\n\t\t});\n\n\t\tif (options.uncollapseSelector) {\n\t\t\tthis.uncollapseEls = purgeEls(\n\t\t\t\t[...view.el.querySelectorAll(options.uncollapseSelector)],\n\t\t\t\tview.getExcludedViews(),\n\t\t\t);\n\t\t\tthis.uncollapseEls.forEach((el) => {\n\t\t\t\tel.addEventListener('click', this.onUncollapseClick);\n\t\t\t\tel.addEventListener('touchstart', this.onUncollapseClick);\n\t\t\t});\n\t\t}\n\n\t\tif (options.stickyUserPref) {\n\t\t\t// Allow default preference value\n\t\t\tconst prefValue = Netx.getPreference(options.stickyUserPref, false);\n\t\t\tif (_.isUndefined(prefValue) && options.stickyUserPrefDefault) {\n\t\t\t\tNetx.setPreference(\n\t\t\t\t\toptions.stickyUserPref,\n\t\t\t\t\toptions.stickyUserPrefDefault,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.toggle(!Netx.getPreference(options.stickyUserPref, true), true);\n\t\t} else {\n\t\t\tconst collapse =\n\t\t\t\tthis.collapsed != null ? this.collapsed : options.collapsed === true;\n\t\t\tthis.toggle(collapse, true);\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {boolean} collapse Collapse\n\t */\n\ttoggle(collapse, forceEvent) {\n\t\tcollapse = collapse != null ? collapse : !this.collapsed;\n\t\tcollapse ? this.collapse() : this.uncollapse();\n\t\tthis.view.trigger('toggle:collapse', this.view, collapse);\n\t}\n\n\t/** @method */\n\tuncollapse() {\n\t\tconst changed = this.collapsed;\n\t\tconst options = this.options;\n\n\t\tthis.reEnableTouchEventsTimeout &&\n\t\t\tclearTimeout(this.reEnableTouchEventsTimeout);\n\n\t\tthis.reEnableTouchEventsTimeout = setTimeout(() => {\n\t\t\tdocument.body.style['pointer-events'] = '';\n\t\t}, 300);\n\n\t\tthis.collapseTargetEl.classList.remove(\n\t\t\t'collapsed',\n\t\t\t'nx-collapsable--collapsed',\n\t\t);\n\t\tthis.collapsed = false;\n\n\t\tif (!changed) return;\n\n\t\tdocument.body.style['pointer-events'] = 'none';\n\n\t\tif (options.stickyUserPref) {\n\t\t\tNetx.setPreference(options.stickyUserPref, true);\n\t\t}\n\n\t\tthis.view.trigger('uncollapsed', this);\n\t}\n}\n\nexport default function (target) {\n\tif (!target || target.hasFunctionality(NAME)) return target;\n\n\ttarget.addInitializer((instance, opts = {}) => {\n\t\tconst collapsable = new Collapsable(instance, opts.collapsable);\n\t\t// Hey, listen!\n\t\tinstance.on('removeHook', () => {\n\t\t\tcollapsable.destroy();\n\t\t});\n\t}, NAME);\n\n\treturn target;\n}\n","import React, {useMemo, useEffect, useCallback} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\nimport type {Optional} from '@netx/core/typings';\n\nimport SelectField, {\n\tSelectFieldProps,\n} from '@netx/core-components/Form/SelectField';\nimport type {InputForm} from '@netx/core-components/Form/typings';\n\nimport {AttributeAttributes} from '@netx/core-asset/models/attribute';\nimport {getAttributeLabelFromId} from '@netx/core-asset/components/Attributes/Attribute/utils';\nexport interface AttributeDropdownProps<\n\tMultiple extends boolean | undefined = false,\n\tDisableClearable extends boolean | undefined = false\n>\n\textends Optional<\n\t\tSelectFieldProps,\n\t\t'name'\n\t> {\n\tattributes: AttributeAttributes[];\n\tselected?: number[];\n\tform?: InputForm;\n}\n\nconst getOptionSelected = (option, value) => option?.id === value?.id;\n\ntype Option = {\n\tvalue: string;\n\tid: number;\n};\n\nexport const AttributeDropdown = <\n\tMultiple extends boolean | undefined = false,\n\tDisableClearable extends boolean | undefined = false\n>({\n\tattributes,\n\tselected = [],\n\tform,\n\tonChange,\n\tname = 'attribute-select',\n\t...props\n}: AttributeDropdownProps) => {\n\tconst options = useMemo(() => {\n\t\treturn attributes\n\t\t\t.filter(({attributeid}) => !selected.includes(attributeid))\n\t\t\t.map(({attributeid}) => ({\n\t\t\t\tvalue: getAttributeLabelFromId(attributeid),\n\t\t\t\tid: attributeid,\n\t\t\t}));\n\t}, [attributes, selected]);\n\n\t// Form support\n\tuseEffect(() => {\n\t\tif (!form) return;\n\t\tform.register(name);\n\t\treturn () => {\n\t\t\tform.unregister(name);\n\t\t};\n\t}, [name]);\n\n\tconst handleChange = useCallback<\n\t\tRequired<\n\t\t\tSelectFieldProps\n\t\t>['onChange']\n\t>(\n\t\t(value) => {\n\t\t\tform?.setValue(name, value);\n\t\t\tonChange?.(value);\n\t\t},\n\t\t[onChange, form?.setValue, name],\n\t);\n\t// !Form support\n\n\treturn (\n\t\t\n\t\t\tlabel={i18n.t('i18n.attributes')}\n\t\t\t{...props}\n\t\t\tname={name}\n\t\t\tinputProps={{\n\t\t\t\t'aria-label': 'attribute select field',\n\t\t\t\tplaceholder: i18n.t('i18n.pleaseSelect'),\n\t\t\t\t...props.inputProps,\n\t\t\t}}\n\t\t\tlabelKey=\"value\"\n\t\t\toptions={options}\n\t\t\tonChange={handleChange}\n\t\t\tAutocompleteProps={{\n\t\t\t\tisOptionEqualToValue: getOptionSelected,\n\t\t\t\t...props.AutocompleteProps,\n\t\t\t\tfilterOptions: (options, state) => {\n\t\t\t\t\tconst inputValue = state.inputValue.toLowerCase();\n\t\t\t\t\tconst filteredOptions =\n\t\t\t\t\t\tinputValue === ''\n\t\t\t\t\t\t\t? options\n\t\t\t\t\t\t\t: options.filter((option) => {\n\t\t\t\t\t\t\t\t\treturn option.value.toLowerCase().includes(inputValue);\n\t\t\t\t\t\t\t });\n\t\t\t\t\tif (props.AutocompleteProps?.filterOptions)\n\t\t\t\t\t\treturn props.AutocompleteProps?.filterOptions(\n\t\t\t\t\t\t\tfilteredOptions,\n\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t);\n\t\t\t\t\treturn filteredOptions;\n\t\t\t\t},\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport default AttributeDropdown;\n","export const SearchTypeCategoryId = 23 as const;\nexport type TSearchTypeCategoryId = typeof SearchTypeCategoryId;\n\n/** elementSubType1 */\nexport enum CategoryType {\n\tONLY = 2,\n\tONLY_RECURSIVE = 0,\n\tEXCLUDE = 3,\n\tEXCLUDE_RECURSIVE = 1,\n}\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface SearchFilterEndAdornmentClasses {\n\t/** styles applied to the root element */\n\troot: string;\n}\n\nexport const getSearchFilterEndAdornmentClassesUtilityClass = (slot: string) =>\n\tgenerateUtilityClass('SearchFilterEndAdornment', slot);\n\nexport const searchFilterEndAdornmentClasses = generateUtilityClasses(\n\t'SearchFilterEndAdornment',\n\t['root'],\n);\nexport default searchFilterEndAdornmentClasses;\n","import React from 'react';\nimport clsx from 'clsx';\nimport {i18n} from '@netx/core/i18n';\n\nimport {faTimes as TimesIcon} from '@fortawesome/pro-regular-svg-icons';\n\nimport IconButton, {IconButtonProps} from '@netx/core-components/IconButton';\nimport {composeClasses, styled, WithClasses} from '@netx/core-components/Theme';\n\nimport {\n\tgetSearchFilterEndAdornmentClassesUtilityClass,\n\tSearchFilterEndAdornmentClasses,\n} from './searchFilterEndAdornmentClasses';\n\nconst useUtilityClasses = (ownerState) => {\n\tconst {classes} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t};\n\treturn composeClasses(\n\t\tslots,\n\t\tgetSearchFilterEndAdornmentClassesUtilityClass,\n\t\tclasses,\n\t);\n};\n\nexport const SearchFilterEndAdornmentRoot = styled(IconButton, {\n\tname: 'SearchFilter',\n\tslot: 'EndAdornment',\n})(({theme}) => ({\n\tposition: 'absolute',\n\tright: 8,\n}));\n\nexport interface SearchFilterEndAdornmentProps\n\textends Omit,\n\t\tWithClasses<\n\t\t\tSearchFilterEndAdornmentClasses,\n\t\t\t{\n\t\t\t\t'data-testid'?: string;\n\t\t\t\thide?: boolean;\n\t\t\t}\n\t\t> {}\n\nexport const SearchFilterEndAdornmentPrimitive = ({\n\tclasses: _classes,\n\tclassName,\n\thide,\n\t...props\n}: SearchFilterEndAdornmentProps) => {\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t});\n\n\tif (hide) return null;\n\n\treturn (\n\t\t\n\t);\n};\n\nexport const SearchFilterEndAdornment = SearchFilterEndAdornmentPrimitive;\nexport default SearchFilterEndAdornment;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface SearchFilterStartAdornmentClasses {\n\t/** styles applied to the root element */\n\troot: string;\n}\n\nexport const getSearchFilterStartAdornmentClassesUtilityClass = (\n\tslot: string,\n) => generateUtilityClass('SearchFilterStartAdornment', slot);\n\nexport const searchFilterStartAdornmentClasses = generateUtilityClasses(\n\t'SearchFilterStartAdornment',\n\t['root'],\n);\nexport default searchFilterStartAdornmentClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport {\n\tFontAwesomeIcon,\n\tFontAwesomeIconProps,\n} from '@fortawesome/react-fontawesome';\nimport {faSearch as SearchIcon} from '@fortawesome/pro-regular-svg-icons';\n\nimport {composeClasses, styled} from '@netx/core-components/Theme';\n\nimport searchFilterStartAdornmentClasses, {\n\tgetSearchFilterStartAdornmentClassesUtilityClass,\n\tSearchFilterStartAdornmentClasses,\n} from './searchFilterStartAdornmentClasses';\n\nconst useUtilityClasses = (ownerState: SearchFilterStartAdornmentProps) => {\n\tconst {classes} = ownerState;\n\tconst slots = {\n\t\troot: ['root'],\n\t};\n\treturn composeClasses(\n\t\tslots,\n\t\tgetSearchFilterStartAdornmentClassesUtilityClass,\n\t\tclasses as typeof searchFilterStartAdornmentClasses,\n\t);\n};\n\nexport const SearchFilterStartAdornmentRoot = styled('div', {\n\tname: 'SearchFilter',\n\tslot: 'StartAdornment',\n})(({theme}) => ({\n\tmarginRight: theme.spacing(1),\n\tmarginTop: 1,\n\tpointerEvents: 'none',\n\ttransition: 'all 0.2s ease',\n}));\n\nexport interface SearchFilterStartAdornmentProps\n\textends React.DetailedHTMLProps<\n\t\tReact.HTMLAttributes,\n\t\tHTMLDivElement\n\t> {\n\tclasses?: Partial;\n\tclassName?: string;\n\t'data-testid'?: string;\n\tIconProps?: Partial;\n}\n\nexport const SearchFilterStartAdornmentPrimitive = ({\n\tclassName,\n\tIconProps,\n\t...props\n}: SearchFilterStartAdornmentProps) => {\n\tconst classes = useUtilityClasses(props);\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const SearchFilterStartAdornment = SearchFilterStartAdornmentPrimitive;\nexport default SearchFilterStartAdornment;\n","import React, {useCallback, useEffect, useState} from 'react';\nimport clsx from 'clsx';\nimport {i18n} from '@netx/core/i18n';\n\nimport {inputBaseClasses} from '@mui/material/InputBase';\nimport TextField, {TextFieldProps} from '@mui/material/TextField';\nimport useSharedRef from '@netx/core-components/hooks/useSharedRef';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithMuiPropOverrides,\n} from '@netx/core-components/Theme';\n\nimport {\n\tgetSearchFilterUtilityClass,\n\tsearchFilterClasses,\n\tSearchFilterClasses,\n\tSearchFilterEndAdornment,\n\tSearchFilterEndAdornmentProps,\n\tSearchFilterStartAdornment,\n\tSearchFilterStartAdornmentProps,\n\tsearchFilterStartAdornmentClasses,\n} from './';\n\nconst useUtilityClasses = (ownerState) => {\n\tconst {classes, hideStartAdornment, variant} = ownerState;\n\tconst slots = {\n\t\troot: [\n\t\t\t'root',\n\t\t\thideStartAdornment && 'hideStartAdornment',\n\t\t\tvariant === 'rounded' && 'rounded',\n\t\t],\n\t};\n\treturn composeClasses(slots, getSearchFilterUtilityClass, classes);\n};\n\nexport const SearchFilterRoot = styled(TextField, {\n\tname: 'SearchFilter',\n\tslot: 'Root',\n})(({theme, ownerState}) => {\n\tconst {hideStartAdornment} = ownerState;\n\treturn {\n\t\t[`& .${inputBaseClasses.input}`]: {\n\t\t\theight: 40,\n\t\t\tpadding: theme.spacing(0, 4, 0, hideStartAdornment ? 2 : 0),\n\t\t},\n\t\t[`& .${inputBaseClasses.root}`]: {\n\t\t\t[`&.${inputBaseClasses.disabled}`]: {\n\t\t\t\t[`& .${searchFilterStartAdornmentClasses.root}`]: {\n\t\t\t\t\topacity: 0.5,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t[`&.${searchFilterClasses.rounded}`]: {\n\t\t\t[`& .${inputBaseClasses.root}`]: {\n\t\t\t\tborderRadius: 40,\n\t\t\t\t'&::after, &::before': {\n\t\t\t\t\tdisplay: 'none',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n});\n\nexport type SearchFilterProps = Omit<\n\tWithMuiPropOverrides,\n\t'hiddenLabel' | 'label' | 'onChange' | 'value' | 'variant'\n> & {\n\tclasses?: Partial;\n\tclassName?: string;\n\tfilterStr?: string;\n\thideStartAdornment?: boolean;\n\tonFilter: (filterStr: string) => void;\n\tonFilteredChange?: (filtered: boolean) => void;\n\tSearchFilterEndAdornmentProps?: Partial;\n\tSearchFilterStartAdornmentProps?: Partial;\n\tvariant?: Required['variant'] | 'rounded';\n};\n\nexport const SearchFilterPrimitive = React.forwardRef<\n\tHTMLDivElement,\n\tSearchFilterProps\n>((props: SearchFilterProps, ref) => {\n\tconst {\n\t\tclassName,\n\t\tdisabled,\n\t\tfilterStr = '',\n\t\tonFilter,\n\t\tonFilteredChange,\n\t\thideStartAdornment,\n\t\tinputRef,\n\t\tvariant,\n\t\tSearchFilterEndAdornmentProps,\n\t\tSearchFilterStartAdornmentProps,\n\t\t...sendProps\n\t} = props;\n\n\tconst [value, setValue] = useState(filterStr);\n\n\tconst ownerState = {...sendProps, variant, hideStartAdornment};\n\tconst classes = useUtilityClasses(ownerState);\n\tconst innerInputRef = useSharedRef(null, [inputRef]);\n\n\tuseEffect(() => {\n\t\tsetValue(filterStr);\n\t}, [filterStr]);\n\n\tuseWhenChangedEffect(\n\t\tvalue,\n\t\tuseCallback(\n\t\t\t(value) => {\n\t\t\t\tonFilteredChange?.(value != '');\n\t\t\t},\n\t\t\t[onFilteredChange],\n\t\t),\n\t\t{\n\t\t\texecuteAtMount: true,\n\t\t},\n\t);\n\n\tconst handleChange = useCallback(\n\t\t(event: React.ChangeEvent) => {\n\t\t\t// TODO: now that we are on v5 this may no longer be neccesary\n\t\t\t// this was added to acoid false change events from initial render\n\t\t\tif (!event) return;\n\t\t\tconst {value} = event.target;\n\t\t\tsetValue(value);\n\t\t\tonFilter(value);\n\t\t},\n\t\t[onFilter],\n\t);\n\n\tconst handleClear = useCallback(() => {\n\t\tsetValue('');\n\t\tonFilter('');\n\t\tinnerInputRef.current?.focus();\n\t}, [onFilter]);\n\n\treturn (\n\t\t\n\t\t\t\t\t) : undefined,\n\t\t\t\tstartAdornment: !hideStartAdornment ? (\n\t\t\t\t\t\n\t\t\t\t) : undefined,\n\t\t\t\t...sendProps.InputProps,\n\t\t\t}}\n\t\t/>\n\t);\n});\n\nexport const SearchFilter = SearchFilterPrimitive;\nexport default SearchFilter;\n","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport interface SearchFilterClasses {\n\t/** styles applied to the root element */\n\troot: string;\n\trounded: string;\n}\n\nexport const getSearchFilterUtilityClass = (slot: string) =>\n\tgenerateUtilityClass('SearchFilter', slot);\n\nexport const searchFilterClasses = generateUtilityClasses('SearchFilter', [\n\t'root',\n\t'rounded',\n]);\nexport default searchFilterClasses;\n","// Attribute specific permission props\nimport {i18n} from '@netx/core/i18n';\n\n// TODO: Explain why - I cannot remember why - is it that only admins can administer the attibute templates themeselves?\nexport const attribute = {\n\tmodes: ['read', 'write'],\n};\n\nexport const modes = {\n\tread: i18n.t('i18n.read'),\n\twrite: i18n.t('i18n.write'),\n\tdelete: i18n.t('i18n.delete'),\n};\n\nexport const specialModes = {\n\tread: i18n.t('i18n.viewer'),\n\twrite: i18n.t('i18n.contributor'),\n\tdelete: i18n.t('i18n.manager'),\n};\n\nexport const resourceLabels = {\n\tattribute: i18n.t('i18n.attribute'),\n\tattributeSet: i18n.t('i18n.attributeSet'),\n\tsavedCart: i18n.t('i18n.savedCart'),\n\tsavedSearch: i18n.t('i18n.savedSearch'),\n};\n\nexport const targets = {\n\tall: i18n.t('i18n.all'),\n\tgroup: i18n.t('i18n.group'),\n\tuser: i18n.t('i18n.user'),\n};\n\nexport default {\n\tattribute: attribute,\n\tmodes: modes,\n\tresourceLabels: resourceLabels,\n\tspecialModes: specialModes,\n\ttargets: targets,\n};\n","import type {AssetGalleryAsset} from '@netx/core-asset-gallery/types';\nimport {PermissionMatrixName} from '@netx/core-permissions/constants';\nimport {allows} from '@netx/core-permissions/utils';\nimport {currentUserMeetsUserLevel} from '@netx/core-user/utils/currentUserMeetsUserLevel';\nimport {getPreference} from '@netx/core-user/utils/getPreference';\nimport {MINIMUM_USER_LEVEL} from './constants';\nimport {assetExpires} from './utils';\n\nexport const assetExpirationEnabled = () =>\n\tgetPreference('asset.expire.enabled', true);\n\nexport const canModifyAssetExpiration = (asset: AssetGalleryAsset) =>\n\tassetExpirationEnabled() &&\n\tcurrentUserMeetsUserLevel(MINIMUM_USER_LEVEL) &&\n\tallows(asset.permissionMatrix, PermissionMatrixName.DELETE);\n\nexport const canExpireAsset = (asset: AssetGalleryAsset) =>\n\t!assetExpires(asset) && canModifyAssetExpiration(asset);\n\nexport const canUnexpireAsset = (asset: AssetGalleryAsset) =>\n\tassetExpires(asset) && canModifyAssetExpiration(asset);\n","export * from './Attribute';\nexport * from './AttributeSkeleton';\nexport * from './Dropdown';\nexport * from './EditableAttribute';\nexport * from './ReadOnlyAttribute';\n","export * from './useAttributes';\nexport {default} from './useAttributes';\n","export const SearchTypeContents = 2 as const;\nexport type TSearchTypeContents = typeof SearchTypeContents;\n\n/** elementSubType1 */\nexport enum ContentsType {\n\tMATCH_ALL_FRAGMENTS = 4,\n\tMATCH_ALL_WHOLE_WORDS_AND = 0,\n\tMATCH_ANY_FRAGMENT = 5,\n\tMATCH_ANY_WHOLE_WORDS_OR = 2,\n\tMATCH_EXACTLY = 1,\n\tMATCH_EXCLUDE = 3,\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import React, {useCallback, useRef, useEffect} from 'react';\n\nimport Rpc from 'core-libs/backbone.rpc';\n\ntype ReturnData =\n\t| Record\n\t| Record[]\n\t| string[]\n\t| string;\n\ntype Data = Array> | Record;\n\nexport default function useRpc() {\n\tconst rpcRef = useRef();\n\tconst lastMethod = useRef();\n\n\tuseEffect(() => {\n\t\tconst rpc = (rpcRef.current = new Rpc());\n\t\trpc.duplicateQueryPolicy = 'abort';\n\t\treturn (): void => {\n\t\t\tif (rpc && lastMethod.current) {\n\t\t\t\tconst request = rpc.callsByName && rpc.callsByName[lastMethod.current];\n\t\t\t\tif (request && request.xhr?.state && request.xhr.state() == 'pending') {\n\t\t\t\t\trequest.xhr.abort && request.xhr.abort();\n\t\t\t\t}\n\t\t\t}\n\t\t\trpcRef.current = undefined;\n\t\t};\n\t}, []);\n\n\tconst query = useCallback(\n\t\t(\n\t\t\tmethod: string,\n\t\t\tdata?: Data,\n\t\t): Promise => {\n\t\t\tlastMethod.current = method;\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (!rpcRef.current || !rpcRef.current.query) return;\n\t\t\t\trpcRef.current\n\t\t\t\t\t.query(method, data || [], (result: TReturn) => {\n\t\t\t\t\t\tlastMethod.current = undefined;\n\t\t\t\t\t\treturn resolve(result);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(reject);\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\treturn query;\n}\n","/**\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\n\nimport PagerModel from '@netx/core-app/models/pager';\nimport SorterModel from '@netx/core-app/models/sorter';\n\nimport Netx, {dispatcher} from '@netx/core/bootstrap';\n\nexport default class SharedResources extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/**\n\t * @property {object} methods - Methods for this collection\n\t * @property {method} methods.read - Fetch shared resources for current user\n\t * @property {method} methods.fetchForUser - Fetch shared resources for user\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'getSharedResources',\n\t\t\t\t\tNetx.getUser().id,\n\t\t\t\t\tthis.resourceName,\n\t\t\t\t\tthis.modeFilters,\n\t\t\t\t\tthis.filterStr,\n\t\t\t\t\tthis.pager.getPageDTO(),\n\t\t\t\t];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Admins only\n\t\t\t * @method\n\t\t\t * @param {number} userId User id\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tfetchForUser(userId, opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'getSharedResources',\n\t\t\t\t\tuserId,\n\t\t\t\t\tthis.resourceName,\n\t\t\t\t\tthis.modeFilters,\n\t\t\t\t\tthis.filterStr,\n\t\t\t\t\tthis.pager.getPageDTO(),\n\t\t\t\t];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Parsers for this collection\n\t * @property {method} parsers.fetchForUser - Parse response of user shared resources\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Shared resources\n\t\t\t * @param {number} userId User id\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tfetchForUser(data, userId, opts) {\n\t\t\t\topts = opts || {};\n\n\t\t\t\tthis.set(data, opts);\n\t\t\t\t!opts.silent && this.trigger('sync', this, data, opts);\n\t\t\t},\n\t\t};\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\tsuper(models, opts);\n\n\t\tthis.resourceName = opts.resourceName;\n\n\t\t/**\n\t\t * This is non negotiable - we use the fields supported by `sharedResourceSortDTO`\n\t\t * @memberof module:share/collections/sharedResources\n\t\t * @override\n\t\t * @alias sortableFields\n\t\t * @type {array}\n\t\t */\n\t\tthis.sortableFields = opts.sortableFields || [\n\t\t\t'id',\n\t\t\t'creationDate',\n\t\t\t'contentCount',\n\t\t\t'modDate',\n\t\t\t'title',\n\t\t];\n\n\t\t/**\n\t\t * Mode filters (read/write/delete/favorites)\n\t\t * @memberof module:share/collections/sharedResources\n\t\t * @alias modeFilters\n\t\t * @type {array}\n\t\t */\n\t\tthis.modeFilters = opts.modeFilters || null;\n\n\t\t/**\n\t\t * Paging model\n\t\t * @memberof module:share/collections/sharedResources\n\t\t * @alias pager\n\t\t * @type {module:app/models/pager}\n\t\t */\n\t\tthis.pager = new PagerModel(_.extend({}, opts.pager), {collection: this});\n\n\t\t/**\n\t\t * Sorting model\n\t\t * @memberof module:asset/models/assetProject\n\t\t * @alias sorter\n\t\t * @type {module:app/models/sorter}\n\t\t */\n\t\tthis.sorter = new SorterModel(\n\t\t\t{\n\t\t\t\tfield: opts.sortField || 'title',\n\t\t\t\torder: opts.sortOrder || 'desc',\n\t\t\t},\n\t\t\t{\n\t\t\t\tcollection: this,\n\t\t\t\tsortableFields: this.sortableFields,\n\t\t\t},\n\t\t);\n\n\t\t/**\n\t\t * Update main collections when a shared resource is toggled as favorite\n\t\t * @listens share:sharedResource:toggle:favorite:success\n\t\t * @param {module:share/models/sharedResource} sharedResource Shared resource\n\t\t * @param {boolean} isFavorite Is favorite\n\t\t */\n\t\tthis.listenTo(\n\t\t\tdispatcher,\n\t\t\t'share:sharedResource:toggle:favorite:success',\n\t\t\t(sharedResource, isFavorite) => {\n\t\t\t\tif (sharedResource.resourceName !== this.resourceName) return;\n\n\t\t\t\tconst model = this.get(sharedResource.id);\n\n\t\t\t\t// Existing, reflect `isFavorite`\n\t\t\t\tmodel && model.set('isFavorite', isFavorite);\n\n\t\t\t\t// We are filtered down to favorites, add or remove the model\n\t\t\t\tif (this.hasModeFilter('favorites')) {\n\t\t\t\t\tisFavorite\n\t\t\t\t\t\t? this.add(sharedResource.attributes, {merge: true})\n\t\t\t\t\t\t: model && this.remove(model);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} mode Mode\n\t * @return {boolean} Has mode filter\n\t */\n\thasModeFilter(mode) {\n\t\treturn this.modeFilters && _.contains(this.modeFilters, mode);\n\t}\n\n\t/** @override */\n\tisFiltered() {\n\t\tconst filtered = super.isFiltered();\n\t\treturn filtered || this.filterStr !== '' || this.selectedMode != null;\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:share/models/sharedResource} model Shared resource\n\t * @return {boolean}\n\t */\n\tmatchesFilters(model) {\n\t\tif (\n\t\t\tthis.filterStr !== '' &&\n\t\t\t!model.getTitle().toLowerCase().match(this.filterStr.toLowerCase())\n\t\t)\n\t\t\treturn false;\n\n\t\tif (this.hasModeFilter('favorites')) {\n\t\t\treturn model.isFavorite();\n\t\t}\n\n\t\treturn this.selectedMode ? model.allows(this.selectedMode) : true;\n\t}\n\n\t/**\n\t * Reset the mode filter and refetch\n\t * @method\n\t */\n\tresetModeFilter() {\n\t\t// Nothing to reset\n\t\tif (this.selectedMode == null) return new $.Deferred().resolve();\n\n\t\tthis.selectedMode = this.modeFilters = null;\n\t\t// Reset to first page\n\t\tthis.pager.firstPage();\n\t\t// Fetch the unfiltered data\n\t\treturn this.fetch({duplicateQueryPolicy: 'abort'});\n\t}\n\n\t/**\n\t * Set mode filter refetch\n\t * @method\n\t * @param {string} mode Mode filter\n\t */\n\tsetModeFilter(mode) {\n\t\t// No filter, reset\n\t\tif (!mode) return this.resetModeFilter();\n\n\t\t// Nothing to do\n\t\tif (this.selectedMode === mode) return new $.Deferred().resolve();\n\n\t\tthis.selectedMode = mode;\n\n\t\tswitch (mode) {\n\t\t\t// In cases of write (edit)- a user can write to anything they can delete\n\t\t\tcase 'write':\n\t\t\t\tthis.modeFilters = ['delete', 'write'];\n\t\t\t\tbreak;\n\t\t\t// Favorites\n\t\t\t// case 'favorites':\n\t\t\t// The following will enforce that permission ONLY for filtering\n\t\t\t// Manage\n\t\t\t// case 'delete':\n\t\t\t// Read-only\n\t\t\t// case 'read':\n\t\t\tdefault:\n\t\t\t\tthis.modeFilters = [mode];\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Reset to first page\n\t\tthis.pager.firstPage();\n\n\t\treturn this.fetch({duplicateQueryPolicy: 'abort'});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'SharedResources';\n\t}\n}\n","// Source from https://github.com/alitaheri/normalize-scroll-left\nlet cachedType;\n\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default | 0 | 100 | 100\n * negative (spec*) | -100 | 0 | 0\n * reverse | 100 | 0 | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n const dummy = document.createElement('div');\n const container = document.createElement('div');\n container.style.width = '10px';\n container.style.height = '1px';\n dummy.appendChild(container);\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n document.body.appendChild(dummy);\n cachedType = 'reverse';\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n document.body.removeChild(dummy);\n return cachedType;\n}\n\n// Based on https://stackoverflow.com/a/24394376\nexport function getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft;\n\n // Perform the calculations only when direction is rtl to avoid messing up the ltr behavior\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n const type = detectScrollType();\n switch (type) {\n case 'negative':\n return element.scrollWidth - element.clientWidth + scrollLeft;\n case 'reverse':\n return element.scrollWidth - element.clientWidth - scrollLeft;\n default:\n return scrollLeft;\n }\n}","/**\n * A model layer for making permissions play like participants in 8.12\n * @class\n */\nimport Base from './participant';\n\nexport default class PermissionParticipant extends Base {\n\t/** @override */\n\tconstructor(attrs, opts) {\n\t\t// This model does not have calls to the server\n\t\topts.rpc = false;\n\t\tsuper(attrs, opts);\n\t}\n\n\t/**\n\t * We do not save to the serve rourselves\n\t * @override\n\t */\n\tdestroy() {\n\t\t// Just remove and let the underlying permissions handle the saving\n\t\tthis.collection.remove(this.id);\n\t\treturn new $.Deferred().resolveWith(this);\n\t}\n\n\t/**\n\t * We do not save to the serve rourselves\n\t * @override\n\t * @param {object} data Data\n\t * @param {object} opts Options\n\t */\n\tparseAndSave(data, opts) {\n\t\t// Just set and let the underlying permissions handle the saving\n\t\tthis.set(data, opts);\n\n\t\treturn new $.Deferred().resolveWith(this);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'PermissionParticipant';\n\t}\n}\n","/**\n * A collection layer for making permissions play like participants in 8.12\n * @class\n */\nimport Base from './participants';\nimport Model from '../models/permissionParticipant';\n\nimport GroupsCollection from '@netx/core-user/collections/groups';\nimport UsersCollection from '@netx/core-user/collections/users';\n\nexport default class PermissionsParticipants extends Base {\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.comparator = opts.comparator || 'label';\n\t\topts.model = opts.model || Model;\n\t\t// This collection does not have calls to the server\n\t\topts.rpc = false;\n\n\t\tsuper(models, opts);\n\n\t\t// Debounced/throttled methods\n\t\tthis.groupsSynced = _.debounce(this.groupsSynced, 50);\n\t\tthis.labelsUpdated = _.debounce(this.labelsUpdated, 25);\n\t\tthis.usersSynced = _.debounce(this.usersSynced, 50);\n\n\t\t/**\n\t\t * @memberof module:permissions/collections/permissionsParticipants\n\t\t * @alias permissionsCollection\n\t\t * @type {module:permissions/collections/permissions}\n\t\t */\n\t\tthis.permissionsCollection = opts.collection;\n\n\t\t/**\n\t\t * Store group models for particpant labeling\n\t\t * @memberof module:permissions/collections/permissionsParticipants\n\t\t * @alias groups\n\t\t * @type {module:user/collections/groups}\n\t\t */\n\t\tthis.groups = new GroupsCollection();\n\n\t\t/**\n\t\t * Store user models for particpant labeling\n\t\t * @memberof module:permissions/collections/permissionsParticipants\n\t\t * @alias users\n\t\t * @type {module:user/collections/users}\n\t\t */\n\t\tthis.users = new UsersCollection();\n\n\t\t// Hey, listen!\n\t\tthis\n\t\t\t// Underlying `userSelector`\n\t\t\t.listenTo(\n\t\t\t\tthis.permissionsCollection,\n\t\t\t\t'change:userSelector:all',\n\t\t\t\tthis.userSelectorAllToggled,\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tthis.permissionsCollection,\n\t\t\t\t'userSelector:add:groupIds',\n\t\t\t\tthis.userSelectorAddedGroups,\n\t\t\t)\n\t\t\t.listenTo(\n\t\t\t\tthis.permissionsCollection,\n\t\t\t\t'userSelector:add:userIds',\n\t\t\t\tthis.userSelectorAddedUsers,\n\t\t\t)\n\t\t\t// Selector object collections\n\t\t\t.listenTo(this.groups, 'sync', this.groupsSynced)\n\t\t\t.listenTo(this.users, 'sync', this.usersSynced)\n\t\t\t// A permission participant's permission has changed\n\t\t\t// We need to reflect that on the underlying userSelector\n\t\t\t.listenTo(this, 'change:permission', (model, permission) => {\n\t\t\t\t// Remove participant from the old permission\n\t\t\t\tthis.removeParticipant(\n\t\t\t\t\tmodel.get('type'),\n\t\t\t\t\tmodel._previousAttributes.permission,\n\t\t\t\t\tmodel.get('id'),\n\t\t\t\t);\n\t\t\t\t// Add to the new permission\n\t\t\t\tthis.addParticipant(model.attributes);\n\t\t\t})\n\t\t\t// A permission participant has been removed\n\t\t\t// We need to reflect that on the underlying userSelector\n\t\t\t.listenTo(this, 'remove', (model, collection, opts) => {\n\t\t\t\topts = opts || {};\n\n\t\t\t\t// From places like backgrid filter...\n\t\t\t\tif (!this.permissionsCollection) return;\n\n\t\t\t\tthis.removeParticipant(\n\t\t\t\t\tmodel.get('type'),\n\t\t\t\t\tmodel.get('permission'),\n\t\t\t\t\tmodel.get('id'),\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\t/**\n\t * Add participants for permission\n\t * @method\n\t * @param {module:permissions/models/permission} permission Permission\n\t */\n\taddByPermission(permission) {\n\t\tconst userSelector = permission.get('userSelector');\n\t\tconst mode = permission.get('mode');\n\t\tconst toSet = [];\n\n\t\t// I hate wild carding it... but I am not typing it all twice\n\t\t_.each(['group', 'user'], selector => {\n\t\t\tconst ids = userSelector[selector + 'Ids'];\n\n\t\t\t_.each(ids, id => {\n\t\t\t\ttoSet.push({\n\t\t\t\t\tuniqueId: selector + '-' + id,\n\t\t\t\t\tid: id,\n\t\t\t\t\tpermission: mode,\n\t\t\t\t\tpermissionId: permission.id,\n\t\t\t\t\ttype: selector,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Fetch selector objects\n\t\t\tids.length &&\n\t\t\t\tthis[selector + 's'].getByIds(ids, {\n\t\t\t\t\tmerge: true,\n\t\t\t\t\tremove: false,\n\t\t\t\t});\n\t\t});\n\n\t\tif (userSelector.all === true) {\n\t\t\ttoSet.push({\n\t\t\t\tuniqueId: 'all',\n\t\t\t\tid: null,\n\t\t\t\ttype: 'all',\n\t\t\t\tpermission: mode,\n\t\t\t\tpermissionId: permission.id,\n\t\t\t});\n\t\t}\n\n\t\treturn this.set(toSet, {merge: true, remove: false});\n\t}\n\n\t/**\n\t * Addidng a participant will modify the underlying userSelector\n\t * @override\n\t * @param {object} participant Participant object\n\t * @param {object} opts Request options\n\t */\n\taddParticipant(participant, opts) {\n\t\t// Backgrid...\n\t\tif (!this.permissionsCollection) {\n\t\t\treturn new $.Deferred().resolveWith(this);\n\t\t}\n\n\t\tconst collection = this.permissionsCollection;\n\t\tlet permission = collection.findWhere({mode: participant.permission});\n\n\t\t// Add the permission if there is not already one for this mode\n\t\tif (!permission) {\n\t\t\tpermission = collection.addPermission({\n\t\t\t\tmode: participant.permission,\n\t\t\t});\n\t\t}\n\n\t\t// Add to the underlying userSelector\n\t\tconst type = participant.type;\n\t\tswitch (type) {\n\t\t\tcase 'user':\n\t\t\tcase 'group':\n\t\t\t\tpermission.addSelectorItems(type, parseInt(participant.id), opts);\n\t\t\t\tbreak;\n\t\t\tcase 'all':\n\t\t\t\tpermission.toggleSelectAll(true);\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Normal pariticpant code gets saved immediately\n\t\treturn new $.Deferred().resolveWith(this, [permission]);\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:user/collections/groups} collection Collection\n\t */\n\tgroupsSynced(collection) {\n\t\tconst groups = this.groups;\n\t\tif (collection !== groups) return;\n\n\t\tthis.filterByType('group').each(m => {\n\t\t\tconst group = groups.get(m.get('id'));\n\t\t\tgroup && m.set('label', group.getLabel());\n\t\t});\n\n\t\tthis.labelsUpdated();\n\t}\n\n\t/**\n\t * @method\n\t */\n\tlabelsUpdated() {\n\t\tthis.sort();\n\t}\n\n\t/**\n\t * Remove participants for permission\n\t * @method\n\t * @param {module:permissions/models/permission} permission Permission\n\t */\n\tremoveByPermission(permission) {\n\t\tconst userSelector = permission.get('userSelector');\n\t\tconst mode = permission.get('mode');\n\n\t\t_.each(['group', 'user'], selector => {\n\t\t\tvar ids = userSelector[selector + 'Ids'];\n\t\t\t_.each(ids, id => {\n\t\t\t\tthis.remove(selector + '-' + id);\n\t\t\t});\n\t\t});\n\n\t\tif (userSelector.all === true) {\n\t\t\tthis.remove('all');\n\t\t}\n\t}\n\n\t/**\n\t * Removing a participant will modify the underlying userSelector\n\t * @override\n\t * @param {string} type Selector type (user/group/all)\n\t * @param {string} mode Mode (read/write/delete)\n\t * @param {number} id Selector id (null for `all`)\n\t * @param {object} opts Options\n\t */\n\tremoveParticipant(type, mode, id, opts) {\n\t\tconst permission =\n\t\t\tthis.permissionsCollection &&\n\t\t\tthis.permissionsCollection.findWhere({mode: mode});\n\n\t\tif (!permission) return new $.Deferred().resolveWith(this);\n\n\t\tswitch (type) {\n\t\t\tcase 'user':\n\t\t\tcase 'group':\n\t\t\t\tpermission.removeSelectorItems(type, id, opts);\n\t\t\t\tbreak;\n\t\t\tcase 'all':\n\t\t\t\tpermission.toggleSelectAll(false);\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Normal pariticpant code gets saved immediately\n\t\treturn new $.Deferred().resolveWith(this, [permission]);\n\t}\n\n\t/**\n\t * The underlying userSelector has changed whether all users are selected or not\n\t * We need to reflect that here as a participant\n\t * @param {module:permissions/models/permission} Permission\n\t * @param {boolean} allSelected All selected\n\t * @param {object} opts Options\n\t */\n\tuserSelectorAllToggled(permission, allSelected, opts) {\n\t\tif (!allSelected) {\n\t\t\tthis.remove('all');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.add(\n\t\t\t{\n\t\t\t\tuniqueId: 'all',\n\t\t\t\tid: null,\n\t\t\t\ttype: 'all',\n\t\t\t\tpermission: permission.get('mode'),\n\t\t\t\tpermissionId: permission.id,\n\t\t\t},\n\t\t\t{merge: true},\n\t\t);\n\t}\n\n\t/**\n\t * Groups have been added to the underlying userSelector\n\t * We need to reflect that here as a participants\n\t * @method\n\t * @param {module:permissions/models/permission} Permission\n\t * @param {array} groupIds Added group ids\n\t * @param {object} opts Options\n\t */\n\tuserSelectorAddedGroups(permission, ids, opts) {\n\t\tconst mode = permission.get('mode');\n\t\tthis.set(\n\t\t\tids.map(id => {\n\t\t\t\treturn {\n\t\t\t\t\tuniqueId: 'group-' + id,\n\t\t\t\t\tid: id,\n\t\t\t\t\tpermission: mode,\n\t\t\t\t\tpermissionId: permission.id,\n\t\t\t\t\ttype: 'group',\n\t\t\t\t};\n\t\t\t}),\n\t\t\t{\n\t\t\t\tmerge: true,\n\t\t\t\tremove: false,\n\t\t\t},\n\t\t);\n\t\tthis.groups.getByIds(ids);\n\t}\n\n\t/**\n\t * Users have been added to the underlying userSelector\n\t * We need to reflect that here as a participants\n\t * @method\n\t * @param {module:permissions/models/permission} Permission\n\t * @param {array} ids Added user ids\n\t * @param {object} opts Options\n\t */\n\tuserSelectorAddedUsers(permission, ids, opts) {\n\t\tconst mode = permission.get('mode');\n\t\tthis.set(\n\t\t\tids.map(id => {\n\t\t\t\treturn {\n\t\t\t\t\tuniqueId: 'user-' + id,\n\t\t\t\t\tid: id,\n\t\t\t\t\tpermission: mode,\n\t\t\t\t\tpermissionId: permission.id,\n\t\t\t\t\ttype: 'user',\n\t\t\t\t};\n\t\t\t}),\n\t\t\t{\n\t\t\t\tmerge: true,\n\t\t\t\tremove: false,\n\t\t\t},\n\t\t);\n\t\tthis.users.getByIds(ids);\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:user/collections/users} collection Collection\n\t */\n\tusersSynced(collection) {\n\t\tconst users = this.users;\n\t\tif (collection !== users) return;\n\n\t\tthis.filterByType('user').each(m => {\n\t\t\tconst user = users.get(m.get('id'));\n\t\t\tuser && m.set('label', user.getLexicographicName());\n\t\t});\n\t\tthis.labelsUpdated();\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'PermissionsParticipants';\n\t}\n}\n","/**\n * Permsissions collection\n * This collection contains all permissions for a given resource [Asset, Attribute, Attribute Set, Category, Cart, Module, Search]\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/permission';\n\nimport PagerModel from '@netx/core-app/models/pager';\nimport PermissionsParticipants from './permissionsParticipants';\n\nexport default class Permissions extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {array} methods.read - Get all permissions for resource\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tread(opts) {\n\t\t\t\treturn [\n\t\t\t\t\t'getPermissionsByResource',\n\t\t\t\t\tthis.resourceName,\n\t\t\t\t\tthis.resourceId,\n\t\t\t\t\tthis.pager.getPageDTO(),\n\t\t\t\t\tthis.modeFilters,\n\t\t\t\t];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.read - Parse permissions\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Make sure we do not have duplicate modes\n\t\t\t * @function\n\t\t\t * @param {array} permissions Permissions\n\t\t\t * @param {object} opts Options\n\t\t\t */\n\t\t\tread(permissions, opts) {\n\t\t\t\tconst uniquePerms = [];\n\t\t\t\tlet groupIds = [];\n\t\t\t\tlet userIds = [];\n\n\t\t\t\t_.each(permissions, permission => {\n\t\t\t\t\t// No deny permissions\n\t\t\t\t\tif (permission.type === 'deny') {\n\t\t\t\t\t\tthis.toRemove.push(permission.permissionId);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet selectors = permission.userSelector;\n\n\t\t\t\t\tconst existing = _.findWhere(uniquePerms, {mode: permission.mode});\n\t\t\t\t\tif (!existing) {\n\t\t\t\t\t\tuserIds = userIds.concat(selectors.userIds);\n\t\t\t\t\t\tgroupIds = groupIds.concat(selectors.groupIds);\n\t\t\t\t\t\tuniquePerms.push(permission);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove the duplicate\n\t\t\t\t\tthis.toRemove.push(permission.permissionId);\n\t\t\t\t\t// Update the existing\n\t\t\t\t\tthis.toSave.push(existing.permissionId);\n\n\t\t\t\t\tconst existingSelectors = existing.userSelector;\n\n\t\t\t\t\t// Do not let a user be in multiple permission modes\n\t\t\t\t\tconst newGroupIds = _.without(\n\t\t\t\t\t\tselectors.groupIds,\n\t\t\t\t\t\t_.intersection(userIds, selectors.groupIds),\n\t\t\t\t\t);\n\t\t\t\t\tconst newUserIds = _.without(\n\t\t\t\t\t\tselectors.userIds,\n\t\t\t\t\t\t_.intersection(userIds, selectors.userIds),\n\t\t\t\t\t);\n\n\t\t\t\t\t// Merge user selectors\n\t\t\t\t\texisting.userSelector = {\n\t\t\t\t\t\tall: existingSelectors.all || selectors.all,\n\t\t\t\t\t\tgroupIds: existingSelectors.groupIds.concat(newGroupIds),\n\t\t\t\t\t\tuserIds: existingSelectors.userIds.concat(newUserIds),\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\treturn uniquePerms;\n\t\t\t},\n\t\t};\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * Paging model\n\t\t * @memberOf Netx.Collections.Users\n\t\t * @alias pager\n\t\t * @type {Netx.Models.Pager}\n\t\t * @todo We need to trigger unsaved changes warning for when paging permissions\n\t\t */\n\t\tthis.pager = new PagerModel({pageSize: 0x7fffffff}, {collection: this});\n\n\t\t/**\n\t\t * Mode filters (read/write/delete/favorite)\n\t\t * @memberOf Netx.Collections.Permissions\n\t\t * @alias modeFilters\n\t\t * @type {object}\n\t\t */\n\t\tthis.modeFilters = opts.modeFilters || null;\n\n\t\t/**\n\t\t * Resource name\n\t\t * @memberOf Netx.Collections.Permissions\n\t\t * @alias resourceName\n\t\t * @type {string}\n\t\t */\n\t\tthis.resourceName = opts.resourceName || '';\n\n\t\t/**\n\t\t * Resource id\n\t\t * @memberOf Netx.Collections.Permissions\n\t\t * @alias resourceId\n\t\t * @type {number}\n\t\t */\n\t\tthis.resourceId = opts.resourceId || null;\n\n\t\t/**\n\t\t * A layer for making permissions play like participants in 8.12\n\t\t * @memberof module:permissions/collections/permissions\n\t\t * @alias participants\n\t\t * @type {module:permissions/collections/permissionsParticipants}\n\t\t */\n\t\tthis.participants = new PermissionsParticipants([], {\n\t\t\tcollection: this,\n\t\t\tresourceId: this.resourceId,\n\t\t\tresourceName: this.resourceName,\n\t\t});\n\n\t\t/**\n\t\t * Store models that need to be created on the server\n\t\t * @memberof module:permissions/collections/permissions\n\t\t * @alias toAdd\n\t\t * @type {array}\n\t\t */\n\t\tthis.toAdd = [];\n\t\t/**\n\t\t * Store model ids that need to be updated on the server\n\t\t * @memberof module:permissions/collections/permissions\n\t\t * @alias toSave\n\t\t * @type {array}\n\t\t */\n\t\tthis.toSave = [];\n\t\t/**\n\t\t * Store model ids that need to be destroyed on the server\n\t\t * @memberof module:permissions/collections/permissions\n\t\t * @alias toRemove\n\t\t * @type {array}\n\t\t */\n\t\tthis.toRemove = [];\n\n\t\t// Hey, listen!\n\t\t// For making permissions play like participants in 8.12\n\t\tthis.listenTo(this, 'request:read', (collection, xhr, opts) => {\n\t\t\t// Reset\n\t\t\tthis.stopListening(this, 'add remove change sync');\n\t\t\tthis.participants.reset([]);\n\n\t\t\tthis.listenTo(this, 'sync', collection => {\n\t\t\t\t// Could be an underlying model\n\t\t\t\tif (collection !== this) return;\n\n\t\t\t\t// Add existing records\n\t\t\t\tthis.each(this.participants.addByPermission, this.participants);\n\n\t\t\t\t// Keep track additions, removals and changes\n\t\t\t\tthis.listenTo(this, 'add', (model, collection) => {\n\t\t\t\t\t// If we do not already have and id, we need to be created on the server\n\t\t\t\t\t!model.id && this.toAdd.push(model);\n\t\t\t\t})\n\t\t\t\t\t.listenTo(this, 'remove', (model, collection) => {\n\t\t\t\t\t\tlet idx;\n\t\t\t\t\t\t// If we were new and removed before ever being saved,\n\t\t\t\t\t\t// we no longer need to be created on the server\n\t\t\t\t\t\tif (!model.id) {\n\t\t\t\t\t\t\tidx = this.toAdd.indexOf(model);\n\t\t\t\t\t\t\treturn idx > -1 && this.toAdd.splice(idx, 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tidx = this.toSave.indexOf(model.id);\n\t\t\t\t\t\tidx > -1 && this.toSave.splice(idx, 1);\n\t\t\t\t\t\tthis.toRemove.push(model.id);\n\t\t\t\t\t})\n\t\t\t\t\t.listenTo(this, 'change', model => {\n\t\t\t\t\t\t// If the model does not have an id then we have not been created\n\t\t\t\t\t\t// on the server yet and do not need saving\n\t\t\t\t\t\tif (!model.id) return;\n\t\t\t\t\t\tthis.toSave.indexOf(model.id) < 0 && this.toSave.push(model.id);\n\t\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Add a new default permission for this resource\n\t * The permission is not yet saved - just added to the collection\n\t * @method\n\t * @param {object} attrs Attributes\n\t * @param {object} opts Options\n\t */\n\taddPermission(attrs = {}, opts = {}) {\n\t\treturn this.add(\n\t\t\t_.extend(attrs, {\n\t\t\t\tresource: {\n\t\t\t\t\tid: this.resourceId,\n\t\t\t\t\ttype: this.resourceName,\n\t\t\t\t},\n\t\t\t}),\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} opts Options\n\t */\n\tsave(opts = {}) {\n\t\tlet toRemove = this.toRemove;\n\t\tlet toAdd = this.toAdd;\n\t\tlet toSave = this.toSave;\n\n\t\t// Part of the particpants hack for this collection\n\t\t// We will trigger a sync when done\n\t\tthis.stopListening(this, 'add remove change sync');\n\n\t\t// All permissions with empty userSelectors will be set for removal\n\t\tthis.forEach(perm => {\n\t\t\tif (perm.hasSelectors()) return;\n\t\t\t!_.contains(toRemove, perm.id) && toRemove.push(perm.id);\n\t\t});\n\n\t\t// Remove\n\t\tconst removePromises = _.compact(\n\t\t\t_.map(toRemove, id => {\n\t\t\t\tconst model = this.get(id) || new this.model({permissionId: id});\n\t\t\t\treturn model.destroy(_.extend({wait: true}, opts));\n\t\t\t}),\n\t\t);\n\n\t\t// Create\n\t\tconst addPromises = _.compact(\n\t\t\t_.map(toAdd, model => {\n\t\t\t\t// We will not be adding it if there are no selectors\n\t\t\t\tif (!model.hasSelectors() || model.id) return;\n\t\t\t\treturn model.save(opts);\n\t\t\t}),\n\t\t);\n\n\t\t// Update\n\t\tconst savePromises = _.compact(\n\t\t\t_.map(toSave, id => {\n\t\t\t\t// We will not be updating it if it was removed\n\t\t\t\tif (_.contains(toRemove, id)) return;\n\t\t\t\tconst model = this.get(id);\n\t\t\t\treturn model && model.save(opts);\n\t\t\t}),\n\t\t);\n\n\t\tthis.toRemove = [];\n\t\tthis.toAdd = [];\n\t\tthis.toSave = [];\n\n\t\tconst allPromises = removePromises.concat(addPromises, savePromises);\n\n\t\tconst p = this.when.apply(this, allPromises);\n\t\tp.then(() => {\n\t\t\t!opts.silent && allPromises.length && this.trigger('sync', this, opts);\n\t\t});\n\n\t\treturn p;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Permissions';\n\t}\n}\n","/**\n * Permission resource model\n * This model does not have defaults as it is intended to be extended for functionality only\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport PermissionsCollection from '@netx/core-permissions/collections/permissions';\nimport {resourceLabels} from '../properties/permissions';\n\nexport default class PermissionResource extends Base {\n\t/**\n\t * Not all models that extend us use the same attribute for their title\n\t * Things like attributes (which do not extend Netx.Models.SharedResource) use `name`\n\t * @type {string}\n\t */\n\tget titleAttribute() {\n\t\treturn 'title';\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * Resource type name\n\t\t * Must be set by extending model or at initialize\n\t\t * @type {string}\n\t\t */\n\t\tthis.resourceName = opts.resourceName;\n\t\t// Need a `resourceName` for any permission fetching to work\n\t\tif (this.resourceName == null) {\n\t\t\tthrow new Error('Permission resource instatiated without `resourceName`');\n\t\t}\n\n\t\t/**\n\t\t * @memberof module:share/model/sharedResource\n\t\t * @alias participants\n\t\t * @type {module:permissions/collections/permissions}\n\t\t */\n\t\tthis.permissions = new PermissionsCollection([], {\n\t\t\tresourceName: this.resourceName,\n\t\t\tresourceId: this.id,\n\t\t});\n\t\tthis.addSubCollection(this.permissions);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'change:id', function(model, id) {\n\t\t\tthis.permissions.resourceId = this.id;\n\t\t}).listenTo(this.permissions, 'sync', function(permissions) {\n\t\t\tif (permissions !== this.permissions) return;\n\t\t\t// Defer so that all other sync related logic has run\n\t\t\t_.defer(this.permissionsUpdated.bind(this));\n\t\t});\n\t}\n\n\t/**\n\t * Get applicable permissions\n\t * @method\n\t * @return {module:permissions/collections/permissions}\n\t */\n\tgetPermissions() {\n\t\tif (\n\t\t\t!this.permissionsEnabled() ||\n\t\t\tthis.isNew()\n\t\t\t// Just resolve so the normal workflow can occur\n\t\t)\n\t\t\treturn new $.Deferred().resolve();\n\n\t\treturn this.permissions.fetch();\n\t}\n\n\t/**\n\t * @method\n\t * @return {string}\n\t */\n\tgetResourceLabel() {\n\t\treturn resourceLabels[this.resourceName] || '';\n\t}\n\n\t/**\n\t * @method\n\t * @return {string}\n\t */\n\tgetTitle() {\n\t\treturn this.get(this.titleAttribute) || '';\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\thasParticipants() {\n\t\treturn this.permissions.participants.length !== 0;\n\t}\n\n\t/**\n\t * Are permissions for this resource enabled\n\t * Override this method as needed - default return is `true`\n\t * @override\n\t * @return {boolean}\n\t */\n\tpermissionsEnabled() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @method\n\t */\n\tpermissionsUpdated() {\n\t\tthis.set('hasPermissions', this.hasParticipants());\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'PermissionResource';\n\t}\n}\n","import React, {useMemo} from 'react';\nimport clsx from 'clsx';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {FormLabel} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {ChipSkeleton} from '@netx/core-components/Chip';\nimport ValueChip from '../ValueChip';\nimport {isEmptyValue} from '@netx/core-components/Form';\n\nimport type {CommonFieldPropsWithTextField} from '../../../';\n\ntype Value =\n\t| string\n\t| {\n\t\t\t[any_other_key: string]: any;\n\t\t\tlabel: string;\n\t };\n\nconst getLabels = (values?: Value[]): string[] => {\n\tif (!values) return [];\n\tif (!Array.isArray(values)) values = [values];\n\t// @ts-ignore\n\treturn values.map((value) => (value.label != null ? value.label : value));\n};\n\nconst readOnlyChipStyles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tmargin: 3,\n\t\t},\n\t});\n\nconst ReadOnlyChips = withStyles(readOnlyChipStyles)(\n\tReact.memo(\n\t\t({\n\t\t\tclasses,\n\t\t\tonSearch,\n\t\t\tvalues,\n\t\t}: WithStyles & {\n\t\t\tonSearch?: (value: string) => void;\n\t\t\tvalues?: Value[];\n\t\t}) => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{getLabels(values).map((label, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t),\n);\n\nconst styles = ({mixins, palette, spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tmargin: spacing(0.75, 0),\n\t\t\tpadding: spacing(0, 1.75),\n\t\t\twidth: '100%',\n\t\t\t'&.disabled': {\n\t\t\t\t...mixins.disabled,\n\t\t\t},\n\t\t\t'&.pseudoValue': {\n\t\t\t\t'& $value': {\n\t\t\t\t\tcolor: palette.text.secondary,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&$limitHeightToContainer': {\n\t\t\t\tmaxHeight: '100%',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t'& $label': {\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t},\n\t\t\t\t'& $value': {\n\t\t\t\t\t...mixins.scrollable,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tlabel: {\n\t\t\t...mixins.readOnlyLabel,\n\t\t},\n\t\tlimitHeightToContainer: {},\n\t\tvalue: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexWrap: 'wrap',\n\t\t\tmarginTop: spacing(0.5),\n\t\t},\n\t});\n\nexport interface ReadOnlyMultiSelectFieldProps\n\textends Omit, 'name' | 'onChange'> {\n\tlimitHeightToContainer?: boolean;\n}\n\nconst ReadOnlyMultiSelectField = ({\n\tclasses,\n\tdisabled,\n\tlabel,\n\tlimitHeightToContainer,\n\tloading,\n\tloadingValue,\n\tmultipleValues,\n\tonSearch,\n\tvalue,\n}: WithStyles & ReadOnlyMultiSelectFieldProps) => {\n\tvalue = value == null ? [] : value;\n\tconst pseudoValue = isEmptyValue(value) || multipleValues;\n\n\tconst content = useMemo(() => {\n\t\tif (loading || loadingValue) return ;\n\t\tif (multipleValues) return i18n.t('i18n.multipleValues');\n\t\tif (!value?.length) return '(none)';\n\t\treturn ;\n\t}, [loading, loadingValue, multipleValues, onSearch, value]);\n\n\tconst displayLabel = useMemo(() => {\n\t\tif (label == null || label === '') return null;\n\t\treturn (\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t);\n\t}, [classes, label]);\n\n\treturn (\n\t\t\n\t\t\t{displayLabel}\n\t\t\t
{content}
\n\t\t\n\t);\n};\n\nexport default withStyles(styles, {\n\tname: 'ReadOnlyMultiSelect',\n})(React.memo(ReadOnlyMultiSelectField));\n","import React from 'react';\n\nimport ReadOnlyTextField, {\n\tReadOnlyTextFieldProps,\n} from '../../../TextField/ReadOnlyTextField';\nimport {SelectFieldProps} from '../Select';\n\nexport type ReadOnlySelectFieldProps = ReadOnlyTextFieldProps &\n\tPick<\n\t\tSelectFieldProps,\n\t\t'labelKey' | 'AutocompleteProps'\n\t> & {};\n\nexport const ReadOnlySelectField = ({\n\tAutocompleteProps,\n\tlabelKey,\n\tvalue,\n\t...props\n}: ReadOnlySelectFieldProps) => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default ReadOnlySelectField;\n","import React from 'react';\n\nimport {ContextMenuServiceProvider} from './ContextMenuService';\n\n/**\n * wrap component in context menu\n * @example\n\tconst WrappedComponenet = withContextMenu(Componenet);\n */\nexport const withContextMenu = function (\n\tComponent: C,\n) {\n\treturn (\n\t\tprops: JSX.IntrinsicAttributes &\n\t\t\tJSX.LibraryManagedAttributes>,\n\t) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n};\n\nexport default withContextMenu;\n","export const SearchTypeCart = 10 as const;\nexport type TSearchTypeCart = typeof SearchTypeCart;\n","import React from 'react';\n\nimport {ConfirmationServiceProvider} from './ConfirmationService';\n\n/**\n * wrap component in confirmation\n * @example\n\tconst WrappedComponenet = withConfirmation(Componenet);\n */\nexport const withConfirmation = function (\n\tComponent: C,\n) {\n\treturn (\n\t\tprops: JSX.IntrinsicAttributes &\n\t\t\tJSX.LibraryManagedAttributes>,\n\t) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n};\n\nexport default withConfirmation;\n","import React, {useCallback} from 'react';\n\nimport {TextField, TextFieldProps} from '../TextField';\ntype TextFieldRequiredProps = Required;\n\nconst getNumberWithoutDuplicateDecimals = (str: string) => {\n\tlet counter = 0;\n\tstr = str.replace(/[^\\d.-]/g, '');\n\treturn str.replace(/[^0-9.-]|\\./g, function ($0) {\n\t\tif ($0 == '.' && !counter++)\n\t\t\t// dot found and counter is not incremented\n\t\t\treturn '.'; // that means we met first dot and we want to keep it\n\t\treturn ''; // if we find anything else, let's erase it\n\t});\n};\n\nexport interface NumberFieldProps extends Omit {\n\tmaxLength?: number;\n\tvalue?: string | number;\n}\n\nexport const NumberField = ({\n\tonChange,\n\tmaxLength,\n\tvalue,\n\t...props\n}: NumberFieldProps) => {\n\tconst handleChange = useCallback(\n\t\t(value) => onChange?.(getNumberWithoutDuplicateDecimals(value)),\n\t\t[onChange],\n\t);\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default NumberField;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.26.0\"\n};","import {i18n} from '@netx/core/i18n';\n\nexport let typeIds = {\n\texport: 'export',\n\timport: 'import',\n\tboth: 'both',\n};\n\nexport let typeLabels = {\n\tboth: i18n.t('i18n.roundTrip'),\n\texport: i18n.t('i18n.export'),\n\timport: i18n.t('i18n.import'),\n};\n\n// Because figuring out a custom value is not easy\nexport let map = {\n\tcdr: 'Corel cdr',\n\tcdrinfo: 'Corel cdrinfo',\n\tcdt: 'Corel cdt',\n\tcrl: 'Corel',\n\tdc: 'Dublin Core',\n\tDICOM: 'Dicom',\n\texif: 'EXIF',\n\tfill: 'Corel Fill',\n\tID3: 'ID3',\n\tIptc4xmpCore: 'IPTC',\n\tpdf: 'PDF',\n\tphotoshop: 'Photoshop',\n\ttiff: 'EXIF',\n\txmp: 'XMP',\n\txmpDM: 'XMP',\n\txmpMM: 'XMP',\n\txmpRights: 'XMP',\n};\n\nexport let types = _.invert(typeIds);\n\n// This is for dropdowns\nexport let typeOptions = _.mapObject(types, (name) => typeLabels[name]);\n\nexport default {\n\tmap: map,\n\ttypeIds: typeIds,\n\ttypeLabels: typeLabels,\n\ttypeOptions: typeOptions,\n\ttypes: types,\n};\n","/**\n * @class\n */\nimport Base from './assetConstituent';\n\nimport ProgressModel from '@netx/core-app/models/progress';\n\nimport {pad} from '@netx/core/lib/underscore-netx';\n\nexport default class AssetConstituent_Clip extends Base {\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {string} defaults.endTime - Clip end time string\n\t * @property {string} defaults.startTime - Clip start time string\n\t * @property {string} defaults.title - Default title\n\t * @property {number} defaults.type - Default type (4 = clip)\n\t *\n\t * @property {boolean} defaults.keyframeReady - Default keyframe ready state (client)\n\t * @property {string} defaults.uuid - Default uuid for tracking creation/update progress\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\tendTime: 0,\n\t\t\tstartTime: 0,\n\t\t\ttitle: '',\n\t\t\ttype: 4,\n\t\t\t// Client attrs\n\t\t\tkeyframeReady: true,\n\t\t\tuuid: '',\n\t\t});\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn super.clientAttrs.concat(['keyframeReady', 'uuid']);\n\t}\n\n\t/**\n\t * Right now, the only constituents that can be created by the client are clips\n\t * @property {object} methods - Model RPC methods\n\t * @property {function|array} methods.create - Create clip\n\t * @property {function|array} methods.remove - Delete clip\n\t * @property {function|array} methods.updated - Update clip\n\t */\n\tget methods() {\n\t\treturn _.extend(super.methods, {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate(opts) {\n\t\t\t\treturn ['setClip', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tremove(opts) {\n\t\t\t\treturn ['deleteClip', this.id];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tupdate(opts) {\n\t\t\t\treturn ['setClip', this.self()];\n\t\t\t},\n\t\t\t_prepareDownload: [\n\t\t\t\t'prepareDownload',\n\t\t\t\t'downloadOptions.assets',\n\t\t\t\t'downloadOptions.processes',\n\t\t\t\t'downloadOptions.arg1',\n\t\t\t\t'downloadOptions.arg2',\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * @property {object} parsers - Model parsers\n\t * @property {function} parsers.create - Parse the return of create clip\n\t * @property {function} parsers.create - Parse the return of update clip\n\t */\n\tget parsers() {\n\t\treturn _.extend(super.parsers, {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} data Clip data (constituent and keyframe uuid)\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate(data, opts) {\n\t\t\t\treturn _.extend(data.constituent, {\n\t\t\t\t\tkeyframeReady: false,\n\t\t\t\t\tuuid: data.progressUuid,\n\t\t\t\t});\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {object} data Clip data (constituent and [possibly] keyframe uuid)\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tupdate(data) {\n\t\t\t\tlet _data = {};\n\t\t\t\tif (data.progressUuid) {\n\t\t\t\t\t_data = {\n\t\t\t\t\t\tkeyframeReady: false,\n\t\t\t\t\t\tuuid: data.progressUuid,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn _.extend(data.constituent, _data);\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attr Model attributes\n\t * @param {object} opts Model options\n\t * @fires module:app#app:pollBatchJob\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * @memberOf module:asset/models/assetConstituent_clip\n\t\t * @alias downloadOptions\n\t\t * @type {object}\n\t\t */\n\t\tthis.downloadOptions = opts.downloadOptions || {};\n\n\t\t/**\n\t\t * @memberof module:asset/models/assetConstituent_clip\n\t\t * @alias progress\n\t\t * @type {module:app/models/progress}\n\t\t */\n\t\tthis.progress = new ProgressModel();\n\n\t\t// Hey, listen!\n\t\t// When a clip is beign created/updated on the server - track the progress\n\t\tthis.listenTo(this, 'change:uuid', () => {\n\t\t\tthis.trackBatchJob(this.get('uuid'));\n\t\t})\n\t\t\t.listenTo(this, 'progress', (model, batchJob, progress) => {\n\t\t\t\tconst progressMessage = (batchJob && batchJob.get('details')) || '';\n\t\t\t\tthis.progress.update(progress, progressMessage);\n\t\t\t})\n\t\t\t.listenTo(this, 'complete', (model, batchJob) => {\n\t\t\t\tthis.fetch().then(() => {\n\t\t\t\t\tthis.set({\n\t\t\t\t\t\tkeyframeReady: true,\n\t\t\t\t\t});\n\t\t\t\t\tthis.progress.complete();\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t/**\n\t * return a cache-busting string for the asset preview; this string should change every time the asset preview changes.\n\t * @method\n\t * @return string\n\t */\n\tcacheBuster(prefix) {\n\t\t// If this model doesn't have moddate set, use the current time.\n\t\tconst timeStr = this.get('moddate')\n\t\t\t? _.dateFromAsset(this.get('moddate')).getTime()\n\t\t\t: _.now();\n\n\t\treturn '?' + (prefix ? prefix + '&' : '') + 't=' + timeStr;\n\t}\n\t/**\n\t * @method\n\t * @return {object} Duration\n\t */\n\tgetDuration() {\n\t\tconst start = parseFloat(this.get('startTime'));\n\t\tconst end = parseFloat(this.get('endTime'));\n\t\tconst floor = Math.floor;\n\t\tconst duration = end - start;\n\n\t\tlet hour, minute, second, millisecond, time;\n\n\t\ttime = duration;\n\t\thour = floor(time / 3600);\n\t\ttime -= hour * 3600;\n\t\tminute = floor(time / 60);\n\t\ttime -= floor(minute * 60);\n\t\tsecond = floor(time);\n\t\tmillisecond = Math.round((time - second) * 1000);\n\n\t\treturn {\n\t\t\tseconds: duration,\n\t\t\tpretty: [\n\t\t\t\tpad(hour, 2),\n\t\t\t\t':',\n\t\t\t\tpad(minute, 2),\n\t\t\t\t':',\n\t\t\t\tpad(second, 2),\n\t\t\t\t'.',\n\t\t\t\tpad(millisecond, 3),\n\t\t\t].join(''),\n\t\t};\n\t}\n\t/**\n\t * Get the manual repurpose options for clip downloading\n\t * @method\n\t * @param {module:asset/models/assetProcess} process (Video) preset process data\n\t * @returns {array} Manual repurpose options\n\t */\n\tgetManualRepurposeOptions(process) {\n\t\treturn [\n\t\t\t{\n\t\t\t\tlabel: 'trim',\n\t\t\t\tvalue: [this.get('startTime'), this.get('endTime')].join('-'),\n\t\t\t},\n\t\t\t{label: 'codec', value: process.get('videoCodec')},\n\t\t\t{label: 'videoBitrate', value: process.get('videoBitrate')},\n\t\t\t{label: 'audioBitrate', value: process.get('audioBitrate')},\n\t\t\t{label: 'audioChannels', value: process.get('audioChannels')},\n\t\t\t{\n\t\t\t\tlabel: 'resize',\n\t\t\t\tvalue: [process.get('width'), process.get('height')].join(),\n\t\t\t},\n\t\t\t{label: 'format', value: process.get('format')},\n\t\t];\n\t}\n\t/**\n\t * @method\n\t * @return {object} Pretty range\n\t */\n\tgetPrettyRange() {\n\t\tconst floor = Math.floor;\n\t\tconst round = Math.round;\n\t\tconst prettyRange = {};\n\n\t\t// Loops over start, end, duration\n\t\t_.each(['startTime', 'endTime'], (r) => {\n\t\t\tlet hour, minute, second, millisecond, time;\n\n\t\t\ttime = parseFloat(this.get(r)) || 0;\n\t\t\thour = floor(time / 3600);\n\t\t\ttime -= hour * 3600;\n\t\t\tminute = floor(time / 60);\n\t\t\ttime -= floor(minute * 60);\n\t\t\tsecond = floor(time);\n\t\t\tmillisecond = round((time - second) * 1000);\n\n\t\t\tprettyRange[r] = [\n\t\t\t\tpad(hour, 2),\n\t\t\t\t':',\n\t\t\t\tpad(minute, 2),\n\t\t\t\t':',\n\t\t\t\tpad(second, 2),\n\t\t\t\t'.',\n\t\t\t\tpad(millisecond, 3),\n\t\t\t].join('');\n\t\t});\n\n\t\treturn prettyRange;\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituent_Clip';\n\t}\n}\n","import {useCallback, useState} from 'react';\n\nimport {attributes as attributesSingleton} from '@netx/core-asset/collections/singleton';\nimport type {AttributeId, AttributeTemplate, AttributesWorking} from '../types';\nimport {getTemplatesEffectedByLookup} from '../utils';\n\nimport {metadataDatasetLookup} from '../api';\n\nimport useMetadataLookupsAllowed, {\n\tLookupsAllowed,\n} from './useMetadataLookupsAllowed';\n\nexport interface UseLookups {\n\tattributesWorking: AttributesWorking;\n\tlookupsAllowed: LookupsAllowed;\n\tlookup(\n\t\tattributeTemplate: AttributeTemplate,\n\t\tlookupValue: string,\n\t): Promise;\n}\n\nexport const useMetadataLookups = (\n\tattributeIds: AttributeId[],\n\tdisableLookups = false,\n\tform,\n): UseLookups => {\n\tconst [attributesWorking, setAttributesWorking] = useState({});\n\tconst lookupsAllowed = useMetadataLookupsAllowed(\n\t\tattributeIds,\n\t\tdisableLookups,\n\t);\n\n\t/** handle attribute metadata lookup */\n\tconst lookup = useCallback(\n\t\tasync (\n\t\t\tattribute: AttributeTemplate,\n\t\t\tlookupValue: string,\n\t\t\tlimitToIds?: number[],\n\t\t) => {\n\t\t\tif (form == null || lookupValue == null || lookupValue === '') return;\n\n\t\t\t// Determine which attributes will be updated by lookup\n\t\t\tsetAttributesWorking(\n\t\t\t\tgetTemplatesEffectedByLookup(\n\t\t\t\t\tattribute,\n\t\t\t\t\tattributesSingleton.models.map((m) => m.attributes),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tconst lookupResults = await metadataDatasetLookup({\n\t\t\t\tname: attribute.name,\n\t\t\t\tvalue: lookupValue,\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetAttributesWorking({});\n\t\t\t}, 200);\n\n\t\t\t// For each result, update the attribute values if possible\n\t\t\tform.setValue(\n\t\t\t\tlookupResults.reduce>((values, result) => {\n\t\t\t\t\t// ¯\\_(ツ)_/¯\n\t\t\t\t\tconst attributeTemplate = attributesSingleton.findWhere({\n\t\t\t\t\t\tname: result.label,\n\t\t\t\t\t})?.attributes;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!attributeTemplate ||\n\t\t\t\t\t\tattributeTemplate.permission === 'r' ||\n\t\t\t\t\t\t(limitToIds && !limitToIds.includes(attributeTemplate.attributeid))\n\t\t\t\t\t)\n\t\t\t\t\t\treturn values;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\t[attributeTemplate.attributeid]: result.value,\n\t\t\t\t\t};\n\t\t\t\t}, {}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\treturn {\n\t\tattributesWorking,\n\t\tlookupsAllowed,\n\t\tlookup,\n\t};\n};\n\nexport default useMetadataLookups;\n","export const SearchTypeFileFormat = 6 as const;\nexport type TSearchTypeFileFormat = typeof SearchTypeFileFormat;\n\n/** elementSubType1 */\nexport enum FileFormatType {\n\tONLY = 0,\n\tEXCLUDE = 1,\n}\n","export const SearchTypeFileSize = 7 as const;\nexport type TSearchTypeFileSize = typeof SearchTypeFileSize;\n\n/** elementSubType1 */\nexport enum FileSizeType {\n\tAPPROXIMATELY = 0,\n\tGREATER_THAN = 1,\n\tLESS_THAN = 2,\n\tEQUAL_TO = 3,\n}\n\n/** elementSubType2 */\nexport enum FileSizeMetric {\n\tBYTES = 0,\n\tKBYTES = 1,\n\tMBYTES = 2,\n\tGBYTES = 3,\n}\n","export const SearchTypeUser = 29 as const;\nexport type TSearchTypeUser = typeof SearchTypeUser;\n\n/** elementSubType1 */\nexport enum UserType {\n\tIMPORTED_BY = 0,\n\tMODIFIED_BY = 1,\n}\n","/**\n * DownloadOption collection\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/downloadOption';\n\nimport {types as downloadOptionTypes} from '../properties/downloadOptions';\n\nexport default class DownloadOptions extends Base {\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\t\tsuper(models, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Download options type\n\t */\n\tfilterTypes(type) {\n\t\tif (type != null) {\n\t\t\t// filter us by the given type.\n\t\t\treturn this.where({type: type});\n\t\t}\n\n\t\t// If no argument, return an object with all our models split out by type.\n\t\tconst filtered = {\n\t\t\toriginalOption: this.where({type: downloadOptionTypes.original}) || [],\n\t\t\tproxyOptions: this.where({type: downloadOptionTypes.proxy}) || [],\n\t\t\tviewOptions: this.where({type: downloadOptionTypes.assetView}) || [],\n\t\t\tprocessOptions:\n\t\t\t\tthis.where({type: downloadOptionTypes.presetProcess}) || [],\n\t\t\tmetadataOptions: this.where({type: downloadOptionTypes.metadata}) || [],\n\t\t\tcontactSheetOptions:\n\t\t\t\tthis.where({type: downloadOptionTypes.contactSheet}) || [],\n\t\t};\n\t\t// These three are sometimes lumped together:\n\t\tfiltered.vppOptions = filtered.viewOptions\n\t\t\t.concat(filtered.proxyOptions)\n\t\t\t.concat(filtered.processOptions);\n\t\treturn filtered;\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Download options type\n\t * @return {module:share/models/downloadOption}\n\t */\n\tgetOption(type, name) {\n\t\tconst opts = {};\n\n\t\tif (type != null) {\n\t\t\topts.type = type;\n\t\t}\n\n\t\tif (name != null) {\n\t\t\topts.name = name;\n\t\t}\n\n\t\treturn this.findWhere(opts);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Has manual repurpose options\n\t */\n\thasManualRepurposeOptions() {\n\t\tconst manualRepurpose = this.getOption('manualRepurpose');\n\t\treturn manualRepurpose && manualRepurpose.get('options').length > 0;\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Download options type\n\t * @return {boolean} Has option\n\t */\n\thasOption(type, name) {\n\t\treturn this.getOption(type, name) != null;\n\t}\n\n\t/**\n\t * Takes the selected download options and filters this collection to only contain selected download options\n\t * @method\n\t * @param {object} selectedDownloadOptions Form object containing user selected download options\n\t */\n\tparseSelectedDownloadOptions(selectedDownloadOptions) {\n\t\t// reduce the option set to just the selected items\n\t\t// continue to next step in workflow: check justification\n\n\t\t// DAM-12078 - set organizeContentsBy on all options but pdf and metadata\n\n\t\tconst selectedDownloadOptionModels = [];\n\n\t\tlet requiresJustification = false;\n\t\tlet requiresApproval = false;\n\n\t\tif (selectedDownloadOptions.original) {\n\t\t\tconst originalOption = this.getOption('original');\n\t\t\tif (originalOption) {\n\t\t\t\toriginalOption.set({\n\t\t\t\t\torganizeContentsBy: selectedDownloadOptions.organizeContentsBy,\n\t\t\t\t});\n\t\t\t\t// Set the embed metadata options\n\t\t\t\tif (selectedDownloadOptions.embedMetadata) {\n\t\t\t\t\toriginalOption.addOptions({\n\t\t\t\t\t\tmetadataMapping: selectedDownloadOptions.embedMetadata,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tselectedDownloadOptionModels.push(originalOption);\n\t\t\t}\n\t\t}\n\n\t\t// Support embeded metadata for manual repurposes\n\t\tconst manualRepurposeOption = this.getOption('manualRepurpose');\n\t\tif (manualRepurposeOption && selectedDownloadOptions.embedMetadata) {\n\t\t\tmanualRepurposeOption.addOptions({\n\t\t\t\tmetadataMapping: selectedDownloadOptions.embedMetadata,\n\t\t\t});\n\t\t}\n\n\t\t// Manual repurpose\n\t\t// If it has options, we use it.\n\t\tconst manualRepurpose = this.getOption('manualRepurpose');\n\t\tconst manualRepurposeOpts =\n\t\t\t(manualRepurpose && manualRepurpose.get('options')) || [];\n\t\tif (manualRepurposeOpts.length) {\n\t\t\tmanualRepurpose.set({\n\t\t\t\torganizeContentsBy: selectedDownloadOptions.organizeContentsBy,\n\t\t\t});\n\t\t\tselectedDownloadOptionModels.push(manualRepurpose);\n\t\t}\n\n\t\t// Loop over sleected proxies\n\t\tlet proxyDownloadOption;\n\t\t_.each(selectedDownloadOptions.proxies, (proxyName) => {\n\t\t\tproxyDownloadOption = this.getOption('proxy', proxyName);\n\t\t\tif (proxyDownloadOption) {\n\t\t\t\tproxyDownloadOption.set({\n\t\t\t\t\torganizeContentsBy: selectedDownloadOptions.organizeContentsBy,\n\t\t\t\t});\n\t\t\t\tselectedDownloadOptionModels.push(proxyDownloadOption);\n\t\t\t}\n\t\t});\n\n\t\t// Loop over selected views\n\t\tlet viewDownloadOption;\n\t\t_.each(selectedDownloadOptions.views, (viewName) => {\n\t\t\tviewDownloadOption = this.getOption('assetView', viewName);\n\t\t\tif (viewDownloadOption) {\n\t\t\t\tviewDownloadOption.set({\n\t\t\t\t\torganizeContentsBy: selectedDownloadOptions.organizeContentsBy,\n\t\t\t\t});\n\t\t\t\tselectedDownloadOptionModels.push(\n\t\t\t\t\tthis.getOption('assetView', viewName),\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\t// Loop over selected preset processes\n\t\t_.each(selectedDownloadOptions.processes, (processId) => {\n\t\t\t// If it is a true preset process (user defined) it has a numeric id\n\t\t\t// otherwise it is one of those 'fancy' preset processes that come from an XML file and use a unique name rather than a numeric id\n\t\t\tconst presetProcess = !_.isNumeric(processId)\n\t\t\t\t? // Assume name\n\t\t\t\t this.getOption('presetProcess', processId)\n\t\t\t\t: // Assume id\n\t\t\t\t this.findWhere({type: 'presetProcess', id: parseInt(processId)});\n\n\t\t\tif (!presetProcess) return;\n\n\t\t\tpresetProcess.set({\n\t\t\t\torganizeContentsBy: selectedDownloadOptions.organizeContentsBy,\n\t\t\t});\n\n\t\t\t// Set the embed metadata options\n\t\t\tif (selectedDownloadOptions.embedMetadata) {\n\t\t\t\tpresetProcess.addOptions({\n\t\t\t\t\tmetadataMapping: selectedDownloadOptions.embedMetadata,\n\t\t\t\t});\n\t\t\t}\n\t\t\tselectedDownloadOptionModels.push(presetProcess);\n\t\t});\n\n\t\t// PDF (contact sheet)\n\t\tif (selectedDownloadOptions.contactSheet.selected) {\n\t\t\tlet sheetOption = this.getOption('contactSheet');\n\t\t\tif (sheetOption) {\n\t\t\t\tsheetOption.set(\n\t\t\t\t\t_.pick(selectedDownloadOptions.contactSheet, 'name', 'attributeIds'),\n\t\t\t\t);\n\t\t\t\t// Get rid of our client attributes - do not want to risk borking the prepareDownload call\n\t\t\t\t_.each(sheetOption.clientAttrs, (attr) => {\n\t\t\t\t\tsheetOption.unset(attr);\n\t\t\t\t});\n\t\t\t\t// I am guessing the server does not want a null title - so at least respect the other options\n\t\t\t\tconst toPick = [\n\t\t\t\t\t'displayLabels',\n\t\t\t\t\t'highRes',\n\t\t\t\t\t'pdfExportPreset',\n\t\t\t\t\t'templateName',\n\t\t\t\t];\n\t\t\t\tif (selectedDownloadOptions.contactSheet.title) {\n\t\t\t\t\ttoPick.push('title');\n\t\t\t\t}\n\t\t\t\tsheetOption.addOptions(\n\t\t\t\t\t_.pick.apply(\n\t\t\t\t\t\t_,\n\t\t\t\t\t\t[selectedDownloadOptions.contactSheet].concat(toPick),\n\t\t\t\t\t),\n\t\t\t\t);\n\n\t\t\t\t// DAM-8650: ship our default asset sort prefs to the PDF creator.\n\t\t\t\t// (Maybe someday this will be part of the PDF form, and we'll do this differently.)\n\t\t\t\tsheetOption.addOptions({\n\t\t\t\t\tassetListSortField: Netx.getPreference('asset.list.sort.field'),\n\t\t\t\t\tassetListSortOrder: Netx.getPreference('asset.list.sort.order'),\n\t\t\t\t});\n\n\t\t\t\tselectedDownloadOptionModels.push(sheetOption);\n\t\t\t}\n\t\t}\n\n\t\t// Attribute data\n\t\tif (selectedDownloadOptions.metadata.selected) {\n\t\t\t// Get a clone of our attribute download option model (not entirely sure why we clone since these things get wiped out on each download prompt)\n\t\t\t// I suppose the clone could be a safeguard for when the prepareDownload call fails, that way we haven't modified the model that the downloadOptionsView\n\t\t\t// is using (since it will still be open on an error)\n\t\t\tlet metadataOption = this.getOption('metadata');\n\t\t\tif (metadataOption) {\n\t\t\t\tmetadataOption = metadataOption.clone();\n\t\t\t\tconst setId = selectedDownloadOptions.metadata.setId;\n\t\t\t\t// If metadata manager is not enabled then we have no attributeSets, only custom\n\t\t\t\t// if (setId == 'custom' || setId == '') {\n\t\t\t\t// \t// User specified a custom set. We received the IDs from the selectedDownloadOptions.\n\t\t\t\t// \tmetadataOption.set(\n\t\t\t\t// \t\t_.pick(selectedDownloadOptions.metadata, 'attributeIds'),\n\t\t\t\t// \t);\n\t\t\t\t// } else {\n\t\t\t\t// \t// User specified an existing set. Get those IDs.\n\t\t\t\t// \tmetadataOption.set(\n\t\t\t\t// \t\t'attributeIds',\n\t\t\t\t// \t\tNetx.asset.attributeSets.get(setId).get('attributeIds'),\n\t\t\t\t// \t);\n\t\t\t\t// }\n\t\t\t\tmetadataOption.set(\n\t\t\t\t\t_.pick(selectedDownloadOptions.metadata, 'attributeIds'),\n\t\t\t\t);\n\t\t\t\tselectedDownloadOptionModels.push(metadataOption);\n\t\t\t}\n\t\t}\n\n\t\t// Historical attribute data\n\t\tif (selectedDownloadOptions.historical) {\n\t\t\tconst historicalOption = this.getOption('historical');\n\t\t\tif (historicalOption) {\n\t\t\t\tselectedDownloadOptionModels.push(historicalOption);\n\t\t\t}\n\t\t}\n\n\t\t// Set this collection with the selected download options\n\t\tthis.reset(selectedDownloadOptionModels);\n\t}\n\n\t/**\n\t * Takes the download options that have already been selected and set the selected attribute as true.\n\t * This is used so the correct download options are selected when editing a token\n\t * @method\n\t * @param {Netx.Collection.DownloadOptions} selectedDownloadOptions The collection of downloadOptions that are selected\n\t */\n\tsetUserSelectedDownloadOptions(selectedDownloadOptions) {\n\t\t// Set original download selected to false. If it's undefined the template will default to using the user pref for original which we do not want when editing\n\t\t// If it is selected, it it will be set correctly below\n\t\tconst originalOption = this.findWhere({type: 'original'});\n\t\toriginalOption && originalOption.set({selected: false});\n\n\t\t_.each(selectedDownloadOptions, (option, idx, all) => {\n\t\t\tlet opt;\n\t\t\tswitch (option.type) {\n\t\t\t\tcase 'original':\n\t\t\t\t\topt = this.findWhere({type: 'original'});\n\t\t\t\t\tif (opt) {\n\t\t\t\t\t\topt.set({selected: true});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'proxy':\n\t\t\t\t\topt = this.findWhere({name: option.name});\n\t\t\t\t\tif (opt) {\n\t\t\t\t\t\topt.set({selected: true});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'presetProcess':\n\t\t\t\t\topt = this.findWhere({name: option.name});\n\t\t\t\t\tif (opt) {\n\t\t\t\t\t\topt.set(option).set({selected: true});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'contactSheet':\n\t\t\t\tcase 'historical':\n\t\t\t\tcase 'metadata':\n\t\t\t\t\topt = this.findWhere({type: option.type});\n\t\t\t\t\tif (opt) {\n\t\t\t\t\t\topt.set(option);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// todo: what about views?\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'DownloadOptions';\n\t}\n}\n","'use strict';\n\nconst arrayMoveMutate = (array, from, to) => {\n\tconst startIndex = from < 0 ? array.length + from : from;\n\n\tif (startIndex >= 0 && startIndex < array.length) {\n\t\tconst endIndex = to < 0 ? array.length + to : to;\n\n\t\tconst [item] = array.splice(from, 1);\n\t\tarray.splice(endIndex, 0, item);\n\t}\n};\n\nconst arrayMove = (array, from, to) => {\n\tarray = [...array];\n\tarrayMoveMutate(array, from, to);\n\treturn array;\n};\n\nmodule.exports = arrayMove;\nmodule.exports.mutate = arrayMoveMutate;\n","/**\n * Describes a possible option for asset downloads(original, view, proxy, repurpose)\n * @class\n * @extends Netx.Model\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport Collection from '@netx/core/lib/netx-collection';\n\nimport {types as downloadOptionTypes} from '../properties/downloadOptions';\n\nexport default class DownloadOption extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\t/** @type {string} */\n\t// not sure if this is right, but for now it has to be something other than 'id'\n\tget idAttribute() {\n\t\treturn 'some-bogus-id';\n\t}\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {string} defaults.type - The default type (see share/properties/downloadOptions#types)\n\t * @property {string} defaults.name - The defualt name (\"thumb\",\"preview\", asset view name, or PDF contact sheet name [1x1, 3x3, or 9x9])\n\t * @property {number} defaults.id - The default processId / attrFieldSet (preset process Id, or metadata AttrFieldSet Id [if zero for Contact Sheet, then use defaults])\n\t * @property {array} defaults.options - The default options (an array of LabelValue objects)\n\t * @property {boolean} defaults.requiresApproval - The default requires approval (read-only from server)\n\t * @property {boolean} defaults.requiresJustification - The default requires justification (read-only from server)\n\t * @property {array} defaults.attributeIds - The default array of attribute ids (for PDF contact sheets, this is sent as the list of attributes to display)\n\t * @property {number} defaults.organizeContentsBy - default option for recursive download zip origanization\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\ttype: '',\n\t\t\tname: '',\n\t\t\tid: 0,\n\t\t\tfamily: '',\n\t\t\toptions: [],\n\t\t\trequiresApproval: false,\n\t\t\trequiresJustification: false,\n\t\t\tattributeIds: [],\n\t\t\torganizeContentsBy: 0, // default to no organization, this is not a user option currently\n\n\t\t\t// Client attributes\n\t\t\t// For PDF (contactSheet)\n\t\t\tengine: 'java',\n\t\t\texportOptions: new Collection([]),\n\t\t\ttemplates: new Collection([]),\n\t\t};\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn ['engine', 'exportOptions', 'templates'];\n\t}\n\n\t////////////////////////////////////\n\t// RPC METHODS\n\t////////////////////////////////////\n\t/**\n\t * @property {object} methods - The methods available on this model\n\t * @property {function|array} methods.getPDFTemplateOptions - Request the template options for generating a PDF\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tgetPDFTemplateOptions: ['getPDFTemplateOptions'],\n\t\t};\n\t}\n\t////////////////////////////////////\n\t// !RPC METHODS\n\t////////////////////////////////////\n\n\tget parsers() {\n\t\treturn {\n\t\t\tgetPDFTemplateOptions: function (response) {\n\t\t\t\tresponse = response || {};\n\t\t\t\t// Set client attributes\n\t\t\t\tthis.set('engine', response.engine || 'java');\n\t\t\t\tthis.get('exportOptions').reset(response.exportOptions);\n\t\t\t\tthis.get('templates').reset(response.templates);\n\t\t\t\treturn response;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts) {\n\t\tsuper(attrs, opts);\n\n\t\t// Defer so that any code which created this model can have a chance to do anything right after initialization is finished\n\t\t// and just before we shove these client attributes in\n\t\t_.defer(() => {\n\t\t\tswitch (this.get('type')) {\n\t\t\t\tcase downloadOptionTypes.contactSheet:\n\t\t\t\t\tif (!this.has('exportOptions') || !this.has('templates')) {\n\t\t\t\t\t\tthis.set({\n\t\t\t\t\t\t\texportOptions: new Collection([]),\n\t\t\t\t\t\t\ttemplates: new Collection([]),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.getPDFTemplateOptions();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\n\t// Utility for handling that options array\n\tgetOptions() {\n\t\treturn _.lvbsToObject(this.get('options'));\n\t}\n\n\tsetOptions(obj, opts) {\n\t\treturn this.set({options: _.objectToLvbs(obj)}, opts);\n\t}\n\n\taddOptions(addObject, opts) {\n\t\treturn this.setOptions(_.extend(this.getOptions(), addObject), opts);\n\t}\n\n\t//TODO: this *Options interface is nonstandard and weird. Better to have this.options as a sub-model, and use this.self() & this.parse() to pack it/unpack it.\n\t//see the asset model's .metadata model for an example.\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'DownloadOption';\n\t}\n}\n","import React, {CSSProperties} from 'react';\nimport clsx from 'clsx';\n\nimport {Skeleton, SkeletonProps} from '@mui/material';\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport type {AttributeProps} from '../Attribute';\n\nconst getTextFieldHeight = ({components}: Theme) => {\n\tconst textFieldSize = components?.MuiTextField?.defaultProps?.size;\n\tif (textFieldSize === 'medium') return 48;\n\tif (textFieldSize === 'small') return 40;\n\treturn 56;\n};\n\nconst styles = ({spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tflex: '0 0 auto',\n\t\t\tdisplay: 'flex',\n\t\t\tminWidth: 0,\n\t\t\t'&$readOnly': {\n\t\t\t\tmargin: spacing(0.5, 1, 0.5, 1),\n\t\t\t},\n\t\t\t'&:not($readOnly)': {\n\t\t\t\tmargin: spacing(2, 0, 1, 0),\n\t\t\t},\n\t\t},\n\t\tskeletonItem: {\n\t\t\tflex: '0 0 auto',\n\t\t},\n\t\tinputArea: {\n\t\t\tborderRadius: 4,\n\t\t},\n\t\tpreDecorator: {\n\t\t\tborderRadius: '50%',\n\t\t\tmarginRight: 8,\n\t\t},\n\t\tpostDecorator: {\n\t\t\tborderRadius: '50%',\n\t\t\tmarginLeft: 8,\n\t\t\tmarginRight: -4,\n\t\t},\n\t\treadOnly: {},\n\t\treadOnlyText: {\n\t\t\twidth: '100%',\n\t\t},\n\t\treadOnlyTextTitle: {\n\t\t\tmarginBottom: spacing(0.5),\n\t\t},\n\t\treadOnlyTextValue: {},\n\t\trounded: {\n\t\t\tborderRadius: '50%',\n\t\t},\n\t});\n\n// TODO: clean this component up and convert to styled\nexport type AttributeSkeletonProps = Partial & {\n\tonSearch?: boolean;\n\tSkeletonProps?: Partial;\n\tstyle?: CSSProperties;\n};\n\nconst AttributeSkeletonComponent = ({\n\tclasses,\n\ttheme,\n\n\tclearable,\n\tonSearch,\n\treadOnly,\n\tSkeletonProps,\n\t// TODO: fix the way we get the props here or...\n\tattrData,\n\tenforceMandatory,\n\thideLabel,\n\tvalue,\n\tform,\n\tlimitHeightToContainer,\n\tloadingValue,\n\tmode,\n\tplaceholder,\n\tattributeWorking,\n\talignActions,\n\tappendable,\n\tmultipleValues,\n\tisMetadataLookup,\n\tisMetadataTarget,\n\terror,\n\taction,\n\tonLookup,\n\tforceClearable,\n\tdisableFolksonomy,\n\tmatchContainerHeight,\n\tchanged,\n\toriginalValue,\n\tdisabled,\n\n\t...props\n}: WithStyles & AttributeSkeletonProps) => {\n\tconst textFieldHeight = getTextFieldHeight(theme);\n\n\tconst actionSize = Math.max(textFieldHeight - 8, 40);\n\tconst preDecorate = onSearch != null;\n\tconst postDecorate = clearable === true;\n\n\tlet inputWidthSubtraction = 0;\n\tif (preDecorate) inputWidthSubtraction += actionSize + 8;\n\tif (postDecorate) inputWidthSubtraction += actionSize + 8;\n\n\treturn (\n\t\t\n\t\t\t{(preDecorate && (\n\t\t\t\t\n\t\t\t)) ||\n\t\t\t\tnull}\n\t\t\t{!readOnly ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{(postDecorate && (\n\t\t\t\t\n\t\t\t)) ||\n\t\t\t\tnull}\n\t\t\n\t);\n};\n\nexport const AttributeSkeleton = withStyles(styles, {\n\twithTheme: true,\n})(React.memo(AttributeSkeletonComponent));\n\nexport default AttributeSkeleton;\n","// TODO: this file is only still here until we have time to port over the attribute selector\n// still in this asset module\n// If you are coming here for actual attribute utils, please see @netx/core-attribute/utils\nimport {attributes as attributesSingleton} from '@netx/core-asset/collections/singleton/attributes';\nimport type {AttributeTemplate} from '@netx/core-attribute/types';\nimport {SYSTEM_ATTRIBUTE_LABELS} from '@netx/core-attribute/locales';\n\nimport {i18n} from '@netx/core/i18n';\n\n// still used by video clips\n// avialble in the attribute context now\n/** Given an attribute id, will return the model attributes for that attribute */\nexport const getAttributeById = (id: number): AttributeTemplate => {\n\tconst attr = attributesSingleton.get(id);\n\treturn attr.attributes;\n};\n\n// still used in the non ported over attribute selector (the multiselector)\n// avialble in the attribute context now\nexport const getAttributeLabelFromId = (id: number) => {\n\tconst attr = attributesSingleton.get(id);\n\tif (!attr) return `!${id} unknown!`;\n\tif (!attr.get('system')) return attr.get('name');\n\treturn SYSTEM_ATTRIBUTE_LABELS[id] || i18n.t(`i18n.${attr.get('name')}`);\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTransitions;\nexports.easing = exports.duration = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nconst easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexports.easing = easing;\nconst duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nexports.duration = duration;\n\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\n\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n const constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\n\nfunction createTransitions(inputTransitions) {\n const mergedEasing = (0, _extends2.default)({}, easing, inputTransitions.easing);\n const mergedDuration = (0, _extends2.default)({}, duration, inputTransitions.duration);\n\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = (0, _objectWithoutPropertiesLoose2.default)(options, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string'; // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n\n\n const isNumber = value => !isNaN(parseFloat(value));\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n\n return (0, _extends2.default)({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","import React from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {compareProps} from '@netx/core-components/util';\n\nimport {AttributeAttributes} from '@netx/core-asset/models/attribute';\nimport {\n\tReadOnlyMultiSelectField,\n\tReadOnlySelectField,\n} from '@netx/core-components/Form/SelectField/components';\nimport {ReadOnlyTextField} from '@netx/core-components/Form';\n\nimport {ATTRIBUTE_TYPE, ATTRIBUTE_MULTIPLE_VALUE_TYPES} from '../../constants';\nimport formatters from '../../formatters';\n\nexport interface ReadOnlyAttributeProps {\n\tattrData: AttributeAttributes;\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\tloadingValue?: boolean;\n\tlimitHeightToContainer?: boolean;\n\tmultipleValues?: boolean;\n\tvalue?: any;\n}\n\nconst formatURLS = (value: any) => {\n\tif (typeof value !== 'string') return value;\n\treturn (\n\t\t<>\n\t\t\t{value.split(/(https?:\\/\\/.*?[^\\s|'|\"]+)/g).map((str) => {\n\t\t\t\tif (str.match(/^https?:\\/\\/.*?[^\\s|'|\"]+/)) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{str}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn str;\n\t\t\t})}\n\t\t\n\t);\n};\n\nconst getFormattedValue = (attrData: AttributeAttributes, value: any) => {\n\tif (ATTRIBUTE_MULTIPLE_VALUE_TYPES.includes(attrData.type as any))\n\t\treturn value;\n\n\tconst formattedValue = formatters[attrData.type || 1](value, attrData);\n\tif (\n\t\tformattedValue == null ||\n\t\tformattedValue === '' ||\n\t\ttypeof formattedValue !== 'string'\n\t)\n\t\treturn formattedValue;\n\n\treturn formatURLS(formattedValue);\n};\n\nconst ReadOnlyAttributeComponent = ({\n\tattrData,\n\thideLabel,\n\tvalue,\n\t...props\n}: ReadOnlyAttributeProps) => {\n\tconst name = attrData.system\n\t\t? i18n.t(`i18n.${attrData.name}`)\n\t\t: attrData.name;\n\n\tconst sendProps = {\n\t\tlabel: hideLabel ? '' : name,\n\t\tvalue: getFormattedValue(attrData, value),\n\t\t...props,\n\t};\n\n\t// multiselect, tag, tag(vocab), semantic\n\tif (ATTRIBUTE_MULTIPLE_VALUE_TYPES.includes(attrData.type as any)) {\n\t\treturn ;\n\t}\n\t// select\n\tif ([ATTRIBUTE_TYPE.SELECT].includes(attrData.type as any)) {\n\t\treturn ;\n\t}\n\t// text, textarea, number, data\n\tif (\n\t\t[\n\t\t\tATTRIBUTE_TYPE.TEXT,\n\t\t\tATTRIBUTE_TYPE.TEXTAREA,\n\t\t\tATTRIBUTE_TYPE.NUMBER,\n\t\t\tATTRIBUTE_TYPE.DATE,\n\t\t].includes(attrData.type as any)\n\t) {\n\t\treturn ;\n\t}\n\n\treturn null;\n};\n\nexport const ReadOnlyAttribute = React.memo(\n\tReadOnlyAttributeComponent,\n\tcompareProps(),\n);\nexport default ReadOnlyAttribute;\n","import {i18n} from '@netx/core/i18n';\n\nexport const date = (value?: any) => {\n\tif (value === '' || value == null) return true;\n\treturn value.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/) > -1\n\t\t? true\n\t\t: new Error(i18n.t('i18n.invalidDate'));\n};\n\nexport default date;\n","export const multi_select = (value: any) => true;\n\nexport default multi_select;\n","export const select = (value: any) => true;\n\nexport default select;\n","import multiSelect from './multi-select';\n\nexport const tag = (value: any) => multiSelect(value);\n\nexport default tag;\n","import tag from './tag';\n\nexport const semtantic = (value: any) => tag(value);\n\nexport default semtantic;\n","import tag from './tag';\n\nexport const tag_vocab = (value: any) => tag(value);\n\nexport default tag_vocab;\n","export const text = (value: any) => true;\n\nexport default text;\n","import text from './text';\n\nexport const textarea = (value: any) => text(value);\n\nexport default textarea;\n","export * from './date';\nexport * from './multi-select';\nexport * from './number';\nexport * from './select';\nexport * from './semantic';\nexport * from './tag';\nexport * from './tag-vocab';\nexport * from './text';\nexport * from './textarea';\n\nimport date from './date';\nimport multi_select from './multi-select';\nimport number from './number';\nimport select from './select';\nimport semantic from './semantic';\nimport tag from './tag';\nimport tag_vocab from './tag-vocab';\nimport text from './text';\nimport textarea from './textarea';\n\nimport {ATTRIBUTE_TYPE} from '../constants';\n\nexport const validators = {\n\t[ATTRIBUTE_TYPE.DATE]: date,\n\t[ATTRIBUTE_TYPE.MULTISELECT]: multi_select,\n\t[ATTRIBUTE_TYPE.NUMBER]: number,\n\t[ATTRIBUTE_TYPE.SELECT]: select,\n\t[ATTRIBUTE_TYPE.SEMANTIC]: semantic,\n\t[ATTRIBUTE_TYPE.TAG]: tag,\n\t[ATTRIBUTE_TYPE.TAG_VOCAB]: tag_vocab,\n\t[ATTRIBUTE_TYPE.TEXT]: text,\n\t[ATTRIBUTE_TYPE.TEXTAREA]: textarea,\n\t// [ATTRIBUTE_TYPE.HIERARCHICAL]: text,\n};\n\nexport default validators;\n","/**\n * A Shareable is a simple wrapper for a set of sharable things and its type\n * @class\n * @extends Netx.Model\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport Collection from '@netx/core/lib/netx-collection';\nimport AssetSetModel from '@netx/core-asset/models/assetSet';\n\nimport {types as assetSetTypes} from '@netx/core-asset/properties/assetSets';\n\nexport default class Shareable extends Base {\n\t/** @type {object} */\n\tget defaults() {\n\t\treturn {\n\t\t\t/** a type from Netx.ShareableTypes */\n\t\t\ttype: '',\n\t\t\t/** array of object ids, */\n\t\t\tids: [],\n\t\t\t/** optional array of models */\n\t\t\tmodels: [],\n\t\t\t/** optional array of collections */\n\t\t\tcollections: [],\n\t\t\t/** label for the share options view */\n\t\t\tlabel: '',\n\t\t};\n\t}\n\n\t/**\n\t * Constructor options: \"type\" (required) plus one of \"ids\", \"model\", \"models\" or \"collection\"\n\t * For model/models, we extract the ids;\n\t * For collection, we extract all the model IDs in the collection.\n\t */\n\tconstructor(attrs = {}, opts = {}) {\n\t\tif (!_.isString(attrs.type)) {\n\t\t\tthrow new Error('new Shareable(opts): type not found');\n\t\t}\n\n\t\tconst ids = attrs.ids,\n\t\t\tmodel = attrs.model,\n\t\t\tmodels = attrs.models,\n\t\t\tcollection = attrs.collection;\n\n\t\tif (_.isArray(ids) && ids.length) {\n\t\t\tattrs.label =\n\t\t\t\tids.length > 1 ? ids.length + ' ' + attrs.type + 's' : attrs.type;\n\t\t} else if (model && model instanceof Base) {\n\t\t\tattrs.ids = [model.id];\n\t\t\tattrs.models = [model];\n\t\t\tattrs.label = _.isFunction(model.getLabel)\n\t\t\t\t? '\"' + model.getLabel() + '\"'\n\t\t\t\t: attrs.type;\n\t\t} else if (_.isArray(models) && models.length) {\n\t\t\tattrs.ids = _.pluck(models, 'id');\n\t\t\tattrs.label =\n\t\t\t\tmodels.length +\n\t\t\t\t' ' +\n\t\t\t\t(models.length === 1 ? attrs.type.slice(0, -1) : attrs.type);\n\t\t} else if (\n\t\t\tcollection &&\n\t\t\tcollection instanceof Collection &&\n\t\t\tcollection.length\n\t\t) {\n\t\t\tattrs.ids = _.pluck(collection.models, 'id');\n\t\t\tattrs.collections = [collection];\n\t\t\tattrs.label = attrs.type;\n\t\t}\n\n\t\tsuper(attrs, opts);\n\n\t\t// DEVNOTE: i am leaving open the possibility of someday sharing more than one collection,\n\t\t// by defining collections[] as an array. But I'm not going to implement the rest until\n\t\t// it's needed.\n\t\t/*\n\t\telse if (_.isArray(opts.collections)) ... etc\n\t\t*/\n\t}\n\n\t/**\n\t * For forwards- compatibility with the token system ...\n\t */\n\ttoAssetSet() {\n\t\tvar aType;\n\t\tswitch (this.get('type')) {\n\t\t\tcase 'current cart':\n\t\t\t\taType = assetSetTypes.cart;\n\t\t\t\tbreak;\n\t\t\tcase 'saved cart':\n\t\t\t\taType = assetSetTypes.savedCart;\n\t\t\t\tbreak;\n\t\t\tcase 'saved search':\n\t\t\t\taType = assetSetTypes.savedSearch;\n\t\t\t\tbreak;\n\t\t\tcase 'assets':\n\t\t\t\taType = assetSetTypes.asset;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn new AssetSetModel({\n\t\t\tids: this.get('ids'),\n\t\t\tmodels: this.get('models'),\n\t\t\tlabel: this.get('label'),\n\t\t\ttype: aType,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Shareable';\n\t}\n}\n","/**\n * AssetVersion Model\n * @class\n * @todo Should you be allowed to remove a top version?\n */\nimport Base from '@netx/core/lib/netx-model';\n\nexport default class AssetVersion extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'versionId';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.versionId - The default id (do not set this in defaults)\n\t * @property {number} defaults.active - The default active status (number as boolean)\n\t * @property {number} defaults.assetId - The default asset id version belongs to\n\t * @property {string} defaults.creationDate - The default creation date (as string)\n\t * @property {number} defaults.fileSize - The default file size\n\t * @property {number} defaults.fileTypeId - The default file type id\n\t * @property {string} defaults.fileTypeLabel - The default file type label\n\t * @property {number} defaults.memoId - The default memoId (unused as far as I can tell - always comes back 0)\n\t * @property {string} defaults.memoText - The default memo text\n\t * @property {number} defaults.original - The default original status (number as boolean)\n\t * @property {string} defaults.previewUrl - The default preview url\n\t * @property {string} defaults.shortMemoText - The default short memo text (truncated memo text)\n\t * @property {string} defaults.thumbUrl - The default thumbnail url\n\t * @property {number} defaults.userId - The default user id\n\t * @property {string} defaults.userLabel - The default user label\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\t// versionId: 0\n\t\t\tactive: 0,\n\t\t\tassetId: 0,\n\t\t\tcreationDate: '',\n\t\t\tfileSize: 0,\n\t\t\tfileTypeId: 0,\n\t\t\tfileTypeLabel: '',\n\t\t\tmemoId: 0,\n\t\t\tmemoText: '',\n\t\t\toriginal: 0,\n\t\t\tpreviewUrl: '',\n\t\t\tshortMemoText: '',\n\t\t\tthumbUrl: '',\n\t\t\tuserId: 0,\n\t\t\tuserLabel: '',\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} methods - Model RPC methods\n\t * @property {array} methods.read - Fetch version\n\t * @property {array} methods.remove - Destroy version\n\t * @property {array} methods.reactivateAssetVersion - Reactivate version\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\treturn ['getVersionObjects', [this.get('versionId')]];\n\t\t\t},\n\t\t\t/** @method */\n\t\t\tremove: ['deleteAssetVersion', 'versionId'],\n\t\t\t// Reactivate version\n\t\t\t// Deprecated - use new uuid call `reactivateAssetVersion`\n\t\t\t// reactivateVersion: ['reactivateVersion', 'versionId', 'memoText'],\n\t\t\t/** @method */\n\t\t\treactivateAssetVersion: [\n\t\t\t\t'reactivateAssetVersion',\n\t\t\t\t'versionId',\n\t\t\t\t'memoText',\n\t\t\t],\n\t\t};\n\t}\n\t/** @type {object} */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function reactivateAssetVersion\n\t\t\t * @param {boolean} response Response\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\treactivateAssetVersion(uuid, opts) {\n\t\t\t\tthis.trackBatchJob(uuid);\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'asset:versions:reactivate:progress',\n\t\t\t\t\tthis.get('assetId'),\n\t\t\t\t\t1,\n\t\t\t\t\ti18n.t('i18n.reactivatingVersion'),\n\t\t\t\t);\n\t\t\t\treturn uuid;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\tthis.on('progress', (assetVersion, batchJob, progress) => {\n\t\t\tdispatcher.trigger(\n\t\t\t\t'asset:versions:reactivate:progress',\n\t\t\t\tthis.get('assetId'),\n\t\t\t\tprogress,\n\t\t\t\ti18n.t('i18n.reactivatingVersion'),\n\t\t\t);\n\t\t});\n\t\tthis.on('complete', (assetVersion, batchJob, progress) => {\n\t\t\tdispatcher.trigger('asset:versions:reactivate:succeeded', this);\n\t\t});\n\t\tthis.on('error', (assetVersion, error) => {\n\t\t\tdispatcher.trigger('asset:versions:reactivate:error', error, this);\n\t\t});\n\t}\n\n\t/**\n\t * Unwrap the one-object array returned by `getVersionObjects`\n\t * @method\n\t * @param {object} attrs Model attributes\n\t */\n\tparse(attrs) {\n\t\treturn _.isArray(attrs) ? attrs[0] : attrs;\n\t}\n\n\t/**\n\t * Cache-busting string for asset version objects: encode the versionID and creation date as query args\n\t * @method\n\t * @param {string} prefix Prefix for cachbuster string\n\t * @return {string}\n\t */\n\tcacheBuster(prefix = '') {\n\t\treturn (\n\t\t\tprefix +\n\t\t\t'?t=' +\n\t\t\t_.dateFromAsset(this.get('creationDate')).getTime() +\n\t\t\t'&v=' +\n\t\t\tthis.get('versionId')\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetVersion';\n\t}\n}\n","import { isValidTimeout, isServer } from './utils.esm.js';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.esm.js.map\n","import { Subscribable } from './subscribable.esm.js';\nimport { isServer } from './utils.esm.js';\n\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.esm.js.map\n","export const SearchTypeAdvancedRaw = 8 as const;\nexport type TSearchTypeAdvancedRaw = typeof SearchTypeAdvancedRaw;\n","export const SearchTypeAttributeHistory = 200 as const;\nexport type TSearchTypeAttributeHistory = typeof SearchTypeAttributeHistory;\n","export const SearchTypeExpiration = 17 as const;\nexport type TSearchTypeExpiration = typeof SearchTypeExpiration;\n","export const SearchTypeFileFormatFamily = 26 as const;\nexport type TSearchTypeFileFormatFamily = typeof SearchTypeFileFormatFamily;\n","export const SearchTypeSavedSearch = 24 as const;\nexport type TSearchTypeSavedSearch = typeof SearchTypeSavedSearch;\n","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst TableContext = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\n\nexport default TableContext;","import React from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {IconButton, IconButtonProps} from '@netx/core-components';\nimport {faSearch as SearchIcon} from '@fortawesome/pro-regular-svg-icons';\n\nexport interface SearchProps extends Partial {}\n\nexport const Search = (props: SearchProps) => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Search;\n","import React, {useCallback, useRef} from 'react';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport type {AttributeId, Permission} from '@netx/core-asset/models/attribute';\nimport {Search} from '../../components/Action';\nimport AttributeComponent, {\n\tAttributeProps as AttributeComponentProps,\n} from '../../components/Attribute';\n\nimport {compareProps, isEmptyValue} from '@netx/core-components';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\twidth: '100%',\n\t\t},\n\n\t\tleadingControls: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflex: '0 0 auto',\n\t\t\theight: 'max-content',\n\t\t\tmarginTop: theme.spacing(1),\n\t\t\t'& > *': {\n\t\t\t\tmarginRight: theme.spacing(1),\n\t\t\t},\n\t\t},\n\n\t\tlimitHeightToContainer: {\n\t\t\tmaxHeight: '100%',\n\t\t\theight: '100%',\n\t\t},\n\t\tmatchContainerHeight: {\n\t\t\theight: '100%',\n\t\t},\n\t});\n\nexport interface AttributeContainerProps\n\textends Omit {\n\tonSearch?: (id: AttributeId, value: any) => void;\n\tpermission?: Permission;\n\t// This currently is only supported properly for autocomplets (tags/multiselect/select)\n\tlimitHeightToContainer?: boolean;\n\tmatchContainerHeight?: boolean;\n\talignActions?: 'top' | 'bottom' | 'center';\n}\n\nconst AttributeContainerComponent = ({\n\tclasses,\n\talignActions,\n\tlimitHeightToContainer,\n\tmatchContainerHeight,\n\tpermission,\n\tonSearch,\n\t...props\n}: WithStyles & AttributeContainerProps) => {\n\tconst {attrData, disabled, loadingValue, readOnly, value} = props;\n\n\tpermission = permission || attrData.permission;\n\n\tconst isReadOnly = !props.form || readOnly || permission === 'r';\n\n\tconst valueRef = useRef(value);\n\tvalueRef.current = value;\n\n\tconst handleValueSearch = useCallback(() => {\n\t\tonSearch?.(attrData.attributeid, valueRef.current);\n\t}, [attrData.attributeid, onSearch]);\n\n\tconst handleValueItemSearch = useCallback(\n\t\t(value: string) => {\n\t\t\tonSearch?.(attrData.attributeid, value);\n\t\t},\n\t\t[attrData.attributeid, onSearch],\n\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t{onSearch ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n\nexport const AttributeContainer = withStyles(styles, {\n\tname: 'AttributeContainer',\n})(React.memo(AttributeContainerComponent, compareProps()));\n\nexport default AttributeContainer;\n","import { defaultLogger } from './logger.esm.js';\nimport { notifyManager } from './notifyManager.esm.js';\nimport { Removable } from './removable.esm.js';\nimport { createRetryer, canFetch } from './retryer.esm.js';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.options = { ...config.defaultOptions,\n ...config.options\n };\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.updateCacheTime(this.options.cacheTime);\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onError, _this$options4, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.esm.js.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject('Missing queryFn'));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.esm.js.map\n","import * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.esm.js.map\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.esm.js.map\n","import { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\n// Temporary workaround due to an issue with react-native uSES - https://github.com/TanStack/query/pull/3601\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.esm.js.map\n","const NAME = 'resizable';\n\nimport {isMobile} from '@netx/core/lib/underscore-netx';\n\nimport 'core-libs/nx-drag/jquery-netx-dragresize';\n\n/**\n * @function\n * @param {string} str String\n * @param {boolean} Is percent\n */\nconst isPercent = (str) => {\n\tif (str == null) return false;\n\treturn /^\\d+(\\.\\d+)?\\%$/g.test(str.toString());\n};\n\nconst Props = {\n\t/** @method */\n\tcleanUpResizable() {\n\t\tif (!this.resizeTargets) return;\n\t\tthis.Plugins.Destroy('netxDragResize', this.resizeTargets);\n\t},\n\n\t/** @method */\n\tprepareResizable() {\n\t\tthis.resizeTargets = this.resizeTargetSelector\n\t\t\t? [...this.el.querySelectorAll(this.resizeTargetSelector)]\n\t\t\t: [this.el];\n\n\t\tif (!this.resizeTargets.length) {\n\t\t\tthis.resizeTargets = null;\n\t\t\treturn;\n\t\t}\n\n\t\tlet startSize = this.resizableGetStartSize();\n\t\tthis.Plugins.Initialize('netxDragResize', this.resizeTargets, {\n\t\t\tstartHeigh: startSize,\n\t\t\tstartWidth: startSize,\n\t\t});\n\t},\n\n\t/**\n\t * @method\n\t * @return {number|string} Size\n\t */\n\tresizableGetStartSize() {\n\t\tconst horizontal = this.resizeDirection === 'horizontal';\n\n\t\tif (!this.resizeUserPref)\n\t\t\treturn horizontal ? this.resizeStartWidth : this.resizeStartHeight;\n\n\t\tlet size = Netx.getPreference(this.resizeUserPref) || 0;\n\t\tlet minSize = horizontal ? this.resizeMinWidth : this.resizeMinHeight;\n\n\t\tif (\n\t\t\t!this.resizeUsingPercent &&\n\t\t\t(isPercent(size) || isNaN(parseInt(size)) || size < minSize)\n\t\t) {\n\t\t\tsize = minSize;\n\t\t}\n\n\t\treturn size;\n\t},\n\n\t/**\n\t * @method\n\t * @param {event} e `dragresizestart` event\n\t */\n\tresizeStart(e) {\n\t\te && e.stopPropagation();\n\t},\n\n\t/**\n\t * @method\n\t * @param {event} e `dragresizeend`|`dragresizereset`|`hidden.bs.collapse`|`shown.bs.collapse` event\n\t */\n\tresized(e) {\n\t\te && e.stopPropagation();\n\n\t\tif (!this.resizeTargets) return;\n\n\t\tconst originalEvent = (e && e.originalEvent) || {};\n\t\t// Store user preferred width\n\t\tif (!originalEvent.ui) return;\n\n\t\tif (this.resizeUserPref) {\n\t\t\tNetx.setPreference(\n\t\t\t\tthis.resizeUserPref,\n\t\t\t\tthis.resizeDirection === 'horizontal'\n\t\t\t\t\t? originalEvent.ui.width\n\t\t\t\t\t: originalEvent.ui.height,\n\t\t\t);\n\t\t}\n\t},\n\n\t/**\n\t * @method\n\t * @param {event} e `dragresizing` event\n\t */\n\tresizing(e) {\n\t\t// Prevent parent response\n\t\te && e.stopPropagation();\n\t},\n\n\t/**\n\t * @method\n\t * @param {boolean} resizable Resizable\n\t */\n\ttoggleResizable(resizable) {\n\t\tif (!this.resizeTargets) return;\n\n\t\tresizable = resizable != null ? resizable === true : !this.resizable;\n\t\tthis.resizeDisabled = !resizable;\n\t\tthis.resizeTargets.forEach((target) => {\n\t\t\ttarget.classList.toggle('resize-disabled', !resizable);\n\t\t});\n\t},\n};\n\nexport default function (target) {\n\tif (isMobile() || !target || target.hasFunctionality(NAME)) return target;\n\n\ttarget.extendFunctionality(Props);\n\n\ttarget.addInitializer((instance, opts = {}) => {\n\t\tinstance.events = {\n\t\t\tdragresizestart: 'resizeStart',\n\t\t\tdragresizeend: 'resized',\n\t\t\tdragresizing: 'resizing',\n\t\t\tdragresizereset: 'resized',\n\t\t\t...instance.events,\n\t\t};\n\t\tinstance.resizeStartHeight = opts.resizeStartHeight;\n\t\tinstance.resizeStartWidth = opts.resizeStartWidth;\n\t\tinstance.resizeTargetSelector = opts.resizeTargetSelector;\n\t\tinstance.resizeUserPref = opts.resizeUserPref;\n\t\tinstance.resizeDirection = opts.resizeDirection || 'horizontal';\n\t\tinstance.resizeUsingPercent = opts.resizeUsingPercent === true;\n\t\tinstance.resizeMinHeight = opts.resizeMinHeight;\n\t\tinstance.resizeMinWidth = opts.resizeMinWidth;\n\n\t\t// Add plugins\n\t\tinstance.Plugins.Register({\n\t\t\tnetxDragResize: {\n\t\t\t\tname: 'netxDragResize',\n\t\t\t\toptions: {\n\t\t\t\t\tdirection: instance.resizeDirection,\n\t\t\t\t\tdragFrom: opts.resizeDragFrom || 'right',\n\t\t\t\t\tmaxHeight: opts.resizeMaxHeight,\n\t\t\t\t\tminHeight: opts.resizeMinHeight,\n\t\t\t\t\tmaxWidth: opts.resizeMaxWidth,\n\t\t\t\t\tminWidth: opts.resizeMinWidth,\n\t\t\t\t\tusePercent: instance.resizeUsingPercent,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\t// Hey, listen!\n\t\tinstance\n\t\t\t.on('preRenderHook', instance.cleanUpResizable)\n\t\t\t.on('postRenderHook', instance.prepareResizable)\n\t\t\t.on('removeHook', instance.cleanUpResizable)\n\t\t\t.on('hidden', () => {})\n\t\t\t.on('shown', () => {});\n\t}, NAME);\n}\n","import * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.esm.js.map\n","import * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.esm.js.map\n","import * as React from 'react';\nimport { useSyncExternalStore } from './useSyncExternalStore.esm.js';\nimport { notifyManager } from '@tanstack/query-core';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary.esm.js';\nimport { useQueryClient } from './QueryClientProvider.esm.js';\nimport { useIsRestoring } from './isRestoring.esm.js';\nimport { ensurePreventErrorBoundaryRetry, useClearResetErrorBoundary, getHasError } from './errorBoundaryUtils.esm.js';\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense.esm.js';\n\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({\n context: options.context\n });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions._optimisticResults = isRestoring ? 'isRestoring' : 'optimistic'; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(() => new Observer(queryClient, defaultedOptions));\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore(React.useCallback(onStoreChange => isRestoring ? () => undefined : observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer, isRestoring]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n } // Handle error boundary\n\n\n if (getHasError({\n result,\n errorResetBoundary,\n useErrorBoundary: defaultedOptions.useErrorBoundary,\n query: observer.getCurrentQuery()\n })) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\n\nexport { useBaseQuery };\n//# sourceMappingURL=useBaseQuery.esm.js.map\n","const ensureStaleTime = defaultedOptions => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n }\n }\n};\nconst willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nconst shouldSuspend = (defaultedOptions, result, isRestoring) => (defaultedOptions == null ? void 0 : defaultedOptions.suspense) && willFetch(result, isRestoring);\nconst fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).then(({\n data\n}) => {\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n}).catch(error => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n});\n\nexport { ensureStaleTime, fetchOptimistic, shouldSuspend, willFetch };\n//# sourceMappingURL=suspense.esm.js.map\n","import * as React from 'react';\nimport { shouldThrowError } from './utils.esm.js';\n\nconst ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nconst useClearResetErrorBoundary = errorResetBoundary => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nconst getHasError = ({\n result,\n errorResetBoundary,\n useErrorBoundary,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(useErrorBoundary, [result.error, query]);\n};\n\nexport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary };\n//# sourceMappingURL=errorBoundaryUtils.esm.js.map\n","/**\n * This collection is the attribute datum for a single asset\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/attributeData';\n\nexport default class AttributeDatum extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @override */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * @memberof module:asset/models/attributeDatum\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'sync', this.clearChanges).listenTo(\n\t\t\tthis,\n\t\t\t'metadataLookup:complete',\n\t\t\tthis.metadataLookupComplete,\n\t\t);\n\t}\n\n\t/**\n\t * Clear value changes\n\t * @method\n\t */\n\tclearChanges() {\n\t\tthis.invoke('clearChanges');\n\t}\n\n\t/**\n\t * Get a single attribute data model\n\t * @method\n\t * @param {number} tempateId Attribute template id (will support name as well until totally phased out)\n\t * @param {string} name Template name\n\t * @return {Netx.Models.AttributeData}\n\t */\n\tgetAttribute(templateId, name) {\n\t\tvar attrModel;\n\n\t\t// Find asset attribute template model\n\t\tattrModel =\n\t\t\tname != null\n\t\t\t\t? this.assetAttributes.findWhere({name: name})\n\t\t\t\t: this.assetAttributes.get(templateId);\n\n\t\t// Get existing asset attribute data record\n\t\treturn attrModel && this.get(attrModel.id);\n\t}\n\n\t/**\n\t * Get all attribute value changes\n\t * @method\n\t * @return {array}\n\t */\n\tgetChanges() {\n\t\treturn _.compact(\n\t\t\tthis.map(attr => {\n\t\t\t\tif (attr.hasValueChanged()) {\n\t\t\t\t\treturn _.pick.apply(\n\t\t\t\t\t\t_,\n\t\t\t\t\t\t[attr.self()].concat(_.keys(Model.GetDefaults())),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Get a single attribute value\n\t * @method\n\t * @param {number|string} templateId Attribute template id (or name)\n\t * @return {mixed}\n\t */\n\tgetValue(templateId) {\n\t\tvar attributeDataModel = this.getAttribute(templateId);\n\t\tif (attributeDataModel) {\n\t\t\treturn attributeDataModel.getValue();\n\t\t}\n\t}\n\n\t/**\n\t * Get all attribute values\n\t * @method\n\t * @return {array}\n\t */\n\tgetValues() {\n\t\treturn this.map(attrData => attrData.getValue());\n\t}\n\n\t/**\n\t * Get all read-only attributes\n\t * @method\n\t * @return {array}\n\t */\n\tgetReadOnly() {\n\t\tconst readOnly = this.filter(attrData => !attrData.allows('edit'));\n\t\treturn readOnly.length ? readOnly : null;\n\t}\n\n\t/**\n\t * Get all writable attributes\n\t * @method\n\t * @return {array}\n\t */\n\tgetWritable() {\n\t\tconst writable = this.filter(attrData => attrData.allows('edit'));\n\t\treturn writable.length ? writable : null;\n\t}\n\n\t/**\n\t * @method\n\t * @param {module:asset/models/attributeData} attrData Attribute data\n\t * @param {array} matches Matches\n\t */\n\tmetadataLookupComplete(attrData, matches) {\n\t\tlet attr;\n\t\t_.each(matches, match => {\n\t\t\tattr = this.getAttribute(null, match.label);\n\t\t\tattr &&\n\t\t\t\tattr.setValue(match.value, {\n\t\t\t\t\tautofilled: true,\n\t\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Reset all values\n\t * @method\n\t * @param {object} opts Options\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tresetValues(opts) {\n\t\treturn this.invoke('resetValues', opts);\n\t}\n\n\t/**\n\t * Set value on a single attribute\n\t * @method\n\t * @param {number} templateId Attribute template id\n\t * @param {mixed} val Value\n\t * @param {object} opts Options\n\t */\n\tsetValue(templateId, val, opts) {\n\t\tvar attributeDataModel = this.getAttribute(templateId);\n\t\tattributeDataModel && attributeDataModel.setValue(val, opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AttributeDatum';\n\t}\n}\n","/**\n * This model is the individual asset's attribute datum\n * A collection is created `this.attributeDatum` that represents all the data in `this.defaults.attributes`\n * @class\n * @extends Netx.Model\n * @see Netx.Collections.AttributeDatum\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport AttributeDatumCollection from '../collections/attributeDatum';\n\nexport default class AssetAttributeData extends Base {\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'assetId';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {string} defaults.assetId - ID\n\t * @property {array} defaults.attributes - Attributes\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\t// assetId: 0,\n\t\t\tattributes: [\n\t\t\t\t// Will be passed to and handled by Netx.Collections.AttributeDatum\n\t\t\t\t// {\n\t\t\t\t// \ttemplateId: 0,\n\t\t\t\t// \tassetId: 0,\n\t\t\t\t// \tpermission: \"r\",\n\t\t\t\t// \tvalues: []\n\t\t\t\t// }\n\t\t\t],\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attr Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs = {}, opts = {}) {\n\t\t// Circular reference\n\t\t//AttributeDatumCollection = require('../collections/attributeDatum').default;\n\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * @memberof module:asset/models/assetAttributeData\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t/**\n\t\t * @memberof module:asset/models/assetAttributeData\n\t\t * @alias attributeDatum\n\t\t * @type {Netx.Collections.AttributeDatum}\n\t\t */\n\t\tthis.attributeDatum = new AttributeDatumCollection([], {\n\t\t\tassetId: attrs.assetId || opts.assetId || this.id,\n\t\t});\n\n\t\t// Set initial data if passed\n\t\tattrs && this.updateAttributeDatum(attrs.attributes);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'change:attributes', (model, newValue, opts) => {\n\t\t\tthis.updateAttributeDatum();\n\t\t});\n\t}\n\n\t/**\n\t * Add an attribute object to this model's `attributes` array\n\t * @method\n\t * @param {object} attribute Attribute object\n\t */\n\taddAttribute(attribute) {\n\t\tconst existing = this.attributeDatum.getAttribute(attribute.templateId);\n\t\tif (existing) return;\n\n\t\tthis.set('attributes', this.get('attributes').concat([attribute]));\n\t}\n\n\t/**\n\t * Clear value changes\n\t * @method\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tclearChanges() {\n\t\tthis.attributeDatum.clearChanges();\n\t}\n\n\t/**\n\t * Get a single attribute data model\n\t * @method\n\t * @param {number} tempateId Attribute template id\n\t * @param {string} name Template name\n\t * @return {Netx.Models.AttributeData}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetAttribute(templateId, name) {\n\t\treturn this.attributeDatum.getAttribute(templateId, name);\n\t}\n\n\t/**\n\t * Get a single attribute template model\n\t * @method\n\t * @param {number} tempateId Attribute template id\n\t * @param {string} name Template name\n\t * @return {module:asset/models/assetAttribute}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetAttributeTemplate(templateId, name) {\n\t\tconst attributeDataModel = this.getAttribute(templateId, name);\n\t\treturn attributeDataModel && attributeDataModel.getTemplate();\n\t}\n\n\t/**\n\t * Get all attribute value changes\n\t * @method\n\t * @return {array}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetChanges() {\n\t\tconst changes = this.attributeDatum.getChanges();\n\t\tif (!changes || !changes.length) return;\n\n\t\treturn {\n\t\t\tassetId: this.id,\n\t\t\tattributes: changes,\n\t\t};\n\t}\n\n\t/**\n\t * Get a single attribute value\n\t * @method\n\t * @param {number} templateId Attribute template id\n\t * @return {mixed}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetValue(templateId) {\n\t\treturn this.attributeDatum.getValue(templateId);\n\t}\n\n\t/**\n\t * Get all attribute values\n\t * @method\n\t * @return {array}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetValues() {\n\t\treturn this.attributeDatum.getValues();\n\t}\n\n\t/**\n\t * Get all read-only attributes\n\t * @method\n\t * @return {array}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetReadOnly() {\n\t\treturn this.attributeDatum.getReadOnly();\n\t}\n\n\t/**\n\t * Get all writable attributes\n\t * @method\n\t * @return {array}\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tgetWritable() {\n\t\treturn this.attributeDatum.getWritable();\n\t}\n\n\t/**\n\t * Remove an attribute object from this model's `attributes` array\n\t * @method\n\t * @param {number} templateId Template id\n\t */\n\tremoveAttribute(templateId) {\n\t\tconst attributes = this.get('attributes');\n\t\tconst idx = _.indexOf(\n\t\t\tattributes,\n\t\t\t_.findWhere(attributes, {templateId: templateId}),\n\t\t);\n\t\tif (idx < 0) return;\n\n\t\tattributes.splice(idx, 1);\n\t\tthis.set('attributes', attributes);\n\t}\n\n\t/**\n\t * Reset all values\n\t * @method\n\t * @param {object} opts Options\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tresetValues(opts) {\n\t\treturn this.attributeDatum.resetValues(opts);\n\t}\n\n\t/**\n\t * Set value on a single attribute\n\t * @method\n\t * @param {number} templateId Attribute template id\n\t * @param {mixed} val Value\n\t * @param {object} opts Options\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tsetValue(templateId, val, opts) {\n\t\tthis.attributeDatum.setValue(templateId, val, opts);\n\t}\n\n\t/**\n\t * When this model syncs we populate `this.attributeDatum` based on `this.attributes.attributes`\n\t * @method\n\t * @param {array} attributes Attributes array\n\t * @param {object} opts Options\n\t */\n\tupdateAttributeDatum(attributes, opts) {\n\t\tattributes = attributes || this.get('attributes');\n\n\t\tconst assetAttributes = this.assetAttributes;\n\t\tthis.attributeDatum.set(\n\t\t\t_.compact(\n\t\t\t\t_.map(attributes, attr => {\n\t\t\t\t\tconst attrModel = assetAttributes.get(attr.templateId);\n\t\t\t\t\tif (!attrModel) return;\n\n\t\t\t\t\treturn _.extend(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttemplateId: attrModel.id,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattr,\n\t\t\t\t\t\t_.omit(\n\t\t\t\t\t\t\tattrModel.attributes,\n\t\t\t\t\t\t\t'attributeid',\n\t\t\t\t\t\t\t'objectTypes',\n\t\t\t\t\t\t\t'templateid',\n\t\t\t\t\t\t\t'value',\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t),\n\t\t\t_.extend({merge: true}, opts),\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeData';\n\t}\n}\n","/**\n * This collection represents attribute data for n assets\n * Each model has an asset id and an array of attribute datum for that particular asset\n * @class\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/assetAttributeData';\n\nimport {\n\tisEmptyValue,\n\tunescapeAttributeName,\n} from '@netx/core/lib/underscore-netx';\n\nexport default class AssetAttributeDatum extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/** @type {object} */\n\tget xhrLoadingMessages() {\n\t\treturn {\n\t\t\tgetAssetAttributes: 'Loading asset attributes',\n\t\t};\n\t}\n\n\t/** @type {object} */\n\tget xhrLoadedMessages() {\n\t\treturn {\n\t\t\tgetAssetAttributes: 'Loaded asset attributes',\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} methods - Methods for this collection\n\t * @property {method} methods.read - Fetch asset attribute datum\n\t * @property {method} methods.setAssetAttributes - Update asset attributes datum\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {array} assetIds Asset ids\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\treturn ['getAssetAttributes', this.assetIds];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {array} data Attribute datum\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsetAssetAttributes(data, opts) {\n\t\t\t\treturn ['setAssetAttributes', data];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Parsers for this collection\n\t * @property {method} partser.read - Parse response of fetch\n\t * @property {method} partser.setAssetAttributes - Parse response of set asset attributes\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Attribute datum\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(data, opts) {\n\t\t\t\t// Provide default values\n\t\t\t\tif (this.useDefaultValues) {\n\t\t\t\t\tvar assetAttributes = this.assetAttributes,\n\t\t\t\t\t\tattrModel,\n\t\t\t\t\t\tvalues;\n\n\t\t\t\t\tdata = _.map(data, (d) => {\n\t\t\t\t\t\treturn _.extend(d, {\n\t\t\t\t\t\t\tattributes: _.map(d.attributes, (attr, idx, all) => {\n\t\t\t\t\t\t\t\tvalues = attr.values;\n\t\t\t\t\t\t\t\tif (isEmptyValue(values)) {\n\t\t\t\t\t\t\t\t\tattrModel = assetAttributes.get(attr.templateId);\n\t\t\t\t\t\t\t\t\tvalues = [\n\t\t\t\t\t\t\t\t\t\tattrModel && attrModel.get('value') != null\n\t\t\t\t\t\t\t\t\t\t\t? attrModel.get('value')\n\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn _.extend(attr, {\n\t\t\t\t\t\t\t\t\tvalues: values,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {string} uuid UUID\n\t\t\t * @param {array} data Attribute datum\n\t\t\t * @param {object} opts Request options\n\t\t\t * @fires module:app#app:pollBatchJob\n\t\t\t */\n\t\t\tsetAssetAttributes(uuid, data, opts) {\n\t\t\t\tif (!uuid) return false;\n\n\t\t\t\t// On save, wipe out all model changes\n\t\t\t\tthis.clearChanges();\n\n\t\t\t\t// Poll\n\t\t\t\treturn this.trackBatchJob(uuid, [data], 1000);\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attributes\n\t * @param {object} opts Collection options\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * @memberof module:asset/models/assetAttributeDatum\n\t\t * @memberof\n\t\t * @alias assetIds\n\t\t * @type {array}\n\t\t */\n\t\tthis.assetIds = opts.assetIds || [];\n\n\t\t/**\n\t\t * @memberof module:asset/models/assetAttributeDatum\n\t\t * @alias assetAttributes\n\t\t * @type {Netx.Collections.AssetAttributes}\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t/**\n\t\t * Use default value if no values are present\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.useDefaultValues = opts.useDefaultValues === true;\n\n\t\t// Hey, listen!\n\t\tthis\n\t\t\t// On sync, wipe out all model changes\n\t\t\t.listenTo(this, 'sync', this.clearChanges)\n\t\t\t.listenTo(this, 'complete', (self, batchJob, data) => {\n\t\t\t\tdispatcher.trigger(\n\t\t\t\t\t'asset:attributes:submit:succeeded',\n\t\t\t\t\tself,\n\t\t\t\t\tbatchJob,\n\t\t\t\t\tdata,\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\t/**\n\t * Clear value changes\n\t * @method\n\t */\n\tclearChanges() {\n\t\tthis.invoke('clearChanges');\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} tempateId Attribute template id\n\t * @param {string} name Template name\n\t * @param {number} assetId Asset id\n\t * @return {array|Netx.Models.AttributeData} Attribute(s)\n\t */\n\tgetAttribute(templateId, name, assetId) {\n\t\tif (assetId == null) {\n\t\t\treturn _.compact(this.map((m) => m.getAttribute(templateId, name)));\n\t\t}\n\n\t\tconst assetAttributeDataModel = this.get(assetId);\n\t\tif (assetAttributeDataModel) {\n\t\t\treturn assetAttributeDataModel.getAttribute(templateId, name);\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {number|string} tempateId Attribute template id (will support name as well until totally phased out)\n\t * @return {array|module:asset/models/assetAttribute} Attribute template(s)\n\t */\n\tgetAttributeTemplate(templateId, assetId) {\n\t\tconst attributeDataModel = this.getAttribute(templateId, assetId);\n\t\tif (assetId == null) {\n\t\t\treturn _.compact(\n\t\t\t\t_.map(attributeDataModel, (attrDataModel) =>\n\t\t\t\t\tattrDataModel.getTemplate(),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn attributeDataModel && attributeDataModel.getTemplate();\n\t}\n\n\t/**\n\t * @method\n\t * @return {array}\n\t */\n\tgetChanges() {\n\t\treturn _.compact(this.map((m) => m.getChanges()));\n\t}\n\n\t/**\n\t * If no asset id is passed, all records will be returned\n\t * @method\n\t * @param {number} assetId Asset id\n\t * @return {array}\n\t */\n\tgetWritableAttributes(assetId) {\n\t\tif (assetId == null) {\n\t\t\treturn _.compact(this.map((m) => m.getWritable()));\n\t\t}\n\n\t\tconst assetAttributeDataModel = this.get(assetId);\n\t\tif (assetAttributeDataModel) {\n\t\t\treturn assetAttributeDataModel.getWrtiable();\n\t\t}\n\t}\n\n\t/**\n\t * If no asset id is passed, all records will be returned\n\t * @method\n\t * @param {number} assetId Asset id\n\t * @return {array}\n\t */\n\tgetReadOnlyAttributes(assetId) {\n\t\tif (assetId == null) {\n\t\t\treturn _.compact(this.map((m) => m.getReadOnly()));\n\t\t}\n\n\t\tconst assetAttributeDataModel = this.get(assetId);\n\t\tif (assetAttributeDataModel) {\n\t\t\treturn assetAttributeDataModel.getReadOnly();\n\t\t}\n\t}\n\n\t/**\n\t * If no asset id is passed, all records will be returned\n\t * @method\n\t * @param {number} assetId Asset id\n\t * @return {array}\n\t */\n\tgetValues(assetId) {\n\t\tif (assetId == null) {\n\t\t\treturn _.compact(this.map((m) => m.getValues()));\n\t\t}\n\n\t\tconst assetAttributeDataModel = this.get(assetId);\n\t\tif (assetAttributeDataModel) {\n\t\t\treturn assetAttributeDataModel.getValues();\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} templateId Attribute template id\n\t * @param {number} assetId Asset id\n\t * @return {array|mixed} Value(s)\n\t */\n\tgetValue(templateId, assetId) {\n\t\tif (assetId == null) {\n\t\t\treturn _.filter(\n\t\t\t\tthis.map((m) => m.getValue(templateId)),\n\t\t\t\t(val) => val != null,\n\t\t\t);\n\t\t}\n\n\t\tconst attributeDataModel = this.getAttribute(templateId, null, assetId);\n\t\tif (attributeDataModel) {\n\t\t\treturn attributeDataModel.getValue(templateId);\n\t\t}\n\t}\n\n\t/**\n\t * If no asset id is passed, all records will be checked\n\t * @method\n\t * @param {number} assetId Asset id\n\t * @return {boolean}\n\t */\n\thasAttributeValues(assetId) {\n\t\tconst values = this.getValues(assetId);\n\n\t\tfor (let i = 0, c = values.length, foundValue, _values; i < c; i++) {\n\t\t\t_values = values[i];\n\t\t\tfor (let j = 0, k = _values.length, val; j < k; j++) {\n\t\t\t\tval = _values[j];\n\t\t\t\tif (_.isArray(val)) {\n\t\t\t\t\tfoundValue = val.length > 0 && val !== '' && val != null;\n\t\t\t\t} else {\n\t\t\t\t\tfoundValue = val !== '' && val != null;\n\t\t\t\t}\n\t\t\t\tif (foundValue) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * If no asset id is passed, all records will be checked\n\t * @method\n\t * @param {number} assetId Asset id\n\t * @return {boolean}\n\t */\n\thasWritableAttributes(assetId) {\n\t\tconst attributes = this.getWritableAttributes(assetId);\n\t\tfor (let i = 0, c = attributes.length; i < c; i++) {\n\t\t\tif (attributes[0].length > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} data Attribute data\n\t * @param {number} assetId Asset id (if not provided, data will be applied to all assets in this collection)\n\t * @param {object} opts Options\n\t */\n\tparseAndSave(data, assetId, opts) {\n\t\t_.each(data, (v, k) => {\n\t\t\t// This most likely came from a form, need to be safe and unescape the name\n\t\t\t// TODO: look into switching our attribute names in forms to utilize the templateId instead\n\t\t\t// User defined names as form input names is troublesome\n\t\t\tk = unescapeAttributeName(k);\n\n\t\t\tconst attrModel = this.assetAttributes.findWhere({name: k});\n\t\t\tif (attrModel && attrModel.isValueWritable()) {\n\t\t\t\tv = attrModel.parseOutValue(v);\n\t\t\t\t// Set - default to silently as this will most likely be the product of cloned data and a form update\n\t\t\t\t// so the underlying attribute data model does not need to respond to the change and populate the values collection\n\t\t\t\t// as the values collection should already be mirrored in the UI\n\t\t\t\tthis.setValue(attrModel.id, assetId, v, _.extend({silent: true}, opts));\n\t\t\t}\n\t\t});\n\n\t\t// Save\n\t\treturn this.setAssetAttributes(this.getChanges(), opts);\n\t}\n\n\t/**\n\t * Reset all values\n\t * @method\n\t * @param {object} opts Options\n\t * @see Netx.Collections.AttributeDatum\n\t */\n\tresetValues(opts) {\n\t\treturn this.invoke('resetValues', opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {number} templateId Attribute template id\n\t * @param {array|mixed} val Value(s)\n\t * @param {object} opts Options\n\t */\n\tsetValue(templateId, assetId, val, opts) {\n\t\tif (assetId == null) {\n\t\t\tthis.invoke('setValue', templateId, val, opts);\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributeDataModel = this.getAttribute(templateId, null, assetId);\n\t\tattributeDataModel && attributeDataModel.setValue(templateId, val, opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeDatum';\n\t}\n}\n","/**\n * Permission model\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nexport default class Permission extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'permissionId';\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @property {object} defaults - The default permission values\n\t * @property {number} defaults.permissionsId - The default permission id\n\t * @property {string} defaults.type - The default permission type (read/deny)\n\t * @property {string} defaults.mode - The default permission mode\n\t * @property {object} defaults.resource - The default permission resource\n\t * @property {number} defaults.resource.id - The default permission resource id\n\t * @property {string} defaults.resource.type - The default permission resource type\n\t * @property {string} defaults.resource.scope - The default permission resource scope\n\t * @property {number} defaults.resource.attributeScope - The default permission resource attribute scope\n\t * @property {object} defaults.userSelector - The default permission user selector https://kb.netx.net/display/DEV/UserSelector\n\t * @property {boolean} defaults.userSelector.all - The default permission user selector all\n\t * @property {array} defaults.userSelector.emails - The default permission user selector emails\n\t * @property {array} defaults.userSelector.groupIds - The default permission user selector group ids\n\t * @property {boolean} defaults.userSelector.none - The default permission user selector none\n\t * @property {array} defaults.userSelector.userIds - The default permission user selector user ids\n\t * @property {array} defaults.category - The default permission category scope\n\t * @property {array} defaults.resourceScopes - The default permission resource scopes\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\t// permissionId : 0,\n\t\t\ttype: 'permit',\n\t\t\tmode: 'read',\n\t\t\tresource: {\n\t\t\t\tid: 0,\n\t\t\t\ttype: '',\n\t\t\t\tscope: '',\n\t\t\t\tattributeScope: 0,\n\t\t\t},\n\t\t\tuserSelector: {\n\t\t\t\tall: false,\n\t\t\t\temails: [],\n\t\t\t\tgroupIds: [],\n\t\t\t\tnone: false,\n\t\t\t\tuserIds: [],\n\t\t\t},\n\t\t\tcategoryScope: [],\n\t\t\tresourceScopes: [],\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} methods - Model RPC methods\n\t * @property {array} methods.create - Create new permission\n\t * @property {array} methods.remove - Destroy permission\n\t * @property {array} methods.update - Update permission\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\tcreate(opts) {\n\t\t\t\treturn ['setPermission', this.self()];\n\t\t\t},\n\t\t\tremove: ['deletePermission', 'permissionId'],\n\t\t\tupdate(opts) {\n\t\t\t\treturn ['setPermission', this.self()];\n\t\t\t},\n\t\t};\n\t}\n\n\t/** @override */\n\tconstructor(attrs, opts) {\n\t\tsuper(attrs, opts);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'change:mode', (model, mode) => {\n\t\t\t// `attribute` resources do not have a category scope when in `read` mode\n\t\t\tif (mode === 'read' && this.getResourceType() === 'attribute') {\n\t\t\t\tthis.set('categoryScope', []);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Selector type (user/group)\n\t * @param {array} ids Selector ids\n\t * @param {object} opts Options\n\t */\n\taddSelectorItems(type, ids, opts = {}) {\n\t\tif (!_.isArray(ids)) ids = [ids];\n\n\t\tconst userSelector = this.get('userSelector') || {};\n\t\tconst existingIds = userSelector[`${type}Ids`];\n\n\t\tconst newIds = _.compact(\n\t\t\tids.map(id => (existingIds.indexOf(id) > -1 ? null : id)),\n\t\t);\n\n\t\tif (!newIds.length) return this;\n\n\t\tuserSelector[`${type}Ids`] = existingIds.concat(newIds);\n\n\t\tif (opts.silent) return this;\n\n\t\treturn this.trigger('change', this, opts)\n\t\t\t.trigger('change:userSelector', this, userSelector, opts)\n\t\t\t.trigger(`userSelector:add:${type}Ids`, this, newIds, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @return {string}\n\t */\n\tgetResourceType() {\n\t\treturn this.get('resource').type || '';\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean} Has selectors\n\t */\n\thasSelectors() {\n\t\tconst userSelector = this.get('userSelector');\n\t\treturn !(\n\t\t\t!userSelector.all &&\n\t\t\t!userSelector.groupIds.length &&\n\t\t\t!userSelector.userIds.length\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} data Data\n\t * @param {object} opts Options\n\t */\n\tparseAndSave(data, opts) {\n\t\treturn this.save(\n\t\t\t_.pick.apply(_, [data].concat(_.keys(this.getDefaults()))),\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Selector type (user/group)\n\t * @param {array} ids Selector ids\n\t * @param {object} opts Options\n\t */\n\tremoveSelectorItems(type, ids, opts = {}) {\n\t\tif (!_.isArray(ids)) ids = [ids];\n\n\t\tconst userSelector = this.get('userSelector') || {};\n\t\tconst existingIds = userSelector[`${type}Ids`];\n\n\t\tconst removedIds = _.compact(\n\t\t\tids.map(id => {\n\t\t\t\tconst idx = existingIds.indexOf(id);\n\t\t\t\tif (idx < 0) return;\n\n\t\t\t\texistingIds.splice(idx, 1);\n\t\t\t\treturn id;\n\t\t\t}),\n\t\t);\n\n\t\tif (!removedIds.length) return;\n\n\t\tuserSelector[`${type}Ids`] = existingIds;\n\n\t\tif (opts.silent) return this;\n\n\t\treturn this.trigger('change', this, opts)\n\t\t\t.trigger('change:userSelector', this, userSelector, opts)\n\t\t\t.trigger(`userSelector:remove:${type}Ids`, this, removedIds, opts);\n\t}\n\n\t/**\n\t * @method\n\t * @param {boolean} selectAll Select all\n\t * @param {object} opts Options\n\t */\n\ttoggleSelectAll(selectAll, opts = {}) {\n\t\tconst userSelector = this.get('userSelector');\n\n\t\tif (selectAll == null) selectAll = !userSelector.all;\n\n\t\tuserSelector.all = selectAll;\n\n\t\tif (opts.silent) return this;\n\n\t\treturn this.trigger('change', this, opts)\n\t\t\t.trigger('change:userSelector', this, userSelector, opts)\n\t\t\t.trigger('change:userSelector:all', this, selectAll, opts);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'Permission';\n\t}\n}\n","import baseParser from '../parsers/base';\n\nexport const base = (value: any, truncateAt?: number) => {\n\tvalue = baseParser(value);\n\n\tif (Array.isArray(value)) value = value.join(', ');\n\n\t// React will not execute tags and will render the </> literally\n\t// if (typeof value === 'string') {\n\t// \tvalue = value.replace(//g, '>');\n\t// }\n\n\tif (value != null && truncateAt && value.length > truncateAt) {\n\t\tvalue = value.substr(0, truncateAt) + '...';\n\t}\n\n\treturn value;\n};\n\nexport default base;\n","import base from './base';\nimport {i18n} from '@netx/core/i18n';\nimport {assetExpirationToDateString} from '@netx/core-asset-expiration/utils/assetExpirationToDateString';\n\nimport {AttributeTemplate} from '../types';\n\nexport const date = (\n\tvalue: any,\n\t{name, system}: Pick,\n) => {\n\t// In all cases (currently), except one, we want `yyyy-mm-dd`\n\t// The dam will sometimes send us mm/dd/yyyy and we want to normalize this\n\t// except for `expirationDate` - which is a time and a time that we want to\n\t// show in a relative format\n\tif (system && name === 'expirationDate') {\n\t\tif (value) {\n\t\t\tvalue = `${i18n.t('i18n.expires')}: ${assetExpirationToDateString(\n\t\t\t\tvalue,\n\t\t\t)}`;\n\t\t}\n\t\treturn value === 0 ? '' : value;\n\t}\n\treturn base(value);\n};\n\nexport default date;\n","import base from './base';\n\nexport const multiSelect = (value: any) => base(value);\n\nexport default multiSelect;\n","import {AttributeTemplate} from '../types';\nimport {ATTRIBUTE_NUMBER_MAX_DECIMAL} from '../constants';\nimport {parseNumber} from '../validators/number';\nimport {bytes} from '@netx/core/lib/underscore-netx';\n\nimport base from './base';\nimport parser from '../parsers/number';\n\ntype Options = {\n\tnoLocale?: boolean;\n};\n\nexport const number = (\n\tvalue: any,\n\t{name, spec2, system}: Pick,\n\topts: Options = {},\n) => {\n\tvalue = parser(value);\n\n\t// Do not parse into locale string\n\tconst noLocale = opts.noLocale === true;\n\tconst numberType = spec2;\n\tconst maxDecimal = ATTRIBUTE_NUMBER_MAX_DECIMAL[numberType] || 0;\n\n\tconst parse = (value: any) => {\n\t\tvalue = parseNumber(value);\n\n\t\t// `Unlimited` number type\n\t\tif (maxDecimal === Infinity) {\n\t\t\treturn noLocale\n\t\t\t\t? value.toString()\n\t\t\t\t: value.toLocaleString(undefined, {\n\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\tmaximumFractionDigits: 20, // Maximum allowed by`toLocaleString`\n\t\t\t\t });\n\t\t} else {\n\t\t\treturn noLocale\n\t\t\t\t? value.toFixed(maxDecimal)\n\t\t\t\t: value.toLocaleString(undefined, {\n\t\t\t\t\t\tuseGrouping: false,\n\t\t\t\t\t\tminimumFractionDigits: maxDecimal,\n\t\t\t\t\t\tmaximumFractionDigits: maxDecimal,\n\t\t\t\t });\n\t\t}\n\t};\n\n\tif (system) {\n\t\t// Normalize\n\t\tswitch (name) {\n\t\t\tcase 'fileSize':\n\t\t\tcase 'fileSize2':\n\t\t\t\tvalue = bytes(value, true);\n\t\t\t\tbreak;\n\t\t}\n\t} else if (value != null) {\n\t\tvalue = Array.isArray(value) ? value.map(parse) : parse(value);\n\t}\n\n\treturn base(value);\n};\n\nexport default number;\n","import base from './base';\n\nexport const select = (value: any) => base(value);\n\nexport default select;\n","import multiSelect from './multi-select';\n\nexport const tag = (value: any) => multiSelect(value);\n\nexport default tag;\n","import tag from './tag';\n\nexport const semantic = (value: any) => tag(value);\n\nexport default semantic;\n","import tag from './tag';\n\nexport const tagVocab = (value: any) => tag(value);\n\nexport default tagVocab;\n","import base from './base';\n\nexport const text = (value: any) => base(value);\n\nexport default text;\n","import text from './text';\n\nexport const textarea = (value: any) => text(value);\n\nexport default textarea;\n","export * from './date';\nexport * from './multi-select';\nexport * from './number';\nexport * from './select';\nexport * from './semantic';\nexport * from './tag';\nexport * from './tag-vocab';\nexport * from './text';\nexport * from './textarea';\n\nimport date from './date';\nimport multiSelect from './multi-select';\nimport number from './number';\nimport select from './select';\nimport semantic from './semantic';\nimport tag from './tag';\nimport tag_vocab from './tag-vocab';\nimport text from './text';\nimport textarea from './textarea';\n\nimport {ATTRIBUTE_TYPE} from '../constants';\n\nexport default {\n\t[ATTRIBUTE_TYPE.DATE]: date,\n\t[ATTRIBUTE_TYPE.MULTISELECT]: multiSelect,\n\t[ATTRIBUTE_TYPE.NUMBER]: number,\n\t[ATTRIBUTE_TYPE.SELECT]: select,\n\t[ATTRIBUTE_TYPE.SEMANTIC]: semantic,\n\t[ATTRIBUTE_TYPE.TAG]: tag,\n\t[ATTRIBUTE_TYPE.TAG_VOCAB]: tag_vocab,\n\t[ATTRIBUTE_TYPE.TEXT]: text,\n\t[ATTRIBUTE_TYPE.TEXTAREA]: textarea,\n};\n","import React from 'react';\nimport {\n\tDialogContent,\n\tDialogActions as MuiDialogActions,\n\tButton,\n\tTypography,\n} from '@mui/material';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport Dialog, {DialogProps} from '../Dialog';\n\nexport interface ConfirmationOptions\n\textends Omit {\n\tcancelLabel?: string;\n\tconfirmLabel?: string;\n\tdisableCancel?: boolean;\n\tdescription: React.ReactNode;\n\tDialogActions?: React.ComponentType<{\n\t\tonSubmit(...args: any[]): void;\n\t\tonClose?: () => void;\n\t}>;\n}\n\nexport interface ConfirmationDialogProps extends ConfirmationOptions {\n\tonSubmit(...args: any[]): void;\n\tonClose(): void;\n}\n\nexport const ConfirmationDialog: React.FunctionComponent = ({\n\tDialogActions,\n\tcancelLabel,\n\tconfirmLabel,\n\tdescription,\n\tdisableCancel,\n\tonSubmit,\n\tonClose,\n\n\t...props\n}) => {\n\tcancelLabel = cancelLabel != null ? cancelLabel : i18n.t('i18n.cancel');\n\tconfirmLabel =\n\t\tconfirmLabel != null\n\t\t\t? confirmLabel\n\t\t\t: disableCancel\n\t\t\t? i18n.t('i18n.ok')\n\t\t\t: i18n.t('i18n.confirm');\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{description}\n\t\t\t\t\n\t\t\t\n\t\t\t{DialogActions ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t{!disableCancel ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cancelLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\t\t{confirmLabel}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","export * from './DragResize';\nexport {default} from './DragResize';\nexport * from './DragResizeHandle';\nexport * from './dragResizeClasses';\nexport * from './dragResizeHandleClasses';\nexport * from './constants';\nexport * from './types';\nexport * from './useDragResize';\n","import axios from 'axios';\n\nimport Netx, {dispatcher} from '@netx/core/bootstrap';\n\n/** server error */\nexport type ErrorResult = {\n\tcode: Codes;\n\tdata?: null;\n\tmessage: string;\n\tresult: string;\n};\n\n/** server error response */\nexport type ErrorResponse = {\n\terror: T;\n};\n\n/** server success response */\nexport type SuccessResponse = {\n\tresult: T;\n};\n\nexport class QueryError extends Error {\n\tcode: Codes;\n}\n\nexport type QueryPager = {\n\tstartIndex: number;\n\tsize: number;\n};\n\nexport type QuerySort = {\n\tfield: F;\n\torder: typeof QUERY_SORT_ORDER[keyof typeof QUERY_SORT_ORDER];\n};\n\nexport const QUERY_SORT_ORDER = {\n\tASCENDING: 'asc',\n\tDESCENDING: 'desc',\n};\n\nconst sessionErrors = [6, 3001, 3002, 3003];\n\nexport interface QueryPromise extends Promise {\n\tcancel(): void;\n}\n\nexport const netxQueryDam = () => {\n\tconst client = axios.create({\n\t\tbaseURL: Netx.URL.api,\n\t});\n\tclient.defaults.headers.common['Content-Type'] = 'application/json';\n\n\tconst source = axios.CancelToken.source();\n\n\t// Back it up\n\tconst _post = client.post;\n\t// And wrap it\n\t// We can ignore ts check on this, because as long as we do not modify the response\n\t// data, we will still be getting proper types out\n\t// For some reason, assigning the _post call to a var and returning is not valid but\n\t// just returning the _post call is valid (something in the abstract types)\n\t// @ts-ignore\n\tclient.post = (method, data = [], config = {}) => {\n\t\tconst {session} = Netx;\n\t\t// every succesful sync resets the server's logout timer; reset our client one too.\n\t\tsession?.resetLogoutTimer();\n\n\t\tif (!(session?.get('publicMethods') || []).includes(method)) {\n\t\t\t((data as unknown) as any[]).unshift(\n\t\t\t\tsession.getToken() || session.getKey(),\n\t\t\t);\n\t\t}\n\n\t\tconst promise = _post(\n\t\t\tmethod,\n\t\t\t{\n\t\t\t\tid: Date.now(),\n\t\t\t\tdataContext: 'json',\n\t\t\t\tjsonrpc: '2.0',\n\t\t\t\tmethod,\n\t\t\t\tparams: data,\n\t\t\t} as unknown,\n\t\t\t{...config, cancelToken: source.token},\n\t\t).then((response) => {\n\t\t\tif (response.data.error as ErrorResponse) {\n\t\t\t\tconst code = response.data.error.code;\n\t\t\t\tif (sessionErrors.includes(code)) {\n\t\t\t\t\t// If we have a token, some calls with give sessionErrors while others will pass.\n\t\t\t\t\t// If not, a session error means our key is invalid.\n\t\t\t\t\tif (!session?.getToken()) dispatcher.trigger('session:expire');\n\t\t\t\t}\n\t\t\t\tconst error = new QueryError(response.data.error.message);\n\t\t\t\terror.code = code;\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tsession?.resetLogoutTimer();\n\n\t\t\treturn response;\n\t\t});\n\n\t\t// For react query to cancel on unmount (or any other to cancel via the promise)\n\t\t// TODO: soon we can remove this as axios now supports passing signal\n\t\t// just need to hunt down anything depending on this behvior and pass along the signal\n\t\t// from react query\n\t\t(promise as QueryPromise).cancel = () => {\n\t\t\treturn source.cancel('cancelled by external script');\n\t\t};\n\n\t\treturn promise;\n\t};\n\n\treturn client;\n};\n\nexport default netxQueryDam;\n","import React from 'react';\n\nimport {FormHelperText} from '@mui/material';\n\nimport {FormValidationError} from '../../';\n\nexport interface ErrorFieldProps {\n\tdisabled?: boolean;\n\terror?: FormValidationError;\n\thide?: boolean;\n}\n\nconst ErrorField: React.FunctionComponent = ({\n\tdisabled = false,\n\terror,\n}) => {\n\tif (!error) return null;\n\n\treturn (\n\t\t\n\t\t\t{error.message}\n\t\t\n\t);\n};\n\nexport default ErrorField;\n","import moment, {Moment} from 'moment';\nimport React, {useCallback} from 'react';\n\nimport {dateToHTML} from '@netx/core/lib/underscore-netx';\n\nimport clsx from 'clsx';\n\nimport {TextField, TextFieldProps, CircularProgress} from '@mui/material';\nimport {LocalizationProvider} from '@mui/x-date-pickers/LocalizationProvider';\nimport {\n\tDatePicker,\n\tDatePickerProps as MuiDatePickerProps,\n} from '@mui/x-date-pickers';\nimport {AdapterMoment} from '@mui/x-date-pickers/AdapterMoment';\n\nimport {createStyles, withStyles, WithStyles} from '@mui/styles';\n\nimport {DateValue} from '@netx/core-asset/models/attribute';\nimport useSharedRef from '@netx/core-components/hooks/useSharedRef';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {useFormInput} from '../';\nimport ErrorField from '../ErrorField';\nimport type {CommonFieldPropsWithTextField} from '../typings';\nimport {useErrorFocus} from '../hooks/useErrorFocus';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'inline-flex',\n\t\t\tflexDirection: 'column',\n\t\t\twidth: '100%',\n\t\t\t// account for calendar icon button\n\t\t\t'& .MuiInputLabel-formControl:not(.MuiInputLabel-shrink)': {\n\t\t\t\tmaxWidth: 'calc(100% - 56px) !important',\n\t\t\t},\n\t\t},\n\t\tinputLabel: {},\n\t\tloading: {\n\t\t\tposition: 'absolute',\n\t\t\tright: 10,\n\t\t\ttop: 10,\n\t\t\t'& circle': {\n\t\t\t\tstrokeWidth: 2,\n\t\t\t},\n\t\t},\n\t});\n\nconst getValueFromPickerDate = (date: Moment) => {\n\tif (!date) return null;\n\n\tif (!(date instanceof moment)) return date.toString();\n\n\ttry {\n\t\treturn date.format('YYYY-MM-DD');\n\t} catch (ex) {\n\t\tconsole.log(`error converting date`, date, ex);\n\t}\n\treturn null;\n};\n\n// Note: inputProps will be applied to the datepicker wrapping element and not the input\n// super annoying - and hopefully gets worked out someday\n// This will also cause other issues, like the value not actually being applied to the input\n// For these reasons we cannot allow it to be passed at this time\nexport type DateFieldProps = Omit<\n\tCommonFieldPropsWithTextField,\n\t'onError' | 'ref'\n> &\n\tOmit<\n\t\tMuiDatePickerProps,\n\t\t'label' | 'onChange' | 'renderInput' | 'value'\n\t> & {\n\t\tonChange?: (value: DateValue) => void;\n\t};\n\n// DatePicker passes a ref to the input but we would also like to have a ref to the input\n// need to wrap the text field and share the refs\ntype DateTextFieldProps = {\n\terror?: boolean;\n\tinputRef?: React.Ref;\n} & TextFieldProps;\nconst DateTextField: React.FunctionComponent = ({\n\terror,\n\tinputRef,\n\t...props\n}) => {\n\tconst innerRef = useSharedRef(null, [inputRef]);\n\tuseErrorFocus({\n\t\terror,\n\t\tinputRef: innerRef,\n\t});\n\n\treturn ;\n};\n\nconst DateField = ({\n\tclasses,\n\n\tchanged,\n\tclassName,\n\tdisabled,\n\terror,\n\tform,\n\tformFieldOptions,\n\tonChange,\n\thideErrorMessage,\n\tloadingValue,\n\tname,\n\tplaceholder,\n\treadOnly,\n\trequired,\n\tvalue,\n\n\t...props\n}: WithStyles & DateFieldProps) => {\n\tvalue = value == null ? null : value;\n\tif (value && value.includes('/')) {\n\t\tvalue = dateToHTML(value);\n\t}\n\n\tuseFormInput(name, value, form, {required, ...formFieldOptions});\n\n\tconst handleChange = useCallback(\n\t\t(date: Moment) => {\n\t\t\tconst value = getValueFromPickerDate(date);\n\n\t\t\tform?.setValue(name, value);\n\t\t\tonChange?.(value);\n\t\t},\n\t\t[form?.setValue, name, onChange],\n\t);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{loadingValue ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\ttextFieldProps.InputProps?.endAdornment\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tinputProps={{\n\t\t\t\t\t\t\t\t\t...textFieldProps.inputProps,\n\t\t\t\t\t\t\t\t\t...props.inputProps,\n\t\t\t\t\t\t\t\t\tplaceholder:\n\t\t\t\t\t\t\t\t\t\tplaceholder || textFieldProps.inputProps?.placeholder,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tInputLabelProps={{\n\t\t\t\t\t\t\t\t\tclassName: classes.inputLabel,\n\t\t\t\t\t\t\t\t\t...textFieldProps.InputLabelProps,\n\t\t\t\t\t\t\t\t\t...props.InputLabelProps,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t\n\t\t\t{!hideErrorMessage ? (\n\t\t\t\t\n\t\t\t) : null}\n\t\t
\n\t);\n};\n\nexport default withStyles(styles, {\n\tname: 'Form-Inputs-Date',\n})(React.memo(DateField));\n","import React, {useCallback, useEffect, useRef} from 'react';\n\nimport equal from 'fast-deep-equal/es6/react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {useRefState, useComponentIsMounted} from '@netx/core-components/hooks';\nimport {isEmptyValue} from '../util';\nimport {valuesMatch} from '../util';\n\nexport type FormAction = string;\nexport type FormActions<\n\tTValues extends FormValues = FormValues,\n\tTAction extends FormAction = FormAction\n> = {\n\t[Property in keyof TValues]: TAction | undefined;\n};\n\nexport type FormChanges = Partial<\n\tRecord\n>;\n\nexport type FormFieldRef = Record<\n\tkeyof TValues,\n\t{\n\t\tname: keyof TValues;\n\t\toptions: FormFieldRefOptions;\n\t}\n>;\n\nexport interface FormFieldRefOptions {\n\tvalidator?: (value: any) => true | Error | Promise;\n\thasChanged?: (\n\t\tvalue: any,\n\t\toriginalValue: any,\n\t\tmultipleValues: boolean,\n\t\taction?: TAction,\n\t) => boolean;\n\trequired?: boolean;\n\tvalue?: any;\n\taction?: TAction;\n}\n\nexport type FormMultiFields = Record<\n\tkeyof TValues,\n\tany\n>;\nexport type FormMultipleValues<\n\tTValues extends FormValues = FormValues\n> = Record;\n\nexport interface FormOptions<\n\tTValues extends FormValues = FormValues,\n\tTAction extends FormAction = FormAction,\n\tTReturn = any\n> {\n\t/** Validate regardless if field has changed */\n\talwaysValidate?: boolean;\n\tmultipleValues?: FormMultipleValues;\n\tonChange?: (hasChanged: boolean, isValid: boolean) => void;\n\tonReset?: () => void;\n\tonSubmit?: (\n\t\tvalues: TValues,\n\t\tchanges?: FormChanges,\n\t\tactions?: FormActions,\n\t) => Promise | void;\n\tresetOnSubmit?: boolean;\n\tresetWithCurrentValues?: boolean;\n\t/** wins over `resetWithCurrentValues` */\n\tresetWithOriginalValues?: boolean;\n\tsubmitLabel?: string;\n\tremoveValueOnUnregister?: boolean;\n}\n\nexport type FormValidationError = {\n\tmessage: string;\n\ttype: string;\n};\n\nexport type FormValidationErrors = Record<\n\tkeyof TValues,\n\tFormValidationError\n>;\n\nexport type FormValues = Record;\n\nconst DEFAULT_OPTIONS: FormOptions = {\n\talwaysValidate: false,\n\tremoveValueOnUnregister: true,\n\tresetOnSubmit: false,\n\tresetWithOriginalValues: false,\n\tsubmitLabel: i18n.t('i18n.submit'),\n};\n\nexport default function useForm<\n\tTValues extends FormValues = FormValues,\n\tTAction extends FormAction = FormAction,\n\tTReturn = any\n>(values?: TValues, formOptions?: FormOptions) {\n\tconst {act, shouldAct} = useComponentIsMounted();\n\n\tconst [options, optionsRef, setOptions] = useRefState({\n\t\t...DEFAULT_OPTIONS,\n\t\t...formOptions,\n\t} as FormOptions);\n\tconst lastFormOptionsRef = useRef(formOptions);\n\tuseEffect(() => {\n\t\tif (equal(lastFormOptionsRef.current, formOptions)) return;\n\t\tlastFormOptionsRef.current = formOptions || {};\n\t\tact(() =>\n\t\t\tsetOptions({\n\t\t\t\t...DEFAULT_OPTIONS,\n\t\t\t\t...formOptions,\n\t\t\t} as FormOptions),\n\t\t);\n\t}, [formOptions]);\n\n\tconst multiFieldsRef = useRef({} as FormMultiFields);\n\tconst fieldRef = useRef({} as FormFieldRef);\n\n\tconst [isSubmitting, isSubmittingRef, setIsSubmitting] = useRefState(false);\n\tconst [submissionError, submissionErrorRef, setSubmissionError] = useRefState<\n\t\tstring | null\n\t>(null);\n\n\tconst [\n\t\tformMultipleValues,\n\t\tformMultipleValuesRef,\n\t\tsetFormMultipleValues,\n\t] = useRefState(\n\t\toptions.multipleValues || ({} as FormMultipleValues),\n\t);\n\tconst [formValues, formValuesRef, setFormValues] = useRefState(\n\t\tvalues || ({} as TValues),\n\t);\n\tconst [originalValues, originalValuesRef, setOriginalValues] = useRefState(\n\t\tformValues as TValues,\n\t);\n\tconst [formActions, formActionsRef, setFormActions] = useRefState(\n\t\t{} as FormActions,\n\t);\n\tconst [formChanges, formChangesRef, setFormChanges] = useRefState(\n\t\t{} as FormChanges,\n\t);\n\tconst [formErrors, formErrorsRef, setFormErrors] = useRefState(\n\t\t{} as FormValidationErrors,\n\t);\n\tconst [hasChanged, hasChangedRef, setHasChanged] = useRefState(false);\n\tconst [isValid, isValidRef, setIsValid] = useRefState(true);\n\n\t// Setup/teardown\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tmultiFieldsRef.current = {} as FormMultiFields;\n\t\t\tfieldRef.current = {} as FormFieldRef;\n\t\t};\n\t}, []);\n\n\t// When values passed in change, merge with current\n\tconst lastValuesRef = useRef(values);\n\tuseEffect(() => {\n\t\tif (equal(lastValuesRef.current, values)) return;\n\t\tlastValuesRef.current = values;\n\t\tsetOriginalValues(values || ({} as TValues));\n\t\tsetFormValues(values || ({} as TValues));\n\t}, [values]);\n\n\t// When multiple values passed in change\n\tuseEffect(() => {\n\t\tif (equal(formMultipleValuesRef.current, options.multipleValues)) return;\n\t\tsetFormMultipleValues(\n\t\t\toptions.multipleValues || ({} as FormMultipleValues),\n\t\t);\n\t}, [options.multipleValues]);\n\n\t// When our data/validation changes\n\tuseEffect(() => {\n\t\tconst {onChange} = optionsRef.current;\n\t\tonChange && onChange(hasChanged, isValid);\n\t}, [hasChanged, isValid]);\n\n\t// When changes occur\n\tuseEffect(() => {\n\t\tsetHasChanged(!!Object.keys(formChanges).length);\n\t}, [formChanges]);\n\n\t// When errors change\n\tuseEffect(() => {\n\t\tsetIsValid(!Object.keys(formErrors).length);\n\t}, [formErrors]);\n\n\t/** Get action for field */\n\tconst getAction = useCallback((fieldName: keyof TValues):\n\t\t| TAction\n\t\t| undefined => {\n\t\treturn formActionsRef.current[fieldName];\n\t}, []);\n\n\t/** Field has error */\n\tconst hasError = useCallback(\n\t\t(fieldName: keyof TValues, type: string, message: string) => {\n\t\t\tconst existing = formErrorsRef.current[fieldName];\n\t\t\treturn existing && existing.type === type && existing.message === message;\n\t\t},\n\t\t[],\n\t);\n\n\t/** Field(s) have error */\n\tconst inErrors = useCallback(\n\t\t(fieldNames: keyof TValues | Array) => {\n\t\t\tif (!Array.isArray(fieldNames)) fieldNames = [fieldNames];\n\t\t\treturn Object.keys(formErrorsRef.current).some((key) =>\n\t\t\t\t(fieldNames as Array).includes(key),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\t/** Check if field has changed */\n\tconst checkFieldChanged = useCallback(\n\t\t(\n\t\t\tfieldName: keyof TValues,\n\t\t\tvalue: any,\n\t\t\toriginalValue: any,\n\t\t\tmultipleValues: boolean,\n\t\t\taction?: TAction,\n\t\t): boolean => {\n\t\t\tconst field = fieldRef.current[fieldName];\n\t\t\tif (!field) return false;\n\n\t\t\tconst {hasChanged} = field.options;\n\n\t\t\t// Field did not provide its own method\n\t\t\tif (!hasChanged) {\n\t\t\t\treturn !valuesMatch(value, originalValue, multipleValues);\n\t\t\t}\n\n\t\t\treturn hasChanged(value, originalValue, multipleValues, action);\n\t\t},\n\t\t[],\n\t);\n\n\t/** Clear action for field */\n\tconst clearAction = useCallback((fieldName: keyof TValues): void => {\n\t\tif (!fieldRef.current[fieldName]) return;\n\n\t\tsetFormActions((actions) => {\n\t\t\tconst _actions = {...actions};\n\t\t\tdelete _actions[fieldName];\n\t\t\treturn _actions;\n\t\t});\n\t}, []);\n\n\t/** Clear error for field(s) */\n\tconst clearError = useCallback(\n\t\t(fieldNames?: keyof TValues | Array) => {\n\t\t\tif (fieldNames && !inErrors(fieldNames)) return;\n\n\t\t\tsetFormErrors((errors) => {\n\t\t\t\t// Clear all\n\t\t\t\tif (fieldNames == null) return {} as FormValidationErrors;\n\n\t\t\t\tif (!Array.isArray(fieldNames)) fieldNames = [fieldNames];\n\n\t\t\t\tconst newErrors = {...errors};\n\t\t\t\tfieldNames.forEach((fieldName) => {\n\t\t\t\t\tdelete newErrors[fieldName];\n\t\t\t\t});\n\t\t\t\treturn Object.keys(newErrors).length > 0\n\t\t\t\t\t? newErrors\n\t\t\t\t\t: ({} as FormValidationErrors);\n\t\t\t});\n\t\t},\n\t\t[inErrors],\n\t);\n\n\t/** Reset actions */\n\tconst resetActions = useCallback((withAction?: TAction) => {\n\t\tconst actions = {} as FormActions;\n\t\tObject.keys(fieldRef.current).forEach((fieldName: keyof TValues) => {\n\t\t\tactions[fieldName] = withAction;\n\t\t});\n\t\tsetFormActions(actions);\n\t}, []);\n\n\t/** Reset all changes */\n\tconst resetChanges = useCallback(() => {\n\t\tsetFormChanges({} as FormChanges);\n\t}, []);\n\n\t/** Set/unset change for field */\n\tconst setChange = useCallback(\n\t\t(fieldName: keyof TValues, changed: boolean) => {\n\t\t\tif (!fieldRef.current[fieldName]) return;\n\n\t\t\tsetFormChanges((changes) => {\n\t\t\t\tconst _changes = {...changes};\n\t\t\t\tchanged ? (_changes[fieldName] = true) : delete _changes[fieldName];\n\t\t\t\treturn _changes;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\t/** Set error for field */\n\tconst setError = useCallback(\n\t\t(fieldName: keyof TValues, type: string, message: string) => {\n\t\t\t// Already have an error set\n\t\t\tif (hasError(fieldName, type, message)) return;\n\n\t\t\tsetFormErrors((errors) => {\n\t\t\t\treturn {\n\t\t\t\t\t...errors,\n\t\t\t\t\t[fieldName]: {\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\t[hasError],\n\t);\n\n\t/** Validate single field */\n\tconst validateField = useCallback(\n\t\tasync (fieldName: keyof TValues, value?: any) => {\n\t\t\tconst input = fieldRef.current[fieldName];\n\t\t\tif (!input) return new Error(`'${fieldName}' not registered`);\n\n\t\t\t// No value was passed in, use the value we already have stored\n\t\t\tif (value === void 0) {\n\t\t\t\tvalue = formValuesRef.current[fieldName];\n\t\t\t}\n\n\t\t\tconst {required, validator} = input.options;\n\t\t\tlet result: true | Error = true;\n\n\t\t\tif (validator) {\n\t\t\t\tresult = await validator(value);\n\t\t\t}\n\n\t\t\tif (result === true && required && isEmptyValue(value)) {\n\t\t\t\tresult = new Error(i18n.t('i18n.required'));\n\t\t\t}\n\n\t\t\tresult === true\n\t\t\t\t? clearError(fieldName)\n\t\t\t\t: setError(fieldName, 'validation', result.message);\n\n\t\t\treturn result;\n\t\t},\n\t\t[clearError, setError],\n\t);\n\n\t/** Validate all fields in form */\n\tconst validate = useCallback(async () => {\n\t\tconst fieldNames = Object.keys(fieldRef.current);\n\t\tconst currentValues = formValuesRef.current;\n\n\t\tlet validationFailed = false;\n\n\t\tfor (let i = 0, c = fieldNames.length; i < c; i++) {\n\t\t\tconst fieldName = fieldNames[i];\n\t\t\tconst valid = await validateField(fieldName, currentValues[fieldName]);\n\t\t\tif (valid !== true) validationFailed = true;\n\t\t}\n\n\t\treturn !validationFailed;\n\t}, [validateField]);\n\n\tuseEffect(() => {\n\t\tif (isValidRef.current || !shouldAct()) return;\n\t\tObject.keys(formErrorsRef.current).forEach((fieldName) =>\n\t\t\tvalidateField(fieldName),\n\t\t);\n\t}, [formValues]);\n\n\t/** Register field */\n\tconst register = useCallback(\n\t\t(\n\t\t\tfieldName: keyof TValues,\n\t\t\tfieldOptions: FormFieldRefOptions = {},\n\t\t) => {\n\t\t\tif (!fieldName) return () => {};\n\n\t\t\tconst {current} = multiFieldsRef;\n\t\t\tconst {alwaysValidate} = optionsRef.current;\n\n\t\t\tif (current[fieldName] != null) {\n\t\t\t\tconst input = fieldRef.current[fieldName];\n\t\t\t\t// Always update with most recent options\n\t\t\t\tinput.options = {\n\t\t\t\t\t...input.options,\n\t\t\t\t\t...options,\n\t\t\t\t};\n\t\t\t\tcurrent[fieldName]++;\n\t\t\t\talwaysValidate && validateField(fieldName);\n\t\t\t\treturn () => unregister(fieldName);\n\t\t\t}\n\n\t\t\tcurrent[fieldName] = 1;\n\t\t\tfieldRef.current[fieldName] = {\n\t\t\t\tname: fieldName,\n\t\t\t\toptions: fieldOptions,\n\t\t\t};\n\t\t\tfieldOptions.value !== void 0 && setValue(fieldName, fieldOptions.value);\n\t\t\tfieldOptions.action !== void 0 &&\n\t\t\t\tsetAction(fieldName, fieldOptions.action);\n\t\t\talwaysValidate && validateField(fieldName);\n\n\t\t\treturn () => unregister(fieldName);\n\t\t},\n\t\t[validateField],\n\t);\n\n\tconst removeAction = useCallback((fieldName: keyof TValues) => {\n\t\tif (!fieldRef.current[fieldName]) return;\n\t\tsetFormActions((actions) => {\n\t\t\tconst _actions = {...actions};\n\t\t\tdelete _actions[fieldName];\n\t\t\treturn _actions;\n\t\t});\n\t}, []);\n\n\t/** Set action for field */\n\tconst setAction = useCallback(\n\t\t(fieldName: keyof TValues, action: TAction): void => {\n\t\t\tif (!fieldRef.current[fieldName]) return;\n\t\t\tsetFormActions((actions) => ({\n\t\t\t\t...actions,\n\t\t\t\t[fieldName]: action,\n\t\t\t}));\n\t\t},\n\t\t[],\n\t);\n\n\t/** Set field(s) value */\n\tconst setValue = useCallback(\n\t\t(fieldName: Partial | keyof TValues, value?: any) => {\n\t\t\t// An object of values\n\t\t\tif (typeof fieldName !== 'string') {\n\t\t\t\tObject.keys(fieldName).forEach((name) => {\n\t\t\t\t\tsetValue(name, fieldName[name]);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// TODO: maybe we do not require registering of fields if we want to allow this\n\t\t\t// to be used as a headless form like solution\n\t\t\t// But I set it up this way with the expectation that you would send information\n\t\t\t// about the fields this will track (validation etc) - so it really is not that\n\t\t\t// outrageous to expect someone to take the time to simply call\n\t\t\t// `form.register('foo', {required: true})`\n\t\t\t// This form does allow for passing in values at init that will be passed back out\n\t\t\t// on submit - just will not allow the manipulation of the values if they are not registered\n\t\t\t// IDK - something to think about (something i was thinking about while writing tests)\n\t\t\tif (!fieldRef.current[fieldName]) return;\n\n\t\t\tconst {alwaysValidate} = optionsRef.current;\n\n\t\t\tconst changed = checkFieldChanged(\n\t\t\t\tfieldName,\n\t\t\t\tvalue,\n\t\t\t\toriginalValuesRef.current[fieldName as string],\n\t\t\t\tformMultipleValuesRef.current[fieldName],\n\t\t\t\tformActionsRef.current[fieldName],\n\t\t\t);\n\t\t\tsetChange(fieldName, changed);\n\n\t\t\t// No need to go further if the value is the same as the currently set one\n\t\t\tif (!changed && valuesMatch(formValuesRef.current[fieldName], value))\n\t\t\t\treturn;\n\n\t\t\t// Let's assume that if the field has not changed that there are no errors\n\t\t\t// The component using this should opt to validate the form before submitting\n\t\t\t// at which point \"original values\" that fail validation will be caught\n\t\t\t// If using the submit handler we offer, validation will be called before calling submit\n\t\t\t// method in component\n\t\t\tchanged || alwaysValidate\n\t\t\t\t? validateField(fieldName, value)\n\t\t\t\t: clearError(fieldName);\n\n\t\t\tsetFormValues((values) => ({\n\t\t\t\t...values,\n\t\t\t\t[fieldName]: value,\n\t\t\t}));\n\t\t},\n\t\t[checkFieldChanged, clearError, setChange, validateField],\n\t);\n\n\t/** Un-register field */\n\tconst unregister = useCallback(\n\t\t(fieldName: keyof TValues) => {\n\t\t\t// Unregister all fields\n\t\t\tif (!fieldName) {\n\t\t\t\tclearError();\n\t\t\t\tresetChanges();\n\t\t\t\tsetFormValues({} as TValues);\n\t\t\t\tfieldRef.current = {} as FormFieldRef;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We have no records of ever registering this field even once\n\t\t\tconst {current} = multiFieldsRef;\n\t\t\tif (!current[fieldName] == null) return;\n\n\t\t\tconst {removeValueOnUnregister} = optionsRef.current;\n\n\t\t\t// If it is the only record, delete\n\t\t\tif (current[fieldName] === 1) {\n\t\t\t\tdelete current[fieldName];\n\t\t\t\tclearError(fieldName);\n\t\t\t\tsetChange(fieldName, false);\n\t\t\t\tremoveAction(fieldName);\n\t\t\t\t// Remove from values\n\t\t\t\tremoveValueOnUnregister &&\n\t\t\t\t\tsetFormValues((formValues) => {\n\t\t\t\t\t\tconst values = {...formValues};\n\t\t\t\t\t\tdelete values[fieldName];\n\t\t\t\t\t\treturn values;\n\t\t\t\t\t});\n\t\t\t\tdelete fieldRef.current[fieldName];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Otherwise just reduce the count\n\t\t\tcurrent[fieldName]--;\n\t\t},\n\t\t[clearError, resetChanges, setChange, validate],\n\t);\n\n\tconst updateOptions = useCallback((fieldName: keyof TValues, options) => {\n\t\tif (!fieldRef.current[fieldName]) return;\n\t\tfieldRef.current[fieldName].options = {\n\t\t\t...fieldRef.current[fieldName].options,\n\t\t\t...options,\n\t\t};\n\t}, []);\n\n\t/** Reset form */\n\tconst reset = useCallback(\n\t\t(\n\t\t\twithValues?: Partial,\n\t\t\twithAction?: TAction,\n\t\t\twithMultipleValues?: FormMultipleValues,\n\t\t) => {\n\t\t\tconst values: FormValues = {};\n\t\t\t// Reset all to null\n\t\t\tObject.keys(fieldRef.current).forEach((name) => {\n\t\t\t\tvalues[name] = null;\n\t\t\t});\n\t\t\t// Combine with any passed in values\n\t\t\tsetFormValues({...values, ...withValues} as TValues);\n\t\t\tsetSubmissionError(null);\n\t\t\tsetFormErrors({} as FormValidationErrors);\n\t\t\tsetOriginalValues({...values, ...withValues} as TValues);\n\t\t\tsetFormMultipleValues((withMultipleValues || {}) as TValues);\n\t\t\twithAction ? resetActions(withAction) : resetActions();\n\t\t\tclearError();\n\t\t\tresetChanges();\n\n\t\t\tconst {onReset} = optionsRef.current;\n\t\t\tonReset && onReset();\n\t\t},\n\t\t[clearError, resetActions, resetChanges],\n\t);\n\n\tconst handleSubmit = useCallback(\n\t\t(callback: Function | undefined = options.onSubmit) => async (\n\t\t\tevent?: React.FormEvent,\n\t\t) => {\n\t\t\tif (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\n\t\t\tif (isSubmittingRef.current) return;\n\t\t\tsetSubmissionError(null);\n\t\t\tsetIsSubmitting(true);\n\n\t\t\ttry {\n\t\t\t\tconst valid = await validate();\n\n\t\t\t\t// Check that we are still mounted\n\t\t\t\tif (!shouldAct()) return;\n\n\t\t\t\tif (!valid) return false;\n\n\t\t\t\tconst {resetOnSubmit} = optionsRef.current;\n\n\t\t\t\tconst result = callback\n\t\t\t\t\t? await callback(\n\t\t\t\t\t\t\tformValuesRef.current,\n\t\t\t\t\t\t\tformChangesRef.current,\n\t\t\t\t\t\t\tformActionsRef.current,\n\t\t\t\t\t )\n\t\t\t\t\t: undefined;\n\n\t\t\t\tact(() => {\n\t\t\t\t\tif (resetOnSubmit) {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tresetWithCurrentValues,\n\t\t\t\t\t\t\tresetWithOriginalValues,\n\t\t\t\t\t\t} = optionsRef.current;\n\t\t\t\t\t\treset(\n\t\t\t\t\t\t\tresetWithOriginalValues\n\t\t\t\t\t\t\t\t? originalValuesRef.current\n\t\t\t\t\t\t\t\t: resetWithCurrentValues\n\t\t\t\t\t\t\t\t? formValuesRef.current\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetOriginalValues(formValuesRef.current);\n\t\t\t\t\t\tconst multipleValues = {...formMultipleValuesRef.current};\n\t\t\t\t\t\tfor (const key in formChangesRef.current) {\n\t\t\t\t\t\t\tdelete multipleValues[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFormMultipleValues(multipleValues);\n\t\t\t\t\t\tresetChanges();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn result as TReturn | undefined;\n\t\t\t} catch (ex) {\n\t\t\t\tsetSubmissionError(ex.message);\n\t\t\t\t// Do nothing (for now) - the submission was just not successful\n\t\t\t} finally {\n\t\t\t\tact(() => setIsSubmitting(false));\n\t\t\t}\n\t\t},\n\t\t[reset, resetChanges, validate, options.onSubmit],\n\t);\n\n\treturn {\n\t\tfieldRef,\n\t\toptions,\n\n\t\tactions: formActions,\n\t\tactionsRef: formActionsRef,\n\t\tclearAction,\n\t\tgetAction,\n\t\tsetAction,\n\t\tresetActions,\n\t\tsetSubmissionError,\n\t\tsubmissionError,\n\n\t\tchanges: formChanges,\n\t\tchangesRef: formChangesRef,\n\t\thasChanged,\n\t\thasChangedRef,\n\t\tsetChange,\n\t\tresetChanges,\n\t\tcheckFieldChanged,\n\n\t\terrors: formErrors,\n\t\terrorsRef: formErrorsRef,\n\t\tsetError,\n\t\tclearError,\n\t\tisValid,\n\t\tisValidRef,\n\t\tvalidate,\n\t\tvalidateField,\n\n\t\tregister,\n\t\tunregister,\n\t\thandleSubmit,\n\t\treset,\n\t\tisSubmitting,\n\n\t\tmultipleValues: formMultipleValues,\n\t\tmultipleValuesRef: formMultipleValuesRef,\n\t\tsetMultipleValues: setFormMultipleValues,\n\n\t\toriginalValues,\n\t\toriginalValuesRef,\n\t\tsetValue,\n\t\tsetValues: setFormValues,\n\t\tupdateOptions,\n\t\tvalues: formValues,\n\t\tvaluesRef: formValuesRef,\n\t};\n}\n\n// Typescript cannot infer `ReturnType` of a generic, so you must roll your own\nclass InferWrapper<\n\tTValues extends FormValues = FormValues,\n\tTAction extends FormAction = FormAction,\n\tTReturn = any\n> {\n\tmediate = (...args: any[]) => useForm(...args);\n}\n\nexport type FormType<\n\tTValues extends FormValues = FormValues,\n\tTAction extends FormAction = FormAction,\n\tTReturn = any\n> = ReturnType['mediate']>;\n\nexport type FormParameters = [\n\t(TValues | undefined)?,\n\t(FormOptions | undefined)?,\n];\n","import React from 'react';\nimport {useEffect} from 'react';\n\nimport {FormFieldRefOptions, InputForm} from '@netx/core-components';\n\nexport default function useFormInput(\n\tfieldName: string,\n\tvalue: any,\n\tform?: InputForm,\n\toptions?: FormFieldRefOptions,\n) {\n\t// Setup/teardown\n\tuseEffect(() => {\n\t\tif (!form || !fieldName) return;\n\t\tconst _fieldName = fieldName;\n\n\t\tform.register(fieldName, options);\n\t\tform.setValue(fieldName, value);\n\t\treturn () => {\n\t\t\tform.unregister(_fieldName);\n\t\t};\n\t}, [fieldName]);\n\n\tuseEffect(() => {\n\t\tif (!form || !fieldName) return;\n\t\tform.updateOptions(fieldName, options);\n\t}, [options?.required, options?.validator, options?.hasChanged]);\n\n\tuseEffect(() => {\n\t\tif (!form || !fieldName) return;\n\t\tform.setValue(fieldName, value);\n\t}, [value]);\n}\n","export const DATA_SET_SYSTEM_PROPERTIES = {\n\tENABLED: 'dataManager.enabled',\n};\n","export const ATTRIBUTE_ID = 'attributeid';\n\nimport {DATA_SET_SYSTEM_PROPERTIES} from '@netx/core-data-set/constants';\n\nexport const ATTRIBUTE_TYPE = {\n\tTEXT: 1,\n\tTEXTAREA: 2,\n\t/** aka pulldown */\n\tSELECT: 3,\n\tDATE: 4,\n\tMULTISELECT: 5,\n\t/** This requires the system property `dataManager.enabled` be `true` */\n\tTAG: 6,\n\tNUMBER: 7,\n\t/** Stupid terrible beast */\n\tHIERARCHICAL: 8,\n\t/** pretty much deprecated. but it works... */\n\tSEMANTIC: 12,\n\t/** This requires the system property `metadata.vocabulary.enabled` be `true` */\n\tTAG_VOCAB: 13,\n};\n\nexport const ATTRIBUTE_ACTION = {\n\tAPPEND: 'append',\n\tCLEAR: 'clear',\n\tOVERWRITE: 'overwrite',\n\tREMOVE: 'remove',\n\tSET_IF_BLANK: 'set_if_blank',\n};\n\nexport const ATTRIBUTE_ACCESS_FILTER_TYPES = [\n\tATTRIBUTE_TYPE.SELECT,\n\tATTRIBUTE_TYPE.MULTISELECT,\n\tATTRIBUTE_TYPE.TAG_VOCAB,\n];\n\nexport const ATTRIBUTE_APPENDABLE_TYPES = [\n\tATTRIBUTE_TYPE.TEXT,\n\tATTRIBUTE_TYPE.TEXTAREA,\n\tATTRIBUTE_TYPE.MULTISELECT,\n\tATTRIBUTE_TYPE.TAG,\n\tATTRIBUTE_TYPE.SEMANTIC,\n\tATTRIBUTE_TYPE.TAG_VOCAB,\n];\n\nexport const ATTRIBUTE_AUTO_LOOKUP_TYPES = [\n\tATTRIBUTE_TYPE.TAG,\n\tATTRIBUTE_TYPE.SEMANTIC,\n\tATTRIBUTE_TYPE.TAG_VOCAB,\n];\n\nexport const ATTRIBUTE_DEFAULTABLE_TYPES = [\n\tATTRIBUTE_TYPE.DATE,\n\tATTRIBUTE_TYPE.NUMBER,\n\tATTRIBUTE_TYPE.TEXT,\n\tATTRIBUTE_TYPE.TEXTAREA,\n];\n\n// !!! hierarchical is not supported for edit !!!\n// !!! I REPEAT: hierarchical is not editable !!!\nexport const ATTRIBUTE_EDITABLE_TYPES = Object.values(ATTRIBUTE_TYPE).filter(\n\t(type) => type !== ATTRIBUTE_TYPE.HIERARCHICAL,\n);\n\nexport const ATTRIBUTE_FACET_TYPES = [\n\tATTRIBUTE_TYPE.SELECT,\n\tATTRIBUTE_TYPE.MULTISELECT,\n\tATTRIBUTE_TYPE.TAG,\n\tATTRIBUTE_TYPE.TAG_VOCAB,\n];\n\nexport const ATTRIBUTE_MULTIPLE_VALUE_TYPES = [\n\tATTRIBUTE_TYPE.MULTISELECT,\n\tATTRIBUTE_TYPE.TAG,\n\tATTRIBUTE_TYPE.SEMANTIC,\n\tATTRIBUTE_TYPE.TAG_VOCAB,\n];\n\nexport const ATTRIBUTE_NUMBER_SPEC_2_TYPE = {\n\tWHOLE: 0,\n\tONE_DECIMAL: 1,\n\tTWO_DECIMALS: 2,\n\tTHREE_DECIMALS: 3,\n\t/** \"free,\" but not negative */\n\tUNLIMITED: 4,\n\t/** TODO: what is 'sortable' - should all number not be sortable? */\n\tSORTABLE: 5,\n};\n\nexport const ATTRIBUTE_NUMBER_TESTS: Record<\n\ttypeof ATTRIBUTE_NUMBER_SPEC_2_TYPE[keyof typeof ATTRIBUTE_NUMBER_SPEC_2_TYPE],\n\tstring\n> = {\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.ONE_DECIMAL]: `^(-?\\\\d+(\\\\.\\\\d{0,1})?|-?\\\\.\\\\d{1})$`,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.SORTABLE]: `.*`,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.THREE_DECIMALS]: `^(-?\\\\d+(\\\\.\\\\d{0,3})?|-?\\\\.\\\\d{1,3})$`,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.TWO_DECIMALS]: `^(-?\\\\d+(\\\\.\\\\d{0,2})?|-?\\\\.\\\\d{1,2})$`,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.UNLIMITED]: `^\\\\d*\\\\.?\\\\d+$`,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.WHOLE]: `^-?\\\\d+$`,\n};\n\nexport const ATTRIBUTE_NUMBER_MAX_DECIMAL = {\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.ONE_DECIMAL]: 1,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.THREE_DECIMALS]: 3,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.TWO_DECIMALS]: 2,\n\t[ATTRIBUTE_NUMBER_SPEC_2_TYPE.UNLIMITED]: Infinity,\n};\n\nexport const ATTRIBUTE_OBJECT_TYPE = {\n\tASSET: 'asset',\n\tCLIP: 'clip',\n};\n\nexport const ATTRIBUTE_REMOVABLE_TYPES = [\n\tATTRIBUTE_TYPE.MULTISELECT,\n\tATTRIBUTE_TYPE.TAG,\n\tATTRIBUTE_TYPE.SEMANTIC,\n\tATTRIBUTE_TYPE.TAG,\n];\n\nexport const ATTRIBUTE_VOCABULARY_TYPES = [\n\tATTRIBUTE_TYPE.SELECT,\n\tATTRIBUTE_TYPE.MULTISELECT,\n\tATTRIBUTE_TYPE.TAG,\n\tATTRIBUTE_TYPE.TAG_VOCAB,\n];\n\nexport const ATTRIBUTE_SYSTEM = {\n\tASSET_ID: 'assetId',\n\tCATEGORY_PATHS: 'categoryPaths',\n\tCHECKSUM: 'checksum',\n\tCREATION_DATE: 'creationdate',\n\tDIMENSIONS: 'dimensions',\n\tEXPIRE_DATE: 'expireDate',\n\tFILE: 'file',\n\tFILE_FORMAT_FAMILY: 'fileFormatFamily',\n\tFILE_SIZE_2: 'fileSize2',\n\tFILE_TYPE_LABEL: 'filetypelabel',\n\tHEIGHT: 'height',\n\tIMPORT_DATE: 'importDate',\n\tMOD_DATE: 'moddate',\n\tMOD_USER: 'modUser',\n\tNAME: 'name',\n\tPATH: 'path',\n\tSMART_LABELS: 'smart labels',\n\tTHUMB_PATH: 'thumbPath',\n\tWIDTH: 'width',\n};\n\nexport const ATTRIBUTE_SYSTEM_ID: Record<\n\ttypeof ATTRIBUTE_SYSTEM[keyof typeof ATTRIBUTE_SYSTEM],\n\tnumber\n> = {\n\t[ATTRIBUTE_SYSTEM.NAME]: -100,\n\t[ATTRIBUTE_SYSTEM.FILE]: -101,\n\t[ATTRIBUTE_SYSTEM.ASSET_ID]: -102,\n\t[ATTRIBUTE_SYSTEM.FILE_SIZE_2]: -104,\n\t[ATTRIBUTE_SYSTEM.FILE_TYPE_LABEL]: -105,\n\t[ATTRIBUTE_SYSTEM.FILE_FORMAT_FAMILY]: -106,\n\t[ATTRIBUTE_SYSTEM.PATH]: -107,\n\t[ATTRIBUTE_SYSTEM.CATEGORY_PATHS]: -108,\n\t[ATTRIBUTE_SYSTEM.EXPIRE_DATE]: -109,\n\t[ATTRIBUTE_SYSTEM.MOD_DATE]: -110,\n\t[ATTRIBUTE_SYSTEM.CREATION_DATE]: -111,\n\t[ATTRIBUTE_SYSTEM.IMPORT_DATE]: -112,\n\t[ATTRIBUTE_SYSTEM.MOD_USER]: -113,\n\t[ATTRIBUTE_SYSTEM.WIDTH]: -114,\n\t[ATTRIBUTE_SYSTEM.HEIGHT]: -115,\n\t[ATTRIBUTE_SYSTEM.CHECKSUM]: -117,\n\t[ATTRIBUTE_SYSTEM.THUMB_PATH]: -118,\n\t[ATTRIBUTE_SYSTEM.SMART_LABELS]: -119,\n\t[ATTRIBUTE_SYSTEM.DIMENSIONS]: -120,\n};\n\nexport const ATTRIBUTE_SYSTEM_PROPERTIES = {\n\tSEMANTICS_ENABLED: 'metadata.semantic.enabled',\n\tDATA_MANAGER_ENABLED: DATA_SET_SYSTEM_PROPERTIES.ENABLED,\n\tVIDEO_CLIPS_ENABLED: 'asset.constituent.videoClips.enabled',\n\tVOCABULARY_ENABLED: 'metadata.vocabulary.enabled',\n};\n","/**\n * Asset attribute data\n * This model represents a single record of an asset's attribute datum\n * If the attribute data is for a true multivalue attribute, `this.valuesCollection` will be populated with a record for each value in the `values` array\n * `this.valuesCollection` is just an attributes collection with amlagamated attribute models (read: monster)\n * @class\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport AttributesCollection from '../collections/attributes';\n\nexport default class AttributeData extends Base {\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'templateId';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {string} defaults.templateId - ID\n\t * @property {number} defaults.assetId - Asset id (redundant)\n\t * @property {string} defaults.permission - Permission (d/r/w)\n\t * @property {array} defaults.values - Attribute values\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\ttemplateId: 0,\n\t\t\tassetId: 0,\n\t\t\tpermission: 'r',\n\t\t\tvalues: [],\n\n\t\t\t// Client\n\t\t\tautofilled: false,\n\t\t};\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn ['autofilled'];\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attributes\n\t * @param {object} opts Collection options\n\t * @listens module:system#system:attribute:edit:success\n\t */\n\tconstructor(models, opts = {}) {\n\t\t// Circular reference fix\n\t\t// attributes collection requires asset attribute datum collection which\n\t\t// is the top level parent of this model\n\t\t//AttributesCollection = require('../collections/attributes').default;\n\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * @memberof Netx.Models.AttributeData\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t/**\n\t\t * Will be used as a one off for our multivalue childViews and data\n\t\t * @memberof Netx.Models.AttributeData\n\t\t * @alias valuesCollection\n\t\t * @type {Netx.Collections.AssetAttributes}\n\t\t */\n\t\tthis.valuesCollection = new AttributesCollection([]);\n\n\t\tthis.metadataLookupEnabled = Netx.getPreference(\n\t\t\t'category.metadataDatasetLookupEnabled',\n\t\t\ttrue,\n\t\t);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'change:values', () => {\n\t\t\tthis.populateValuesCollection();\n\t\t});\n\n\t\t// Wait for initialize to fully complete\n\t\t_.defer(_.bind(this.populateValuesCollection, this));\n\n\t\t/**\n\t\t * Store original value\n\t\t * @memberof module:asset/models/attributeData\n\t\t * @type {mixed}\n\t\t */\n\t\tthis.originalValue = this.getValue();\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(dispatcher, 'system:attribute:edit:success', model => {\n\t\t\tif (model.id === this.id && model !== this) {\n\t\t\t\tthis.set(\n\t\t\t\t\t_.clone(_.omit(model.attributes, 'attributeid', 'templateid')),\n\t\t\t\t);\n\t\t\t}\n\t\t})\n\t\t\t// Always have one empty value in last place\n\t\t\t.listenTo(\n\t\t\t\tthis.valuesCollection,\n\t\t\t\t'change',\n\t\t\t\t_.debounce(() => {\n\t\t\t\t\tconst lastModel = _.last(this.valuesCollection.models);\n\t\t\t\t\tconst value = (lastModel && lastModel.getValue()) || [];\n\n\t\t\t\t\tif (!lastModel || (value.length && value[0] !== '')) {\n\t\t\t\t\t\tthis.addValue();\n\t\t\t\t\t}\n\t\t\t\t}, 50),\n\t\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value to add\n\t */\n\taddValue(value) {\n\t\tif (!this.get('multivalue')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make a safe copy so we do not pollute original data\n\t\tconst data = this.createValueModelAttributes(value);\n\n\t\t// Always set to an empty value in this.attributes.values (and quietly so we do not trigger repopulation)\n\t\t// since the values collection models will cache their current values\n\t\tthis.set('values', this.get('values').concat(''), {silent: true});\n\n\t\tthis.valuesCollection.add(data);\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} perm Permission string ( \"delete\", \"write/(edit)\", \"share\", etc )\n\t * @return {boolean} Allowed\n\t */\n\tallows(perm) {\n\t\tif (perm == null) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst template = this.getTemplate();\n\t\tif (!template.isValueWritable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tswitch (perm) {\n\t\t\tcase 'delete':\n\t\t\t\treturn this.canManage();\n\t\t\tcase 'edit':\n\t\t\tcase 'write':\n\t\t\t\treturn this.canEdit();\n\t\t\tdefault:\n\t\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\tcanEdit() {\n\t\treturn (\n\t\t\tthis.get('readOnly') !== true &&\n\t\t\t(this.get('permission') === 'w' || this.canManage())\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\tcanManage() {\n\t\treturn !this.has('permission') || this.get('permission') === 'd';\n\t}\n\n\t/**\n\t * @method\n\t */\n\tclearChanges() {\n\t\tthis.changed = {};\n\t\tthis.originalValue = this.getValue();\n\t\treturn this;\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {object}\n\t */\n\tcreateValueModelAttributes(value) {\n\t\tif (_.isUndefined(value) || _.isNull(value)) {\n\t\t\tvalue = [''];\n\t\t}\n\t\tif (!_.isArray(value)) {\n\t\t\tvalue = [value];\n\t\t}\n\t\treturn _.extend({}, _.clone(this.self()), {\n\t\t\t// This is purely for the sake of having a unique id, this will not be used in any other way\n\t\t\tattributeid: _.uniqueId('attribute-value-'),\n\t\t\tvalues: value,\n\t\t});\n\t}\n\n\t/** @override */\n\tgetLabel() {\n\t\tconst template = this.getTemplate();\n\t\treturn template && template.getLabel();\n\t}\n\n\t/**\n\t * @method\n\t * @return {module:asset/models/assetAttribute}\n\t */\n\tgetTemplate() {\n\t\treturn this.assetAttributes.get(this.id);\n\t}\n\n\t/**\n\t * @method\n\t * @return {string}\n\t */\n\tgetTypeName() {\n\t\tconst template = this.getTemplate();\n\t\treturn template && template.getTypeName();\n\t}\n\n\t/**\n\t * @method\n\t * @return {array|mixed} Value(s)\n\t */\n\tgetValue() {\n\t\t// Is not a multivalue type attribute\n\t\tif (!this.get('multivalue')) {\n\t\t\treturn this.get('values')[0] || '';\n\t\t}\n\n\t\treturn this.get('values');\n\t}\n\n\t/**\n\t * @method\n\t * @return {boolean}\n\t */\n\thasValue() {\n\t\tconst valuesCollection = this.valuesCollection;\n\n\t\tfor (let i = 0, c = valuesCollection.length, vals; i < c; i++) {\n\t\t\tvals = valuesCollection.at(i).get('values');\n\t\t\tif (vals.length && vals[0] !== '') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @return {boolean}\n\t */\n\thasValueChanged(value) {\n\t\tvalue = value != null ? value : this.get('values');\n\n\t\tlet originalValue = this.get('multiple') ? '' : this.originalValue;\n\n\t\tif (!_.isArray(originalValue)) {\n\t\t\tvalue = value !== '' ? [value] : [];\n\t\t}\n\n\t\tif (!_.isArray(originalValue)) {\n\t\t\toriginalValue = originalValue !== '' ? [originalValue] : [];\n\t\t}\n\t\treturn value.join() !== originalValue.join();\n\t}\n\n\t/**\n\t * Try to perform an auto-complete of attributes (DAM-6749)\n\t * @method\n\t */\n\tmetadataLookup() {\n\t\tconst attrTemplate = this.getTemplate();\n\t\tif (!attrTemplate.get('keyDatasets').length) return;\n\n\t\tattrTemplate\n\t\t\t.metadataDatasetLookup(this.getValue(), {\n\t\t\t\tduplicateQueryPolicy: 'abort',\n\t\t\t})\n\t\t\t.then(matches => {\n\t\t\t\tthis.trigger('metadataLookup:complete', this, _.compact(matches));\n\t\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {boolean} useOriginalValues Use original values\n\t * @param {boolean} dontMerge Do not merge the models\n\t */\n\tpopulateValuesCollection(useOriginalValues, dontMerge) {\n\t\tconst values = useOriginalValues ? this.originalValue : this.get('values');\n\t\t// Map out our `values` array to objects for model creation\n\t\tconst data = _.map(values, value => this.createValueModelAttributes(value));\n\n\t\t// Always have at least one empty at the end\n\t\tdata.push(this.createValueModelAttributes());\n\n\t\tthis.valuesCollection.set(data, {merge: dontMerge !== true});\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} id Value id\n\t */\n\tremoveValue(id) {\n\t\tif (!this.get('multivalue')) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst valuesCollection = this.valuesCollection;\n\t\tconst valueModel = valuesCollection.get(id);\n\t\tconst values = this.get('values');\n\n\t\tif (valueModel) {\n\t\t\tconst idx = _.indexOf(values, valueModel.get('value')[0]);\n\t\t\tif (idx > -1) {\n\t\t\t\tvalues.splice(idx, 1, '');\n\t\t\t\t// Remove quietly so we do not trigger repopulation\n\t\t\t\tthis.set('value', values, {silent: true});\n\t\t\t}\n\t\t}\n\n\t\tvaluesCollection.remove(id);\n\n\t\t// Always have at least one empty field\n\t\tconst count = valuesCollection.length;\n\t\tif (!count) {\n\t\t\tthis.addValue();\n\t\t} else {\n\t\t\tconst vals = valuesCollection.at(count - 1).get('values');\n\t\t\tif (!vals.length || vals[0] !== '') {\n\t\t\t\tthis.addValue();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} opts Options\n\t */\n\tresetValues(opts) {\n\t\tconst values = this.originalValue;\n\t\tthis.setValue(values, opts);\n\t\tthis.clearChanges();\n\t}\n\n\t/**\n\t * @method\n\t * @param {mixed} value Value\n\t * @param {object} opts Options\n\t */\n\tsetValue(value, opts = {}) {\n\t\t// Must already exist and have permission to edit\n\t\tif (!this.canEdit()) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Undefined/null/empty string are all considered an empty array\n\t\tif (_.isUndefined(value) || _.isNull(value) || value === '') {\n\t\t\tvalue = [];\n\t\t}\n\n\t\t// Regardless of \"multivalue\" value array - all values are dealt with as arrays\n\t\t// Not already an array\n\t\t// Is an array but is a multivalue value attribute, so there must be at least one value in the array and that value must also be an array\n\t\tif (!_.isArray(value)) {\n\t\t\tvalue = [value];\n\t\t}\n\n\t\t// Set asset attribute value(s)\n\t\tthis.set(\n\t\t\t{\n\t\t\t\tvalues: value,\n\t\t\t\tautofilled: opts.autofilled === true,\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * @method\n\t * @static\n\t * @param {module:asset/models/attribute} attrModel Attribute template\n\t * @param {object} opts Options\n\t */\n\tstatic CreateFromTemplate(attrModel, opts = {}) {\n\t\tif (!attrModel) {\n\t\t\tthrow new Error('Attribute template required');\n\t\t}\n\n\t\treturn new this(\n\t\t\t_.extend(\n\t\t\t\t_.omit(\n\t\t\t\t\tattrModel.attributes,\n\t\t\t\t\t'attributeid',\n\t\t\t\t\t'objectTypes',\n\t\t\t\t\t'templateid',\n\t\t\t\t\t'value',\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttemplateId: attrModel.id,\n\t\t\t\t\tpermission: 'r',\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t),\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AttributeData';\n\t}\n}\n","export {default} from '../FallbackMessage';\nexport * from '../FallbackMessage';\n","import {i18n} from '@netx/core/i18n';\n\nimport {ATTRIBUTE_CONTEXT} from './constants';\nimport type {AttributeContext} from './types';\n\nexport const ATTRIBUTE_CONTEXT_LABELS: Record = <\n\tconst\n>{\n\t[ATTRIBUTE_CONTEXT.DETAIL]: i18n.t('i18n.assetDetail'),\n\t[ATTRIBUTE_CONTEXT.SORT]: i18n.t('i18n.sort'),\n};\n\nexport const ATTRIBUTE_MESSAGES = {\n\tNO_ATTRIBUTES: i18n.t('i18n.noAttributes'),\n};\n\nexport const DEFAULT_SEARCH_PLACEHOLDER = i18n.t('i18n.search');\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","import {MouseEvent as ReactMouseEvent} from 'react';\nimport equal from 'fast-deep-equal/es6/react';\n\nexport const compareProps = (ignoreProps?: string[], key?: string) => {\n\treturn function (nextProps: any, lastProps: any) {\n\t\treturn equal(nextProps, lastProps);\n\t};\n};\n\nexport function preventContextMenu(\n\tevent: ReactMouseEvent,\n) {\n\tevent.preventDefault();\n}\n\ntype Ref =\n\t| React.MutableRefObject\n\t| React.Ref\n\t| React.RefObject\n\t// | ((node: N | null) => void)\n\t| undefined\n\t| null;\n/**\n * When multiple refs would like to share the same node but cannot be used in a hook format.\n * Like when utilizing a ref from the children callback of `InfiniteLoader`\n @example\n
(ref, anotherRef, andAnotherRef)}\n */\nexport function combineRefs(...refs: Ref[]) {\n\treturn (node: N) => {\n\t\trefs.forEach((ref) => {\n\t\t\tif (!ref) return;\n\t\t\ttypeof ref === 'function'\n\t\t\t\t? ref(node)\n\t\t\t\t: ((ref as React.MutableRefObject).current = node);\n\t\t});\n\t};\n}\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","import Netx from '@netx/core/bootstrap';\nimport {i18n} from '@netx/core/i18n';\nimport _ from 'underscore';\n\nexport const ids = {\n\ttext: 1,\n\ttextarea: 2,\n\tselect: 3, // these often have spec1 = 4\n\tdate: 4,\n\tmultiselect: 5,\n\ttag: 6, // This requires the system property dataManager.enabled = true. Can be check with Netx.user.prefs.get('dataManager')['enabled']\n\tnumber: 7,\n\thierarchical: 8, // Stupid terrible beast\n\tsemantic: 12,\n\ttagVocab: 13,\n};\n\nexport let defaultAttributeColumns = [\n\t{code: 'name', name: i18n.t('i18n.name')},\n\t{code: 'filetypelabel', name: i18n.t('i18n.fileType')},\n\t{code: null, name: i18n.t('i18n.fileInfo')},\n\t{code: 'fileSize2', name: i18n.t('i18n.fileSize')},\n\t{code: 'creationdate', name: i18n.t('i18n.creationDate')},\n\t{code: null, name: i18n.t('i18n.status')},\n];\n\nexport const systemAttributes = [\n\t{code: 'name', key: 'name', id: -100, name: i18n.t('i18n.name')},\n\t{code: 'file', key: 'file', id: -101, name: i18n.t('i18n.file')},\n\t{code: 'assetId', key: 'assetId', id: -102, name: i18n.t('i18n.assetId')},\n\t{\n\t\tcode: 'fileSize2',\n\t\tkey: 'fileSize2',\n\t\tid: -104,\n\t\tname: i18n.t('i18n.fileSize'),\n\t},\n\t{\n\t\tcode: 'filetypelabel',\n\t\tkey: 'filetypelabel',\n\t\tid: -105,\n\t\tname: i18n.t('i18n.fileType'),\n\t},\n\t{\n\t\tcode: 'fileFormatFamily',\n\t\tkey: 'fileFormatFamily',\n\t\tid: -106,\n\t\tname: i18n.t('i18n.fileFormatFamily'),\n\t},\n\t{\n\t\tcode: 'categoryPaths',\n\t\tkey: 'folderPath',\n\t\tid: -108,\n\t\tname: i18n.t('i18n.folderPath'),\n\t},\n\t{code: 'moddate', key: 'moddate', id: -110, name: i18n.t('i18n.modDate')},\n\t{\n\t\tcode: 'creationdate',\n\t\tkey: 'creationdate',\n\t\tid: -111,\n\t\tname: i18n.t('i18n.creationDate'),\n\t},\n\t{\n\t\tcode: 'importDate',\n\t\tkey: 'importDate',\n\t\tid: -112,\n\t\tname: i18n.t('i18n.importDate'),\n\t},\n\t{\n\t\tcode: 'smart labels',\n\t\tkey: 'smart labels',\n\t\tid: -119,\n\t\tname: i18n.t('i18n.smartLabels'),\n\t},\n];\n\n// !!! hierarchical is not supported for edit !!!\n// !!! I REPEAT: hierarchical is not editable !!!\nexport let editable = [\n\t1, // text\n\t2, // textarea\n\t3, // select\n\t4, // date\n\t5, // multiselect\n\t6, // tag\n\t7, // number\n\t12, // semantic\n\t13, // tag (vocab)\n];\n\n// Attribute types that are allowed to be facets\nexport let facetAttributeSupport = [\n\t3, // Select\n\t5, // Multiselect\n\t6, // Tag\n\t13, // Tag (vocab)\n];\n\n// Attribute types that use vocabularies\nexport let vocabularyAttributes = [\n\t3, // Select\n\t5, // Multiselect\n\t6, // Tag\n\t13, // Tag (vocab)\n];\n\nexport let numberTypes = [\n\t{\n\t\tkey: 'whole',\n\t\tname: i18n.t('i18n.wholeNumber'),\n\t\tvalidator: '^-?\\\\d+$',\n\t\twarning: i18n.t('i18n.wholeNumberWarning'),\n\t},\n\t{\n\t\tkey: 'oneDecimal',\n\t\tname: i18n.t('i18n.oneDecimal'),\n\t\tvalidator: '^(-?\\\\d+(\\\\.\\\\d{0,1})?|-?\\\\.\\\\d{1})$',\n\t\twarning: i18n.t('i18n.oneDecimalWarning'),\n\t\tmaxDecimal: 1,\n\t},\n\t{\n\t\tkey: 'twoDecimals',\n\t\tname: i18n.t('i18n.twoDecimals'),\n\t\tvalidator: '^(-?\\\\d+(\\\\.\\\\d{0,2})?|-?\\\\.\\\\d{1,2})$',\n\t\twarning: i18n.t('i18n.twoDecimalsWarning'),\n\t\tmaxDecimal: 2,\n\t},\n\t{\n\t\tkey: 'threeDecimals',\n\t\tname: i18n.t('i18n.threeDecimals'),\n\t\tvalidator: '^(-?\\\\d+(\\\\.\\\\d{0,3})?|-?\\\\.\\\\d{1,3})$',\n\t\twarning: i18n.t('i18n.threeDecimalsWarning'),\n\t\tmaxDecimal: 3,\n\t},\n\t{\n\t\t// \"free,\" but not negative\n\t\tkey: 'unlimited',\n\t\tname: i18n.t('i18n.unlimited'),\n\t\tvalidator: '^\\\\d*\\\\.?\\\\d+$',\n\t\twarning: i18n.t('i18n.unlimitedWarning'),\n\t\tmaxDecimal: Infinity,\n\t},\n\t{\n\t\t// TODO: what is 'sortable' - should all number not be sortable ?\n\t\tkey: 'sortable',\n\t\tname: 'Sortable',\n\t\tvalidator: '.*',\n\t\twarning: '',\n\t\tmaxDecimal: Infinity,\n\t},\n];\n\n// Attribute object types asset/clip\n// See the dispatcher listener below for clip setup\nexport let objectTypes = [\n\t{\n\t\tkey: 'asset',\n\t\tlabel: i18n.t('i18n.asset'),\n\t},\n];\n\n// For the textTypes and numberTypes array, the array index is the value stored in the attribute spec field\n// (spec1 for text, spec2 for number)\nexport let textTypes = [\n\t{\n\t\tname: 'None',\n\t},\n\t{\n\t\tname: 'Clear',\n\t},\n];\n\nexport let typeLabels = {\n\tdate: i18n.t('i18n.date'),\n\thierarchical: i18n.t('i18n.hierarchical'),\n\tmultiselect: i18n.t('i18n.multiSelectBox'),\n\tnumber: i18n.t('i18n.number'),\n\tselect: i18n.t('i18n.pulldown'),\n\tsemantic: i18n.t('i18n.semantic'),\n\ttag: i18n.t('i18n.tag'),\n\ttagVocab: i18n.t('i18n.tagVocab'),\n\ttext: i18n.t('i18n.text'),\n\ttextarea: i18n.t('i18n.textarea'),\n};\n\nexport let types = _.invert(ids);\n\n// Update `objectTypes`\nif (Netx.getPreference('asset.constituent.videoClips.enabled', true)) {\n\tobjectTypes.push({\n\t\tkey: 'clip',\n\t\tlabel: i18n.t('i18n.assetConstituentClip'),\n\t});\n}\n\nconst dataManagerEnabled = Netx.getPreference('dataManager.enabled', true);\nconst semanticsEnabled = Netx.getPreference('metadata.semantic.enabled', true);\nconst vocabularyEnabled = Netx.getPreference(\n\t'metadata.vocabulary.enabled',\n\ttrue,\n);\n// hierarchical cannot be managed manually\n// tag (vocab) must have vocabualry enabled\n// tag can not be created properly if dataSet manager is off\n// semantics cannot be created if not enabled\nconst attributeTypeKeys = _.keys(\n\t_.omit(ids, (val, key, idx) => {\n\t\treturn (\n\t\t\tkey === 'hierarchical' ||\n\t\t\t(!vocabularyEnabled && key === 'tagVocab') ||\n\t\t\t(!dataManagerEnabled && key === 'tag') ||\n\t\t\t(!semanticsEnabled && key === 'semantic')\n\t\t);\n\t}),\n);\n\nexport let attributeTypes = _.map(attributeTypeKeys, (name) => {\n\treturn {\n\t\tlabel: typeLabels[name],\n\t\tname: name,\n\t\tvalue: ids[name],\n\t};\n});\n\nexport default {\n\tattributeTypes,\n\tdefaultAttributeColumns,\n\teditable,\n\tfacetAttributeSupport,\n\tnumberTypes,\n\tobjectTypes,\n\ttextTypes,\n\ttypes,\n};\n","/*!\n * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\nvar prefix = \"fal\";\nvar faAbacus = {\n prefix: 'fal',\n iconName: 'abacus',\n icon: [576, 512, [], \"f640\", \"M560 0c-8.84 0-16 7.16-16 16v64h-64V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v16h-96V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v16h-32V64c0-17.67-14.33-32-32-32H96c-17.67 0-32 14.33-32 32v16H32V16c0-8.84-7.16-16-16-16S0 7.16 0 16v488c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h96v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h64v72c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V16c0-8.84-7.16-16-16-16zM416 64h32v64h-32V64zm-192 0h32v64h-32V64zM96 64h32v64H96V64zm32 384H96v-64h32v64zm128 0h-32v-64h32v64zm192 0h-32v-64h32v64zm96-48h-64v-16c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v16h-96v-16c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v16h-32v-16c0-17.67-14.33-32-32-32H96c-17.67 0-32 14.33-32 32v16H32V272h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h128v128zM96 288v-64h32v64H96zm128 0v-64h32v64h-32zm128 0v-64h32v64h-32zm192-48H416v-16c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v16h-32v-16c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v16h-32v-16c0-17.67-14.33-32-32-32H96c-17.67 0-32 14.33-32 32v16H32V112h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h32v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h96v16c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-16h64v128z\"]\n};\nvar faAcorn = {\n prefix: 'fal',\n iconName: 'acorn',\n icon: [448, 512, [], \"f6ae\", \"M352 64H241.12c3.32-14.4 9.75-27.88 19.46-39.28 2.77-3.25 2.81-7.98-.21-11L249.04 2.39c-3.22-3.22-8.62-3.23-11.62.2-15.38 17.51-25.27 38.67-29.1 61.41H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32v32c0 98.06 55.4 187.7 143.11 231.55L224 512l48.89-24.45C360.6 443.7 416 354.06 416 256v-32c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96zm32 192c0 86.49-48.06 164.25-125.42 202.93L224 476.22l-34.58-17.29C112.06 420.25 64 342.49 64 256v-32h320v32zm32-64H32v-32c0-35.29 28.71-64 64-64h256c35.29 0 64 28.71 64 64v32z\"]\n};\nvar faAd = {\n prefix: 'fal',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm16 336c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V112c0-8.82 7.18-16 16-16h416c8.82 0 16 7.18 16 16v288zm-72-240h-16c-4.42 0-8 3.58-8 8v64.88c-9.45-5.5-20.28-8.88-32-8.88-35.35 0-64 28.65-64 64s28.65 64 64 64c11.72 0 22.55-3.38 32-8.88v.88c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V168c0-4.42-3.58-8-8-8zm-56 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zM196.97 165.13a8.007 8.007 0 0 0-7.47-5.13h-27.01c-3.31 0-6.28 2.04-7.47 5.13l-67.69 176C85.31 346.37 89.18 352 94.8 352h17.15c3.31 0 6.28-2.04 7.47-5.13L142.07 288h67.86l22.64 58.87a8.007 8.007 0 0 0 7.47 5.13h17.15c5.62 0 9.48-5.63 7.47-10.87l-67.69-176zM154.37 256L176 199.77 197.63 256h-43.26z\"]\n};\nvar faAddressBook = {\n prefix: 'fal',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h288c35.3 0 64-28.7 64-64v-32h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-52 288c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h288c17.6 0 32 14.4 32 32v384zM208 272c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm46.8 144c-19.5 0-24.4 7-46.8 7s-27.3-7-46.8-7c-21.2 0-41.8 9.4-53.8 27.4C100.2 326.1 96 339 96 352.9V392c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-39.1c0-7 2.1-13.8 6-19.6 5.6-8.3 15.8-13.2 27.3-13.2 12.4 0 20.8 7 46.8 7 25.9 0 34.3-7 46.8-7 11.5 0 21.7 5 27.3 13.2 3.9 5.8 6 12.6 6 19.6V392c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-39.1c0-13.9-4.2-26.8-11.4-37.5-12.3-18-32.9-27.4-54-27.4z\"]\n};\nvar faAddressCard = {\n prefix: 'fal',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M512 32H64C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm32 384c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V96c0-17.6 14.4-32 32-32h448c17.6 0 32 14.4 32 32v320zm-72-128H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0-64H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0-64H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM208 288c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm46.8 144c-19.5 0-24.4 7-46.8 7s-27.3-7-46.8-7c-21.2 0-41.8 9.4-53.8 27.4C100.2 342.1 96 355 96 368.9V392c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-23.1c0-7 2.1-13.8 6-19.6 5.6-8.3 15.8-13.2 27.3-13.2 12.4 0 20.8 7 46.8 7 25.9 0 34.3-7 46.8-7 11.5 0 21.7 5 27.3 13.2 3.9 5.8 6 12.6 6 19.6V392c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-23.1c0-13.9-4.2-26.8-11.4-37.5-12.3-18-32.9-27.4-54-27.4z\"]\n};\nvar faAdjust = {\n prefix: 'fal',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M256 40c119.945 0 216 97.337 216 216 0 119.945-97.337 216-216 216-119.945 0-216-97.337-216-216 0-119.945 97.337-216 216-216m0-32C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm-32 124.01v247.98c-53.855-13.8-96-63.001-96-123.99 0-60.99 42.145-110.19 96-123.99M256 96c-88.366 0-160 71.634-160 160s71.634 160 160 160V96z\"]\n};\nvar faAirConditioner = {\n prefix: 'fal',\n iconName: 'air-conditioner',\n icon: [576, 512, [], \"f8f4\", \"M544,0H32A32,32,0,0,0,0,32V192a32,32,0,0,0,32,32H544a32,32,0,0,0,32-32V32A32,32,0,0,0,544,0Zm0,192H32V32H544ZM72,160H504a8,8,0,0,0,8-8V136a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8v16A8,8,0,0,0,72,160ZM224,424a56,56,0,0,1-56,56H152a56.09,56.09,0,0,1-54.79-67.76c5.36-26.18,29.68-44.24,56.4-44.24H168a8,8,0,0,0,8-8V344a8,8,0,0,0-8-8H152a88.09,88.09,0,0,0-87.57,96.78C68.88,478.5,110,512,155.91,512H168a88,88,0,0,0,88-88V256H224ZM420.1,304H408a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8h16a56.09,56.09,0,0,1,54.79,67.76c-5.36,26.18-29.68,44.24-56.4,44.24H408a56,56,0,0,1-56-56V256H320V392a88,88,0,0,0,88,88h16a88.09,88.09,0,0,0,87.57-96.78C507.12,337.5,466,304,420.1,304Z\"]\n};\nvar faAirFreshener = {\n prefix: 'fal',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M160 240C115.875 240 80 275.875 80 320S115.875 400 160 400S240 364.125 240 320S204.125 240 160 240ZM160 368C133.5 368 112 346.5 112 320S133.5 272 160 272S208 293.5 208 320S186.5 368 160 368ZM224 128V32C224 14.406 209.594 0 192 0H128C110.406 0 96 14.406 96 32V128C43 128 0 171 0 224V448C0 483.203 28.812 512 64 512H256C291.188 512 320 483.203 320 448V224C320 171 277 128 224 128ZM128 32H192V128H128V32ZM288 448C288 465.672 273.688 480 256 480H64C46.312 480 32 465.672 32 448V224C32 188.797 60.812 160 96 160H224C259.188 160 288 188.797 288 224V448ZM496 224H480V208C480 199.156 472.844 192 464 192S448 199.156 448 208V224H432C423.156 224 416 231.156 416 240S423.156 256 432 256H448V272C448 280.844 455.156 288 464 288S480 280.844 480 272V256H496C504.844 256 512 248.844 512 240S504.844 224 496 224ZM432 64H448V80C448 88.844 455.156 96 464 96S480 88.844 480 80V64H496C504.844 64 512 56.844 512 48S504.844 32 496 32H480V16C480 7.156 472.844 0 464 0S448 7.156 448 16V32H432C423.156 32 416 39.156 416 48S423.156 64 432 64ZM416 160H432C440.844 160 448 152.844 448 144S440.844 128 432 128H416V112C416 103.156 408.844 96 400 96S384 103.156 384 112V128H368C359.156 128 352 135.156 352 144S359.156 160 368 160H384V176C384 184.844 391.156 192 400 192S416 184.844 416 176V160ZM352 64H368C376.844 64 384 56.844 384 48S376.844 32 368 32H352V16C352 7.156 344.844 0 336 0S320 7.156 320 16V32H304C295.156 32 288 39.156 288 48S295.156 64 304 64H320V80C320 88.844 327.156 96 336 96S352 88.844 352 80V64Z\"]\n};\nvar faAlarmClock = {\n prefix: 'fal',\n iconName: 'alarm-clock',\n icon: [512, 512, [], \"f34e\", \"M32 112a80.09 80.09 0 0 1 80-80 79.23 79.23 0 0 1 50 18 253.22 253.22 0 0 1 34.44-10.8C175.89 15.42 145.86 0 112 0A112.14 112.14 0 0 0 0 112c0 25.86 9.17 49.41 24 68.39a255.93 255.93 0 0 1 17.4-31.64A78.94 78.94 0 0 1 32 112zM400 0c-33.86 0-63.89 15.42-84.44 39.25A253.22 253.22 0 0 1 350 50.05a79.23 79.23 0 0 1 50-18 80.09 80.09 0 0 1 80 80 78.94 78.94 0 0 1-9.36 36.75A255.93 255.93 0 0 1 488 180.39c14.79-19 24-42.53 24-68.39A112.14 112.14 0 0 0 400 0zM256 64C132.29 64 32 164.29 32 288a222.89 222.89 0 0 0 54.84 146.54L34.34 487a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.32 0l52.49-52.5a223.21 223.21 0 0 0 293.08 0L455 509.66a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32l-52.5-52.49A222.89 222.89 0 0 0 480 288c0-123.71-100.29-224-224-224zm0 416c-105.87 0-192-86.13-192-192S150.13 96 256 96s192 86.13 192 192-86.13 192-192 192zm14.38-183.69V168a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v136a16 16 0 0 0 6 12.48l73.75 59a8 8 0 0 0 11.25-1.25l10-12.5a8 8 0 0 0-1.25-11.25z\"]\n};\nvar faAlarmExclamation = {\n prefix: 'fal',\n iconName: 'alarm-exclamation',\n icon: [512, 512, [], \"f843\", \"M256 352a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm-8.5-24h17a8.14 8.14 0 0 0 8-7.5l7-136a8 8 0 0 0-8-8.5h-31a8 8 0 0 0-8 8.5l7 136a8 8 0 0 0 8 7.5zM32 112a80.09 80.09 0 0 1 80-80 79.23 79.23 0 0 1 50 18 253.22 253.22 0 0 1 34.44-10.8C175.89 15.42 145.86 0 112 0A112.14 112.14 0 0 0 0 112c0 25.86 9.17 49.41 24 68.39a255.93 255.93 0 0 1 17.4-31.64A78.94 78.94 0 0 1 32 112zM400 0c-33.86 0-63.89 15.42-84.44 39.25A253.22 253.22 0 0 1 350 50.05a79.23 79.23 0 0 1 50-18 80.09 80.09 0 0 1 80 80 78.94 78.94 0 0 1-9.36 36.75A255.93 255.93 0 0 1 488 180.39c14.79-19 24-42.53 24-68.39A112.14 112.14 0 0 0 400 0zM256 64C132.29 64 32 164.29 32 288a222.89 222.89 0 0 0 54.84 146.54L34.34 487a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.32 0l52.49-52.5a223.21 223.21 0 0 0 293.08 0L455 509.66a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32l-52.5-52.49A222.89 222.89 0 0 0 480 288c0-123.71-100.29-224-224-224zm0 416c-105.87 0-192-86.13-192-192S150.13 96 256 96s192 86.13 192 192-86.13 192-192 192z\"]\n};\nvar faAlarmPlus = {\n prefix: 'fal',\n iconName: 'alarm-plus',\n icon: [512, 512, [], \"f844\", \"M344 272h-72v-72a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v72h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h72v72a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-72h72a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM32 112a80.09 80.09 0 0 1 80-80 79.23 79.23 0 0 1 50 18 253.22 253.22 0 0 1 34.44-10.8C175.89 15.42 145.86 0 112 0A112.14 112.14 0 0 0 0 112c0 25.86 9.17 49.41 24 68.39a255.93 255.93 0 0 1 17.4-31.64A78.94 78.94 0 0 1 32 112zM400 0c-33.86 0-63.89 15.42-84.44 39.25A253.22 253.22 0 0 1 350 50.05a79.23 79.23 0 0 1 50-18 80.09 80.09 0 0 1 80 80 78.94 78.94 0 0 1-9.36 36.75A255.93 255.93 0 0 1 488 180.39c14.79-19 24-42.53 24-68.39A112.14 112.14 0 0 0 400 0zM256 64C132.29 64 32 164.29 32 288a222.89 222.89 0 0 0 54.84 146.54L34.34 487a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.32 0l52.49-52.5a223.21 223.21 0 0 0 293.08 0L455 509.66a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32l-52.5-52.49A222.89 222.89 0 0 0 480 288c0-123.71-100.29-224-224-224zm0 416c-105.87 0-192-86.13-192-192S150.13 96 256 96s192 86.13 192 192-86.13 192-192 192z\"]\n};\nvar faAlarmSnooze = {\n prefix: 'fal',\n iconName: 'alarm-snooze',\n icon: [512, 512, [], \"f845\", \"M328 352H225.28L332.5 218a16 16 0 0 0-12.5-26H184a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h102.72L179.5 358a16 16 0 0 0 12.5 26h136a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM32 112a80.09 80.09 0 0 1 80-80 79.23 79.23 0 0 1 50 18 253.22 253.22 0 0 1 34.44-10.8C175.89 15.42 145.86 0 112 0A112.14 112.14 0 0 0 0 112c0 25.86 9.17 49.41 24 68.39a255.93 255.93 0 0 1 17.4-31.64A78.94 78.94 0 0 1 32 112zM400 0c-33.86 0-63.89 15.42-84.44 39.25A253.22 253.22 0 0 1 350 50.05a79.23 79.23 0 0 1 50-18 80.09 80.09 0 0 1 80 80 78.94 78.94 0 0 1-9.36 36.75A255.93 255.93 0 0 1 488 180.39c14.79-19 24-42.53 24-68.39A112.14 112.14 0 0 0 400 0zM256 64C132.29 64 32 164.29 32 288a222.89 222.89 0 0 0 54.84 146.54L34.34 487a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.32 0l52.49-52.5a223.21 223.21 0 0 0 293.08 0L455 509.66a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32l-52.5-52.49A222.89 222.89 0 0 0 480 288c0-123.71-100.29-224-224-224zm0 416c-105.87 0-192-86.13-192-192S150.13 96 256 96s192 86.13 192 192-86.13 192-192 192z\"]\n};\nvar faAlbum = {\n prefix: 'fal',\n iconName: 'album',\n icon: [448, 512, [], \"f89f\", \"M224 416c88.22 0 160-71.78 160-160S312.22 96 224 96 64 167.78 64 256s71.78 160 160 160zm0-288A128 128 0 1 1 96 256a128.14 128.14 0 0 1 128-128zm0 152a24 24 0 1 0-24-24 24 24 0 0 0 24 24zM416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm0 416H32V64h384z\"]\n};\nvar faAlbumCollection = {\n prefix: 'fal',\n iconName: 'album-collection',\n icon: [512, 512, [], \"f8a0\", \"M496 80a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v16h480zm-16-64a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16h448zm0 112H32C13.19 128-1.57 145.62.13 166.07l26.18 314.18c1.5 18 15.32 31.75 31.87 31.75h395.64c16.55 0 30.37-13.77 31.86-31.75l26.19-314.18C513.57 145.62 498.82 128 480 128zm-26.21 349.6c-.12 1.47-.69 2.31-.2 2.4l-394.32.27a4 4 0 0 1-1.07-2.68L32 163.41c-.18-2.09.67-3.32.12-3.41h447a5 5 0 0 1 .82 3.41zM256 299.15c-14.55 0-26.25 10.16-26.13 22.6S241.69 344 256 344s26-9.9 26.14-22.23-11.58-22.62-26.14-22.62zM256 192c-92.9 0-164.33 61.88-159.79 134.4C100.51 395 172 448 256 448s155.5-53 159.8-121.6C420.33 253.88 348.9 192 256 192zm0 224c-67.34 0-124.7-41.09-127.86-91.6-1.69-27 11.71-47.29 23.25-59.58C175.77 238.88 213.9 224 256 224s80.23 14.88 104.6 40.82c11.54 12.29 24.95 32.6 23.26 59.58C380.7 374.91 323.34 416 256 416z\"]\n};\nvar faAlicorn = {\n prefix: 'fal',\n iconName: 'alicorn',\n icon: [640, 512, [], \"f6b0\", \"M631.98 64h-96.92l-.24-.3c5.39-9.45 8.38-20.32 8.38-31.7 0-17.67-14.33-32-32-32H400c-69.18 0-125.38 55.26-127.59 123.92-35.69-9.21-63.11-34.71-81.51-76.61-4-9.16-13.06-15.16-23.03-15.31-10.53.2-18.84 5.36-23.13 14.39C133.63 69.94 128 95.08 128 121.09c0 75.38 56.56 143.6 132.87 161.9 4.42 1.06 8.86-1.96 9.7-6.43l2.97-15.7c.8-4.22-1.93-8.17-6.1-9.2C205.69 236.47 160 181.6 160 121.09c0-16.31 2.72-32.19 8.06-47.38C197.38 130.23 244.1 160 303.94 160l.06-32c0-53.02 42.98-96 96-96h111.2c0 13.29-8.1 24.66-19.63 29.5l20.39 24.78.05 93.88a16 16 0 0 1-10.83 15.15l-25.52 8.71c-9.33 3.19-16.14-2.76-18.48-6.27L432 160l-48-16v100.21c0 26.67-12.65 50.17-32 65.6V480h-64V318.69l-104.43-23.21-32.12 89.47L175.53 480H118l-21.13-87.86a31.698 31.698 0 0 1 .37-16.18l27.63-93.41C107.46 270.37 96 250.24 96 227.37c0-15.82 5.68-30.18 14.82-41.68-4.94-10.84-8.98-22.04-11.4-33.73-8.09 6.94-15.19 15.02-20.76 24.18C35.11 176.87 0 212.27 0 256v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56c0-21.5 14.23-39.48 33.72-45.59-.96 5.54-1.71 11.15-1.71 16.96 0 24.2 8.9 47.33 24.53 65.24l-21.97 74.27c-3.12 10.77-3.38 22.03-.8 32.74l21.13 87.86C90.34 501.86 103.21 512 118 512h57.53c20.95 0 36.12-19.75 31.02-39.86l-21.68-85.57 19.29-53.73L256 344.36V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V323.8c20.5-21.5 32-49.75 32-79.59v-50.52l14.55 21.82c19.11 28.67 49.98 20.67 55.45 18.8l25.52-8.71c19.44-6.63 32.5-24.89 32.49-45.44l-.03-64.83 92.45-36.66c6.58-4.4 3.47-14.67-4.45-14.67zM464.01 96c0-8.84-7.16-16-16-16s-16 7.16-16 16 7.16 16 16 16c8.83 0 16-7.16 16-16z\"]\n};\nvar faAlien = {\n prefix: 'fal',\n iconName: 'alien',\n icon: [448, 512, [], \"f8f5\", \"M224,0C100.28125,0,0,88.0293,0,232.45117c0,111.77735,134.21484,224.59766,194.86328,269.875a48.71553,48.71553,0,0,0,58.27344,0C313.78516,457.04883,448,344.22852,448,232.45117,448,88.0293,347.6875,0,224,0Zm9.99219,476.68359a16.71415,16.71415,0,0,1-19.98633,0C171.30859,444.80859,32,332.99609,32,232.45117,32,114.42773,110.95312,32,224,32s192,82.42773,192,200.45117C416,332.99609,276.69141,444.80859,233.99219,476.68359ZM368,212H320a79.999,79.999,0,0,0-80,80v12a16.00079,16.00079,0,0,0,16,16h48a80.00021,80.00021,0,0,0,80-80V228A15.99954,15.99954,0,0,0,368,212Zm-64,76H272.166A48.06494,48.06494,0,0,1,320,244h31.834A48.06645,48.06645,0,0,1,304,288ZM128,212H80a15.99954,15.99954,0,0,0-16,16v12a80.00021,80.00021,0,0,0,80,80h48a16.00079,16.00079,0,0,0,16-16V292A79.999,79.999,0,0,0,128,212Zm16,76a48.06645,48.06645,0,0,1-47.834-44H128a48.06494,48.06494,0,0,1,47.834,44Z\"]\n};\nvar faAlienMonster = {\n prefix: 'fal',\n iconName: 'alien-monster',\n icon: [576, 512, [], \"f8f6\", \"M192,320h32V224H192Zm160,0h32V224H352ZM544,112H512a32.03165,32.03165,0,0,0-32,32v16H416V128h32a32.03165,32.03165,0,0,0,32-32V64a32.03165,32.03165,0,0,0-32-32H416a32.03165,32.03165,0,0,0-32,32H352a32.03165,32.03165,0,0,0-32,32v32H256V96a32.03165,32.03165,0,0,0-32-32H192a32.03165,32.03165,0,0,0-32-32H128A32.03165,32.03165,0,0,0,96,64V96a32.03165,32.03165,0,0,0,32,32h32v32H96V144a32.03165,32.03165,0,0,0-32-32H32A32.03165,32.03165,0,0,0,0,144V288a32.03165,32.03165,0,0,0,32,32H64v32a32.03165,32.03165,0,0,0,32,32h32v64a32.03165,32.03165,0,0,0,32,32h80a32.03165,32.03165,0,0,0,32-32V416a32.03165,32.03165,0,0,0-32-32h96a32.03165,32.03165,0,0,0-32,32v32a32.03165,32.03165,0,0,0,32,32h80a32.03165,32.03165,0,0,0,32-32V384h32a32.03165,32.03165,0,0,0,32-32V320h32a32.03165,32.03165,0,0,0,32-32V144A32.03165,32.03165,0,0,0,544,112ZM416,64h32V96H416ZM128,96V64h32V96ZM240,448H160V384h32v32h48Zm176,0H336V416h48V384h32ZM544,288H480v64H96V288H32V144H64V256H96V192h96V96h32v64H352V96h32v96h96v64h32V144h32Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fal',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M344 48H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm96 384H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-96-128H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm96-128H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faAlignJustify = {\n prefix: 'fal',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M439 48H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm0 384H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faAlignLeft = {\n prefix: 'fal',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M280 48H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm160 384H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM280 304H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm160-128H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faAlignRight = {\n prefix: 'fal',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M440 48H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm0 384H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h272a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faAlignSlash = {\n prefix: 'fal',\n iconName: 'align-slash',\n icon: [640, 512, [], \"f846\", \"M536 304h-77.57l40.64 32H536a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm8-120a8 8 0 0 0-8-8H295.89l40.63 32H536a8 8 0 0 0 8-8zm-8-104a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8H133.34L174 80zM96 328a8 8 0 0 0 8 8h240l-40.64-32H104a8 8 0 0 0-8 8zm541 157.32L23 1.8A7.86 7.86 0 0 0 11.79 3l-10 12.5A7.92 7.92 0 0 0 3 26.71l614 483.52a7.91 7.91 0 0 0 11.18-1.23l10-12.5a7.83 7.83 0 0 0-1.18-11.18zM104 432a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h402.55l-40.64-32zm0-224h77.45l-40.64-32H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\"]\n};\nvar faAllergies = {\n prefix: 'fal',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M240 416c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-160-32c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm192-96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-64 64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-64-32c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-64-32c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm216-176c-8.6 0-16.7 1.9-24 5.4V88c0-30.9-25.1-56-56-56-9.7 0-18.8 2.5-26.7 6.8C278 16.3 256.9 0 232 0s-46 16.3-53.3 38.8c-7.9-4.3-17-6.8-26.7-6.8-30.9 0-56 25.1-56 56v152.8c-11.5-11.8-42.1-27.7-72.1-6.7-25.3 17.7-31.5 52.7-13.8 78l113.7 171.3c11.9 17.9 31.8 28.6 53.3 28.6h180.6c30.4 0 56.8-21.6 62.8-51.4l20.6-103.2c4.5-22.7 6.8-45.9 6.8-69V168c.1-30.9-25-56-55.9-56zm24 176.3c0 21.1-2.1 42.1-6.2 62.8l-20.6 103.2c-3 15-16.1 25.7-31.4 25.7H177.2c-10.7 0-20.7-5.4-26.7-14.3L36.3 293.8c-7.6-10.9-5-25.8 5.9-33.4 15.8-11.1 30 1 33.4 5.9l37.8 54.4c4.5 6.4 14.6 3.3 14.6-4.6V88c0-13.3 10.7-24 24-24s24 10.7 24 24v160c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V56c0-13.3 10.7-24 24-24s24 10.7 24 24v192c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V88c0-13.3 10.7-24 24-24s24 10.7 24 24v160c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-80c0-13.3 10.7-24 24-24s24 10.7 24 24v120.3z\"]\n};\nvar faAmbulance = {\n prefix: 'fal',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M296 192h-56v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h-56c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h56v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h56c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm336 192h-24V275.9c0-16.8-6.8-33.3-18.8-45.2l-83.9-83.9c-11.8-12-28.3-18.8-45.2-18.8H416V78.6c0-25.7-22.2-46.6-49.4-46.6H49.4C22.2 32 0 52.9 0 78.6v290.8C0 395.1 22.2 416 49.4 416h16.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16h195.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-488 96c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm240-96H207.6C193 364.7 170 352 144 352s-49 12.7-63.6 32h-31c-9.6 0-17.4-6.5-17.4-14.6V78.6C32 70.5 39.8 64 49.4 64h317.2c9.6 0 17.4 6.5 17.4 14.6V384zm32-224h44.1c8.4 0 16.7 3.4 22.6 9.4l83.9 83.9c.8.8 1.1 1.9 1.8 2.8H416V160zm80 320c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-96h-16.4C545 364.7 522 352 496 352s-49 12.7-63.6 32H416v-96h160v96z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fal',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M635.9 213.3c0-.1-41.3-83.1-41.3-83.1-9.6-19.3-33.6-28.5-54.4-18l-55.3 28-79-7.4c-5.1-.5-32.5-.7-59.3 15.8-7.5-14.4-18.5-20.5-32.9-26.1 17-32.5-6.9-77-51.8-70.8C263.5 24.2 241.8 0 213.4 0c-11.3 0-22.3 4-31.1 11.2-45 37.2-74.1 89.9-81.7 147.7L68 218.1l-48.1 27.6c-18.2 10.8-25 33.9-15.8 53.1 0 .1 41.3 83.1 41.3 83.1 9.6 19.3 33.6 28.5 54.4 18l55.3-28c81.1 7.5 81.2 7.5 82.7 7.5 19.9 0 39.1-5.7 55.6-15.9 4.7 9.1 12.2 16.4 21.5 21.1 2.6 1.3 7 3.3 11.3 5-16.9 32.3 6.9 77 51.8 70.8-1.6 27.8 20.7 51.5 48.6 51.5 11.3 0 22.4-4 31.1-11.3 45-37.3 74-89.9 81.7-147.6l32.6-59.2s48-27.6 48.1-27.6c18.2-10.7 25-33.8 15.8-52.9zm-339.6-26.9c-20.4-10.3-44.5-11.7-66.1-4-8.4 3-6.3 15.5 2.7 15.5 33.4 0 58.9 15.1 71.9 42.6 9.2 19.4-19.8 34.9-30 14.3-7-14.4-21.2-23.4-37-23.4-22.6 0-40.9 18.5-40.9 41.1 0 25.4 21.2 41.1 40.9 41.1 15.8 0 30-9 37-23.4 0 0 0-.1.1-.1 9.4-20.2 39.4-5.4 30 14.4-12.3 25.9-38.4 42.7-66.7 42.8-4.7-.4-64-5.9-87-8-1.5-.1-3 .1-4.3.8l-61.4 31.1c-4.1 2.1-9.2.5-11.3-3.6v-.1l-41.1-82.8c-2-4.2-.6-9.3 3.3-11.6l53.7-30.8c1.3-.7 2.3-1.8 3-3.1l38-69.1c.5-.9.8-1.9.9-3 5.7-51.7 30.9-98.3 70.9-131.4 16.6-13.9 38.7 11.3 21 26.1-12.5 10.7-23.1 22.4-31.5 34.8-4.9 7.3 3.9 16.1 11.1 11.1 19.9-13.6 41.8-22 65.2-24.8 8.6-1.1 17.1 4.3 18.5 14.6 1.2 9.3-5.1 17.7-14.4 18.7-15.4 1.9-30.2 7-44 15.3-7.7 4.6-3 16.6 5.8 14.7 24.3-5.4 52.8-1.7 76.2 9.7 20.6 10.4 4.6 39.9-14.5 30.5zM248 272.6c-2 3.3-3.6 9.1-10.2 9.1-2.8 0-8.9-2.3-8.9-9.1 0-5.1 3.9-9.1 8.9-9.1 6.6-.1 8.1 5.6 10.2 9.1zm355.8-33.9l-53.7 30.8c-1.3.7-2.3 1.8-3 3.1l-38 69.1c-.5.9-.8 1.9-.9 3-5.7 51.7-30.9 98.3-71 131.5-16.5 13.8-38.7-11.4-21-26.1 12.5-10.7 23.1-22.3 31.5-34.8 5-7.4-4-16-11.1-11.1-19.9 13.6-41.8 22-65.1 24.8-21.6 2.7-26.2-30.8-4.2-33.3 15.4-1.9 30.2-7 44-15.3 7.7-4.6 3-16.6-5.8-14.7-24.3 5.4-52.8 1.7-76.2-9.7-20.8-10.5-4.5-39.8 14.4-30.5 20.4 10.3 44.5 11.7 66.2 4 8.4-3 6.3-15.5-2.7-15.5-33.4 0-58.9-15.1-71.9-42.6-9.4-19.8 20.5-34.6 30-14.4l.1.1c7 14.4 21.2 23.4 37 23.4 22.6 0 40.9-18.5 40.9-41.1 0-25.4-21.2-41.1-40.9-41.1-15.8 0-30 9-37 23.4l-.1.1c-9.4 20.2-39.4 5.5-30-14.4 12.5-26.3 38.6-42.7 68.2-42.8l85.5 8c1.5.1 3-.1 4.4-.8l61.4-31.1c4.1-2.1 9.2-.5 11.3 3.6v.1l41.1 82.8c1.9 4.2.5 9.2-3.4 11.5zm-211.8.7c1.9-3.3 3.5-9.1 10.2-9.1 2.8 0 8.9 2.3 8.9 9.1 0 5.1-3.9 9.1-8.9 9.1-6.6.1-8.1-5.6-10.2-9.1z\"]\n};\nvar faAmpGuitar = {\n prefix: 'fal',\n iconName: 'amp-guitar',\n icon: [512, 512, [], \"f8a1\", \"M464 64h-77.19C357.9 36.07 310.29 0 256 0S154.1 36.07 125.19 64H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM256 32c30.15 0 58.63 14.85 81.61 32H174.39c22.99-17.15 51.46-32 81.61-32zm224 432a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V288h448zm0-208H32V112a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16zM112 128a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48zm0 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm128-64a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48zm0 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm176 160a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm0 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-32-16a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32 16a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-192 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64 0a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm128-64a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-64 64a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm-96-16a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32-48a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32 48a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32-48a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm224 48a16 16 0 1 0-16-16 16 16 0 0 0 16 16zM96 448a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm192-96a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32 48a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-32-48a16 16 0 1 0-16-16 16 16 0 0 0 16 16z\"]\n};\nvar faAnalytics = {\n prefix: 'fal',\n iconName: 'analytics',\n icon: [576, 512, [], \"f643\", \"M80 352H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zM64 480H32v-96h32v96zm496-288h-64c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm-16 288h-32V224h32v256zM502.77 88.68C510.12 93.24 518.71 96 528 96c26.51 0 48-21.49 48-48S554.51 0 528 0s-48 21.49-48 48c0 5.51 1.12 10.71 2.83 15.64l-89.6 71.68c-7.35-4.57-15.94-7.33-25.23-7.33s-17.88 2.76-25.23 7.33l-89.6-71.68C254.88 58.72 256 53.51 256 48c0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.4 1.81 14.32 4.8 20.58L68.58 164.8C62.32 161.81 55.4 160 48 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-7.4-1.81-14.32-4.8-20.58l96.22-96.22C193.68 94.19 200.6 96 208 96c9.29 0 17.88-2.76 25.23-7.33l89.6 71.68c-1.71 4.93-2.83 10.14-2.83 15.65 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.51-1.12-10.72-2.83-15.65l89.6-71.67zM528 32c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 224c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16zM208 64c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16zm160 128c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16zm-128 0h-64c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm-16 288h-32V224h32v256zm176-160h-64c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V336c0-8.84-7.16-16-16-16zm-16 160h-32V352h32v128z\"]\n};\nvar faAnchor = {\n prefix: 'fal',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M504.485 264.485c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h49.129C461.111 420.749 390.501 473.6 304 479.452V192h52c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-52v-34.016c28.513-7.339 49.336-33.833 47.933-64.947-1.48-32.811-28.101-59.458-60.911-60.967C254.302-1.619 224 27.652 224 64c0 29.821 20.396 54.879 48 61.984V160h-52c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h52v287.452C185.498 473.6 114.888 420.749 97.901 352h49.129c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.03c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.03C-3.074 339.074 2.28 352 12.971 352h52.136C83.963 448.392 182.863 512 288 512c110.901 0 204.938-68.213 222.893-160h52.136c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.03zM256 64c0-17.645 14.355-32 32-32s32 14.355 32 32-14.355 32-32 32-32-14.355-32-32zM61.255 320L80 301.255 98.745 320h-37.49zm416 0L496 301.255 514.745 320h-37.49z\"]\n};\nvar faAngel = {\n prefix: 'fal',\n iconName: 'angel',\n icon: [576, 512, [], \"f779\", \"M176.7 137.3c.7-11.4 2.9-22.4 6.8-32.6-15-8.6-23.5-17.8-23.5-24.7 0-16.9 48.6-48 128-48s128 31.1 128 48c0 6.9-8.5 16.1-23.5 24.7 3.9 10.3 6.1 21.2 6.8 32.6 30-14.5 48.7-34.8 48.7-57.3 0-44.2-71.6-80-160-80S128 35.8 128 80c0 22.5 18.7 42.8 48.7 57.3zm395.8 327.3L534.3 386c-7.6-15.7-7.6-34.4 0-50.1 16.7-34.2 25.6-36.5 25.6-71.8 0-46.9-43.2-88-92.4-88-23 0-44.5 9.2-60.7 25.7l-67.5 68.1C324 261 306.4 256 288 256s-35.9 5-51.3 13.8l-67.5-68.1c-16.1-16.5-37.7-25.7-60.7-25.7-49.2 0-92.4 41.1-92.4 88 0 35.4 9 37.9 25.6 71.8 7.6 15.7 7.6 34.4 0 50.1L3.6 464.6C-8.1 488.5 11 512 32.6 512h510.8c22.2 0 40.5-24.1 29.1-47.4zM32.6 480l37.9-80.1c11.9-24.5 11.9-53.6 0-78.1C52.6 285 48.2 289.9 48.2 264c0-29.3 28.8-56 60.4-56 14.2 0 27.7 5.7 37.8 16.2l65.1 65.7c-6.3 6.9-11.7 14.8-16.1 23.4L112.1 480H32.6zm115.3 0L224 327.6c12.2-24.4 36.7-39.6 64-39.6 27.3 0 51.8 15.2 64 39.6L428.2 480H147.9zm316 0l-83.3-166.8c-4.3-8.6-9.8-16.4-16.1-23.4l65.1-65.7c10.1-10.4 23.6-16.2 37.8-16.2 31.6 0 60.4 26.7 60.4 56 0 26-4.5 21-22.4 57.8-11.9 24.5-11.9 53.6 0 78.1l37.9 80.1h-79.4zM208 144c0 44.2 35.8 80 80 80s80-35.8 80-80-35.8-80-80-80-80 35.8-80 80zm128 0c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fal',\n iconName: 'angle-double-down',\n icon: [256, 512, [], \"f103\", \"M119.5 262.9L3.5 145.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 223.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 263c-4.7 4.6-12.3 4.6-17-.1zm17 128l116-117.8c4.7-4.7 4.7-12.3 0-17l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L128 351.3 27.6 249.1c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l116 117.8c4.7 4.6 12.3 4.6 17-.1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fal',\n iconName: 'angle-double-left',\n icon: [320, 512, [], \"f100\", \"M153.1 247.5l117.8-116c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L192.7 256l102.2 100.4c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L153 264.5c-4.6-4.7-4.6-12.3.1-17zm-128 17l117.8 116c4.7 4.7 12.3 4.7 17 0l7.1-7.1c4.7-4.7 4.7-12.3 0-17L64.7 256l102.2-100.4c4.7-4.7 4.7-12.3 0-17l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L25 247.5c-4.6 4.7-4.6 12.3.1 17z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fal',\n iconName: 'angle-double-right',\n icon: [320, 512, [], \"f101\", \"M166.9 264.5l-117.8 116c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L127.3 256 25.1 155.6c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l117.8 116c4.6 4.7 4.6 12.3-.1 17zm128-17l-117.8-116c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17L255.3 256 153.1 356.4c-4.7 4.7-4.7 12.3 0 17l7.1 7.1c4.7 4.7 12.3 4.7 17 0l117.8-116c4.6-4.7 4.6-12.3-.1-17z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fal',\n iconName: 'angle-double-up',\n icon: [256, 512, [], \"f102\", \"M136.5 249.1l116 117.8c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L128 288.7 27.6 390.9c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17l116-117.8c4.7-4.6 12.3-4.6 17 .1zm-17-128L3.5 238.9c-4.7 4.7-4.7 12.3 0 17l7.1 7.1c4.7 4.7 12.3 4.7 17 0L128 160.7l100.4 102.2c4.7 4.7 12.3 4.7 17 0l7.1-7.1c4.7-4.7 4.7-12.3 0-17L136.5 121c-4.7-4.6-12.3-4.6-17 .1z\"]\n};\nvar faAngleDown = {\n prefix: 'fal',\n iconName: 'angle-down',\n icon: [256, 512, [], \"f107\", \"M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z\"]\n};\nvar faAngleLeft = {\n prefix: 'fal',\n iconName: 'angle-left',\n icon: [192, 512, [], \"f104\", \"M25.1 247.5l117.8-116c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L64.7 256l102.2 100.4c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L25 264.5c-4.6-4.7-4.6-12.3.1-17z\"]\n};\nvar faAngleRight = {\n prefix: 'fal',\n iconName: 'angle-right',\n icon: [192, 512, [], \"f105\", \"M166.9 264.5l-117.8 116c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L127.3 256 25.1 155.6c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l117.8 116c4.6 4.7 4.6 12.3-.1 17z\"]\n};\nvar faAngleUp = {\n prefix: 'fal',\n iconName: 'angle-up',\n icon: [256, 512, [], \"f106\", \"M136.5 185.1l116 117.8c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L128 224.7 27.6 326.9c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17l116-117.8c4.7-4.6 12.3-4.6 17 .1z\"]\n};\nvar faAngry = {\n prefix: 'fal',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm0-136c-31.2 0-60.6 13.8-80.6 37.8-5.7 6.8-4.8 16.9 2 22.5s16.9 4.8 22.5-2c27.9-33.4 84.2-33.4 112.1 0 5.3 6.4 15.4 8 22.5 2 6.8-5.7 7.7-15.8 2-22.5-19.9-24-49.3-37.8-80.5-37.8zm-48-96c0-2.9-.9-5.6-1.7-8.2.6.1 1.1.2 1.7.2 6.9 0 13.2-4.5 15.3-11.4 2.6-8.5-2.2-17.4-10.7-19.9l-80-24c-8.4-2.5-17.4 2.3-19.9 10.7-2.6 8.5 2.2 17.4 10.7 19.9l31 9.3c-6.3 5.8-10.5 14.1-10.5 23.4 0 17.7 14.3 32 32 32s32.1-14.3 32.1-32zm171.4-63.3l-80 24c-8.5 2.5-13.3 11.5-10.7 19.9 2.1 6.9 8.4 11.4 15.3 11.4.6 0 1.1-.2 1.7-.2-.7 2.7-1.7 5.3-1.7 8.2 0 17.7 14.3 32 32 32s32-14.3 32-32c0-9.3-4.1-17.5-10.5-23.4l31-9.3c8.5-2.5 13.3-11.5 10.7-19.9-2.4-8.5-11.4-13.2-19.8-10.7z\"]\n};\nvar faAnkh = {\n prefix: 'fal',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M312 288h-96.58c36.8-35.94 72.58-96.37 72.58-150.86C288 52.98 230.69 0 160 0S32 52.98 32 137.14c0 54.49 35.78 114.91 72.58 150.86H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h136v184c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V320h136c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM64 137.14C64 75.24 103.48 32 160 32s96 43.24 96 105.14c0 71.78-75.25 149.02-95.79 150.86h-.03C139.25 286.16 64 208.93 64 137.14z\"]\n};\nvar faAppleAlt = {\n prefix: 'fal',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M224.48 128c21.33 0 59.54-3.73 83.67-27.86C343.08 65.21 335.26.75 335.26.75S329.08 0 319.52 0c-21.33 0-59.54 3.73-83.66 27.86-34.93 34.93-27.11 99.39-27.11 99.39s6.17.75 15.73.75zm34.01-77.52c11.49-11.5 30.05-15.92 44.67-17.57-1.79 15.7-6.59 33.54-17.64 44.6-11.5 11.49-30.05 15.92-44.66 17.57 1.79-15.78 6.58-33.55 17.63-44.6zm92.69 78.67c-4.46-.79-9.34-1.15-14.53-1.15-36.16 0-87.19 17.57-112.65 31.96C198.54 145.57 147.51 128 111.34 128c-5.19 0-10.07.36-14.53 1.15-81.24 14.3-107.41 124.49-93.09 205.6S65.02 512 160.41 512c12.06 0 24.12-4.61 34.44-10.34 9.04-5.02 19.1-7.52 29.16-7.52 10.06 0 20.12 2.51 29.16 7.52 10.32 5.73 22.38 10.34 34.43 10.34 95.39 0 142.36-96.14 156.68-177.25 14.32-81.11-11.84-191.3-93.1-205.6zm61.58 200.04C408.32 354.37 381.38 480 287.59 480c-4.85 0-11.56-2.24-18.91-6.33-13.61-7.55-29.06-11.54-44.68-11.54s-31.07 3.99-44.69 11.54c-7.34 4.08-14.05 6.32-18.9 6.32C66.62 480 39.69 354.37 35.24 329.18c-6.54-37.03-3.13-78.52 9.13-110.98 8.73-23.13 25.89-51.89 57.99-57.54 14.41-2.54 58.3.26 121.64 36.05 62.92-35.56 107.19-38.6 121.63-36.05 32.12 5.65 49.27 34.41 58 57.54 12.26 32.46 15.67 73.95 9.13 110.99z\"]\n};\nvar faAppleCrate = {\n prefix: 'fal',\n iconName: 'apple-crate',\n icon: [512, 512, [], \"f6b1\", \"M402.22 50.47c11.29-12.19 14.43-32.03 13.22-50.22-12.88-.86-35.67-.12-50.02 13.28-16.53 16.6-13.77 46.36-13.22 50.22 18.47 1.23 37.77-1.85 50.02-13.28zM496 224h-25.49c2.76-8.11 5.17-16.56 6.74-25.82 13.63-73.34-25.2-156.03-125.56-99.88-65.68-36.75-94.55-7.64-95.74-6.72-1.19-.92-30.28-30.02-95.94 6.72C59.44 42.04 20.98 125.78 34.44 198.18c1.56 9.26 3.98 17.71 6.74 25.82H16c-8.84 0-16 7.16-16 16v256c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16V240c0-8.84-7.16-16-16-16zm-159.94-97.77l15.62 8.74 15.62-8.74c54.74-30.63 67.11-3.69 67.76-2.75 12.04 17.42 14.51 48.48 10.63 69.37-1.98 11.71-5.51 21.76-9.67 31.15h-157.2c2.76-8.11 5.18-16.56 6.74-25.82 4.26-22.9 2.52-56.47-9.98-82.12 14.81-10.61 50.82 4.76 60.48 10.17zm-259.31-2.8c.65-.94 12.87-27.84 67.63 2.8l15.62 8.74 15.62-8.74c54.74-30.63 67.11-3.69 67.76-2.75 12.04 17.42 14.51 48.48 10.63 69.37-1.98 11.71-5.51 21.77-9.67 31.15H75.66c-4.17-9.45-7.73-19.63-9.77-31.66-3.82-20.61-.81-52.02 10.86-68.91zM480 480H32v-96h448v96zm0-128H32v-96h448v96zM80 320c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm0 128c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm352-128c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm0 128c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zM210.53 50.47c11.29-12.19 14.43-32.03 13.22-50.22-12.88-.86-35.67-.12-50.02 13.28-16.53 16.6-13.77 46.36-13.22 50.22 18.47 1.23 37.77-1.85 50.02-13.28z\"]\n};\nvar faArchive = {\n prefix: 'fal',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M464 32H48C21.5 32 0 53.5 0 80v64c0 8.8 7.2 16 16 16h16v272c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V160h16c8.8 0 16-7.2 16-16V80c0-26.5-21.5-48-48-48zm-16 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V160h384v272zm32-304H32V80c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16v48zM204 256h104c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H204c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12z\"]\n};\nvar faArchway = {\n prefix: 'fal',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M568 32c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H8C3.6 0 0 3.6 0 8v16c0 4.4 3.6 8 8 8h24v448H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h168c8.84 0 16-7.16 16-16V320c0-52.94 43.06-96 96-96s96 43.06 96 96v160l.02 16c0 8.84 7.16 16 16 16H568c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-24V32h24zm-56 448h-96V320c0-70.58-57.41-128-128-128s-128 57.42-128 128v160H64V128h448v352zm0-384H64V32h448v64z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fal',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216zm-88-32h-64V120c0-13.2-10.8-24-24-24h-80c-13.2 0-24 10.8-24 24v104h-64c-28.4 0-42.8 34.5-22.6 54.6l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c20-20.1 5.8-54.6-22.7-54.6zM256 384L128 256h96V128h64v128h96L256 384z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fal',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zM256 472c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216zm32-88v-64h104c13.2 0 24-10.8 24-24v-80c0-13.2-10.8-24-24-24H288v-64c0-28.4-34.5-42.8-54.6-22.6l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c20.1 20 54.6 5.8 54.6-22.7zM128 256l128-128v96h128v64H256v96L128 256z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fal',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zM256 40c118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216zm-32 88v64H120c-13.2 0-24 10.8-24 24v80c0 13.2 10.8 24 24 24h104v64c0 28.4 34.5 42.8 54.6 22.6l128-128c12.5-12.5 12.5-32.8 0-45.3l-128-128c-20.1-20-54.6-5.8-54.6 22.7zm160 128L256 384v-96H128v-64h128v-96l128 128z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fal',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zM40 256c0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216zm88 32h64v104c0 13.2 10.8 24 24 24h80c13.2 0 24-10.8 24-24V288h64c28.4 0 42.8-34.5 22.6-54.6l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-20 20.1-5.8 54.6 22.7 54.6zm128-160l128 128h-96v128h-64V256h-96l128-128z\"]\n};\nvar faArrowAltDown = {\n prefix: 'fal',\n iconName: 'arrow-alt-down',\n icon: [448, 512, [], \"f354\", \"M267.427 64C278.789 64 288 73.211 288 84.572v171.437h116.979c7.125 0 10.695 8.612 5.66 13.653L238.556 441.965c-8.036 8.046-21.076 8.047-29.112 0L37.36 269.662c-5.035-5.041-1.464-13.653 5.66-13.653H160V84.572C160 73.211 169.211 64 180.573 64h86.854m0-32h-86.855C151.584 32 128 55.584 128 84.572v139.437H43.021c-35.507 0-53.497 43.04-28.302 68.266l172.083 172.303c20.55 20.576 53.842 20.58 74.396 0l172.083-172.303c25.091-25.122 7.351-68.266-28.302-68.266H320V84.572C320 55.584 296.416 32 267.427 32z\"]\n};\nvar faArrowAltFromBottom = {\n prefix: 'fal',\n iconName: 'arrow-alt-from-bottom',\n icon: [384, 512, [], \"f346\", \"M372 480H12c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12zm-218.9-96h77.7c8.8 0 16-7.2 16-16V224h93.9c7.1 0 10.7-8.6 5.7-13.6L203.3 66.8c-6.3-6.3-16.4-6.3-22.7 0l-143 143.6c-5 5-1.5 13.6 5.7 13.6h93.9v144c-.1 8.8 7.1 16 15.9 16m0 32c-26.5 0-48-21.5-48-48V256H43.3c-35.6 0-53.4-43.1-28.3-68.2L158 44.2c18.8-18.8 49.2-18.8 68 0l143.1 143.5c25.2 25.2 7.2 68.2-28.3 68.2h-61.9v112c0 26.5-21.5 48-48 48h-77.8v.1z\"]\n};\nvar faArrowAltFromLeft = {\n prefix: 'fal',\n iconName: 'arrow-alt-from-left',\n icon: [448, 512, [], \"f347\", \"M0 436V76c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v360c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zm96-218.9v77.7c0 8.8 7.2 16 16 16h144v93.9c0 7.1 8.6 10.7 13.6 5.7l141.6-143.1c6.3-6.3 6.3-16.4 0-22.7l-141.6-143c-5-5-13.6-1.5-13.6 5.7v93.9H112c-8.8-.1-16 7.1-16 15.9m-32 0c0-26.5 21.5-48 48-48h112v-61.9c0-35.6 43.1-53.4 68.2-28.3L433.9 222c18.8 18.8 18.8 49.2 0 68L292.2 433.1c-25.2 25.2-68.2 7.2-68.2-28.3v-61.9H112c-26.5 0-48-21.5-48-48v-77.8z\"]\n};\nvar faArrowAltFromRight = {\n prefix: 'fal',\n iconName: 'arrow-alt-from-right',\n icon: [448, 512, [], \"f348\", \"M448 76v360c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12zm-96 218.9v-77.7c0-8.8-7.2-16-16-16H192v-93.9c0-7.1-8.6-10.7-13.6-5.7L36.7 244.7c-6.3 6.3-6.3 16.4 0 22.7l141.6 143.1c5 5 13.6 1.5 13.6-5.7v-93.9h144c8.9 0 16.1-7.2 16.1-16m32 0c0 26.5-21.5 48-48 48H224v61.9c0 35.6-43.1 53.4-68.2 28.3L14.1 290c-18.8-18.8-18.8-49.2 0-68L155.8 78.9C181 53.8 224 71.8 224 107.3v61.9h112c26.5 0 48 21.5 48 48v77.7z\"]\n};\nvar faArrowAltFromTop = {\n prefix: 'fal',\n iconName: 'arrow-alt-from-top',\n icon: [384, 512, [], \"f349\", \"M12 32h360c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H12C5.4 64 0 58.6 0 52v-8c0-6.6 5.4-12 12-12zm218.9 96h-77.7c-8.8 0-16 7.2-16 16v144H43.3c-7.1 0-10.7 8.6-5.7 13.6l143.1 143.5c6.3 6.3 16.4 6.3 22.7 0l143.1-143.5c5-5 1.5-13.6-5.7-13.6h-93.9V144c0-8.8-7.2-16-16-16m0-32c26.5 0 48 21.5 48 48v112h61.9c35.6 0 53.4 43.1 28.3 68.2L226 467.8c-18.8 18.8-49.2 18.8-68 0L14.9 324.2C-10.2 299 7.8 256 43.3 256h61.9V144c0-26.5 21.5-48 48-48h77.7z\"]\n};\nvar faArrowAltLeft = {\n prefix: 'fal',\n iconName: 'arrow-alt-left',\n icon: [448, 512, [], \"f355\", \"M395.4 159.9H256V75c0-35.5-43-53.5-68.3-28.3L15.4 218.8c-20.6 20.6-20.6 53.8 0 74.4l172.3 172.1c25.1 25.1 68.3 7.4 68.3-28.3v-85h139.4c29 0 52.6-23.6 52.6-52.6v-86.9c0-29-23.6-52.6-52.6-52.6zM416 299.4c0 11.4-9.2 20.6-20.6 20.6H224v117c0 7.1-8.6 10.7-13.7 5.7L38 270.6c-8-8-8-21.1 0-29.1L210.3 69.4c5-5 13.7-1.5 13.7 5.7v117h171.4c11.4 0 20.6 9.2 20.6 20.6z\"]\n};\nvar faArrowAltRight = {\n prefix: 'fal',\n iconName: 'arrow-alt-right',\n icon: [448, 512, [], \"f356\", \"M32 212.57A20.57 20.57 0 0 1 52.57 192H224V75a8 8 0 0 1 13.66-5.66L410 241.44a20.56 20.56 0 0 1 0 29.11L237.66 442.63A8 8 0 0 1 224 437V320H52.57A20.57 20.57 0 0 1 32 299.42v-86.85m-32 0v86.85A52.63 52.63 0 0 0 52.57 352H192v85c0 35.51 43 53.5 68.27 28.3l172.3-172.08a52.55 52.55 0 0 0 0-74.4L260.27 46.71C235.15 21.62 192 39.36 192 75v85H52.57A52.63 52.63 0 0 0 0 212.57z\"]\n};\nvar faArrowAltSquareDown = {\n prefix: 'fal',\n iconName: 'arrow-alt-square-down',\n icon: [448, 512, [], \"f350\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zm-64-208h-64V120c0-13.2-10.8-24-24-24h-80c-13.2 0-24 10.8-24 24v104H96c-28.4 0-42.8 34.5-22.6 54.6l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c20-20.1 5.8-54.6-22.7-54.6zM224 384L96 256h96V128h64v128h96L224 384z\"]\n};\nvar faArrowAltSquareLeft = {\n prefix: 'fal',\n iconName: 'arrow-alt-square-left',\n icon: [448, 512, [], \"f351\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM48 448c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48zm208-64v-64h104c13.2 0 24-10.8 24-24v-80c0-13.2-10.8-24-24-24H256v-64c0-28.4-34.5-42.8-54.6-22.6l-128 128c-12.5 12.5-12.5 32.8 0 45.3l128 128c20.1 20 54.6 5.8 54.6-22.7zM96 256l128-128v96h128v64H224v96L96 256z\"]\n};\nvar faArrowAltSquareRight = {\n prefix: 'fal',\n iconName: 'arrow-alt-square-right',\n icon: [448, 512, [], \"f352\", \"M0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80zm400-16c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352zm-208 64v64H88c-13.2 0-24 10.8-24 24v80c0 13.2 10.8 24 24 24h104v64c0 28.4 34.5 42.8 54.6 22.6l128-128c12.5-12.5 12.5-32.8 0-45.3l-128-128c-20.1-20-54.6-5.8-54.6 22.7zm160 128L224 384v-96H96v-64h128v-96l128 128z\"]\n};\nvar faArrowAltSquareUp = {\n prefix: 'fal',\n iconName: 'arrow-alt-square-up',\n icon: [448, 512, [], \"f353\", \"M48 480h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48zM32 80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80zm64 208h64v104c0 13.2 10.8 24 24 24h80c13.2 0 24-10.8 24-24V288h64c28.4 0 42.8-34.5 22.6-54.6l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128C53.3 253.5 67.5 288 96 288zm128-160l128 128h-96v128h-64V256H96l128-128z\"]\n};\nvar faArrowAltToBottom = {\n prefix: 'fal',\n iconName: 'arrow-alt-to-bottom',\n icon: [384, 512, [], \"f34a\", \"M230.9 64c8.8 0 16 7.2 16 16v144h93.9c7.1 0 10.7 8.6 5.7 13.6L203.3 381.2c-6.3 6.3-16.4 6.3-22.7 0l-143-143.6c-5-5-1.5-13.6 5.7-13.6h93.9V80c0-8.8 7.2-16 16-16h77.7m0-32h-77.7c-26.5 0-48 21.5-48 48v112H43.3c-35.5 0-53.5 43-28.3 68.2l143 143.6c18.8 18.8 49.2 18.8 68 0l143.1-143.5c25.1-25.1 7.3-68.2-28.3-68.2h-61.9V80c0-26.5-21.6-48-48-48zM384 468v-8c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowAltToLeft = {\n prefix: 'fal',\n iconName: 'arrow-alt-to-left',\n icon: [448, 512, [], \"f34b\", \"M20 64h-8C5.4 64 0 69.4 0 76v360c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12zm380 105.2H288v-61.9c0-35.5-43-53.5-68.2-28.3L76.2 222c-18.8 18.8-18.8 49.2 0 68l143.5 143.1c25.1 25.1 68.2 7.3 68.2-28.3v-61.9h112c26.6 0 48.1-21.6 48.1-48v-77.7c0-26.5-21.5-48-48-48zm15.9 125.7c0 8.8-7.1 16-15.9 16H256v93.9c0 7.1-8.6 10.7-13.6 5.7L98.8 267.3c-6.3-6.3-6.3-16.4 0-22.7l143.5-143.1c5-5 13.6-1.5 13.6 5.7v93.9h144c8.8 0 16 7.2 16 16z\"]\n};\nvar faArrowAltToRight = {\n prefix: 'fal',\n iconName: 'arrow-alt-to-right',\n icon: [448, 512, [], \"f34c\", \"M32 217.1c0-8.8 7.2-16 16-16h144v-93.9c0-7.1 8.6-10.7 13.6-5.7l143.5 143.1c6.3 6.3 6.3 16.4 0 22.7L205.6 410.4c-5 5-13.6 1.5-13.6-5.7v-93.9H48c-8.8 0-16-7.2-16-16v-77.7m-32 0v77.7c0 26.5 21.5 48 48 48h112v61.9c0 35.5 43 53.5 68.2 28.3l143.6-143c18.8-18.8 18.8-49.2 0-68L228.2 78.9c-25.1-25.1-68.2-7.3-68.2 28.3v61.9H48c-26.5 0-48 21.6-48 48zM436 64h-8c-6.6 0-12 5.4-12 12v360c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltToTop = {\n prefix: 'fal',\n iconName: 'arrow-alt-to-top',\n icon: [384, 512, [], \"f34d\", \"M153.1 448c-8.8 0-16-7.2-16-16V288H43.3c-7.1 0-10.7-8.6-5.7-13.6l143.1-143.5c6.3-6.3 16.4-6.3 22.7 0l143.1 143.5c5 5 1.5 13.6-5.7 13.6h-93.9v144c0 8.8-7.2 16-16 16h-77.8m0 32h77.7c26.5 0 48-21.5 48-48V320h61.9c35.5 0 53.5-43 28.3-68.2L226 108.2c-18.8-18.8-49.2-18.8-68 0L14.9 251.8c-25 25.1-7.3 68.2 28.4 68.2h61.9v112c-.1 26.5 21.5 48 47.9 48zM0 44v8c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H12C5.4 32 0 37.4 0 44z\"]\n};\nvar faArrowAltUp = {\n prefix: 'fal',\n iconName: 'arrow-alt-up',\n icon: [448, 512, [], \"f357\", \"M180.573 448C169.211 448 160 438.789 160 427.428V255.991H43.021c-7.125 0-10.695-8.612-5.66-13.653L209.444 70.035c8.036-8.046 21.076-8.047 29.112 0L410.64 242.338c5.035 5.041 1.464 13.653-5.66 13.653H288v171.437C288 438.79 278.789 448 267.427 448h-86.854m0 32h86.855C296.416 480 320 456.416 320 427.428V287.991h84.979c35.507 0 53.497-43.04 28.302-68.266L261.198 47.422c-20.55-20.576-53.842-20.58-74.396 0L14.719 219.724c-25.091 25.122-7.351 68.266 28.302 68.266H128v139.437C128 456.416 151.584 480 180.573 480z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fal',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216zm-92.5-4.5l-6.9-6.9c-4.7-4.7-12.5-4.7-17.1.2L273 330.3V140c0-6.6-5.4-12-12-12h-10c-6.6 0-12 5.4-12 12v190.3l-82.5-85.6c-4.7-4.8-12.4-4.9-17.1-.2l-6.9 6.9c-4.7 4.7-4.7 12.3 0 17l115 115.1c4.7 4.7 12.3 4.7 17 0l115-115.1c4.7-4.6 4.7-12.2 0-16.9z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fal',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zM256 472c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216zm-12.5-92.5l-115.1-115c-4.7-4.7-4.7-12.3 0-17l115.1-115c4.7-4.7 12.3-4.7 17 0l6.9 6.9c4.7 4.7 4.7 12.5-.2 17.1L181.7 239H372c6.6 0 12 5.4 12 12v10c0 6.6-5.4 12-12 12H181.7l85.6 82.5c4.8 4.7 4.9 12.4.2 17.1l-6.9 6.9c-4.8 4.7-12.4 4.7-17.1 0z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fal',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zM256 40c118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216zm12.5 92.5l115.1 115c4.7 4.7 4.7 12.3 0 17l-115.1 115c-4.7 4.7-12.3 4.7-17 0l-6.9-6.9c-4.7-4.7-4.7-12.5.2-17.1l85.6-82.5H140c-6.6 0-12-5.4-12-12v-10c0-6.6 5.4-12 12-12h190.3l-85.6-82.5c-4.8-4.7-4.9-12.4-.2-17.1l6.9-6.9c4.8-4.7 12.4-4.7 17.1 0z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fal',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zM40 256c0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216zm92.5-12.5l115-115.1c4.7-4.7 12.3-4.7 17 0l115 115.1c4.7 4.7 4.7 12.3 0 17l-6.9 6.9c-4.7 4.7-12.5 4.7-17.1-.2L273 181.7V372c0 6.6-5.4 12-12 12h-10c-6.6 0-12-5.4-12-12V181.7l-82.5 85.6c-4.7 4.8-12.4 4.9-17.1.2l-6.9-6.9c-4.7-4.8-4.7-12.4 0-17.1z\"]\n};\nvar faArrowDown = {\n prefix: 'fal',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M443.5 248.5l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L241 419.9V44c0-6.6-5.4-12-12-12h-10c-6.6 0-12 5.4-12 12v375.9L28.5 241.4c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.8 4.8-12.3.1-17z\"]\n};\nvar faArrowFromBottom = {\n prefix: 'fal',\n iconName: 'arrow-from-bottom',\n icon: [384, 512, [], \"f342\", \"M35.5 184l148-148.5c4.7-4.7 12.3-4.7 17 0l148 148.5c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L209 92.1V404c0 6.6-5.4 12-12 12h-10c-6.6 0-12-5.4-12-12V92.1L59.6 208c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.6-4.7-12.2 0-16.9zM384 468v-8c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowFromLeft = {\n prefix: 'fal',\n iconName: 'arrow-from-left',\n icon: [448, 512, [], \"f343\", \"M296 99.5l148.5 148c4.7 4.7 4.7 12.3 0 17L296 412.5c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17l116-115.4H76c-6.6 0-12-5.4-12-12v-10c0-6.6 5.4-12 12-12h311.9L272 123.6c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.6-4.7 12.2-4.7 16.9 0zM12 448h8c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12h-8C5.4 64 0 69.4 0 76v360c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowFromRight = {\n prefix: 'fal',\n iconName: 'arrow-from-right',\n icon: [448, 512, [], \"f344\", \"M152 412.5L3.5 264.5c-4.7-4.7-4.7-12.3 0-17L152 99.5c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L60.1 239H372c6.6 0 12 5.4 12 12v10c0 6.6-5.4 12-12 12H60.1L176 388.4c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.6 4.7-12.2 4.7-16.9 0zM436 64h-8c-6.6 0-12 5.4-12 12v360c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowFromTop = {\n prefix: 'fal',\n iconName: 'arrow-from-top',\n icon: [384, 512, [], \"f345\", \"M348.5 328l-148 148.5c-4.7 4.7-12.3 4.7-17 0L35.5 328c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l115.4 116V108c0-6.6 5.4-12 12-12h10c6.6 0 12 5.4 12 12v311.9L324.4 304c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.6 4.7 12.2 0 16.9zM0 44v8c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H12C5.4 32 0 37.4 0 44z\"]\n};\nvar faArrowLeft = {\n prefix: 'fal',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M231.536 475.535l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113L238.607 60.506c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0L3.515 247.515c-4.686 4.686-4.686 12.284 0 16.971l211.051 211.05c4.686 4.686 12.284 4.686 16.97-.001z\"]\n};\nvar faArrowRight = {\n prefix: 'fal',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M216.464 36.465l-7.071 7.07c-4.686 4.686-4.686 12.284 0 16.971L387.887 239H12c-6.627 0-12 5.373-12 12v10c0 6.627 5.373 12 12 12h375.887L209.393 451.494c-4.686 4.686-4.686 12.284 0 16.971l7.071 7.07c4.686 4.686 12.284 4.686 16.97 0l211.051-211.05c4.686-4.686 4.686-12.284 0-16.971L233.434 36.465c-4.686-4.687-12.284-4.687-16.97 0z\"]\n};\nvar faArrowSquareDown = {\n prefix: 'fal',\n iconName: 'arrow-square-down',\n icon: [448, 512, [], \"f339\", \"M347.5 268.5l-115 115.1c-4.7 4.7-12.3 4.7-17 0l-115-115.1c-4.7-4.7-4.7-12.3 0-17l6.9-6.9c4.7-4.7 12.5-4.7 17.1.2l82.5 85.6V140c0-6.6 5.4-12 12-12h10c6.6 0 12 5.4 12 12v190.3l82.5-85.6c4.7-4.8 12.4-4.9 17.1-.2l6.9 6.9c4.7 4.8 4.7 12.4 0 17.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-32 0c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V80z\"]\n};\nvar faArrowSquareLeft = {\n prefix: 'fal',\n iconName: 'arrow-square-left',\n icon: [448, 512, [], \"f33a\", \"M211.5 379.5l-115.1-115c-4.7-4.7-4.7-12.3 0-17l115.1-115c4.7-4.7 12.3-4.7 17 0l6.9 6.9c4.7 4.7 4.7 12.5-.2 17.1L149.7 239H340c6.6 0 12 5.4 12 12v10c0 6.6-5.4 12-12 12H149.7l85.6 82.5c4.8 4.7 4.9 12.4.2 17.1l-6.9 6.9c-4.8 4.7-12.4 4.7-17.1 0zM400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm0-32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h352z\"]\n};\nvar faArrowSquareRight = {\n prefix: 'fal',\n iconName: 'arrow-square-right',\n icon: [448, 512, [], \"f33b\", \"M236.5 132.5l115.1 115c4.7 4.7 4.7 12.3 0 17l-115.1 115c-4.7 4.7-12.3 4.7-17 0l-6.9-6.9c-4.7-4.7-4.7-12.5.2-17.1l85.6-82.5H108c-6.6 0-12-5.4-12-12v-10c0-6.6 5.4-12 12-12h190.3l-85.6-82.5c-4.8-4.7-4.9-12.4-.2-17.1l6.9-6.9c4.8-4.7 12.4-4.7 17.1 0zM48 32h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm0 32c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H48z\"]\n};\nvar faArrowSquareUp = {\n prefix: 'fal',\n iconName: 'arrow-square-up',\n icon: [448, 512, [], \"f33c\", \"M100.5 243.5l115-115.1c4.7-4.7 12.3-4.7 17 0l115 115.1c4.7 4.7 4.7 12.3 0 17l-6.9 6.9c-4.7 4.7-12.5 4.7-17.1-.2L241 181.7V372c0 6.6-5.4 12-12 12h-10c-6.6 0-12-5.4-12-12V181.7l-82.5 85.6c-4.7 4.8-12.4 4.9-17.1.2l-6.9-6.9c-4.7-4.8-4.7-12.4 0-17.1zM0 432V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48zm32 0c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v352z\"]\n};\nvar faArrowToBottom = {\n prefix: 'fal',\n iconName: 'arrow-to-bottom',\n icon: [384, 512, [], \"f33d\", \"M348.5 264l-148 148.5c-4.7 4.7-12.3 4.7-17 0L35.5 264c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l115.4 116V44c0-6.6 5.4-12 12-12h10c6.6 0 12 5.4 12 12v311.9L324.4 240c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.6 4.7 12.2 0 16.9zM384 468v-8c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowToLeft = {\n prefix: 'fal',\n iconName: 'arrow-to-left',\n icon: [448, 512, [], \"f33e\", \"M216 412.5l-148.5-148c-4.7-4.7-4.7-12.3 0-17L216 99.5c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L124.1 239H436c6.6 0 12 5.4 12 12v10c0 6.6-5.4 12-12 12H124.1L240 388.4c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.6 4.7-12.2 4.7-16.9 0zM12 448h8c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12h-8C5.4 64 0 69.4 0 76v360c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowToRight = {\n prefix: 'fal',\n iconName: 'arrow-to-right',\n icon: [448, 512, [], \"f340\", \"M215 99.5l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l116 115.4H12c-6.6 0-12 5.4-12 12v10c0 6.6 5.4 12 12 12h311.9L208 388.4c-4.7 4.7-4.7 12.3 0 17l7.1 7.1c4.7 4.7 12.3 4.7 17 0l148.5-148c4.7-4.7 4.7-12.3 0-17L232 99.5c-4.7-4.7-12.3-4.7-17 0zM448 76v360c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12z\"]\n};\nvar faArrowToTop = {\n prefix: 'fal',\n iconName: 'arrow-to-top',\n icon: [384, 512, [], \"f341\", \"M35.5 248l148-148.5c4.7-4.7 12.3-4.7 17 0l148 148.5c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L209 156.1V468c0 6.6-5.4 12-12 12h-10c-6.6 0-12-5.4-12-12V156.1L59.6 272c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.6-4.7-12.2 0-16.9zM0 44v8c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H12C5.4 32 0 37.4 0 44z\"]\n};\nvar faArrowUp = {\n prefix: 'fal',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M4.465 263.536l7.07 7.071c4.686 4.686 12.284 4.686 16.971 0L207 92.113V468c0 6.627 5.373 12 12 12h10c6.627 0 12-5.373 12-12V92.113l178.494 178.493c4.686 4.686 12.284 4.686 16.971 0l7.07-7.071c4.686-4.686 4.686-12.284 0-16.97l-211.05-211.05c-4.686-4.686-12.284-4.686-16.971 0L4.465 246.566c-4.687 4.686-4.687 12.284 0 16.97z\"]\n};\nvar faArrows = {\n prefix: 'fal',\n iconName: 'arrows',\n icon: [512, 512, [], \"f047\", \"M337.782 434.704l-73.297 73.782c-4.686 4.686-12.284 4.686-16.971 0l-73.296-73.782c-4.686-4.686-4.686-12.284 0-16.97l7.07-7.07c4.686-4.686 12.284-4.686 16.971 0L239 451.887h1V272H60.113v1l41.224 40.741c4.686 4.686 4.686 12.284 0 16.971l-7.071 7.07c-4.686 4.686-12.284 4.686-16.97 0L3.515 264.485c-4.686-4.686-4.686-12.284 0-16.971l73.782-73.297c4.686-4.686 12.284-4.686 16.971 0l7.071 7.071c4.686 4.686 4.686 12.284 0 16.971L60.113 239v1H240V60.113h-1l-40.741 41.224c-4.686 4.686-12.284 4.686-16.971 0l-7.07-7.071c-4.686-4.686-4.687-12.284 0-16.97l73.297-73.782c4.686-4.686 12.284-4.686 16.971 0l73.297 73.782c4.686 4.686 4.686 12.284 0 16.971l-7.071 7.071c-4.686 4.686-12.284 4.686-16.971 0L273 60.113h-1V240h179.887v-1l-41.224-40.741c-4.686-4.686-4.686-12.284 0-16.971l7.071-7.07c4.686-4.686 12.284-4.686 16.97 0l73.782 73.297c4.687 4.686 4.686 12.284 0 16.971l-73.782 73.297c-4.686 4.686-12.284 4.686-16.97 0l-7.071-7.07c-4.686-4.686-4.686-12.284 0-16.971L451.887 273v-1H272v179.887h1l40.741-41.224c4.686-4.686 12.284-4.686 16.971 0l7.07 7.071c4.686 4.685 4.686 12.283 0 16.97z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fal',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M502.3 232.7l-66.5-66.5c-20.7-20.7-56.3-6-56.3 23.3V240H272V132.4h50.5c29.3 0 44.1-35.5 23.3-56.3L279.3 9.7c-12.9-12.9-33.8-12.9-46.6 0l-66.5 66.5c-20.7 20.7-6 56.3 23.3 56.3H240V240H132.4v-50.5c0-29.3-35.5-44.1-56.3-23.3L9.7 232.7c-12.9 12.9-12.9 33.8 0 46.6l66.5 66.5c20.7 20.7 56.3 6 56.3-23.3V272H240v107.6h-50.5c-29.3 0-44.1 35.5-23.3 56.3l66.5 66.5c12.9 12.9 33.8 12.9 46.6 0l66.5-66.5c20.7-20.7 6-56.3-23.3-56.3H272V272h107.6v50.5c0 29.3 35.5 44.1 56.3 23.3l66.5-66.5c12.8-12.9 12.8-33.7-.1-46.6zm-398.7 89.8c0 3.7-4.4 5.5-7 2.9l-66.5-66.5c-1.6-1.6-1.6-4.2 0-5.8l66.5-66.5c2.6-2.6 7-.7 7 2.9zm218.9 85.9c3.7 0 5.5 4.4 2.9 7l-66.5 66.5c-1.6 1.6-4.2 1.6-5.8 0l-66.5-66.5c-2.6-2.6-.7-7 2.9-7zm-133-304.8c-3.7 0-5.5-4.4-2.9-7l66.5-66.5c1.6-1.6 4.2-1.6 5.8 0l66.5 66.5c2.6 2.6.7 7-2.9 7zm292.4 155.3l-66.5 66.5c-2.6 2.6-7 .7-7-2.9V189.6c0-3.7 4.4-5.5 7-2.9l66.5 66.5c1.7 1.5 1.7 4.1 0 5.7z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fal',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M502.6 233.4l-64-64c-20.1-20.1-54.6-5.9-54.6 22.6v47H128v-47c0-28.4-34.5-42.8-54.6-22.6l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c20.1 20.1 54.6 5.9 54.6-22.6v-47h256v47c0 28.4 34.5 42.8 54.6 22.6l64-64c12.5-12.6 12.5-32.8 0-45.3zM100 320c0 3.5-4.3 5.4-6.8 2.8l-64-64c-1.6-1.6-1.6-4.1 0-5.6l64-64c2.5-2.5 6.8-.7 6.8 2.8zm382.8-61.2l-64 64c-2.5 2.5-6.8.7-6.8-2.8V192c0-3.5 4.3-5.4 6.8-2.8l64 64c1.6 1.5 1.6 4.1 0 5.6z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fal',\n iconName: 'arrows-alt-v',\n icon: [192, 512, [], \"f338\", \"M160 384h-47V128h47c28.4 0 42.8-34.5 22.6-54.6l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64C-10.7 93.5 3.5 128 32 128h47v256H32c-28.4 0-42.8 34.5-22.6 54.6l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c20-20.1 5.8-54.6-22.7-54.6zM32 100c-3.5 0-5.4-4.3-2.8-6.8l64-64c1.6-1.6 4.1-1.6 5.6 0l64 64c2.5 2.5.7 6.8-2.8 6.8zm130.8 318.8l-64 64c-1.6 1.6-4.1 1.6-5.6 0l-64-64c-2.5-2.5-.7-6.8 2.8-6.8h128c3.5 0 5.3 4.3 2.8 6.8z\"]\n};\nvar faArrowsH = {\n prefix: 'fal',\n iconName: 'arrows-h',\n icon: [512, 512, [], \"f07e\", \"M399.959 170.585c-4.686 4.686-4.686 12.284 0 16.971L451.887 239H60.113l51.928-51.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-84.485 84c-4.686 4.686-4.686 12.284 0 16.971l84.485 84c4.686 4.686 12.284 4.686 16.97 0l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273h391.773l-51.928 51.444c-4.686 4.686-4.686 12.284 0 16.971l7.071 7.07c4.686 4.686 12.284 4.686 16.97 0l84.485-84c4.687-4.686 4.687-12.284 0-16.971l-84.485-84c-4.686-4.686-12.284-4.686-16.97 0l-7.07 7.071z\"]\n};\nvar faArrowsV = {\n prefix: 'fal',\n iconName: 'arrows-v',\n icon: [192, 512, [], \"f07d\", \"M181.415 399.959c-4.686-4.686-12.284-4.686-16.971 0L113 451.887V60.113l51.444 51.928c4.686 4.686 12.284 4.686 16.971 0l7.07-7.071c4.686-4.686 4.686-12.284 0-16.97l-84-84.485c-4.686-4.686-12.284-4.686-16.971 0L3.515 88c-4.686 4.686-4.686 12.284 0 16.97l7.07 7.071c4.686 4.686 12.284 4.686 16.971 0L79 60.113v391.773l-51.444-51.928c-4.686-4.686-12.284-4.686-16.971 0l-7.07 7.071c-4.686 4.686-4.686 12.284 0 16.97l84 84.485c4.686 4.687 12.284 4.687 16.971 0l84-84.485c4.686-4.686 4.686-12.284 0-16.97l-7.071-7.07z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fal',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M217.6 512c-8.837 0-16-7.163-16-16s7.163-16 16-16c41.172 0 74.667-33.495 74.667-74.666 0-85.174 73.391-93.9 73.391-165.334 0-71.167-57.899-129.066-129.067-129.066-71.167 0-129.066 57.899-129.066 129.066 0 8.837-7.163 16-16 16s-16-7.163-16-16c0-88.812 72.254-161.066 161.066-161.066S397.657 151.188 397.657 240c0 86.857-73.391 96.041-73.391 165.334C324.267 464.149 276.416 512 217.6 512zm115.733-272c0-53.816-43.783-97.6-97.6-97.6s-97.6 43.783-97.6 97.6c0 8.837 7.163 16 16 16s16-7.163 16-16c0-36.172 29.428-65.6 65.6-65.6s65.6 29.428 65.6 65.6c0 8.837 7.163 16 16 16s16-7.163 16-16zm106.47-45.984c8.448-2.591 13.195-11.541 10.604-19.988-14.644-47.732-45.384-89.796-86.559-118.441-7.254-5.046-17.226-3.259-22.271 3.996-5.047 7.254-3.258 17.226 3.996 22.271 35.322 24.574 61.688 60.643 74.242 101.559 2.593 8.453 11.545 13.193 19.988 10.603zm60.888-18.65c8.447-2.594 13.193-11.544 10.601-19.991C492.386 93.787 452.886 39.627 400.059 2.868c-7.253-5.046-17.225-3.259-22.272 3.995-5.047 7.253-3.258 17.225 3.995 22.272 46.978 32.688 82.105 80.855 98.918 135.631 2.593 8.447 11.541 13.192 19.991 10.6zM240 256c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm-64 64c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm-96 96c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm-64 64c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm155.313-75.313l-64-64-22.627 22.627 64 64 22.627-22.627z\"]\n};\nvar faAsterisk = {\n prefix: 'fal',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M475.31 364.144L288 256l187.31-108.144c5.74-3.314 7.706-10.653 4.392-16.392l-4-6.928c-3.314-5.74-10.653-7.706-16.392-4.392L272 228.287V12c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v216.287L52.69 120.144c-5.74-3.314-13.079-1.347-16.392 4.392l-4 6.928c-3.314 5.74-1.347 13.079 4.392 16.392L224 256 36.69 364.144c-5.74 3.314-7.706 10.653-4.392 16.392l4 6.928c3.314 5.74 10.653 7.706 16.392 4.392L240 283.713V500c0 6.627 5.373 12 12 12h8c6.627 0 12-5.373 12-12V283.713l187.31 108.143c5.74 3.314 13.079 1.347 16.392-4.392l4-6.928c3.314-5.74 1.347-13.079-4.392-16.392z\"]\n};\nvar faAt = {\n prefix: 'fal',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.058 110.919 248 248 248 52.925 0 104.68-17.078 147.092-48.319 5.501-4.052 6.423-11.924 2.095-17.211l-5.074-6.198c-4.018-4.909-11.193-5.883-16.307-2.129C346.93 457.208 301.974 472 256 472c-119.373 0-216-96.607-216-216 0-119.375 96.607-216 216-216 118.445 0 216 80.024 216 200 0 72.873-52.819 108.241-116.065 108.241-19.734 0-23.695-10.816-19.503-33.868l32.07-164.071c1.449-7.411-4.226-14.302-11.777-14.302h-12.421a12 12 0 0 0-11.781 9.718c-2.294 11.846-2.86 13.464-3.861 25.647-11.729-27.078-38.639-43.023-73.375-43.023-68.044 0-133.176 62.95-133.176 157.027 0 61.587 33.915 98.354 90.723 98.354 39.729 0 70.601-24.278 86.633-46.982-1.211 27.786 17.455 42.213 45.975 42.213C453.089 378.954 504 321.729 504 240 504 103.814 393.863 8 256 8zm-37.92 342.627c-36.681 0-58.58-25.108-58.58-67.166 0-74.69 50.765-121.545 97.217-121.545 38.857 0 58.102 27.79 58.102 65.735 0 58.133-38.369 122.976-96.739 122.976z\"]\n};\nvar faAtlas = {\n prefix: 'fal',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M448 392V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.35 28.65 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.67 0-32-14.33-32-32s14.33-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.72 0-22.55 3.38-32 8.88V80c0-26.5 21.5-48 48-48h336v352zm-192-48c70.69 0 128-57.31 128-128S294.69 80 224 80 96 137.31 96 208s57.31 128 128 128zm94.38-144h-39.09c-1.49-27.03-6.54-51.35-14.21-70.41 27.71 13.24 48.02 39.19 53.3 70.41zm-39.09 32h39.09c-5.29 31.22-25.59 57.17-53.3 70.41 7.68-19.06 12.72-43.38 14.21-70.41zM224 113.31c7.69 7.45 20.77 34.42 23.43 78.69h-46.87c2.67-44.26 15.75-71.24 23.44-78.69zM247.43 224c-2.66 44.26-15.74 71.24-23.43 78.69-7.69-7.45-20.77-34.42-23.43-78.69h46.86zm-64.51-102.41c-7.68 19.06-12.72 43.38-14.21 70.41h-39.09c5.28-31.22 25.59-57.17 53.3-70.41zM168.71 224c1.49 27.03 6.54 51.35 14.21 70.41-27.71-13.24-48.02-39.19-53.3-70.41h39.09z\"]\n};\nvar faAtom = {\n prefix: 'fal',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M224,200a56,56,0,1,0,56.00149,56A56.06868,56.06868,0,0,0,224,200Zm0,80a24,24,0,1,1,24.00064-24A24.00651,24.00651,0,0,1,224,280Zm188.72376-24c15.56292-20.26562,26.71946-40.625,31.9071-60,6.03141-22.60938,3.9376-43.42188-6.06266-60.1875-18.21924-30.5-60.34535-42.96875-113.503-38.4375C301.81457,37.8125,265.5636,0,224,0S146.18543,37.8125,122.96607,97.375c-53.18892-4.53125-95.315,7.92188-113.503,38.4375C-.56846,152.57812-2.66227,173.39062,3.36914,196c5.18764,19.375,16.34418,39.73438,31.9071,60-15.56292,20.26562-26.71946,40.625-31.9071,60-6.03141,22.60938-3.9376,43.42188,6.06266,60.1875,15.84417,26.5,49.59507,39.51562,93.03372,39.51562,6.37517,0,13.50036-1.14062,20.25054-1.70312C145.96668,473.92188,182.31139,512,224,512s78.03332-38.07812,101.28394-98c6.75018.5625,13.87537,1.70312,20.25054,1.70312,43.4074,0,77.18955-13.01562,93.00247-39.51562,10.03151-16.76562,12.12532-37.57812,6.09391-60.1875C439.44322,296.625,428.28668,276.26562,412.72376,256ZM36.90128,359.78125c-5.5314-9.29687-6.43767-21.25-2.59382-35.5,3.68682-13.71875,11.59406-28.40625,22.3131-43.29687A400.69639,400.69639,0,0,0,99.93421,319.4375a432.51171,432.51171,0,0,0,12.59408,63.9375C74.80854,385.3125,47.1203,376.84375,36.90128,359.78125Zm59.53283-85.04687Q86.16822,265.42969,77.3086,256q8.85962-9.44532,19.12551-18.73438c-.21875,6.21876-.46876,12.39063-.46876,18.73438S96.21536,268.51562,96.43411,274.73438Zm3.5001-82.17188a397.74293,397.74293,0,0,0-43.31365,38.45312c-10.719-14.89062-18.62628-29.57812-22.3131-43.29687-3.84385-14.25-2.93758-26.20313,2.62507-35.5,9.219-15.46875,32.71962-23.98437,65.158-23.98437,3.31259,0,6.90644.28124,10.43778.45312A431.64065,431.64065,0,0,0,99.93421,192.5625Zm211.75562-25.5c-8.37522-5.32812-16.87545-10.57812-25.81319-15.54688-6.43767-3.57812-12.84409-6.90624-19.28176-10.14062a338.66891,338.66891,0,0,1,36.56347-8.8125C306.00139,141.96875,309.81478,157.42188,311.68983,167.0625ZM224,32c24.06314,0,49.53257,26.03125,68.18931,69.96875A407.59456,407.59456,0,0,0,224,122.3125a405.98246,405.98246,0,0,0-68.18931-20.35938C174.46743,58.01562,199.93686,32,224,32ZM144.84165,132.5625a336.43586,336.43586,0,0,1,36.53222,8.8125c-6.40642,3.23438-12.84409,6.5625-19.25051,10.14062-8.93774,4.96876-17.438,10.21876-25.81319,15.54688C138.18522,157.42188,141.997,141.96875,144.84165,132.5625Zm-8.53148,212.375c8.37522,5.32812,16.87545,10.57812,25.81319,15.54688,6.71893,3.75,13.37535,6.48437,20.09428,9.85937a344.234,344.234,0,0,1-37.376,9.125A355.36907,355.36907,0,0,1,136.31017,344.9375ZM224,480c-24.15689,0-49.72007-26.23438-68.40807-70.48438A402.25348,402.25348,0,0,0,224,389.20312a402.25348,402.25348,0,0,0,68.40807,20.3125C273.72007,453.76562,248.15689,480,224,480Zm79.15835-100.54688a341.68756,341.68756,0,0,1-37.34474-9.10937c6.71893-3.375,13.37536-6.10937,20.063-9.85937,8.93774-4.96876,17.46922-10.21876,25.84444-15.53126C309.31477,357.15625,306.40844,368.625,303.15835,379.45312Zm14.71914-77.39062a471.236,471.236,0,0,1-47.56376,30.48438,475.86157,475.86157,0,0,1-46.28248,22.60937,476.691,476.691,0,0,1-46.345-22.60937,471.236,471.236,0,0,1-47.56376-30.48438c-1.375-14.71875-2.15631-30.07812-2.15631-46.0625s.78127-31.34375,2.15631-46.0625a471.236,471.236,0,0,1,47.56376-30.48438A477.44789,477.44789,0,0,1,224,156.76562a477.44789,477.44789,0,0,1,46.31373,22.6875,471.236,471.236,0,0,1,47.56376,30.48438c1.375,14.71875,2.15631,30.07812,2.15631,46.0625S319.25253,287.34375,317.87749,302.0625Zm28.06325-173.82812c32.40711,0,55.90773,8.51562,65.158,23.96874,5.5314,9.3125,6.43767,21.25,2.59382,35.5-3.68839,13.73438-11.59406,28.40626-22.3131,43.3125a396.1044,396.1044,0,0,0-43.31365-38.45312,435.36835,435.36835,0,0,0-12.56283-63.875C339.003,128.5,342.5969,128.23438,345.94074,128.23438Zm5.62515,109.03124Q361.83179,246.57032,370.6914,256q-8.85962,9.44532-19.12551,18.73438c.21875-6.21876.46876-12.39063.46876-18.73438S351.78464,243.48438,351.56589,237.26562Zm59.50158,122.51563c-10.15652,17.0625-37.84476,25.53125-75.59576,23.5625a432.07594,432.07594,0,0,0,12.59408-63.90625,397.74293,397.74293,0,0,0,43.31365-38.45312c10.719,14.89062,18.62471,29.57812,22.3131,43.29687C417.53639,338.53125,416.63012,350.48438,411.06747,359.78125Z\"]\n};\nvar faAtomAlt = {\n prefix: 'fal',\n iconName: 'atom-alt',\n icon: [448, 512, [], \"f5d3\", \"M394.06157,256.00111c55.56193,84.484,71.15552,164.23356,32.84342,202.46775C412.49888,472.81254,392.40534,480,367.87434,480c-21.18728,0-45.562-5.34372-72.43676-16.06242-23.18726-9.25-47.312-22.71864-71.43677-38.57793-24.156,15.87492-48.28075,29.328-71.43677,38.57793C125.68932,474.65628,101.25207,480,80.12729,480c-24.56225,0-44.6558-7.18746-59.03065-21.53114C-17.21547,420.23467-1.62188,340.48507,53.9088,256.00111-1.62188,171.51715-17.21547,91.76755,21.09664,53.53336,47.90887,26.81474,94.53339,24.92413,152.564,48.06464c23.156,9.25,47.28077,22.71864,71.43677,38.57793,24.12476-15.87492,48.24951-29.328,71.43677-38.57793C353.562,24.89288,400.18651,26.86162,426.905,53.53336,465.21709,91.76755,449.6235,171.51715,394.06157,256.00111ZM195.7511,405.31287A619.164,619.164,0,0,1,130.56427,349.235a620.957,620.957,0,0,1-56.87442-64.96843C30.87779,353.51625,20.81539,412.95346,43.75266,435.844c16.93733,16.828,52.187,16.24992,96.874-1.60937C158.47023,427.094,177.06379,416.87531,195.7511,405.31287ZM73.7211,227.73562a609.0454,609.0454,0,0,1,122.03-121.04627c-18.68731-11.56244-37.24962-21.78114-55.12443-28.92173C117.5644,68.56454,97.03336,63.95518,80.18979,63.95518c-15.78109,0-28.24972,4.06248-36.40588,12.20307C20.81539,99.06439,30.909,158.486,73.7211,227.73562ZM224.00081,386.73484a585.00847,585.00847,0,0,0,70.74928-60.10908,581.92356,581.92356,0,0,0,60.43688-70.609,579.55986,579.55986,0,0,0-60.43688-70.609,585.9904,585.9904,0,0,0-70.74928-60.10908,583.82754,583.82754,0,0,0-70.78052,60.10908,576.41233,576.41233,0,0,0-60.40563,70.609,578.75052,578.75052,0,0,0,60.40563,70.609A586.65879,586.65879,0,0,0,224.00081,386.73484Zm56.12443-130.73373a56.12456,56.12456,0,1,1-56.12443-55.99972A56.1343,56.1343,0,0,1,280.12524,256.00111Zm-32.09342,0a24.04668,24.04668,0,1,0-24.031,23.99988A24.0027,24.0027,0,0,0,248.03182,256.00111Zm4.18745-149.31176a616.29534,616.29534,0,0,1,65.21809,56.07785,620.54665,620.54665,0,0,1,56.84317,64.96842c42.81206-69.24965,52.9057-128.68686,29.93719-151.57737-16.84358-16.79679-52.12447-16.21867-96.84276,1.60937C289.50014,84.90821,270.93783,95.14253,252.21927,106.68935ZM374.28053,284.26659A624.20736,624.20736,0,0,1,317.43736,349.235a622.60731,622.60731,0,0,1-65.21809,56.07785c18.68731,11.56244,37.28087,21.78114,55.15569,28.92173,44.687,17.85929,79.96793,18.42179,96.84276,1.60937C427.18623,412.95346,417.09259,353.51625,374.28053,284.26659Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fal',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm16 336c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V112c0-8.822 7.178-16 16-16h416c8.822 0 16 7.178 16 16v288zm-293.411-97.217h-67.335l-13.508 40.974A11.999 11.999 0 0 1 94.35 352H84.01c-8.276 0-14.067-8.18-11.319-15.986l59.155-168a12 12 0 0 1 11.319-8.015h19.514a12 12 0 0 1 11.319 8.015l59.155 168C235.902 343.82 230.11 352 221.834 352h-10.34c-5.18 0-9.775-3.324-11.397-8.243l-13.508-40.974zm-33.802-109.521s-4.327 18.93-8.113 29.746l-17.036 51.38h50.298l-17.037-51.38c-3.515-10.817-7.571-29.746-7.571-29.746h-.541zM263.385 172c0-6.627 5.373-12 12-12h53.443c59.222 0 97.893 35.155 97.893 95.73 0 60.574-38.67 96.27-97.893 96.27h-53.443c-6.627 0-12-5.373-12-12V172zm63.549 149.983c38.941 0 63.819-22.986 63.819-66.253 0-42.727-25.419-65.713-63.819-65.713H298.27v131.966h28.664z\"]\n};\nvar faAward = {\n prefix: 'fal',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M192 95.95c-52.93 0-96 43.07-96 96s43.07 96 96 96 96-43.07 96-96-43.06-96-96-96zm0 160c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm175.63 16.38c14.06-14.31 19.59-35.33 14.47-54.86-6.39-24.2-6.39-20.45 0-44.69 5.13-19.52-.41-40.53-14.47-54.86-17.58-17.72-15.57-14.69-21.91-38.59-5.15-19.63-20.37-35.08-39.72-40.34-23.3-6.32-20.62-4.58-37.75-22.22-14.22-14.42-35.12-20.08-54.53-14.82-23.5 6.51-20.1 6.41-43.47 0-19.25-5.31-40.28.4-54.5 14.85-17.3 17.67-14.21 15.77-37.72 22.19-19.37 5.26-34.59 20.71-39.75 40.32-6.36 24.04-4.38 20.87-21.91 38.62C2.31 132.25-3.22 153.27 1.91 172.8c6.39 24.17 6.39 20.42 0 44.69-5.13 19.52.41 40.53 14.47 54.86 17.58 17.72 15.57 14.69 21.91 38.59 2.01 7.64 5.91 14.36 10.62 20.38L1.2 448.7c-4.31 10.57 3.51 22.04 14.79 22.04.55 0-2.91.12 53.32-2.03L105.56 507c3.22 3.4 7.42 5 11.58 5 6.17 0 12.23-3.53 14.86-9.96l52.45-129.03a23.346 23.346 0 0 1 15.11-.01L252 502.04c2.62 6.43 8.69 9.96 14.86 9.96 4.16 0 8.36-1.6 11.58-5l36.25-38.28c56.23 2.15 52.77 2.03 53.32 2.03 11.28 0 19.1-11.47 14.79-22.04l-47.7-117.37c4.71-6.02 8.61-12.74 10.62-20.37 6.36-24.06 4.38-20.89 21.91-38.64zM111.72 466.95c-22.59-23.86-16.56-17.49-29.13-30.77-18.3.7-9.45.36-42.41 1.63l35.55-87.48c.79.26 1.47.75 2.28.97 21.87 5.86 20.46 4.6 31.59 15.91 9.94 10.14 22.79 15.57 35.96 16.5l-33.84 83.24zm232.11-29.15c-32.91-1.26-24.13-.92-42.41-1.62-12.56 13.27-6.54 6.91-29.13 30.77l-33.9-83.4c13.21-.91 26.06-6.21 36.02-16.35 11.41-11.61 9.83-10.19 31.59-15.91.81-.22 1.49-.71 2.28-.96l35.55 87.47zm-29.05-134.99c-2.25 8.58-8.84 15.33-17.22 17.61-23.62 6.25-28.39 6.45-45.97 24.37-8 8.11-20.19 9.61-29.75 3.48-18.13-11.44-41.56-11.45-59.69.02-9.5 6.03-21.75 4.62-29.75-3.52-17.38-17.68-22.12-17.95-45.97-24.36-8.38-2.28-14.97-9.03-17.22-17.62-8.06-30.63-7.53-30.19-30.03-52.87-6.19-6.31-8.63-15.62-6.34-24.31 8.15-30.47 8.2-30.48 0-60.95-2.28-8.69.16-18 6.34-24.3 22.42-22.7 21.94-22.06 30.03-52.91 2.25-8.58 8.84-15.33 17.22-17.59 30.79-8.41 29.68-7.8 52.13-30.62 5.2-5.31 13.82-8.96 23.28-6.41 30.46 8.38 29.85 8.4 60.28 0 8.19-2.27 17.19.19 23.31 6.37 22.29 22.87 21.87 22.44 52.16 30.66 8.34 2.27 14.94 9.02 17.19 17.61 8.06 30.63 7.53 30.19 30.03 52.87 6.19 6.31 8.63 15.62 6.34 24.31-8.19 30.52-8.16 30.54 0 60.95 2.28 8.69-.16 18-6.34 24.3-22.41 22.71-21.94 22.06-30.03 52.91z\"]\n};\nvar faAxe = {\n prefix: 'fal',\n iconName: 'axe',\n icon: [640, 512, [], \"f6b2\", \"M525.74 160l-47.27-47.27 24.16-24.16c12.5-12.5 12.5-32.76 0-45.26L468.69 9.37C462.44 3.12 454.25 0 446.06 0s-16.38 3.12-22.63 9.37l-24.16 24.16-24.15-24.16C368.87 3.12 360.68 0 352.49 0s-16.38 3.12-22.63 9.37l-96.49 96.49c-12.5 12.5-12.5 32.76 0 45.25l24.16 24.16L9.37 423.43c-12.5 12.5-12.5 32.76 0 45.26l33.94 33.94c6.25 6.25 14.44 9.37 22.63 9.37s16.38-3.12 22.63-9.37l248.16-248.16L384 301.74V416h32c123.71 0 224-100.29 224-224v-32H525.74zM446.03 32h.03L480 65.94 455.84 90.1l-33.95-33.96L446.03 32zM65.94 480L32 446.06 280.16 197.9l33.94 33.94L65.94 480zM416 384v-95.51l-160-160L352.46 32h.03l160 160H608c0 105.87-86.13 192-192 192z\"]\n};\nvar faAxeBattle = {\n prefix: 'fal',\n iconName: 'axe-battle',\n icon: [512, 512, [], \"f6b3\", \"M512 160.92C505.23 99.15 476.88 44.29 437.8 4.7c-3.18-3.22-7.03-4.7-10.81-4.7-7.07 0-13.95 5.14-15.99 13.66-13.33 55.54-55.26 97.44-107 104.78V80c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v38.44c-51.74-7.35-93.67-49.24-107-104.78C98.96 5.14 92.08 0 85.01 0c-3.79 0-7.63 1.48-10.81 4.7C28.67 50.83 0 117.62 0 192c0 74.38 28.67 141.17 74.2 187.3 3.18 3.23 7.03 4.7 10.81 4.7 7.07 0 13.95-5.14 15.99-13.66 13.33-55.54 55.26-97.44 107-104.78V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V265.56c51.74 7.35 93.67 49.24 107 104.78 2.04 8.52 8.92 13.66 15.99 13.66 3.79 0 7.63-1.48 10.81-4.7 39.08-39.59 67.43-94.45 74.2-156.22L480 192l32-31.08zM78.65 335.56C48.76 295.83 32 244.92 32 192S48.76 88.17 78.65 48.44c6.93 17.01 38.53 89.43 129.35 102.33v82.47c-90.82 12.89-122.41 85.31-129.35 102.32zM272 480h-32V96h32v384zm185.04-265.71l19.29 19.87c-6.38 37.57-21.22 72.49-42.97 101.41-6.94-17.01-38.53-89.43-129.35-102.33v-82.47c90.82-12.9 122.41-85.32 129.35-102.33 21.75 28.92 36.59 63.83 42.97 101.41l-19.29 19.87L435.41 192l21.63 22.29z\"]\n};\nvar faBaby = {\n prefix: 'fal',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M374.2 160.3c-17.4-25.2-52-32.1-77.9-14.5l-36.4 25c-29.4 20.2-86 34.3-135.9 0l-36.4-25C61.9 128.2 27.2 135 9.8 160.3c-17.5 25.5-11 60.4 14.4 77.9l36.4 24.9c10.9 7.5 22.8 14.1 35.4 19.8v22.6l-54.3 56.2c-19.2 17.8-23.5 46.4-10 69.3L70 487.1c10.3 15.4 27.9 24.9 46.6 24.9 10 0 19.8-2.7 28.4-7.8 13-7.7 52.3-40.5 2-96.5l18.4-11.6c15.1 5.3 37.9 5.3 53.1 0l18.4 11.6c-50.3 56-11 88.8 2 96.5 8.6 5.1 18.4 7.8 28.4 7.8 18.7 0 36.2-9.5 46.6-24.9l38.3-56.1c13.5-22.9 9.1-51.5-10-69.3L288 305.5v-22.6c12.6-5.6 24.4-12.3 35.4-19.8l36.4-24.9c25.4-17.5 31.9-52.5 14.4-77.9zm-237 283.5c6.7 11.4 2.9 26.1-8.5 32.9-3.8 2.3-8 3.3-12.2 3.3-8.2 0-16.2-4.2-20.7-11.8l-36.6-53.4c-6-10.2-3.7-23.3 5.5-30.8l38.8-41.2c.7.8 1 1.8 1.7 2.6l35.2 35.2-29.4 27.7 26.2 35.5zm82.9-85.2c-13.2 13.2-43.5 12.8-56.2 0L128 322.7V312h128v10.7l-35.9 35.9zm99.1 25.4c9.2 7.5 11.5 20.6 5.5 30.8l-36.6 53.4c-4.5 7.6-12.5 11.8-20.7 11.8-4.1 0-8.3-1.1-12.2-3.3-11.4-6.7-15.2-21.5-8.5-32.9l26.1-35.6-29.4-27.7 35.2-35.2c.7-.7 1.1-1.8 1.7-2.6l38.9 41.3zm22.4-172.2l-36.3 24.9c-15.4 10.5-32 18.5-49.3 24.4V280H128v-18.9c-17.3-5.9-33.9-13.8-49.3-24.4l-36.3-24.9c-26.4-18.2 1.2-57.3 27.2-39.6l36.3 24.9c47.2 32.4 117.3 37.7 172.1 0l36.3-24.9c26.1-17.7 53.7 21.4 27.3 39.6zM192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fal',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M504 96h-40c-26.5 0-48 21.5-48 48v48H280.8L174.3 24.5c-8-12.6-21.2-21.2-36.3-23.7-14.8-2.5-29.8 1.2-41.2 10.3C35.3 60.3 0 132 0 208v16c0 67.2 40.3 126.2 101.3 160.5-1.8-.1-3.5-.5-5.3-.5-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64c0-18.1-7.6-34.3-19.6-46 25.9 8.9 54 14 83.6 14s57.8-5 83.6-14c-12 11.6-19.6 27.9-19.6 46 0 35.3 28.7 64 64 64s64-28.7 64-64-28.7-64-64-64c-1.8 0-3.5.4-5.3.5C407.7 350.2 448 291.2 448 224v-80c0-8.8 7.2-16 16-16h40c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM116.8 36.1c5.9-4.7 12.6-4.4 15.9-3.8 6.2 1 11.5 4.4 14.6 9.3L242.9 192H32.6c4.6-60.2 34.7-116.3 84.2-155.9zM96 480c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm256-64c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm-128-32c-105.9 0-192-71.8-192-160h384c0 88.2-86.1 160-192 160z\"]\n};\nvar faBackpack = {\n prefix: 'fal',\n iconName: 'backpack',\n icon: [448, 512, [], \"f5d4\", \"M320 64h-16V48c0-26.47-21.53-48-48-48h-64c-26.47 0-48 21.53-48 48v16h-16C57.31 64 0 121.31 0 192v256c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V192c0-70.69-57.31-128-128-128zM176 48c0-8.83 7.19-16 16-16h64c8.81 0 16 7.17 16 16v16h-96V48zm160 432H112v-96h224v96zm0-128H112v-32c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32v32zm80 96c0 17.64-14.36 32-32 32h-16V320c0-35.29-28.71-64-64-64H144c-35.29 0-64 28.71-64 64v160H64c-17.64 0-32-14.36-32-32V192c0-52.94 43.06-96 96-96h192c52.94 0 96 43.06 96 96v256zM312 160H136c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faBackspace = {\n prefix: 'fal',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M469.66 181.65l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0L384 233.37l-63.03-63.03c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31L361.38 256l-63.03 63.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L384 278.63l63.03 63.03c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L406.63 256l63.03-63.03a8.015 8.015 0 0 0 0-11.32zM576 64H205.26C188.28 64 172 70.74 160 82.74L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm32 320c0 17.64-14.36 32-32 32H205.26c-8.55 0-16.58-3.33-22.63-9.37L32 256l150.63-150.63c6.04-6.04 14.08-9.37 22.63-9.37H576c17.64 0 32 14.36 32 32v256z\"]\n};\nvar faBackward = {\n prefix: 'fal',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M267.5 281.1l192 159.4c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6L267.5 232c-15.3 12.8-15.3 36.4 0 49.1zm20.5-24.5L480 96v320L288 256.6zM11.5 281.1l192 159.4c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6L11.5 232c-15.3 12.8-15.3 36.4 0 49.1zM32 256.6L224 96v320L32 256.6z\"]\n};\nvar faBacon = {\n prefix: 'fal',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M566.93 104.4L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.11c-29.75 78.82-89.55 94.67-98.72 98.08-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l96.14 95.49a30.73 30.73 0 0 0 21.71 8.9 31.05 31.05 0 0 0 18.47-6.08c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.26 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05zM32.43 386.25c31.64-25.81 57.68-35.51 82.06-44.55 68.47-23.3 100.93-76.1 116.1-116.29l.93-2.5c29.66-79.72 86.61-135.76 169.26-166.54 16.73-6.24 31.22-11.63 48.19-24l34.54 34.11c-18.7 12.78-35 19-51.82 25.28-28.28 10.6-57.57 21.59-97.35 61.37s-50.78 69.01-61.34 97.31c-9.88 26.27-19.16 51.06-54 85.95s-59.66 44.16-85.91 54c-19.66 7.37-39.86 15.13-63.64 32.37zm429-215.9c-68.53 23.35-101 76.16-116.14 116.34l-.88 2.36c-29.77 79.82-86.73 135.89-169.32 166.66-16.93 6.3-31.55 11.74-47.37 24.69l-35.23-34.83c18.67-12.74 34.93-18.91 51.76-25.22 28.28-10.6 57.53-21.57 97.31-61.33s50.75-69 61.35-97.35c9.87-26.26 19.15-51.06 54.06-86s59.69-44.19 86-54c19.65-7.37 39.86-15.15 63.67-32.42l37 36.51c-31.75 25.85-57.79 35.55-82.17 44.59z\"]\n};\nvar faBacteria = {\n prefix: 'fal',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M128,200a24,24,0,1,0,24,24A24,24,0,0,0,128,200Zm80-72a16,16,0,1,0,16,16A16,16,0,0,0,208,128ZM416,360a24,24,0,1,0,24,24A24,24,0,0,0,416,360ZM615.67,230.76l11.58-3.43a17.73,17.73,0,1,0-10.13-34l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.45,83.45,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.89,17.89,0,0,0,24.94,3.6A17.68,17.68,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21A83.27,83.27,0,0,0,615.67,230.76Zm-32.38,13.79A256.43,256.43,0,0,1,372.49,455.3a52,52,0,0,1-8.61.72c-25,0-47-18.69-51.17-43.48a52,52,0,0,1,42.75-59.83A152.41,152.41,0,0,0,480.71,227.45a52,52,0,1,1,102.58,17.1ZM272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM159.29,284.55A51.78,51.78,0,0,1,108.11,328a52.71,52.71,0,0,1-8.66-.72,52,52,0,0,1-42.74-59.83A256.41,256.41,0,0,1,267.51,56.71c42.95-7.23,58.13,32.87,59.78,42.75a52,52,0,0,1-42.75,59.83A152.41,152.41,0,0,0,159.29,284.55Z\"]\n};\nvar faBacterium = {\n prefix: 'fal',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511.32,100.33a16.31,16.31,0,0,0-20.26-10.86L468.7,96.1C450.61,56.5,414,42.27,413.3,41.94L419,20.19A16.13,16.13,0,0,0,407.38.53,16.44,16.44,0,0,0,403.24,0a16.21,16.21,0,0,0-15.71,12.06L382,33.33A111.51,111.51,0,0,0,366.32,32a101.2,101.2,0,0,0-16.72,1.49A386.14,386.14,0,0,0,301,45.14l-6.32-17.71a16.33,16.33,0,0,0-15.29-10.77,15.77,15.77,0,0,0-5.44,1A16.12,16.12,0,0,0,264,38.26l6.31,17.6a383.18,383.18,0,0,0-73.86,39.38L185.24,80.31A16.38,16.38,0,0,0,162.45,77a15.91,15.91,0,0,0-6.34,10.59,16.07,16.07,0,0,0,3,12l11.25,15a384.18,384.18,0,0,0-58.69,59.46L96.34,162.9a16.29,16.29,0,0,0-22.75,3.52,16,16,0,0,0,3.54,22.51l15.55,11.32a383,383,0,0,0-38.27,74l-18.64-6.41a16.27,16.27,0,0,0-20.67,10,15.85,15.85,0,0,0,.74,12.27,16.11,16.11,0,0,0,9.32,8.23l18.9,6.5a385.28,385.28,0,0,0-10.53,44.72c-2,12.08-1.49,23.88.27,35.35l-22.17,6.57a16.09,16.09,0,0,0-11,20,16.7,16.7,0,0,0,15.86,11.53,15.38,15.38,0,0,0,4.34-.62l22.05-6.51a111.81,111.81,0,0,0,55.65,54l-5.74,21.92a15.87,15.87,0,0,0,1.74,12.2,16.11,16.11,0,0,0,9.93,7.47,15.8,15.8,0,0,0,3.85.48,16.69,16.69,0,0,0,16-12.06l5.52-21.12A111.79,111.79,0,0,0,144.14,480,111.17,111.17,0,0,0,207,460.08l14.08,14.45a16.73,16.73,0,0,0,23,.32,16,16,0,0,0,.32-22.81L231,438.25a111.19,111.19,0,0,0,23.45-51.86A160.61,160.61,0,0,1,261,360.75l14.63,6.85a15.6,15.6,0,0,0,6.61,1.44,16.73,16.73,0,0,0,15-9.2,15.91,15.91,0,0,0,.58-12.28,16.07,16.07,0,0,0-8.39-9.17l-14.64-6.86a160.37,160.37,0,0,1,60.31-58.95l6.61,14.95A16.65,16.65,0,0,0,357,297.06a15.83,15.83,0,0,0,14.91-10.26,16,16,0,0,0-.29-12.31l-6.53-14.73a159.91,159.91,0,0,1,21.36-5.32,111,111,0,0,0,55-26.35l14.93,13.46a16.15,16.15,0,0,0,10.87,4,16.34,16.34,0,0,0,12.11-5.15,16.06,16.06,0,0,0-1.13-22.78l-15.8-14.26a111.11,111.11,0,0,0,16.14-76.54l21.82-6.45a16.12,16.12,0,0,0,9.68-7.84A15.92,15.92,0,0,0,511.32,100.33ZM381.15,222.87C301,236.23,236.27,301,222.91,381.13c-8.21,49.3-61.52,81.75-111.31,59.57a79.9,79.9,0,0,1-39.77-38.52C39.12,333.36,132.8,102,354.91,65c10.49-1.77,62.73-3.69,84.69,44.36C473.43,183.41,403.38,219.17,381.15,222.87ZM160,272a48,48,0,1,0,48,48A48,48,0,0,0,160,272Zm0,64a16,16,0,1,1,16-16A16,16,0,0,1,160,336Zm80-152a24,24,0,1,0,24,24A24,24,0,0,0,240,184Z\"]\n};\nvar faBadge = {\n prefix: 'fal',\n iconName: 'badge',\n icon: [512, 512, [], \"f335\", \"M256 512c-35.5 0-68.1-19.4-85.5-49.6-32.1 8.7-69 1.1-95.5-25.4-25.1-25.1-34.5-61.9-25.4-95.5C19.4 324.2 0 291.5 0 256s19.4-68.2 49.6-85.5c-9.1-33.6.3-70.4 25.4-95.5 25.1-25.1 61.9-34.5 95.5-25.4C187.8 19.4 220.5 0 256 0s68.2 19.4 85.5 49.6c33.6-9.1 70.4.3 95.5 25.4 25.1 25.1 34.5 61.9 25.4 95.5 30.2 17.3 49.6 50 49.6 85.5s-19.4 68.2-49.6 85.5c9.1 33.6-.3 70.4-25.4 95.5-26.1 26.1-62.8 34.3-95.5 25.4-17.4 30.2-50 49.6-85.5 49.6zm-68.3-91.1c3.6 9.6 16.2 59.1 68.3 59.1 51 0 63.7-47 68.3-59.1 32.6 14.8 61.2 22.4 90.1-6.5 36-36 11.8-78.3 6.5-90.1 9.6-3.6 59.1-16.2 59.1-68.3 0-51-47-63.7-59.1-68.3 4.4-9.6 30.3-53.4-6.5-90.1-36-36-78.3-11.8-90.1-6.5C320.7 81.5 308.1 32 256 32c-51 0-63.7 47-68.3 59.1-9.3-4.2-53.3-30.4-90.1 6.5-36 36-11.8 78.3-6.5 90.1C81.5 191.3 32 203.9 32 256c0 51 47 63.7 59.1 68.3-4.4 9.6-30.3 53.4 6.5 90.1 28.8 28.7 57.5 21.3 90.1 6.5z\"]\n};\nvar faBadgeCheck = {\n prefix: 'fal',\n iconName: 'badge-check',\n icon: [512, 512, [], \"f336\", \"M345.34 182.46a7.98 7.98 0 0 0-5.66-2.34c-2.05 0-4.1.78-5.66 2.34L226.54 289.94l-48.57-48.57a7.98 7.98 0 0 0-5.66-2.34c-2.05 0-4.1.78-5.66 2.34l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l65.54 65.54c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.65-2.34l124.45-124.45c3.12-3.12 3.12-8.19 0-11.31l-11.3-11.31zM512 256c0-35.5-19.4-68.2-49.6-85.5 9.1-33.6-.3-70.4-25.4-95.5s-61.9-34.5-95.5-25.4C324.2 19.4 291.5 0 256 0s-68.2 19.4-85.5 49.6c-33.6-9.1-70.4.3-95.5 25.4s-34.5 61.9-25.4 95.5C19.4 187.8 0 220.5 0 256s19.4 68.2 49.6 85.5c-9.1 33.6.3 70.4 25.4 95.5 26.5 26.5 63.4 34.1 95.5 25.4 17.4 30.2 50 49.6 85.5 49.6s68.1-19.4 85.5-49.6c32.7 8.9 69.4.7 95.5-25.4 25.1-25.1 34.5-61.9 25.4-95.5 30.2-17.3 49.6-50 49.6-85.5zm-91.1 68.3c5.3 11.8 29.5 54.1-6.5 90.1-28.9 28.9-57.5 21.3-90.1 6.5C319.7 433 307 480 256 480c-52.1 0-64.7-49.5-68.3-59.1-32.6 14.8-61.3 22.2-90.1-6.5-36.8-36.7-10.9-80.5-6.5-90.1C79 319.7 32 307 32 256c0-52.1 49.5-64.7 59.1-68.3-5.3-11.8-29.5-54.1 6.5-90.1 36.8-36.9 80.8-10.7 90.1-6.5C192.3 79 205 32 256 32c52.1 0 64.7 49.5 68.3 59.1 11.8-5.3 54.1-29.5 90.1 6.5 36.8 36.7 10.9 80.5 6.5 90.1C433 192.3 480 205 480 256c0 52.1-49.5 64.7-59.1 68.3z\"]\n};\nvar faBadgeDollar = {\n prefix: 'fal',\n iconName: 'badge-dollar',\n icon: [512, 512, [], \"f645\", \"M289.94 249.05l-59.06-16.86c-8.75-2.52-14.88-10.61-14.88-19.7 0-11.3 9.19-20.48 20.47-20.48h36.91c8.24 0 16.08 2.56 22.63 7.32 2.99 2.17 7.22 1.46 9.84-1.16l11.42-11.42c3.5-3.5 2.94-9.22-.99-12.23-12.26-9.41-27.18-14.51-42.9-14.51H272v-24c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24h-3.53c-30.59 0-55.13 26.3-52.24 57.48 2.06 22.16 19.06 40.12 40.45 46.22l56.44 16.11c8.75 2.52 14.88 10.61 14.88 19.7 0 11.3-9.19 20.48-20.47 20.48h-36.91c-8.24 0-16.08-2.56-22.63-7.32-2.99-2.17-7.22-1.46-9.84 1.16l-11.42 11.42c-3.5 3.5-2.94 9.21.99 12.23 12.26 9.41 27.18 14.51 42.9 14.51H240v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h1.36c22.81 0 44.33-13.59 51.72-35.17 10.15-29.65-7.28-59.8-35.14-67.78zM512 256c0-35.5-19.4-68.2-49.6-85.5 9.1-33.6-.3-70.4-25.4-95.5s-61.9-34.5-95.5-25.4C324.2 19.4 291.5 0 256 0s-68.2 19.4-85.5 49.6c-33.6-9.1-70.4.3-95.5 25.4s-34.5 61.9-25.4 95.5C19.4 187.8 0 220.5 0 256s19.4 68.2 49.6 85.5c-9.1 33.6.3 70.4 25.4 95.5 26.5 26.5 63.4 34.1 95.5 25.4 17.4 30.2 50 49.6 85.5 49.6s68.1-19.4 85.5-49.6c32.7 8.9 69.4.7 95.5-25.4 25.1-25.1 34.5-61.9 25.4-95.5 30.2-17.3 49.6-50 49.6-85.5zm-91.1 68.3c5.3 11.8 29.5 54.1-6.5 90.1-28.9 28.9-57.5 21.3-90.1 6.5C319.7 433 307 480 256 480c-52.1 0-64.7-49.5-68.3-59.1-32.6 14.8-61.3 22.2-90.1-6.5-36.8-36.7-10.9-80.5-6.5-90.1C79 319.7 32 307 32 256c0-52.1 49.5-64.7 59.1-68.3-5.3-11.8-29.5-54.1 6.5-90.1 36.8-36.9 80.8-10.7 90.1-6.5C192.3 79 205 32 256 32c52.1 0 64.7 49.5 68.3 59.1 11.8-5.3 54.1-29.5 90.1 6.5 36.8 36.7 10.9 80.5 6.5 90.1C433 192.3 480 205 480 256c0 52.1-49.5 64.7-59.1 68.3z\"]\n};\nvar faBadgePercent = {\n prefix: 'fal',\n iconName: 'badge-percent',\n icon: [512, 512, [], \"f646\", \"M349.66 173.65l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-164.7 164.69c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l164.69-164.69c3.13-3.12 3.13-8.18.01-11.31zM240 192c0-26.47-21.53-48-48-48s-48 21.53-48 48 21.53 48 48 48 48-21.53 48-48zm-64 0c0-8.83 7.19-16 16-16s16 7.17 16 16-7.19 16-16 16-16-7.17-16-16zm144 80c-26.47 0-48 21.53-48 48s21.53 48 48 48 48-21.53 48-48-21.53-48-48-48zm0 64c-8.81 0-16-7.17-16-16s7.19-16 16-16 16 7.17 16 16-7.19 16-16 16zm192-80c0-35.5-19.4-68.2-49.6-85.5 9.1-33.6-.3-70.4-25.4-95.5s-61.9-34.5-95.5-25.4C324.2 19.4 291.5 0 256 0s-68.2 19.4-85.5 49.6c-33.6-9.1-70.4.3-95.5 25.4s-34.5 61.9-25.4 95.5C19.4 187.8 0 220.5 0 256s19.4 68.2 49.6 85.5c-9.1 33.6.3 70.4 25.4 95.5 26.5 26.5 63.4 34.1 95.5 25.4 17.4 30.2 50 49.6 85.5 49.6s68.1-19.4 85.5-49.6c32.7 8.9 69.4.7 95.5-25.4 25.1-25.1 34.5-61.9 25.4-95.5 30.2-17.3 49.6-50 49.6-85.5zm-91.1 68.3c5.3 11.8 29.5 54.1-6.5 90.1-28.9 28.9-57.5 21.3-90.1 6.5C319.7 433 307 480 256 480c-52.1 0-64.7-49.5-68.3-59.1-32.6 14.8-61.3 22.2-90.1-6.5-36.8-36.7-10.9-80.5-6.5-90.1C79 319.7 32 307 32 256c0-52.1 49.5-64.7 59.1-68.3-5.3-11.8-29.5-54.1 6.5-90.1 36.8-36.9 80.8-10.7 90.1-6.5C192.3 79 205 32 256 32c52.1 0 64.7 49.5 68.3 59.1 11.8-5.3 54.1-29.5 90.1 6.5 36.8 36.7 10.9 80.5 6.5 90.1C433 192.3 480 205 480 256c0 52.1-49.5 64.7-59.1 68.3z\"]\n};\nvar faBadgeSheriff = {\n prefix: 'fal',\n iconName: 'badge-sheriff',\n icon: [512, 512, [], \"f8a2\", \"M440 312a48.35 48.35 0 0 0-7.75.78l-33.81-56.84 33.78-56.73A47.94 47.94 0 1 0 395 136h-67.94l-34.24-57.58A47.53 47.53 0 0 0 304 48a48 48 0 0 0-96 0 47.53 47.53 0 0 0 11.28 30.54L185.06 136h-68a47.92 47.92 0 1 0-45 64 48.35 48.35 0 0 0 7.75-.78l33.81 56.84-33.84 56.73A47.6 47.6 0 0 0 72 312a48 48 0 1 0 45.05 64h67.89l34.24 57.58A47.53 47.53 0 0 0 208 464a48 48 0 0 0 96 0 47.53 47.53 0 0 0-11.28-30.54L326.94 376h68A47.92 47.92 0 1 0 440 312zm0-176a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM72 168a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm0 208a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm184 104a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm139-136h-77.16a16 16 0 0 0-13.75 7.81l-38.78 65.13a47 47 0 0 0-18.79 0l-38.74-65.13A15.94 15.94 0 0 0 194 344h-77a47.7 47.7 0 0 0-9.27-15.68l38.16-64.07a16 16 0 0 0 0-16.37l-38.13-64.18a47.77 47.77 0 0 0 9.29-15.7h77.11a16 16 0 0 0 13.75-7.81l38.78-65.13a47 47 0 0 0 18.8 0l38.73 65.13A15.94 15.94 0 0 0 318 168h77a47.63 47.63 0 0 0 9.27 15.68l-38.16 64.07a16 16 0 0 0 0 16.37l38.18 64.18A47.77 47.77 0 0 0 395 344zm45 32a16 16 0 1 1 16-16 16 16 0 0 1-16 16zM256 184a72 72 0 1 0 72 72 72.09 72.09 0 0 0-72-72zm0 112a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faBadgerHoney = {\n prefix: 'fal',\n iconName: 'badger-honey',\n icon: [640, 512, [], \"f6b4\", \"M622.25 142.55l-2.73-1.55c-22.49-12.74-43.96-27.08-65.15-41.88-55.61-38.87-87.95-35.01-88.92-35.01-19.05 0-38.09 5.21-55.47 15.21-17.09 9.83-35.92 16.78-55.03 16.78H128C57.31 96.1 0 153.39 0 224.06v15.99c0 8.84 7.16 16 16 16h20.03c2.62 11.24 9.82 46.58 54.09 79.65l-23.78 52.46a31.97 31.97 0 0 0-.12 23.77l25.3 57.94A16.002 16.002 0 0 0 106.41 480h76.74c11.63 0 19.38-12.03 14.56-22.62l-22.45-49.36 32.96-55.99h73.69l23.03 115.11c1.5 7.48 8.06 12.86 15.69 12.86h79.36c10.1 0 17.67-9.24 15.69-19.13l-26.99-134.92c45.32-30.5 101.32-61.16 152.42-75.66L560 288.05l22.75-45.49c53.39-4.45 57.25-63.93 57.25-67.2 0-13.94-6.88-26.66-17.75-32.81zM128 128.09h226.96c22.83 0 46.71-7.08 70.99-21.05 12.44-7.16 26.11-10.94 39.51-10.94 3.93 0 26.41-1.64 70.59 29.24 4.79 3.35 10.05 6.98 15.59 10.75H460c-30.88 0-60.31 9.67-91.47 20.93l-100.78 45.82c-9.66 3.47-19.84 5.23-30.25 5.23H192c-45.14 0-78.89-41.04-79.83-78.38 5.18-.87 10.41-1.6 15.83-1.6zm225.13 183.22l27.35 136.7h-46.73l-25.6-127.97H189.93l-50.68 86.08 19.05 41.89h-40.99L96 400.2l33.07-75.35-19.8-14.78C89.1 295 74.36 279.51 67.2 248.79l-5.77-24.72H32c0-35.91 20.07-66.91 49.36-83.36 6.77 54.16 55.27 99.36 110.64 99.36h45.5c14.12 0 27.94-2.39 42.28-7.61l100.78-45.82c27.19-9.78 53.72-18.56 79.44-18.56h20.41c-2.6 3.38-4.41 7.41-4.41 12 0 11.04 8.96 19.99 20 19.99 11.05 0 20-8.95 20-19.99 0-4.59-1.81-8.62-4.41-12h90.88c3.57 2.03 5.53 2.55 5.54 6.95-5.27 73.78-21.42-20.81-254.88 136.28z\"]\n};\nvar faBagsShopping = {\n prefix: 'fal',\n iconName: 'bags-shopping',\n icon: [576, 512, [], \"f847\", \"M544 256H224a32 32 0 0 0-32 32v192a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V288a32 32 0 0 0-32-32zm0 224H224V288h320zm-172.63-32.81A96.12 96.12 0 0 0 480 352v-24a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24a64.07 64.07 0 0 1-70.38 63.69c-33.25-3.23-57.62-33.12-57.62-66.53V328a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v20.66c0 48.79 35 92.34 83.37 98.53zM32 192h384v32h32v-32a32 32 0 0 0-32-32h-96V96a96 96 0 0 0-192 0v64H32a32 32 0 0 0-32 32v256a32 32 0 0 0 32 32h128v-32H32zm128-96a64 64 0 0 1 128 0v64H160z\"]\n};\nvar faBahai = {\n prefix: 'fal',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c5.26-13.11-4.98-25.55-16.89-25.55-3.2 0-6.52.9-9.69 2.92L307.45 120l-34.1-107.18C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-3.18-2.02-6.5-2.92-9.69-2.92-11.91 0-22.15 12.43-16.89 25.55l41.82 104.34-110 15.44c-17.53 2.46-21.67 26.27-6.03 34.67l98.16 52.66-74.49 83.53c-10.92 12.25-1.72 30.93 13.28 30.93 1.32 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.16 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.55 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c1.39.3 2.75.45 4.07.45 15.01 0 24.2-18.69 13.28-30.93l-74.48-83.54 98.16-52.66c15.65-8.4 11.51-32.21-6.03-34.67zm-106.88 59.05l-35.85 19.24 27.2 30.51 46.79 52.48-68.21-14.86-39.65-8.64 1.5 41.11 2.58 70.71-42.83-55.85L256 363.8l-24.9 32.47-42.83 55.85 2.58-70.71 1.5-41.11-39.65 8.64-68.21 14.86 46.79-52.48 27.2-30.51-35.85-19.24-61.67-33.09 69.11-9.7 40.18-5.64-15.27-38.11-26.27-65.55 59.08 37.62 34.35 21.87 12.45-39.15L256 62.49l21.42 67.34 12.45 39.15 34.35-21.87 59.08-37.62-26.27 65.55-15.27 38.11 40.18 5.64 69.11 9.7-61.68 33.08z\"]\n};\nvar faBalanceScale = {\n prefix: 'fal',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M634.4 279.09L525.35 103.12C522.18 98.38 517.09 96 512 96s-10.18 2.38-13.35 7.12L389.6 279.09c-3.87 5.78-6.09 12.72-5.51 19.64C389.56 364.4 444.74 416 512 416s122.44-51.6 127.91-117.27c.58-6.92-1.64-13.86-5.51-19.64zM512 384c-41.58 0-77.55-27.13-90.78-64h181.2C589 357.23 553.28 384 512 384zm-90.27-96l90.31-145.76L602.98 288H421.73zM536 480H336V125.74c27.56-7.14 48-31.95 48-61.74h152c4.42 0 8-3.58 8-8V40c0-4.42-3.58-8-8-8H374.89c-.15-.26-4.37-11.11-19.11-21.07C345.57 4.03 333.25 0 320 0s-25.57 4.03-35.78 10.93c-14.74 9.96-18.96 20.81-19.11 21.07H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h152c0 29.79 20.44 54.6 48 61.74V480H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h432c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM288 64c0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32-32-14.33-32-32zm-32.09 234.73c.58-6.92-1.64-13.86-5.51-19.64L141.35 103.12C138.18 98.38 133.09 96 128 96s-10.18 2.38-13.35 7.12L5.6 279.09c-3.87 5.78-6.09 12.72-5.51 19.64C5.56 364.4 60.74 416 128 416s122.44-51.6 127.91-117.27zM128.04 142.24L218.98 288H37.73l90.31-145.76zM37.22 320h181.2C205 357.23 169.28 384 128 384c-41.58 0-77.55-27.13-90.78-64z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fal',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M634.4 247.09L525.35 71.12C522.18 66.38 517.09 64 512 64s-10.18 2.38-13.35 7.12L389.6 247.09c-3.87 5.78-6.09 12.72-5.51 19.64C389.56 332.4 444.74 384 512 384s122.44-51.6 127.91-117.27c.58-6.92-1.64-13.86-5.51-19.64zM512 352c-41.58 0-77.55-27.13-90.78-64h181.2C589 325.23 553.28 352 512 352zm-90.27-96l90.31-145.76L602.98 256H421.73zM536 480H336V125.74c22.29-5.77 39.71-23.13 45.62-45.36l148.29-49.62c4.19-1.4 6.45-5.94 5.05-10.12l-5.08-15.17c-1.4-4.19-5.94-6.45-10.12-5.05L381.34 46.73C373.77 19.83 349.32 0 320 0c-35.35 0-64 28.65-64 64 0 8.21 1.67 15.98 4.54 23.15l-150.45 50.34c-4.19 1.4-6.45 5.94-5.05 10.12l5.08 15.17c1.4 4.19 5.94 6.45 10.12 5.05l160.45-53.68c6.82 5.36 14.67 9.34 23.32 11.58V504c0 4.42 3.58 8 8 8h224c4.42 0 8-3.58 8-8v-16c-.01-4.42-3.59-8-8.01-8zM288 64c0-17.64 14.36-32 32-32s32 14.36 32 32-14.36 32-32 32-32-14.36-32-32zM141.35 199.12c-3.17-4.75-8.26-7.12-13.35-7.12s-10.18 2.38-13.35 7.12L5.6 375.09c-3.87 5.78-6.09 12.72-5.51 19.64C5.56 460.4 60.74 512 128 512s122.44-51.6 127.91-117.27c.58-6.92-1.64-13.86-5.51-19.64L141.35 199.12zM128 480c-41.58 0-77.55-27.13-90.78-64h181.2C205 453.23 169.28 480 128 480zm-90.27-96l90.31-145.76L218.98 384H37.73z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fal',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M634.4 375.09L525.35 199.12c-3.17-4.75-8.26-7.12-13.35-7.12s-10.18 2.38-13.35 7.12L389.6 375.09c-3.87 5.78-6.09 12.72-5.51 19.64C389.56 460.4 444.74 512 512 512c67.27 0 122.45-51.6 127.91-117.27.57-6.92-1.64-13.86-5.51-19.64zM511.96 238.24L602.27 384H421.02l90.94-145.76zM512 480c-41.28 0-77-26.77-90.42-64h181.2c-13.23 36.87-49.2 64-90.78 64zm17.89-317.21l5.08-15.17c1.4-4.19-.86-8.72-5.05-10.12L379.46 87.15C382.33 79.98 384 72.21 384 64c0-35.35-28.65-64-64-64-29.32 0-53.77 19.83-61.34 46.73L120.24.42c-4.19-1.4-8.72.86-10.12 5.05l-5.08 15.17c-1.4 4.19.86 8.72 5.05 10.12l148.29 49.62c5.91 22.23 23.33 39.58 45.62 45.36V480H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h224c4.42 0 8-3.58 8-8V125.74c8.64-2.24 16.5-6.22 23.32-11.58l160.45 53.68c4.18 1.4 8.71-.86 10.12-5.05zM320 96c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm-64.09 170.73c.58-6.92-1.64-13.86-5.51-19.64L141.35 71.12C138.18 66.38 133.09 64 128 64s-10.18 2.38-13.35 7.12L5.6 247.09c-3.87 5.78-6.09 12.72-5.51 19.64C5.56 332.4 60.74 384 128 384s122.44-51.6 127.91-117.27zM127.96 110.24L218.27 256H37.02l90.94-145.76zM37.58 288h181.2c-13.23 36.87-49.2 64-90.78 64-41.28 0-77-26.77-90.42-64z\"]\n};\nvar faBallPile = {\n prefix: 'fal',\n iconName: 'ball-pile',\n icon: [576, 512, [], \"f77e\", \"M480 320c-10.4 0-20.3 2.1-29.7 5.2 18.2-17.5 29.7-41.9 29.7-69.2 0-53-43-96-96-96-10.4 0-20.3 2.1-29.7 5.2 18.3-17.5 29.7-42 29.7-69.2 0-53-43-96-96-96s-96 43-96 96c0 27.2 11.4 51.7 29.7 69.2-9.4-3.1-19.2-5.2-29.7-5.2-53 0-96 43-96 96 0 27.2 11.4 51.7 29.7 69.2-9.4-3.1-19.2-5.2-29.7-5.2-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-27.2-11.4-51.7-29.7-69.2 9.4 3.1 19.2 5.2 29.7 5.2s20.3-2.1 29.7-5.2c-18.3 17.5-29.7 42-29.7 69.2 0 53 43 96 96 96s96-43 96-96c0-27.2-11.4-51.7-29.7-69.2 9.4 3.1 19.2 5.2 29.7 5.2s20.3-2.1 29.7-5.2c-18.3 17.5-29.7 42-29.7 69.2 0 53 43 96 96 96s96-43 96-96-43-96-96-96zM288 32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm29.7 293.2c-9.4-3.1-19.3-5.2-29.7-5.2s-20.3 2.1-29.7 5.2c18.2-17.5 29.7-41.9 29.7-69.2s-11.4-51.7-29.7-69.2c9.4 3.1 19.2 5.2 29.7 5.2s20.3-2.1 29.7-5.2c-18.3 17.5-29.7 42-29.7 69.2s11.4 51.7 29.7 69.2zM96 480c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm96-160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm96 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm96-160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm96 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faBallot = {\n prefix: 'fal',\n iconName: 'ballot',\n icon: [448, 512, [], \"f732\", \"M144 80h-32c-17.7 0-32 14.4-32 32v32c0 17.6 14.3 32 32 32h32c17.7 0 32-14.4 32-32v-32c0-17.6-14.3-32-32-32zm0 64h-32v-32h32v32zM416 0H32C14.3 0 0 14.4 0 32v448c0 17.6 14.3 32 32 32h384c17.7 0 32-14.4 32-32V32c0-17.6-14.3-32-32-32zm0 480H32V32h384v448zm-72-240H216c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h128c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-200 96h-32c-17.7 0-32 14.4-32 32v32c0 17.6 14.3 32 32 32h32c17.7 0 32-14.4 32-32v-32c0-17.6-14.3-32-32-32zm0 64h-32v-32h32v32zm200-32H216c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h128c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0-256H216c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h128c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-200 96h-32c-17.7 0-32 14.4-32 32v32c0 17.6 14.3 32 32 32h32c17.7 0 32-14.4 32-32v-32c0-17.6-14.3-32-32-32zm0 64h-32v-32h32v32z\"]\n};\nvar faBallotCheck = {\n prefix: 'fal',\n iconName: 'ballot-check',\n icon: [448, 512, [], \"f733\", \"M112 432h32c17.7 0 32-14.4 32-32v-32c0-17.6-14.3-32-32-32h-32c-17.7 0-32 14.4-32 32v32c0 17.6 14.3 32 32 32zm0-64h32v32h-32v-32zm0-192h32c17.7 0 32-14.4 32-32v-32c0-17.6-14.3-32-32-32h-32c-17.7 0-32 14.4-32 32v32c0 17.6 14.3 32 32 32zm0-64h32v32h-32v-32zM416 0H32C14.3 0 0 14.4 0 32v448c0 17.6 14.3 32 32 32h384c17.7 0 32-14.4 32-32V32c0-17.6-14.3-32-32-32zm0 480H32V32h384v448zM216 144h128c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0 128h128c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0 128h128c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-97.4-113.6c2.1 2.1 5.5 2.1 7.6 0l64.2-63.6c2.1-2.1 2.1-5.5 0-7.6l-12.6-12.7c-2.1-2.1-5.5-2.1-7.6 0l-47.6 47.2-20.6-20.9c-2.1-2.1-5.5-2.1-7.6 0l-12.7 12.6c-2.1 2.1-2.1 5.5 0 7.6l36.9 37.4z\"]\n};\nvar faBan = {\n prefix: 'fal',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zM103.265 408.735c-80.622-80.622-84.149-208.957-10.9-293.743l304.644 304.643c-84.804 73.264-213.138 69.706-293.744-10.9zm316.37-11.727L114.992 92.365c84.804-73.263 213.137-69.705 293.743 10.9 80.622 80.621 84.149 208.957 10.9 293.743z\"]\n};\nvar faBandAid = {\n prefix: 'fal',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M560 96H80c-44.1 0-80 35.9-80 80v160c0 44.1 35.9 80 80 80h480c44.1 0 80-35.9 80-80V176c0-44.1-35.9-80-80-80zM160 384H80c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h80v256zm288 0H192V128h256v256zm160-48c0 26.5-21.5 48-48 48h-80V128h80c26.5 0 48 21.5 48 48v160zM272 228c11 0 20-9 20-20s-9-20-20-20-20 9-20 20 9 20 20 20zm96 0c11 0 20-9 20-20s-9-20-20-20-20 9-20 20 9 20 20 20zm-96 96c11 0 20-9 20-20s-9-20-20-20-20 9-20 20 9 20 20 20zm96 0c11 0 20-9 20-20s-9-20-20-20-20 9-20 20 9 20 20 20z\"]\n};\nvar faBanjo = {\n prefix: 'fal',\n iconName: 'banjo',\n icon: [512, 512, [], \"f8a3\", \"M121 334.46a8 8 0 0 0-11.32 0l-11.34 11.32a8 8 0 0 0 0 11.31l56.57 56.57a8 8 0 0 0 11.31 0l11.32-11.32a8 8 0 0 0 0-11.31zm380.81-292l-32.3-32.24a34.91 34.91 0 0 0-49.36 0l-50.52 50.52a38.46 38.46 0 0 0-9.29 15.05L339 139.85c-.39.3-1 .18-1.31.54l-94.93 94.93A142.12 142.12 0 0 0 176 209.61V208a16 16 0 0 0-32 0v1.61A142.42 142.42 0 0 0 70.57 240l-1.07-1.07a16 16 0 0 0-22.63 22.57l1.13 1.07A142.42 142.42 0 0 0 17.61 336H16a16 16 0 0 0 0 32h1.61A142.42 142.42 0 0 0 48 441.43l-1.08 1.07a16 16 0 1 0 22.58 22.62l1.07-1.07A142.42 142.42 0 0 0 144 494.39V496a16 16 0 0 0 32 0v-1.61a142.42 142.42 0 0 0 73.43-30.34l1.07 1.07a16 16 0 0 0 22.62-22.62l-1.07-1.07A142.42 142.42 0 0 0 302.39 368H304a16 16 0 0 0 0-32h-1.61a142.12 142.12 0 0 0-25.71-66.74l94.93-94.93c.36-.37.23-.92.54-1.31l64.06-21.36a38.46 38.46 0 0 0 15.05-9.29l50.52-50.52a34.92 34.92 0 0 0 0-49.37zM160 464a112 112 0 1 1 112-112 112.12 112.12 0 0 1-112 112zM479.15 69.22l-50.52 50.52a6.54 6.54 0 0 1-2.53 1.57L373 139l17.7-53.1a6.4 6.4 0 0 1 1.56-2.53l50.52-50.52a2.91 2.91 0 0 1 4.11 0l32.26 32.26a2.92 2.92 0 0 1 0 4.11z\"]\n};\nvar faBarcode = {\n prefix: 'fal',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBarcodeAlt = {\n prefix: 'fal',\n iconName: 'barcode-alt',\n icon: [640, 512, [], \"f463\", \"M280 96h-16c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-64 0h-16c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zM592 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h544c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm16 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h544c8.8 0 16 7.2 16 16v416zM152 96h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm384 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-128 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8z\"]\n};\nvar faBarcodeRead = {\n prefix: 'fal',\n iconName: 'barcode-read',\n icon: [640, 512, [], \"f464\", \"M152 0H8C3.6 0 0 3.6 0 8v152c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V32h120c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm0 480H32V352c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v152c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM632 0H488c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h120v128c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm0 344h-16c-4.4 0-8 3.6-8 8v128H488c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V352c0-4.4-3.6-8-8-8zM152 96h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm336 320h48c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8zM408 96h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-192 0h-16c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm64 0h-16c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8z\"]\n};\nvar faBarcodeScan = {\n prefix: 'fal',\n iconName: 'barcode-scan',\n icon: [640, 512, [], \"f465\", \"M160 8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v152h96V8zm128 0c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152h64V8zm96 0c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v152h32V8zm96 0c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152h64V8zm96 0c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152h64V8zM416 504c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V352h-64v152zm-64 0c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V352h-32v152zm-288 0c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V352H64v152zm160 0c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V352h-64v152zm288 0c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V352h-64v152zm120-264H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faBars = {\n prefix: 'fal',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M442 114H6a6 6 0 0 1-6-6V84a6 6 0 0 1 6-6h436a6 6 0 0 1 6 6v24a6 6 0 0 1-6 6zm0 160H6a6 6 0 0 1-6-6v-24a6 6 0 0 1 6-6h436a6 6 0 0 1 6 6v24a6 6 0 0 1-6 6zm0 160H6a6 6 0 0 1-6-6v-24a6 6 0 0 1 6-6h436a6 6 0 0 1 6 6v24a6 6 0 0 1-6 6z\"]\n};\nvar faBaseball = {\n prefix: 'fal',\n iconName: 'baseball',\n icon: [640, 512, [], \"f432\", \"M627.2 60.1l-23.6-32.5C581-3.5 538.9-8.2 510 12.8L307.7 159.6c-45.6 33.1-87.3 71.3-124.3 113.8-29 33.3-72.5 78.6-130.3 120.6l-21.6 15.7c-.2-.3-11.3-17.4-25.5-6.2-6.9 5.5-8 15.6-2.5 22.5l64 80c5.2 6.5 15.2 8.3 22.5 2.5.5-.4 12.9-9.5.1-25.5l18.2-13.2c66-47.9 122.3-72.6 155.1-86.5 51.9-22 101.2-49.9 146.8-83l202.3-146.8c29.8-21.7 36.4-63.5 14.7-93.4zM70.1 458l-18.6-23.2c28.9-20.9 71.8-50.7 125-106.3l32.3 44.4C140.6 405.7 99.2 436.8 70.1 458zm523.5-330.4c-247 179.2-243.1 182.5-359.9 233.8L195 308.3c84.9-95.1 86.5-90.2 333.8-269.6 14.8-10.7 36.9-8.7 48.9 7.7l23.6 32.5c11.4 15.6 7.9 37.4-7.7 48.7zM496 352c-44.1 0-80 35.9-80 80s35.9 80 80 80 80-35.9 80-80-35.9-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBaseballBall = {\n prefix: 'fal',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M248 8C111.2 8 0 119.2 0 256s111.2 248 248 248 248-111.2 248-248S384.8 8 248 8zM103.5 416.1c16.7-17.4 30.6-37.2 41.3-59.1L118 344c-9.1 18.8-21.8 35.1-36 50-85.6-102.8-45.3-221.5 0-276 14.2 14.9 26.8 31.2 36 49.8l26.8-13.1c-10.6-21.8-24.5-41.5-41.2-58.9 79.1-71.4 203.1-77.6 289-.1-16.7 17.4-30.6 37.1-41.2 59l26.8 13c9.1-18.7 21.7-35 36-50 78.1 93.7 54.6 210.4.1 275.9-14.3-14.9-26.9-31.2-36-49.9l-26.8 13.1c10.7 21.9 24.5 41.6 41.3 58.9-90 81.5-214.3 68.2-289.3.4zm53.2-88.6l-28.3-9.2c12.2-37.5 14-81.5-.1-124.7l28.3-9.2c16.3 50 14 100.4.1 143.1zm211-9.2l-28.3 9.2c-16.3-50-14-100.5-.1-143.1l28.3 9.2c-12.2 37.6-13.9 81.6.1 124.7z\"]\n};\nvar faBasketballBall = {\n prefix: 'fal',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M423.4 80.6c-96.7-96.7-254.2-96.7-350.9 0s-96.7 254.2 0 350.9c96.8 96.8 254.2 96.7 350.9 0 96.8-96.8 96.8-254.2 0-350.9zM241.2 471.7c-48-1.5-95.6-18.9-134.1-52.1l140.9-141 56.8 56.8c-33.9 38.3-56 85.7-63.6 136.3zm86.7-113.2l61 61c-33.3 28.7-73.2 45.6-114.4 50.6 7.4-41.3 25.8-79.8 53.4-111.6zm22.6-22.6c31.8-27.6 70.3-46 111.6-53.3-5.1 41.2-21.9 81.1-50.6 114.4l-61-61.1zm113.2-86.7c-50.6 7.6-98 29.7-136.3 63.5L270.6 256l140.9-140.9c33.3 38.5 50.7 86.1 52.2 134.1zm-315-69.9c-32.6 28.4-72.6 47.2-115.4 54.1 4.4-42.6 21.6-84 51.2-118.3l64.2 64.2zm-41.6-86.9c34.3-29.6 75.7-46.7 118.3-51.2-6.9 42.8-25.7 82.8-54.1 115.4l-64.2-64.2zm150.6-51.9c47 2.1 93.4 19.4 131.2 52L248 233.4l-54.1-54.1c34.5-38.9 56.7-87.2 63.8-138.8zM32.5 265.7c51.6-7.2 99.9-29.4 138.8-63.8l54.1 54.1-141 140.9c-32.5-37.8-49.8-84.1-51.9-131.2z\"]\n};\nvar faBasketballHoop = {\n prefix: 'fal',\n iconName: 'basketball-hoop',\n icon: [640, 512, [], \"f435\", \"M640 339.7c0 19.5-10.4 36.9-28.5 44.4l-108.3 44.5 2.5-35.7 93.6-38.4c6-2.5 9.9-8.3 9.9-14.8V216C527.1-8 115.7-8.9 33.2 216v123.7c0 6.5 3.9 12.3 9.9 14.8l93.6 38.4 2.5 35.7L31 384.1c-18.1-7.5-31-24.9-31-44.4l.8-131.4C1.4 206.3 69.3 16 321.2 16s317.3 190.3 317.9 192.3c1.2 7.1.9-9.1.9 131.4zM462.4 512L387 440.4 321.2 512l-65.8-71.6L180 512l-18.2-224h-24.6c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-24.6l-18.2 224zM207.9 352.4l46.7 43.6 44-44-42.1-42.1-48.6 42.5zm113.3-23l41.4-41.4h-82.8l41.4 41.4zm22.6 22.6l44 44 46.7-43.6-48.5-42.5-42.2 42.1zm104.7-64h-39l36.5 31.9 2.5-31.9zm-254.6 0l2.6 31.9L233 288h-39.1zM232 418.6l-29.9-27.9 4.3 53.5 25.6-25.6zm132.4-.8l-43.2-43.2-43.2 43.2 43.2 40.3 43.2-40.3zm71.6 26.4l4.3-53.5-29.9 27.9 25.6 25.6zM465.2 224v-89.9h-288V224h32v-57.9h224V224h32z\"]\n};\nvar faBat = {\n prefix: 'fal',\n iconName: 'bat',\n icon: [640, 512, [], \"f6b5\", \"M638.61 287.25L568.3 129.7c-5.48-12.27-17.85-19.4-30.67-19.4-5.81 0-11.7 1.46-17.1 4.57l-104.9 60.44L384 64l-50.11 48h-27.77L256 64l-31.62 111.3-104.9-60.44c-5.4-3.11-11.3-4.57-17.1-4.57-12.83 0-25.2 7.13-30.67 19.4L1.39 287.25c-5.66 12.69 6.94 25.85 20.58 21.48l16.48-5.27a69.132 69.132 0 0 1 21.07-3.29c21.83 0 42.85 10.33 55.46 28.51L153.39 384l12.31-11.82c13.11-12.59 30.14-18.75 47.09-18.75 20.13 0 40.15 8.69 53.36 25.6L320 448l53.86-68.97c13.21-16.91 33.23-25.6 53.36-25.6 16.95 0 33.98 6.16 47.09 18.75l12.3 11.82 38.41-55.33c12.61-18.17 33.63-28.51 55.46-28.51 7.02 0 14.13 1.07 21.07 3.29l16.48 5.27c13.64 4.38 26.24-8.78 20.58-21.47zm-58.13-19.08c-33.5 0-64.6 15.98-83.19 42.76l-17.32 24.95c-15.69-9.41-33.82-14.44-52.76-14.44-31.79 0-60.96 14-80.01 38.4L320 394.67l-27.2-34.83c-19.06-24.4-48.22-38.4-80.02-38.4-18.94 0-37.07 5.03-52.76 14.44l-17.32-24.95c-18.59-26.77-49.68-42.76-83.19-42.76-4.62 0-9.21.31-13.77.92l56.58-126.78 143.47 82.66 26.05-100.06 20.99 19.1h54.33l20.99-19.1 26.05 100.06 143.47-82.66 56.58 126.78c-4.55-.62-9.15-.92-13.77-.92z\"]\n};\nvar faBath = {\n prefix: 'fal',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M504,256H64V61.25a29.26,29.26,0,0,1,49.94-20.69L139.18,65.8A71.49,71.49,0,0,0,128,104c0,20.3,8.8,38.21,22.34,51.26L138.58,167a8,8,0,0,0,0,11.31l11.31,11.32a8,8,0,0,0,11.32,0L285.66,65.21a8,8,0,0,0,0-11.32L274.34,42.58a8,8,0,0,0-11.31,0L251.26,54.34C238.21,40.8,220.3,32,200,32a71.44,71.44,0,0,0-38.2,11.18L136.56,18A61.24,61.24,0,0,0,32,61.25V256H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H32v96c0,41.74,26.8,76.9,64,90.12V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V480H384v24a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V474.12c37.2-13.22,64-48.38,64-90.12V288h24a8,8,0,0,0,8-8V264A8,8,0,0,0,504,256ZM228.71,76.9,172.9,132.71A38.67,38.67,0,0,1,160,104a40,40,0,0,1,40-40A38.67,38.67,0,0,1,228.71,76.9ZM448,384a64.07,64.07,0,0,1-64,64H128a64.07,64.07,0,0,1-64-64V288H448Z\"]\n};\nvar faBatteryBolt = {\n prefix: 'fal',\n iconName: 'battery-bolt',\n icon: [640, 512, [], \"f376\", \"M640 184v144c0 13.255-10.745 24-24 24h-8v16c0 26.51-21.49 48-48 48H400.69l18.028-32H560c8.823 0 16-7.177 16-16v-48h32V192h-32v-48c0-8.823-7.177-16-16-16h-90.776c-13.223-9.205-28.229-14.344-43.41-15.66l3.971-15.195c.101-.381.191-.763.287-1.145H560c26.51 0 48 21.49 48 48v16h8c13.255 0 24 10.745 24 24zM32 368V144c0-8.823 7.177-16 16-16h95.388l3.21-32H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h149.734c.034-.133.063-.267.097-.4l7.71-31.6H48c-8.823 0-16-7.177-16-16zm422.616-145.511L321.664 458.482C314.042 472.12 299.81 480 284.985 480c-27.295 0-47.645-25.901-40.605-52.684L278.374 288h-56.37c-24.74 0-44.15-21.313-41.812-45.964l17.252-172C199.487 48.472 217.595 32 239.255 32h103.557c27.656 0 47.711 26.272 40.563 52.892L363.745 160h54.208c32.032 0 52.288 34.528 36.663 62.489zM417.952 192h-95.646l30.11-115.2.027-.104.028-.103c1.7-6.331-3.078-12.593-9.658-12.593H239.255a9.96 9.96 0 0 0-9.956 9.056l-.008.087-.009.087-17.24 171.881c-.523 5.829 4.089 10.89 9.96 10.89h97.117l-43.653 178.902-.067.275-.072.274c-1.723 6.555 3.374 12.548 9.656 12.548 2.842 0 6.632-1.347 8.744-5.128l.027-.048.027-.048L426.69 206.86c3.693-6.634-1.12-14.86-8.738-14.86z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fal',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M560 128c8.823 0 16 7.177 16 16v48h32v128h-32v48c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16V144c0-8.823 7.177-16 16-16h512m0-32H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fal',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M560 128c8.823 0 16 7.177 16 16v48h32v128h-32v48c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16V144c0-8.823 7.177-16 16-16h512m0-32H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zM128 314V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fal',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M560 128c8.823 0 16 7.177 16 16v48h32v128h-32v48c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16V144c0-8.823 7.177-16 16-16h512m0-32H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zM128 314V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fal',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M560 128c8.823 0 16 7.177 16 16v48h32v128h-32v48c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16V144c0-8.823 7.177-16 16-16h512m0-32H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zM128 314V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6z\"]\n};\nvar faBatterySlash = {\n prefix: 'fal',\n iconName: 'battery-slash',\n icon: [640, 512, [], \"f377\", \"M637 485.25L23 1.75A8 8 0 0 0 11.76 3l-10 12.51A8 8 0 0 0 3 26.75l614 483.5a8 8 0 0 0 11.24-1.25l10-12.51a8 8 0 0 0-1.24-11.24zM48 384a16 16 0 0 1-16-16V144a16 16 0 0 1 16-16h31.85L40.21 96.79A47.9 47.9 0 0 0 0 144v224a48 48 0 0 0 48 48h397.58L405 384zm568-224h-8v-16a48 48 0 0 0-48-48H194.4l40.6 32h325a16 16 0 0 1 16 16v48h32v128h-32v48a16 16 0 0 1-15.89 16l28.45 22.41A47.81 47.81 0 0 0 608 368v-16h8a24 24 0 0 0 24-24V184a24 24 0 0 0-24-24z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fal',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M560 128c8.823 0 16 7.177 16 16v48h32v128h-32v48c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16V144c0-8.823 7.177-16 16-16h512m0-32H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zM128 314V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm64 0V198a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v116a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6z\"]\n};\nvar faBed = {\n prefix: 'fal',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M144 320c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm0-128c26.47 0 48 21.53 48 48s-21.53 48-48 48-48-21.53-48-48 21.53-48 48-48zm384-32H272c-8.84 0-16 7.16-16 16v176H32V72c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v368c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h576v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V272c0-61.86-50.14-112-112-112zm80 192H288V192h240c44.11 0 80 35.89 80 80v80z\"]\n};\nvar faBedAlt = {\n prefix: 'fal',\n iconName: 'bed-alt',\n icon: [512, 512, [], \"f8f7\", \"M480,226.15V80a48,48,0,0,0-48-48H80A48,48,0,0,0,32,80V226.15C13.74,231,0,246.89,0,266.67V472a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V416H480v56a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V266.67C512,246.89,498.26,231,480,226.15ZM64,192a32,32,0,0,1,32-32H208a32,32,0,0,1,32,32v32H64Zm384,32H272V192a32,32,0,0,1,32-32H416a32,32,0,0,1,32,32ZM80,64H432a16,16,0,0,1,16,16v56.9a63.27,63.27,0,0,0-32-8.9H304a63.9,63.9,0,0,0-48,21.71A63.9,63.9,0,0,0,208,128H96a63.27,63.27,0,0,0-32,8.9V80A16,16,0,0,1,80,64ZM32,384V266.67A10.69,10.69,0,0,1,42.67,256H469.33A10.69,10.69,0,0,1,480,266.67V384Z\"]\n};\nvar faBedBunk = {\n prefix: 'fal',\n iconName: 'bed-bunk',\n icon: [576, 512, [], \"f8f8\", \"M464,0H240a16,16,0,0,0-16,16V160H32V8a8,8,0,0,0-8-8H8A8,8,0,0,0,0,8V504a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V448H544v56a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V112A112,112,0,0,0,464,0Zm80,376v40H256V288H464a80.09,80.09,0,0,1,80,80Zm0-86.23A111.53,111.53,0,0,0,464,256H240a16,16,0,0,0-16,16V416H32V192H544ZM544,160H256V32H464a80.09,80.09,0,0,1,80,80ZM128,128A64,64,0,1,0,64,64,64,64,0,0,0,128,128Zm0-96A32,32,0,1,1,96,64,32,32,0,0,1,128,32Zm0,352a64,64,0,1,0-64-64A64,64,0,0,0,128,384Zm0-96a32,32,0,1,1-32,32A32,32,0,0,1,128,288Z\"]\n};\nvar faBedEmpty = {\n prefix: 'fal',\n iconName: 'bed-empty',\n icon: [640, 512, [], \"f8f9\", \"M528,128H32V72a8,8,0,0,0-8-8H8a8,8,0,0,0-8,8V440a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V384H608v56a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V240A112,112,0,0,0,528,128ZM32,352V160H160V352Zm576,0H192V160H528a80.09,80.09,0,0,1,80,80Z\"]\n};\nvar faBeer = {\n prefix: 'fal',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M384 96h-32V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h256c26.51 0 48-21.49 48-48v-22.112l60.621-30.311C434.443 368.666 448 346.731 448 322.334V160c0-35.29-28.71-64-64-64zm-64 336c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h256c8.822 0 16 7.178 16 16v352zm96-109.666c0 12.199-6.778 23.166-17.689 28.622L352 374.112V128h32c17.645 0 32 14.355 32 32v162.334zM192 144v224c0 8.837-7.164 16-16 16s-16-7.163-16-16V144c0-8.837 7.164-16 16-16s16 7.163 16 16zm-64 0v224c0 8.837-7.164 16-16 16s-16-7.163-16-16V144c0-8.837 7.164-16 16-16s16 7.163 16 16zm128 0v224c0 8.837-7.163 16-16 16s-16-7.163-16-16V144c0-8.837 7.163-16 16-16s16 7.163 16 16z\"]\n};\nvar faBell = {\n prefix: 'fal',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 480c-17.66 0-32-14.38-32-32.03h-32c0 35.31 28.72 64.03 64 64.03s64-28.72 64-64.03h-32c0 17.65-14.34 32.03-32 32.03zm209.38-145.19c-27.96-26.62-49.34-54.48-49.34-148.91 0-79.59-63.39-144.5-144.04-152.35V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v17.56C127.35 41.41 63.96 106.31 63.96 185.9c0 94.42-21.39 122.29-49.35 148.91-13.97 13.3-18.38 33.41-11.25 51.23C10.64 404.24 28.16 416 48 416h352c19.84 0 37.36-11.77 44.64-29.97 7.13-17.82 2.71-37.92-11.26-51.22zM400 384H48c-14.23 0-21.34-16.47-11.32-26.01 34.86-33.19 59.28-70.34 59.28-172.08C95.96 118.53 153.23 64 224 64c70.76 0 128.04 54.52 128.04 121.9 0 101.35 24.21 138.7 59.28 172.08C421.38 367.57 414.17 384 400 384z\"]\n};\nvar faBellExclamation = {\n prefix: 'fal',\n iconName: 'bell-exclamation',\n icon: [448, 512, [], \"f848\", \"M433.37 334.81c-28-26.62-49.34-54.48-49.34-148.9 0-79.6-63.37-144.5-144-152.36V16a16 16 0 0 0-32 0v17.56C127.35 41.41 64 106.31 64 185.91c0 94.4-21.41 122.28-49.35 148.9a46.47 46.47 0 0 0-11.27 51.24A47.68 47.68 0 0 0 48 416h352a47.67 47.67 0 0 0 44.62-30 46.47 46.47 0 0 0-11.25-51.19zM400 384H48c-14.22 0-21.35-16.47-11.32-26C71.54 324.8 96 287.66 96 185.91 96 118.53 153.22 64 224 64s128 54.52 128 121.91c0 101.34 24.22 138.68 59.28 172.07C421.37 367.56 414.16 384 400 384zm-176 96a32 32 0 0 1-32-32h-32a64 64 0 1 0 128 0h-32a32 32 0 0 1-32 32zm-8.5-224h17a8.13 8.13 0 0 0 8-7.5l7-112a8 8 0 0 0-8-8.5h-31a8 8 0 0 0-8 8.5l7 112a8 8 0 0 0 8 7.5zm8.5 24a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faBellOn = {\n prefix: 'fal',\n iconName: 'bell-on',\n icon: [640, 512, [], \"f8fa\", \"M528,64a16.17,16.17,0,0,0,7.16-1.69l64-32A16,16,0,0,0,584.84,1.69l-64,32A16,16,0,0,0,528,64ZM80,160H16a16,16,0,0,0,0,32H80a16,16,0,0,0,0-32ZM40.84,30.31l64,32A16.17,16.17,0,0,0,112,64a16,16,0,0,0,7.16-30.31l-64-32A16,16,0,0,0,40.84,30.31ZM624,160H560a16,16,0,0,0,0,32h64a16,16,0,0,0,0-32ZM320,480a32,32,0,0,1-32-32H256a64,64,0,1,0,128,0H352A32,32,0,0,1,320,480ZM480,185.91c0-79.6-63.37-144.5-144-152.36V16a16,16,0,0,0-32,0V33.56c-80.66,7.85-144,72.75-144,152.35,0,94.4-21.41,122.28-49.35,148.9a46.45,46.45,0,0,0-11.24,51.24A47.67,47.67,0,0,0,144,416H496a47.66,47.66,0,0,0,44.62-30,46.49,46.49,0,0,0-11.24-51.22C501.41,308.19,480,280.33,480,185.91ZM496,384H144c-14.22,0-21.34-16.47-11.31-26C167.53,324.8,192,287.66,192,185.91,192,118.53,249.22,64,320,64s128,54.52,128,121.91c0,101.34,24.22,138.68,59.28,172.07C517.38,367.56,510.16,384,496,384Z\"]\n};\nvar faBellPlus = {\n prefix: 'fal',\n iconName: 'bell-plus',\n icon: [448, 512, [], \"f849\", \"M224 480a32 32 0 0 1-32-32h-32a64 64 0 1 0 128 0h-32a32 32 0 0 1-32 32zm209.37-145.19c-28-26.62-49.34-54.48-49.34-148.9 0-79.6-63.37-144.5-144-152.36V16a16 16 0 0 0-32 0v17.56C127.35 41.41 64 106.31 64 185.91c0 94.4-21.41 122.28-49.35 148.9a46.47 46.47 0 0 0-11.27 51.24A47.68 47.68 0 0 0 48 416h352a47.67 47.67 0 0 0 44.62-30 46.47 46.47 0 0 0-11.25-51.19zM400 384H48c-14.22 0-21.35-16.47-11.32-26C71.54 324.8 96 287.66 96 185.91 96 118.53 153.22 64 224 64s128 54.52 128 121.91c0 101.34 24.22 138.68 59.28 172.07C421.37 367.56 414.16 384 400 384zM296 224h-56v-56a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faBellSchool = {\n prefix: 'fal',\n iconName: 'bell-school',\n icon: [512, 512, [], \"f5d5\", \"M208 128c-44.11 0-80 35.89-80 80s35.89 80 80 80 80-35.89 80-80-35.89-80-80-80zm0 128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm256 48c-26.47 0-48 21.53-48 48 0 20.15 12.51 37.37 30.15 44.48C440.62 416.88 422.13 432 400 432h-48v-74.12c39.38-37.85 64-90.94 64-149.88C416 93.12 322.88 0 208 0S0 93.12 0 208c0 58.93 24.62 112.03 64 149.88V480c0 17.67 14.33 32 32 32h224c17.67 0 32-14.33 32-32v-16h48c39.51 0 72.19-28.84 78.64-66.53C497.92 391.24 512 373.33 512 352c0-26.47-21.53-48-48-48zM320 480H96v-96.91C128.35 403.82 166.72 416 208 416s79.65-12.18 112-32.91V480zm-112-96c-97.05 0-176-78.95-176-176S110.95 32 208 32s176 78.95 176 176-78.95 176-176 176zm256-16c-8.81 0-16-7.17-16-16s7.19-16 16-16 16 7.17 16 16-7.19 16-16 16z\"]\n};\nvar faBellSchoolSlash = {\n prefix: 'fal',\n iconName: 'bell-school-slash',\n icon: [640, 512, [], \"f5d6\", \"M272 32c97 0 176 79 176 176 0 26.6-6.1 51.8-16.8 74.5l25.6 20.2c14.6-28.4 23.1-60.5 23.1-94.7C480 93.1 386.9 0 272 0c-51.8 0-99.1 19.1-135.5 50.4l25.7 20.3C192.4 46.5 230.5 32 272 32zm-29.6 101.8l33.8 26.6c19.3 1.7 35.1 14.7 41.1 32.3l33.6 26.4c.5-3.7 1.1-7.4 1.1-11.2 0-44.1-35.9-80-80-80-10.5.1-20.4 2.3-29.6 5.9zM528 336c8.8 0 16 7.2 16 16 0 5.7-3.2 10.4-7.6 13.3l25.3 19.9c8.6-8.6 14.3-20 14.3-33.2 0-26.5-21.5-48-48-48-17.2 0-32.1 9.1-40.6 22.7l25.7 20.2c2.1-6.3 7.9-10.9 14.9-10.9zm109 149.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM464 432h-48v-39.3l-47.7-37.6C340.6 373.3 307.5 384 272 384c-97 0-176-79-176-176 0-20.8 3.8-40.6 10.4-59.1L80 128.1c-10.2 24.6-16 51.6-16 79.9 0 58.9 24.6 112 64 149.9V480c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32v-16h48c11.9 0 22.9-2.9 33-7.5l-31.5-24.8c-.5.1-.9.3-1.5.3zm-80 0v48H160v-96.9c32.4 20.7 70.7 32.9 112 32.9s79.7-12.2 112-32.9zM281.8 287l-88.9-70c4.6 39.8 38.1 71 79.1 71 3.4 0 6.5-.6 9.8-1z\"]\n};\nvar faBellSlash = {\n prefix: 'fal',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M320 480c-17.7 0-32-14.4-32-32h-32c0 35.3 28.7 64 64 64s64-28.7 64-64h-32c0 17.6-14.3 32-32 32zm0-416c70.8 0 128 54.5 128 121.9 0 63.2 9.4 101.6 25 129.5l70.7 55.7c.7-13.4-4.2-26.6-14.4-36.3-28-26.6-49.3-54.5-49.3-148.9 0-79.6-63.4-144.5-144-152.3V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v17.6c-43.9 4.2-84.2 26.2-111.5 60.9l24.7 19.4C240.4 83.8 277.7 64 320 64zm317 421.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM144 384c-14.2 0-21.3-16.5-11.3-26 31.2-29.7 53.9-63 58.3-142.4L159.8 191c-.8 90-21.8 117.7-49.2 143.8-14 13.3-18.4 33.4-11.2 51.2 7.3 18.2 24.8 30 44.6 30h301.6L405 384z\"]\n};\nvar faBells = {\n prefix: 'fal',\n iconName: 'bells',\n icon: [640, 512, [], \"f77f\", \"M638.4 313.9c-2.1-5.9-6.4-11.2-12.9-14.5-21-10.8-58.3-24.9-87.4-105-.8-2.2-14.7-40.5-15.4-42.6C503 97.6 451.8 64 397.4 64c-15.1 0-30.5 2.6-45.6 8.1-3.6 1.3-6.6 3.3-10 4.8-14.2-16-32.1-29-53.5-36.8-15-5.5-30.5-8.1-45.6-8.1-54.5 0-105.6 33.6-125.3 87.8-.8 2.1-14.6 40.4-15.4 42.6-29.2 80.1-66.4 94.3-87.4 105-6.5 3.3-10.8 8.6-12.9 14.5-4.6 12.9 1 28.8 16 34.2l82 29.9c-2.1 7-3.6 14.3-3.6 22 0 44.2 35.8 80 80 80 32.6 0 60.5-19.6 72.9-47.7l42.1 15.3c-2.8 6.5-7.5 14.8-3.4 26 4.9 13.1 19.6 21.3 34.3 15.9l76-27.7c11.8 29.4 40.5 50.1 74.1 50.1 44.2 0 80-35.8 80-80 0-8.7-1.9-16.8-4.6-24.5l75-27.3c14.9-5.4 20.5-21.3 15.9-34.2zM176 416c-26.5 0-48-21.5-48-48 0-3.9.6-7.5 1.5-11.1l88.9 32.4C210.6 405 194.7 416 176 416zm124.7-30.9L40.1 290.3c24.5-12.8 63.2-38.2 91.8-117 8.3-22.9 5.1-14.1 15.4-42.6C161.9 90.8 200.2 64 242.6 64c44.7 0 70.8 29.1 71.6 29.9-43.3 34.8-62.2 94-42.2 149.1.8 2.1 14.8 40.4 15.6 42.6 16.9 46.4 17.4 77.3 13.1 99.5zM472 448c-19.7 0-36.1-12.2-43.4-29.3l89.3-32.5c1.3 4.4 2.1 9 2.1 13.8 0 26.5-21.5 48-48 48zm-149.5-24.8c10.6-25.6 23.8-69.8-4.8-148.7-9.6-26.3-5.5-15-15.6-42.6-19.1-52.5 8.1-110.8 60.6-129.9 53-19.3 110.9 8.5 129.9 60.6 9.7 26.7 5 13.8 15.4 42.6 28.7 78.8 67.3 104.2 91.8 117l-277.3 101z\"]\n};\nvar faBetamax = {\n prefix: 'fal',\n iconName: 'betamax',\n icon: [512, 512, [], \"f8a4\", \"M320 368h96a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32h-96a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32zm0-128h96v96h-96zm-160 72a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm0 72a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm0-160a64 64 0 1 1-64 64 64.07 64.07 0 0 1 64-64zM496 64H16A16 16 0 0 0 0 80v320a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a16 16 0 0 0-16-16zm-16 336a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V160h448zm0-272H32V96h448z\"]\n};\nvar faBezierCurve = {\n prefix: 'fal',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M576 176c35.35 0 64-28.65 64-64s-28.65-64-64-64c-29.79 0-54.6 20.44-61.74 48H400V64c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32v32H125.74C118.6 68.44 93.79 48 64 48 28.65 48 0 76.65 0 112s28.65 64 64 64c29.79 0 54.6-20.44 61.74-48h112.81c-80.61 31.51-135.13 105.79-141.27 192H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32h-30.73c5.76-69.41 48.06-129.54 111.08-158.25.96 16.81 14.6 30.25 31.65 30.25h96c17.05 0 30.69-13.44 31.65-30.25 63.02 28.72 105.32 88.84 111.08 158.25H480c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32h-33.27c-6.13-86.21-60.66-160.49-141.27-192h112.81c7.13 27.56 31.94 48 61.73 48zM160 448H64v-96h96v96zM64 144c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm304 16h-96V64h96v96zm208 288h-96v-96h96v96zm0-368c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32z\"]\n};\nvar faBible = {\n prefix: 'fal',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 392V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.35 28.65 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.67 0-32-14.33-32-32s14.33-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.72 0-22.55 3.38-32 8.88V80c0-26.5 21.5-48 48-48h336v352zM152 224h40v104c0 13.23 10.78 24 24 24h48c13.22 0 24-10.77 24-24V224h40c13.22 0 24-10.77 24-24v-48c0-13.23-10.78-24-24-24h-40V88c0-13.23-10.78-24-24-24h-48c-13.22 0-24 10.77-24 24v40h-40c-13.22 0-24 10.77-24 24v48c0 13.23 10.78 24 24 24zm8-64h64V96h32v64h64v32h-64v128h-32V192h-64v-32z\"]\n};\nvar faBicycle = {\n prefix: 'fal',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.303 192c-19.586-.047-38.147 4.313-54.759 12.132L373.508 71.439A16 16 0 0 0 359.991 64h-67.998c-6.627 0-12 5.373-12 12v8c0 6.627 5.372 12 12 12h59.193l40.532 64H255.994v-20c0-6.627-5.372-12-12-12h-83.998c-8.836 0-16 7.163-16 16s7.163 16 16 16h55.999l-31.808 44.969c-17.085-8.362-36.303-13.035-56.622-12.968C56.937 192.234-.001 249.37 0 320c.001 70.692 57.307 128 127.997 128 59.641 0 109.755-40.793 123.964-96h52.031a16.001 16.001 0 0 0 13.107-6.824l100.744-143.924 12.677 20.018c-28.385 23.449-46.487 58.903-46.531 98.587-.077 69.963 56.843 127.499 126.801 128.138 70.559.644 128.101-55.842 129.193-125.995 1.099-70.503-57.17-129.829-127.68-130zM127.997 416c-52.933 0-95.998-43.065-95.998-96s43.064-96 95.998-96c13.307 0 25.989 2.724 37.521 7.639L98.89 326.824C91.47 337.423 99.083 352 111.997 352h106.506c-13.207 37.248-48.788 64-90.506 64zm95.998-96h-81.268l49.744-71.065c19.354 17.575 31.524 42.925 31.524 71.065zm71.668 0h-39.669c0-39.04-17.483-73.992-45.04-97.47L232.325 192H385.26l-89.597 128zm212.533 95.927c-50.058-1.938-90.528-42.677-92.154-92.747-.961-29.57 11.533-56.303 31.81-74.546l52.759 83.306c3.546 5.599 10.959 7.263 16.558 3.717l6.758-4.281c5.599-3.546 7.263-10.96 3.717-16.558l-52.785-83.346c11.427-4.811 23.972-7.473 37.128-7.473 52.933 0 95.998 43.065 95.998 96 .001 54.194-45.136 98.043-99.789 95.928z\"]\n};\nvar faBiking = {\n prefix: 'fal',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M120 272a120 120 0 1 0 120 120 120 120 0 0 0-120-120zm0 208a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88zm400-208a120 120 0 1 0 120 120 120 120 0 0 0-120-120zm0 208a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88zM374.31 245.79a48.19 48.19 0 0 0 29.89 10.43H464a48 48 0 0 0 0-96h-42.95l-21.32-17.05a70.18 70.18 0 0 0 8.27.83 72.07 72.07 0 1 0-66.4-44.22 46.67 46.67 0 0 0-48.69 8l-99.25 79c-12.35 10.51-18.45 24.81-17.57 39.94a47.64 47.64 0 0 0 21.24 37.14L272 313.69V400a48 48 0 0 0 96 0V288a47.91 47.91 0 0 0-21.33-39.91l-13.33-9 16.5-12.72zM408 32a40 40 0 1 1-40 40 40 40 0 0 1 40-40zm-79.12 242.69A16 16 0 0 1 336 288v112a16 16 0 0 1-32 0V296.56l-88.88-59.25a16 16 0 0 1-1.53-25.45l100.2-79.78a16 16 0 0 1 20.41-.36l75.62 60.5H464a16 16 0 0 1 0 32h-59.8a16 16 0 0 1-10-3.5l-44.09-35-71.43 55.11z\"]\n};\nvar faBikingMountain = {\n prefix: 'fal',\n iconName: 'biking-mountain',\n icon: [640, 512, [], \"f84b\", \"M153.18 178.45l25.31-19.56-35.62-42.39 53.4-41.66A48.72 48.72 0 0 1 233 64.34a54.55 54.55 0 0 1 36.87 21.33l25.31-19.56a86.22 86.22 0 0 0-58.46-33.55 81 81 0 0 0-60.31 17.23L123 91.43c-12.53 10.13-14.56 29-4.5 42zm221.15 67.34a48.17 48.17 0 0 0 29.88 10.43H464a48 48 0 0 0 0-96h-42.94l-21.32-17.05a70.61 70.61 0 0 0 8.26.83 72.07 72.07 0 1 0-66.4-44.22 46.65 46.65 0 0 0-48.68 8l-99.25 79c-12.35 10.51-18.45 24.81-17.57 39.94a47.64 47.64 0 0 0 21.24 37.14L272 313.69V400a48 48 0 1 0 96 0V288a47.91 47.91 0 0 0-21.33-39.91l-13.33-9 16.5-12.72zM408 32a40 40 0 1 1-40 40 40 40 0 0 1 40-40zm-79.11 242.69A16 16 0 0 1 336 288v112a16 16 0 1 1-32 0V296.56l-88.87-59.25a16 16 0 0 1-1.54-25.45l100.2-79.78a16 16 0 0 1 20.4-.36l75.63 60.5H464a16 16 0 0 1 0 32h-59.8a16 16 0 0 1-10-3.5l-44.09-35-71.41 55.14zM128 328a56 56 0 1 0 56 56 56.06 56.06 0 0 0-56-56zm0 80a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm489-67.17c-.09-.19-.15-.38-.25-.57a30 30 0 0 0-4.37-36.87l-19.81-19.8a30.63 30.63 0 0 0-36.88-4.39l-.56-.23A30 30 0 0 0 526 256h-28a30 30 0 0 0-29.15 23l-.59.25a30.13 30.13 0 0 0-36.87 4.39l-19.79 19.8a30.08 30.08 0 0 0-4.37 36.86 4.83 4.83 0 0 0-.25.58A30.06 30.06 0 0 0 384 370v28a30.08 30.08 0 0 0 23 29.17c.06.19.16.39.22.58a30.09 30.09 0 0 0 4.4 36.86l19.79 19.8a30.13 30.13 0 0 0 36.87 4.39l.59.23A30 30 0 0 0 498 512h28a30 30 0 0 0 29.16-23l.59-.23a30.11 30.11 0 0 0 36.88-4.39l19.78-19.8a30.07 30.07 0 0 0 4.37-36.86 3.63 3.63 0 0 0 .25-.58A30.07 30.07 0 0 0 640 398v-28a30 30 0 0 0-23-29.17zM593.6 396l-3.44 11.39a83.81 83.81 0 0 1-6.34 15.27l-5.72 10.53 8.5 8.43 3.18.36-17 19.8-11.66-11.67-10.5 5.7a79.41 79.41 0 0 1-15.25 6.31L524 465.55v11.9l2 2.55-26 2v-16.45l-11.41-3.43a81.43 81.43 0 0 1-15.28-6.32l-10.47-5.68-8.43 8.44-.41 3.22-19.8-16.95 11.8-11.67-5.78-10.55a81.24 81.24 0 0 1-6.32-15.24L430.42 396h-11.88l-2.54 2-2-26h16.41l3.43-11.39a83.15 83.15 0 0 1 6.35-15.27l5.72-10.53-8.5-8.44-3.19-.36 17-19.79 11.65 11.67 10.5-5.7a78.89 78.89 0 0 1 15.22-6.32l11.44-3.4v-11.92L498 288l26-2v16.45l11.4 3.42a82.63 82.63 0 0 1 15.31 6.35l10.53 5.65 8.41-8.48.31-3.17 19.84 16.95-11.68 11.64 5.69 10.52a81.38 81.38 0 0 1 6.28 15.23L593.5 372h14.66l1.84 24zm-360.55-55.16a5.77 5.77 0 0 1-.25-.59 30.13 30.13 0 0 0-4.4-36.86l-19.79-19.8c-9.62-9.65-25.56-11.31-36.87-4.39l-.59-.23A30 30 0 0 0 142 256h-28a30 30 0 0 0-29.15 23l-.56.23a30.11 30.11 0 0 0-36.88 4.39l-19.81 19.8a30.06 30.06 0 0 0-4.37 36.89c-.06.17-.16.36-.22.55A30 30 0 0 0 0 370v28a30.05 30.05 0 0 0 23 29.17 2.63 2.63 0 0 0 .22.55 30.07 30.07 0 0 0 4.37 36.89l19.81 19.8a30.06 30.06 0 0 0 36.88 4.37 5.51 5.51 0 0 0 .59.25A30 30 0 0 0 114 512h28a30 30 0 0 0 29.16-23l.59-.23c11.25 6.9 27.19 5.26 36.84-4.39l19.82-19.8a30.08 30.08 0 0 0 4.37-36.86 5.64 5.64 0 0 0 .25-.58A30.06 30.06 0 0 0 256 398v-28.06a30.15 30.15 0 0 0-22.95-29.1zM209.52 396l-3.41 11.45a80.14 80.14 0 0 1-6.28 15.21l-5.71 10.53 8.5 8.43 3.18.36-17 19.8-11.65-11.67-10.5 5.7a79.67 79.67 0 0 1-15.25 6.31l-11.4 3.43v11.9l2 2.55-26 2v-16.47l-11.44-3.41a82.19 82.19 0 0 1-15.31-6.34l-10.53-5.66-8.41 8.49-.31 3.17-19.81-16.95 11.68-11.64-5.69-10.52a85.12 85.12 0 0 1-6.31-15.3L46.44 396H34.56L32 398l-2-26h16.44l3.43-11.39a83 83 0 0 1 6.35-15.33l5.62-10.5-8.44-8.41-3.18-.37 16.93-19.84 11.63 11.72 10.53-5.69a80.53 80.53 0 0 1 15.28-6.33l11.4-3.42v-11.9L114 288l26-2v16.47l11.44 3.4a82 82 0 0 1 15.25 6.33l10.47 5.67 8.43-8.43.41-3.22 19.75 17-11.56 11.63 5.65 10.47a84.62 84.62 0 0 1 6.32 15.29l3.42 11.39h14.6l1.82 24zM512 328a56 56 0 1 0 56 56 56.06 56.06 0 0 0-56-56zm0 80a24 24 0 1 1 24-24 24 24 0 0 1-24 24z\"]\n};\nvar faBinoculars = {\n prefix: 'fal',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M511.67 404c-3.46-129.77-61.06-182.16-63.59-275.98-.47-17.64-14.27-32.02-31.92-32.02H416V64c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v32h-64V64c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v32h-.16c-17.65 0-31.45 14.38-31.93 32.02C61.39 221.84 3.79 274.23.33 404L0 432c0 26.51 21.49 48 48 48h128c26.51 0 48-21.49 48-48V288h64v144c0 26.51 21.49 48 48 48h128c26.51 0 48-21.49 48-48l-.33-28zM320 64h64v32h-64V64zm-192 0h64v32h-64V64zm64 368c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16 0 0 .94-41.26 1.48-48H192v48zm0-80H37.48c6.38-37.88 17.59-68.49 28.66-98.22C80.13 216.18 94.6 177.3 95.84 128H192v224zm32-96V128h64v128h-64zm96-128h96.16l-.06.88c1.3 48.42 15.77 87.3 29.76 124.9 11.06 29.73 22.28 60.33 28.66 98.22H320V128zm160 304c0 8.82-7.18 16-16 16H336c-8.82 0-16-7.18-16-16v-48h158.52c.54 6.74 1.48 48 1.48 48z\"]\n};\nvar faBiohazard = {\n prefix: 'fal',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M288.1 96c17.7 0 34.8 2.7 50.9 7.6 6.5-8.5 11.1-18.4 13.1-29.4-20.2-6.5-41.7-10.1-64-10.1-22.4 0-44 3.7-64.2 10.2 1.9 11 6.6 21 13.1 29.4 16.2-5 33.3-7.7 51.1-7.7zm-.1 144.1c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM146.1 423.6c9.7-5.6 17.2-13.6 22.6-22.7-28.5-26.4-48.2-62.2-54.4-102.4-.4 0-.8-.2-1.2-.2-10.4 0-20.7 2.9-30 7.9 7.7 46 30.4 86.9 63 117.4zm428.6-147c-13.8-40.3-41.2-74.1-77.2-95.3-12.2-7.2-25.6-12.8-40.1-16.7 3.5-13.9 5.2-27.4 5.2-40.8 0-42.2-15.1-83.2-42.4-115.5-7.3-8.6-19.7-10.9-29.7-5.2-9.7 5.6-14.1 17.4-10.6 27.9 3.7 11.3 5.5 21.5 5.5 31.1 0 54.7-43.6 99.3-97.3 99.3s-97.3-44.5-97.3-99.3c0-9.6 1.8-19.8 5.4-31 3.5-10.7-.9-22.5-10.7-28-9.8-5.6-22.2-3.5-29.6 5.2-27.4 32.3-42.5 73.3-42.5 115.5 0 13.4 1.7 26.9 5.2 40.8-14.5 4-27.9 9.6-40.1 16.7-36 21.1-63.4 55-77.2 95.3-3.7 10.6.5 22.2 10.2 28.1 9.7 5.8 22.2 3.8 29.7-4.8 7.7-8.8 15.4-15.5 23.6-20.3 22.3-13.1 48.3-16.6 73.2-9.9 25.3 6.8 46.4 23.2 59.5 46.2 26.9 47.5 10.9 108.4-35.7 135.8-8.2 4.8-17.7 8.3-29 10.7-11 2.3-18.8 12.1-18.7 23.4.1 11.2 8.1 20.9 19.1 23.1 11 2.1 22.1 3.2 33.1 3.2 30.4 0 60.4-8 86.9-23.6 12.5-7.3 24.1-16.5 34.7-27.3 10.7 10.9 22.3 20 34.7 27.3 36 21.2 78.6 28.5 119.9 20.4 11.1-2.1 18.9-11.6 19.1-23.1.1-11.3-7.8-21.1-18.7-23.4-11.4-2.4-20.8-5.9-29-10.7-46.6-27.4-62.6-88.3-35.7-135.8 13.1-23 34.2-39.4 59.5-46.2 24.9-6.7 50.9-3.2 73.2 9.9 8.2 4.8 15.9 11.4 23.6 20.3 7.5 8.6 20 10.5 29.8 4.7 9.9-5.9 14-17.4 10.4-28zm-145.1-37.8c-33.7 9-61.7 30.8-79 61.3-35.6 62.6-14.3 143 47.2 179.1.2.1.3.2.4.2-20.8-1.7-41.1-8-59.3-18.7-14.1-8.3-27-19.7-38.4-33.8L288 411.5 275.5 427c-11.4 14.1-24.3 25.5-38.4 33.8-18.2 10.7-38.5 17-59.3 18.7.1-.1.3-.2.4-.2 61.6-36.2 82.8-116.5 47.3-179.1-17.3-30.5-45.4-52.3-79.1-61.3-11-3-22.2-4.4-33.2-4.4-22.3 0-44.3 5.9-64.1 17.4C61 234.4 76.5 219.7 94.7 209c13.9-8.1 29.2-13.6 46.9-16.7l18.5-3.2-6.1-17.8c-5.7-16.7-8.6-32.2-8.6-47.5 0-21.1 4.6-41.9 13.3-60.9.4 72 58.2 130.5 129.3 130.5 71 0 128.9-58.5 129.3-130.5 8.7 19 13.3 39.8 13.3 60.9 0 15.2-2.8 30.7-8.5 47.5L416 189l18.5 3.2c17.7 3.1 33 8.5 46.9 16.7 18.2 10.7 33.7 25.4 45.6 42.9-29.7-17.2-64.3-21.9-97.4-13zm32.3 59.8c-6.2 40.2-25.9 76-54.5 102.5 5.5 9.1 12.9 17.1 22.5 22.8 32.7-30.5 55.4-71.4 63.1-117.4-9.4-5.1-19.7-8-30.2-8-.3 0-.6.1-.9.1z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fal',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm48 160h-32V112h-32v144h-96V112h-32v144h-96V112H80v144H48c-26.5 0-48 21.5-48 48v208h448V304c0-26.5-21.5-48-48-48zm16 224H32v-72.043C48.222 398.478 55.928 384 74.75 384c27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 18.488 0 26.245 14.475 42.5 23.955V480zm0-112.374C406.374 359.752 394.783 352 373.5 352c-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-21.463 0-33.101 7.774-42.75 15.658V304c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v63.626z\"]\n};\nvar faBlanket = {\n prefix: 'fal',\n iconName: 'blanket',\n icon: [512, 512, [], \"f498\", \"M446.2 384H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h344c35.3 0 64-28.7 64-64V80c0-44.2-35.8-80-80-80H80C35.8 0 0 35.8 0 80v320c0 61.9 50.1 112 112 112h392c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H115.6c-41.8 0-79.1-30.4-83.2-72-4.7-47.7 32.8-88 79.6-88h336c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.5 26.6-33.4 26.6zm1.8-96H112c-31.4 0-59.6 13-80 33.9V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v216.9c-9.5-5.5-20.3-8.9-32-8.9z\"]\n};\nvar faBlender = {\n prefix: 'fal',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M288 400c-13.26 0-24 10.74-24 24 0 13.25 10.74 24 24 24s24-10.75 24-24c0-13.26-10.74-24-24-24zm134.25-55.97L512 0H48C21.53 0 0 21.53 0 48v160c0 26.47 21.53 48 48 48h102.26l7.53 86.56C121.72 356.38 96 391.07 96 432v48c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-48c0-39.4-23.79-73.18-57.75-87.97zM48 224c-8.81 0-16-7.17-16-16V48c0-8.83 7.19-16 16-16h82.78l16.7 192H48zM470.58 32l-16.7 64H296c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h149.54l-16.7 64H296c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h124.49l-29.22 112H189.34L162.9 32h307.68zM448 480H128v-48c0-35.29 28.71-64 64-64h192c35.29 0 64 28.71 64 64v48z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fal',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M486.25 344.03L576 0H192l29.79 342.56C185.72 356.38 160 391.07 160 432v48c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-48c0-39.4-23.79-73.18-57.75-87.97zM534.58 32l-16.7 64H360c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h149.54l-16.7 64H360c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h124.49l-29.22 112H253.34L226.9 32h307.68zM512 480H192v-48c0-35.29 28.71-64 64-64h192c35.29 0 64 28.71 64 64v48zm-160-80c-13.26 0-24 10.74-24 24 0 13.25 10.74 24 24 24s24-10.75 24-24c0-13.26-10.74-24-24-24zm-175.57-82.92l-23.62-57.97c-5.16-12.72-18.06-20.81-32.19-19.33l-28.53 2.8a180.1 180.1 0 0 1-.03-101.06l28.56 2.8c13.72 1.47 27-6.56 32.16-19.28l23.66-58.02c5.72-14.09.44-30.09-12.56-38.05L127.84 6.88c-19.41-11.89-44.91-8.02-60.53 9.44-90.53 101.33-89.62 253.41 2.06 353.72 8.31 9.11 21 13.94 33.81 13.94 8.59 0 17.22-2.17 24.56-6.67l36.09-22.16c13.04-7.98 18.32-23.98 12.6-38.07zm-65.44 32.94c-5.19 3.25-14.34 2.45-18-1.56C12.4 260.3 11.62 126.67 91.18 37.64c3.28-3.69 7.78-5.62 12.25-5.62 2.66 0 5.31.69 7.66 2.14l35.72 20.8-23.06 57.52-53.59-5.25-4.25 11.59c-17.41 47.22-17.41 99.23 0 146.47l4.25 11.59 53-5.72 23.31 57.11-35.48 21.75z\"]\n};\nvar faBlind = {\n prefix: 'fal',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M206.817 489.959c3.334 8.184-.598 17.521-8.78 20.854-8.166 3.329-17.515-.582-20.854-8.78L110.14 337.476l15.549-46.648 81.128 199.131zM102.663 121.531a4 4 0 0 1 6.562-4.577l112.933 161.912c3.815 5.468 11.307 6.742 16.708 2.976 5.356-3.737 6.796-11.232 2.976-16.708l-120-172a11.978 11.978 0 0 0-9.842-5.13V88H80v.013c-3.294.001-6.574 1.337-8.943 3.985L0 171.415V272c0 6.627 5.373 12 12 12s12-5.373 12-12v-91.415l48-53.646v198.465L16.821 490.936c-2.795 8.383 1.736 17.444 10.119 20.238 8.381 2.794 17.444-1.735 20.238-10.119L120 282.597v-136.21l-17.337-24.856zm280.725 384.343L245.791 286.463a20.279 20.279 0 0 1-6.78 4.245l137.6 219.416a4 4 0 1 0 6.777-4.25zM96 0C73.909 0 56 17.909 56 40s17.909 40 40 40 40-17.909 40-40S118.091 0 96 0z\"]\n};\nvar faBlinds = {\n prefix: 'fal',\n iconName: 'blinds',\n icon: [512, 512, [], \"f8fb\", \"M500.48,352h-33l8,32H36.5l8-32h-33l-11,44.12A16,16,0,0,0,16,416H496a16,16,0,0,0,15.52-19.88Zm0,96h-33l8,32H36.5l8-32h-33l-11,44.12A16,16,0,0,0,16,512H496a16,16,0,0,0,15.52-19.88ZM496,0H16A16,16,0,0,0,0,16V80A16,16,0,0,0,16,96H128v96H36.5l16-64h-33l-19,76.12A16,16,0,0,0,16,224H128v34.94A47.82,47.82,0,0,0,98.94,288H36.5l8-32h-33l-11,44.12A16,16,0,0,0,16,320H98.94A47.89,47.89,0,1,0,160,258.94V96H496a16,16,0,0,0,16-16V16A16,16,0,0,0,496,0ZM144,320a16,16,0,1,1,16-16A16,16,0,0,1,144,320ZM480,64H32V32H480Zm12.48,64h-33l16,64H192v32H496a16,16,0,0,0,15.52-19.88Zm8,128h-33l8,32H222.39a80.31,80.31,0,0,1,0,32H496a16,16,0,0,0,15.52-19.88Z\"]\n};\nvar faBlindsOpen = {\n prefix: 'fal',\n iconName: 'blinds-open',\n icon: [512, 512, [], \"f8fc\", \"M496,480H16a16,16,0,0,0,0,32H496a16,16,0,0,0,0-32ZM16,352H80.36a79.29,79.29,0,0,1-14.75-32H16a16,16,0,0,0,0,32Zm480-32H222.39a79.29,79.29,0,0,1-14.75,32H496a16,16,0,0,0,0-32ZM496,0H16A16,16,0,0,0,0,16V80A16,16,0,0,0,16,96H128v64H16a16,16,0,0,0,0,32H128v66.94a48,48,0,1,0,32,0V96H496a16,16,0,0,0,16-16V16A16,16,0,0,0,496,0ZM144,320a16,16,0,1,1,16-16A16,16,0,0,1,144,320ZM480,64H32V32H480Zm16,96H192v32H496a16,16,0,0,0,0-32Z\"]\n};\nvar faBlindsRaised = {\n prefix: 'fal',\n iconName: 'blinds-raised',\n icon: [512, 512, [], \"f8fd\", \"M500.48,224h-33l8,32H192v32H496a16,16,0,0,0,15.52-19.88Zm0-96h-33l8,32H192v32H496a16,16,0,0,0,15.52-19.88ZM496,0H16A16,16,0,0,0,0,16V80A16,16,0,0,0,16,96H128v64H36.5l8-32h-33l-11,44.12A16,16,0,0,0,16,192H128v64H36.5l8-32h-33l-11,44.12A16,16,0,0,0,16,288H128V418.94a48,48,0,1,0,32,0V96H496a16,16,0,0,0,16-16V16A16,16,0,0,0,496,0ZM144,480a16,16,0,1,1,16-16A16,16,0,0,1,144,480ZM480,64H32V32H480Z\"]\n};\nvar faBlog = {\n prefix: 'fal',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M200.3 0c-4.5-.1-8.2 3.6-8.2 8.1V24c0 4.4 3.5 7.8 7.9 7.9C352.8 35.7 476 159.2 480 312c.1 4.4 3.6 7.9 7.9 7.9h16c4.5 0 8.2-3.7 8.1-8.2C507.7 141.8 370.2 4.3 200.3 0zm0 96c-4.5-.2-8.2 3.6-8.2 8.1v16c0 4.3 3.5 7.8 7.8 8 99.8 4 180.5 84.2 184.2 184 .2 4.3 3.6 7.8 8 7.8h15.8c4.5 0 8.2-3.7 8.1-8.2-4.3-117-98.7-211.4-215.7-215.7zM121 256h-9c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h10.9c47 0 88 38.4 84.9 85.3-2.6 39.9-34.6 71.8-74.4 74.5C86.4 467 48 426 48 378.9V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v233c0 74.2 60.1 138.5 134.3 134.9 65.6-3.2 118.4-56 121.6-121.6C259.4 316.1 195.2 256 121 256z\"]\n};\nvar faBold = {\n prefix: 'fal',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M306 234.12c27.74-20.38 46-53.01 46-90.12A112 112 0 0 0 240 32H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v384H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h216a128 128 0 0 0 50-245.88zM96 64h144a80 80 0 0 1 0 160H96zm160 384H96V256h160a96 96 0 0 1 0 192z\"]\n};\nvar faBolt = {\n prefix: 'fal',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.3 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36zM140.3 436.9l33.5-141.6 9.3-39.4h-150L63 32h125.9l-38.7 118-13.8 42h145.7L140.3 436.9z\"]\n};\nvar faBomb = {\n prefix: 'fal',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M420.7 68.7l-56 56-38.1-38.1c-12.5-12.5-32.8-12.5-45.3 0l-17.1 17.1c-17.9-5-36.8-7.7-56.3-7.7C96 96 3.3 185.9.1 297.8-3.3 415.5 91.1 512 208 512c115.1 0 208-94.2 208-208 0-19.5-2.7-38.4-7.7-56.3l17.1-17.1c12.5-12.5 12.5-32.8 0-45.3l-38.1-38.1 56-56-22.6-22.5zm-48.3 169.6c5.8 20.5 11.6 37.8 11.6 65.7 0 96.2-78.5 176-176 176-24.2 0-47.7-4.8-69.7-14.3-65.2-28.2-108.4-93.4-106.2-167C34.8 204.1 113.2 128 208 128c27.9 0 45.1 5.8 65.7 11.6l30.3-30.3 98.7 98.7s-1.8 1.9-30.3 30.3zM512 72c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12s5.4-12 12-12h24c6.6 0 12 5.4 12 12zm-60-60v24c0 6.6-5.4 12-12 12s-12-5.4-12-12V12c0-6.6 5.4-12 12-12s12 5.4 12 12zm5 43c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0 4.7 4.7 4.7 12.3 0 17l-17 17c-4.7 4.7-12.3 4.7-17 0zm-67.9-16.9c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17-4.7 4.7-12.3 4.7-17 0l-17-17zm101.8 67.8c4.7 4.7 4.7 12.3 0 17-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0l17 17zM192 192c0 8.8-7.2 16-16 16-35.3 0-64 28.7-64 64 0 8.8-7.2 16-16 16s-16-7.2-16-16c0-52.9 43.1-96 96-96 8.8 0 16 7.2 16 16z\"]\n};\nvar faBone = {\n prefix: 'fal',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M600.44 256c28.89-17.75 39.56-44.34 39.56-77.05C640 133.22 601.97 96 555.19 96c-36.5 0-68.81 22.75-80.41 56.59C467.19 175.22 467.57 176 456 176H184c-11.57 0-11.19-.78-18.78-23.41C153.62 118.75 121.31 96 84.81 96 38.03 96 0 133.22 0 178.95c0 32.71 10.67 59.3 39.56 77.05C10.67 273.75 0 300.34 0 333.05 0 378.78 38.03 416 84.81 416c36.5 0 68.81-22.75 80.41-56.59C172.81 336.78 172.43 336 184 336h272c11.57 0 11.19.78 18.78 23.41 11.59 33.84 43.91 56.59 80.41 56.59 46.78 0 84.81-37.22 84.81-82.95 0-32.71-10.67-59.3-39.56-77.05zm-45.25 128c-22.81 0-42.97-14.05-50.16-34.97C496.13 322.4 488.47 304 456 304H184c-32.47 0-40.13 18.4-49.03 45.03-7.19 20.92-27.35 34.97-50.16 34.97C55.69 384 32 361.14 32 333.05c0-23.44 6.88-41.59 29.03-52.36v-.02c9.59-4.66 15.53-14.12 15.53-24.67s-5.94-20.02-15.53-24.67v-.02C38.88 220.54 32 202.39 32 178.95 32 150.86 55.69 128 84.81 128c22.81 0 42.97 14.05 50.16 34.97C143.87 189.6 151.53 208 184 208h272c32.47 0 40.13-18.4 49.03-45.03 7.19-20.92 27.34-34.97 50.16-34.97 29.12 0 52.81 22.86 52.81 50.95 0 23.44-6.88 41.59-29.03 52.36v.02c-9.59 4.66-15.53 14.12-15.53 24.67s5.94 20.02 15.53 24.67v.02c22.15 10.77 29.03 28.92 29.03 52.36 0 28.09-23.69 50.95-52.81 50.95z\"]\n};\nvar faBoneBreak = {\n prefix: 'fal',\n iconName: 'bone-break',\n icon: [640, 512, [], \"f5d8\", \"M600.44 160C629.33 142.25 640 115.66 640 82.95 640 37.22 601.97 0 555.19 0c-36.5 0-68.81 22.75-80.41 56.59C467.19 79.22 467.57 80 456 80h-88c-17.67 0-32 14.33-32 32h120c32.47 0 40.13-18.4 49.03-45.03C512.22 46.05 532.37 32 555.19 32 584.31 32 608 54.86 608 82.95c0 23.44-6.88 41.59-29.03 52.36v.02c-9.59 4.66-15.53 14.13-15.53 24.67 0 10.55 5.94 20.02 15.53 24.67v.02c22.15 10.77 29.03 28.92 29.03 52.36 0 28.09-23.69 50.95-52.81 50.95-22.81 0-42.97-14.05-50.16-34.97C496.13 226.4 488.47 208 456 208h-56c-17.67 0-32 14.33-32 32h88c11.57 0 11.19.78 18.78 23.41 11.59 33.84 43.91 56.59 80.41 56.59 46.78 0 84.81-37.22 84.81-82.95 0-32.71-10.67-59.3-39.56-77.05zM327.26 297.88c-12.5-12.5-32.76-12.5-45.26 0l-39.6 39.6c-22.96 22.96-15.36 41.39-2.83 66.51 9.71 19.88 5.39 44.06-10.74 60.19-20.6 20.59-53.51 21.18-73.37 1.31-16.58-16.58-24.55-34.27-16.5-57.55l-.01-.01c3.49-10.08.99-20.97-6.46-28.43-7.46-7.46-18.35-9.96-28.43-6.46l-.01-.01c-23.28 8.05-40.98.08-57.55-16.5-19.87-19.87-19.28-52.78 1.31-73.37 16.13-16.13 40.32-20.45 60.19-10.74 25.13 12.53 43.55 20.13 66.51-2.83l84.85-84.85c-12.5-12.5-32.76-12.5-45.25 0l-62.23 62.22c-8.18 8.18-8.47 7.36-29.83-3.27-32.11-15.73-71.05-8.97-96.85 16.84-33.08 33.08-33.65 86.29-1.32 118.63 23.13 23.13 49.48 34.38 82.46 26.51-7.88 32.98 3.38 59.33 26.51 82.46 32.34 32.34 85.55 31.77 118.63-1.31 25.81-25.81 32.57-64.74 16.84-96.87-10.63-21.36-11.45-21.65-3.27-29.83l62.21-62.24z\"]\n};\nvar faBong = {\n prefix: 'fal',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M445.66 224.57l-62.22-62.23c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l19.8 19.8-48.57 48.57c-12.91-13.79-27.58-25.91-44.04-35.44V32h24c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24v185.9C38.67 251.11 0 312.97 0 384c0 43.81 14.8 84.07 39.52 116.35C45.34 507.96 54.73 512 64.31 512h255.37c9.58 0 18.97-4.04 24.79-11.65C369.21 468.07 384 427.8 384 384c0-39.04-11.99-75.08-32.03-105.35l51.26-51.26 19.8 19.8c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31a7.994 7.994 0 0 0 .01-11.31zm-333.62 21.02l15.96-9.24V32h128v204.34l15.96 9.24c29.93 17.34 52.83 43.73 66.35 74.41H45.69c13.52-30.68 36.42-57.07 66.35-74.4zM319.69 480l-254.76.89C43.38 452.77 32 419.26 32 384c0-10.88 1.46-21.54 3.63-32h312.75c2.17 10.46 3.63 21.12 3.63 32-.01 35.27-11.39 68.77-32.32 96z\"]\n};\nvar faBook = {\n prefix: 'fal',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M356 160H188c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12zm12 52v-8c0-6.6-5.4-12-12-12H188c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12zm64.7 268h3.3c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H80c-44.2 0-80-35.8-80-80V80C0 35.8 35.8 0 80 0h344c13.3 0 24 10.7 24 24v368c0 10-6.2 18.6-14.9 22.2-3.6 16.1-4.4 45.6-.4 65.8zM128 384h288V32H128v352zm-96 16c13.4-10 30-16 48-16h16V32H80c-26.5 0-48 21.5-48 48v320zm372.3 80c-3.1-20.4-2.9-45.2 0-64H80c-64 0-64 64 0 64h324.3z\"]\n};\nvar faBookAlt = {\n prefix: 'fal',\n iconName: 'book-alt',\n icon: [448, 512, [], \"f5d9\", \"M448 392V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.35 28.65 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.67 0-32-14.33-32-32s14.33-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.72 0-22.55 3.38-32 8.88V80c0-26.5 21.5-48 48-48h336v352z\"]\n};\nvar faBookDead = {\n prefix: 'fal',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M216 160c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-88 43.4V216c0 13.2 10.8 24 24 24h80c13.2 0 24-10.8 24-24v-12.6c20.4-15.1 32-36.4 32-59.4 0-44.1-43.1-80-96-80s-96 35.9-96 80c0 23 11.6 44.3 32 59.4zM240 96c35.3 0 64 21.5 64 48 0 14.3-8.8 27.9-24.3 37.2l-7.7 4.7V208h-64v-22.1l-7.7-4.7c-15.4-9.3-24.3-22.9-24.3-37.2 0-26.5 28.7-48 64-48zm208 296V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.3 28.7 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.7 0-22.5 3.4-32 8.9V80c0-26.5 21.5-48 48-48h336zm-291.2-51.6l6.3 14.7c1.7 4.1 6.4 5.9 10.5 4.2l98.3-42.2 98.4 42.1c4.1 1.7 8.8-.1 10.5-4.2l6.3-14.7c1.7-4.1-.1-8.8-4.2-10.5l-70.3-30.1 70.3-30.2c4.1-1.7 5.9-6.4 4.2-10.5l-6.3-14.7c-1.7-4.1-6.4-5.9-10.5-4.2L240 274.4l-98.3-42.1c-4.1-1.7-8.8.1-10.5 4.2l-6.3 14.7c-1.7 4.1.1 8.8 4.2 10.5l70.3 30.2-70.4 30c-4 1.8-5.9 6.5-4.2 10.5z\"]\n};\nvar faBookHeart = {\n prefix: 'fal',\n iconName: 'book-heart',\n icon: [448, 512, [], \"f499\", \"M230.1 307.9c5.5 5.5 14.3 5.5 19.8 0l84.7-85.6c24.6-24.9 23.2-66.1-4.3-89.1-13.9-11.6-47.7-28.5-90.2 14.5-42.6-43-76.4-26.1-90.2-14.5-27.5 23-28.9 64.2-4.3 89.1l84.5 85.6zm-59.8-150.1c13.7-11.5 31.2-3.4 38.4 3.7l31.4 31.7 31.4-31.7c7.1-7.2 24.6-15.2 38.4-3.7 14.4 12 12.3 31.6 2.1 42l-72 72.6-71.8-72.6c-10.3-10.4-12.3-30 2.1-42zM448 392V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.3 28.7 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.7 0-22.5 3.4-32 8.9V80c0-26.5 21.5-48 48-48h336v352z\"]\n};\nvar faBookMedical = {\n prefix: 'fal',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 392V24a23.94 23.94 0 0 0-24-24H80A80 80 0 0 0 0 80v368a64 64 0 0 0 64 64h372a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8A24.1 24.1 0 0 0 448 392zm-43.7 88H64a32 32 0 0 1 0-64h340.3a228.6 228.6 0 0 0 0 64zm11.7-96H64a63.33 63.33 0 0 0-32 8.88V80a48 48 0 0 1 48-48h336zM152 240h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8z\"]\n};\nvar faBookOpen = {\n prefix: 'fal',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M514.91 32h-.16c-24.08.12-144.75 8.83-219.56 48.09-4.05 2.12-10.33 2.12-14.38 0C205.99 40.83 85.32 32.12 61.25 32h-.16C27.4 32 0 58.47 0 91.01v296.7c0 31.41 25.41 57.28 57.85 58.9 34.77 1.76 122.03 8.26 181.89 30.37 5.27 1.95 10.64 3.02 16.25 3.02h64c5.62 0 10.99-1.08 16.26-3.02 59.87-22.11 147.12-28.61 181.92-30.37 32.41-1.62 57.82-27.48 57.82-58.89V91.01C576 58.47 548.6 32 514.91 32zM272 433c0 8.61-7.14 15.13-15.26 15.13-1.77 0-3.59-.31-5.39-.98-62.45-23.21-148.99-30.33-191.91-32.51-15.39-.77-27.44-12.6-27.44-26.93V91.01c0-14.89 13.06-27 29.09-27 19.28.1 122.46 7.38 192.12 38.29 11.26 5 18.64 15.75 18.66 27.84l.13 100.32V433zm272-45.29c0 14.33-12.05 26.16-27.45 26.93-42.92 2.18-129.46 9.3-191.91 32.51-1.8.67-3.62.98-5.39.98-8.11 0-15.26-6.52-15.26-15.13V230.46l.13-100.32c.01-12.09 7.4-22.84 18.66-27.84 69.66-30.91 172.84-38.19 192.12-38.29 16.03 0 29.09 12.11 29.09 27v296.7z\"]\n};\nvar faBookReader = {\n prefix: 'fal',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M459.91 192.02c-.7 0-1.39.02-2.06.05-49.8 2.84-140.51 13-201.84 47.57-61.33-34.57-152.05-44.73-201.84-47.57-.67-.04-1.36-.05-2.06-.05C31.71 192.01 0 206.36 0 242.22v178.05c0 26.69 21.25 48.7 48.34 50.12 34.41 1.81 120.56 9.08 177 37.47 4.68 2.37 9.66 3.5 14.66 3.84v.27h2.27c.09 0 .18.03.26.03h26.94c.09 0 .18-.03.26-.03H272v-.27c5-.34 9.98-1.48 14.66-3.84 56.44-28.39 142.59-35.65 177-37.47 27.09-1.42 48.34-23.44 48.34-50.12V242.22c0-35.86-31.71-50.2-52.09-50.2zM240 479.35c-.09-.04-.18-.02-.28-.07-59.59-29.97-144.43-38.45-189.7-40.84-10.1-.53-18.02-8.51-18.02-18.17V242.22c0-6.05 1.77-10 5.93-13.2 4.47-3.44 10.47-5.01 14.4-5.01 37.01 2.11 129.27 10.58 187.67 43.36v211.98zm240-59.08c0 9.66-7.92 17.64-18.03 18.17-45.27 2.38-130.11 10.86-189.76 40.87-.07.04-.14.02-.22.05V267.37c58.39-32.79 150.66-41.25 187.51-43.35l.39-.01c.2 0 20.09.49 20.09 18.21v178.05zM256 191.99c53.02 0 96-42.98 96-95.99S309.02 0 256 0s-96 42.98-96 95.99 42.98 96 96 96zM256 32c35.29 0 64 28.71 64 64s-28.71 64-64 64-64-28.71-64-64 28.71-64 64-64z\"]\n};\nvar faBookSpells = {\n prefix: 'fal',\n iconName: 'book-spells',\n icon: [448, 512, [], \"f6b8\", \"M64 144c0 6.06 3.44 11.59 8.84 14.31l37.88 18.94 18.97 37.91c2.72 5.42 8.25 8.84 14.31 8.84s11.59-3.42 14.31-8.84l18.94-37.91 37.91-18.94c5.41-2.7 8.84-8.25 8.84-14.31s-3.44-11.61-8.84-14.31l-37.91-18.94-18.94-37.91C155.59 67.42 150.06 64 144 64s-11.59 3.42-14.31 8.84l-18.97 37.91-37.88 18.94C67.44 132.41 64 137.94 64 144zm65.81-7.02a16.15 16.15 0 0 0 7.16-7.16l7.03-14.05 7 14.05c1.56 3.09 4.06 5.61 7.16 7.16l14.03 7.02-14.03 7.02a16.15 16.15 0 0 0-7.16 7.16l-7 14.05-7.03-14.05a16.101 16.101 0 0 0-7.16-7.16L115.78 144l14.03-7.02zM192 256c0 6.06 3.44 11.59 8.84 14.31l48.56 24.28 24.28 48.56c2.72 5.42 8.25 8.84 14.31 8.84s11.59-3.42 14.31-8.84l24.28-48.56 48.56-24.28c5.41-2.72 8.84-8.25 8.84-14.31s-3.44-11.59-8.84-14.31l-48.56-24.28-24.28-48.56c-5.44-10.84-23.19-10.84-28.62 0l-24.28 48.56-48.56 24.28c-5.4 2.72-8.84 8.25-8.84 14.31zm76.5-12.36a16.15 16.15 0 0 0 7.16-7.16l12.34-24.7 12.34 24.7c1.56 3.09 4.06 5.61 7.16 7.16L332.22 256l-24.72 12.36a16.15 16.15 0 0 0-7.16 7.16L288 300.22l-12.34-24.7a16.101 16.101 0 0 0-7.16-7.16L243.78 256l24.72-12.36zM448 392V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.35 28.65 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.67 0-32-14.33-32-32s14.33-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.72 0-22.55 3.38-32 8.88V80c0-26.5 21.5-48 48-48h336v352z\"]\n};\nvar faBookUser = {\n prefix: 'fal',\n iconName: 'book-user',\n icon: [448, 512, [], \"f7e7\", \"M240 224a80 80 0 1 0-80-80 80.09 80.09 0 0 0 80 80zm0-128a48 48 0 1 1-48 48 48.05 48.05 0 0 1 48-48zm208 296V24a23.94 23.94 0 0 0-24-24H80A80 80 0 0 0 0 80v368a64 64 0 0 0 64 64h372a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8A24.1 24.1 0 0 0 448 392zm-43.7 88H64a32 32 0 0 1 0-64h340.3a228.6 228.6 0 0 0 0 64zm11.7-96H64a63.33 63.33 0 0 0-32 8.88V80a48 48 0 0 1 48-48h336zm-265.59-32h179.18C349 352 368 339 368 313.59 368 273 330.69 240 284.81 240c-21.5 2.38-22.6 8-44.81 8s-23.31-5.58-44.81-8c-45.88 0-83.19 33-83.19 73.59C112 339 131 352 150.41 352zm44.78-80c4.66 0 18.43 8 44.81 8s40.15-8 44.81-8C313 272 336 290.66 336 313.59c0 3.22.41 6.41-6.41 6.41H150.41c-6.82 0-6.41-3.19-6.41-6.41 0-22.93 23-41.59 51.19-41.59z\"]\n};\nvar faBookmark = {\n prefix: 'fal',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm16 456.287l-160-93.333-160 93.333V48c0-8.822 7.178-16 16-16h288c8.822 0 16 7.178 16 16v408.287z\"]\n};\nvar faBooks = {\n prefix: 'fal',\n iconName: 'books',\n icon: [576, 512, [], \"f5db\", \"M575.33 456.43L399 8.02C397.28 3.1 392.61 0 387.65 0c-3.01 0-4.97 1.03-11.49 3.31-6.46 2.26-9.82 8.24-6.27 18.38-16.46 9.69-59.15 24.09-75.5 26.42-1.33-3.78-1.97-6.62-6.4-9.23V32c0-17.67-14.33-32-32-32h-96c-5.96 0-11.22 2.07-16 4.9C139.22 2.07 133.96 0 128 0H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h96c5.96 0 11.22-2.07 16-4.9 4.78 2.84 10.04 4.9 16 4.9h96c17.67 0 32-14.33 32-32V118.88l151.43 385.1c1.73 4.92 6.4 8.02 11.35 8.02 3 0 4.96-1.03 11.49-3.31 6.44-2.25 9.83-8.23 6.27-18.38 16.46-9.69 59.15-24.09 75.5-26.42 3.65 10.4 10.13 12.65 16.38 10.46l7.55-2.64c6.23-2.19 9.54-9.07 7.36-15.28zM128 480H32v-64h96v64zm0-96H32V128h96v256zm0-288H32V32h96v64zm128 384h-96v-64h96v64zm0-96h-96V128h96v256zm0-288h-96V32h96v64zm203.15 367.54L303.79 74.88c25.22-4.74 64.01-20.33 75.5-26.42l155.36 388.65c-25.23 4.75-64.01 20.33-75.5 26.43z\"]\n};\nvar faBooksMedical = {\n prefix: 'fal',\n iconName: 'books-medical',\n icon: [640, 512, [], \"f7e8\", \"M639.33 456.43L463 8a12 12 0 0 0-11.35-8c-3 0-5 1-11.49 3.31s-9.82 8.24-6.27 18.38c-16.46 9.69-59.15 24.09-75.5 26.42-1.33-3.78-2-6.62-6.4-9.23V32A32 32 0 0 0 320 0h-96c-6 0-11.22 2.07-16 4.9-4.78-2.83-10-4.9-16-4.9H96a32 32 0 0 0-32 32v77.56a158.67 158.67 0 0 1 32-10.33V32h96v77.56a159.52 159.52 0 0 1 32 19.25V128h96v256h-96v-.81a159.52 159.52 0 0 1-32 19.25V480H96v-67.23a158.67 158.67 0 0 1-32-10.33V480a32 32 0 0 0 32 32h96c6 0 11.22-2.07 16-4.9 4.78 2.84 10 4.9 16 4.9h96a32 32 0 0 0 32-32V118.88L503.43 504a12.06 12.06 0 0 0 11.35 8c3 0 5-1 11.49-3.31s9.83-8.23 6.27-18.38c16.46-9.69 59.15-24.09 75.5-26.42 3.65 10.4 10.13 12.65 16.38 10.46l7.55-2.64a12 12 0 0 0 7.36-15.28zM320 480h-96v-64h96zm0-384h-96V32h96zm203.15 367.54L367.79 74.88c25.22-4.74 64-20.33 75.5-26.42l155.36 388.65c-25.23 4.75-64.01 20.33-75.5 26.43zM256 256a128 128 0 1 0-128 128 128 128 0 0 0 128-128zm-224 0a96 96 0 1 1 96 96 96 96 0 0 1-96-96zm117.33 58.67v-37.34h37.34A5.33 5.33 0 0 0 192 272v-32a5.33 5.33 0 0 0-5.33-5.33h-37.34v-37.34A5.33 5.33 0 0 0 144 192h-32a5.33 5.33 0 0 0-5.33 5.33v37.34H69.33A5.33 5.33 0 0 0 64 240v32a5.33 5.33 0 0 0 5.33 5.33h37.34v37.34A5.33 5.33 0 0 0 112 320h32a5.33 5.33 0 0 0 5.33-5.33z\"]\n};\nvar faBoombox = {\n prefix: 'fal',\n iconName: 'boombox',\n icon: [640, 512, [], \"f8a5\", \"M176 224a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 192a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80zm288-192a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 192a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80zm128-256h-16V56a56.07 56.07 0 0 0-56-56H120a56.06 56.06 0 0 0-56 56v104H48a48 48 0 0 0-48 48v256a48 48 0 0 0 48 48h544a48 48 0 0 0 48-48V208a48 48 0 0 0-48-48zM96 56a24 24 0 0 1 24-24h400a24 24 0 0 1 24 24v104h-96v-16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h-32v-16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h-32v-16a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16H96zm512 408a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V208a16 16 0 0 1 16-16h544a16 16 0 0 1 16 16zM464 304a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm-288 0a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]\n};\nvar faBoot = {\n prefix: 'fal',\n iconName: 'boot',\n icon: [512, 512, [], \"f782\", \"M415 247.8L352 232V128c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32v434.7c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 14.1 9.4 22.6 9.4h37.5c8.5 0 16.6-3.4 22.6-9.4L128 480l22.6 22.6c6 6 14.1 9.4 22.6 9.4h37.5c8.5 0 16.6-3.4 22.6-9.4L256 480l22.6 22.6c6 6 14.1 9.4 22.6 9.4h37.5c8.5 0 16.6-3.4 22.6-9.4L384 480l22.6 22.6c6 6 14.1 9.4 22.6 9.4h37.5c8.5 0 16.6-3.4 22.6-9.4l13.3-13.3c6-6 9.4-14.1 9.4-22.6v-94.8c0-58.7-40-109.9-97-124.1zM32 32h320v64H32V32zm448 434.7L466.7 480h-37.5l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4L338.7 480h-37.5l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4L210.7 480h-37.5l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4L82.7 480H45.3L32 466.7V416h448v50.7zm0-82.7H32V128h288v32h-88c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88v32h-88c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l87.3 22.8c42.8 10.7 72.7 49 72.7 93.1V384z\"]\n};\nvar faBoothCurtain = {\n prefix: 'fal',\n iconName: 'booth-curtain',\n icon: [512, 512, [], \"f734\", \"M0 32v472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V32h64v352c0 35.3 28.7 64 64 64 19.2 0 36.3-8.7 48-22.1 11.7 13.4 28.8 22.1 48 22.1s36.3-8.7 48-22.1c11.7 13.4 28.8 22.1 48 22.1s36.3-8.7 48-22.1c11.7 13.4 28.8 22.1 48 22.1 11.7 0 22.5-3.4 32-8.9V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zm416 0h64v352c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm-96 0h64v352c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm-96 0h64v352c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm-96 0h64v352c0 17.7-14.3 32-32 32s-32-14.3-32-32V32z\"]\n};\nvar faBorderAll = {\n prefix: 'fal',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M432 32H16A16 16 0 0 0 0 48v416a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM32 64h176v176H32zm0 384V272h176v176zm384 0H240V272h176zm0-208H240V64h176z\"]\n};\nvar faBorderBottom = {\n prefix: 'fal',\n iconName: 'border-bottom',\n icon: [448, 512, [], \"f84d\", \"M440 448H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM216 280h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0 96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-96-96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-200h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm192 200h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-200h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-96 104h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-104h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zM16 80h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v16a16 16 0 0 0 16 16zm416 56h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM16 184h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0 96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0 96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]\n};\nvar faBorderCenterH = {\n prefix: 'fal',\n iconName: 'border-center-h',\n icon: [448, 512, [], \"f89c\", \"M440 240H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM216 376h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zM120 80h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm192 0h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-96 104h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-104h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zM16 80h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v16a16 16 0 0 0 16 16zm416 56h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM120 480h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm192 0h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-96 0h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-200 0h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm416-48h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM16 184h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0 192h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]\n};\nvar faBorderCenterV = {\n prefix: 'fal',\n iconName: 'border-center-v',\n icon: [448, 512, [], \"f89d\", \"M208 40v432a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8zm136 224v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zM48 360v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm0-192v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm104 96v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm-104 0v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm0 200v-16a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm56-416v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16zM0 48v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48zm448 312v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm0-192v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm0 96v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm0 200v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zM400 48v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16zm-104 0v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16zM152 464v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16zm192 0v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16z\"]\n};\nvar faBorderInner = {\n prefix: 'fal',\n iconName: 'border-inner',\n icon: [448, 512, [], \"f84e\", \"M439 240H239V40a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v200H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h200v200a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V272h200a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM15 184h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H15a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm16 248H15a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM15 80h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H15A16 16 0 0 0-1 48v16a16 16 0 0 0 16 16zm16 248H15a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM311 80h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-192 0h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm312 56h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM135 432h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM431 32h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 296h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM327 432h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm104 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]\n};\nvar faBorderLeft = {\n prefix: 'fal',\n iconName: 'border-left',\n icon: [448, 512, [], \"f84f\", \"M24 32H8a8 8 0 0 0-8 8v432a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8zm208 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 296h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-192h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM136 32h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 400h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm96 200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm200-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM328 432h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm104-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM328 232h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderNone = {\n prefix: 'fal',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M432 32h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM32 32H16A16 16 0 0 0 0 48v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm400 400h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-296h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 192h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-104 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM32 136H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm200 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 192h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM32 328H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm104 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM32 432H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm104 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm192 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-96 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM136 32h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm192 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-96 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderOuter = {\n prefix: 'fal',\n iconName: 'border-outer',\n icon: [448, 512, [], \"f851\", \"M216 185h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm96 96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-96 0h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-96 0h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm96 96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zM432 33H16A16 16 0 0 0 0 49v416a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V49a16 16 0 0 0-16-16zm-16 416H32V65h384z\"]\n};\nvar faBorderRight = {\n prefix: 'fal',\n iconName: 'border-right',\n icon: [448, 512, [], \"f852\", \"M440 32h-16a8 8 0 0 0-8 8v432a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8zM136 432h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM32 32H16A16 16 0 0 0 0 48v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm104 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM32 328H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 104H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-200H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm200 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm96 96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 400h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zM232 32h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm0 400h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fal',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M440 32H16A16 16 0 0 0 0 48v424a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V64h408a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8zM232 432h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm96 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-192 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm296-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 296h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyleAlt = {\n prefix: 'fal',\n iconName: 'border-style-alt',\n icon: [448, 512, [], \"f854\", \"M439 32h-16a8 8 0 0 0-8 8v408H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h424a16 16 0 0 0 16-16V40a8 8 0 0 0-8-8zM15 80h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H15A16 16 0 0 0-1 48v16a16 16 0 0 0 16 16zm200 0h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm96 0h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm-192 0h16a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zM15 376h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H15a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H15a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-96h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16H15a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]\n};\nvar faBorderTop = {\n prefix: 'fal',\n iconName: 'border-top',\n icon: [448, 512, [], \"f855\", \"M440 32H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8zM32 136H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm200 192h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-96-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-104 0H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 200H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-104H16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm104 104h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm296 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-200h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0 96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-192h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-104 96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm-96 0h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm0-96h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16zm96 296h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16z\"]\n};\nvar faBowArrow = {\n prefix: 'fal',\n iconName: 'bow-arrow',\n icon: [512, 512, [], \"f6b9\", \"M403.77 176.11l-23.47 23.47c50.46 78.99 46.83 182.75-11.62 257.82l-123.1-123.1-22.63 22.63L375.7 509.66c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31a7.985 7.985 0 0 0 0-11.31l-6.76-6.76c70.86-88.04 74.96-212.03 12.21-304.17zM155.08 289.04l22.63-22.63-123.1-123.1c75.07-58.44 178.83-62.08 257.82-11.62l23.47-23.47c-92.14-62.75-216.13-58.65-304.16 12.21l-6.77-6.77c-3.13-3.12-8.19-3.12-11.31 0L2.34 124.99a7.985 7.985 0 0 0 0 11.31l152.74 152.74zM496.36 0c-1.03 0-2.07.1-3.13.31l-128.6 25.72c-12.29 2.46-16.88 17.62-8.02 26.49l40.12 40.12-252.37 252.37-53.63-23.96a20.547 20.547 0 0 0-21.04 4.96L6.03 389.69c-10.8 10.8-6.46 29.2 8.04 34.04l55.66 18.55 18.55 55.65c2.99 8.98 11.19 14.06 19.57 14.06 5.14 0 10.36-1.92 14.47-6.03l63.67-63.67a20.56 20.56 0 0 0 4.97-21.04L167 367.63l252.37-252.37 40.13 40.12c3.16 3.16 7.12 4.61 11.02 4.61 7.04 0 13.88-4.72 15.46-12.63l25.71-128.59C513.67 8.86 505.96 0 496.36 0zM112.77 470.25l-12.7-38.09-5.06-15.18-15.18-5.06-38.09-12.7 44.93-44.93 49.09 21.93 21.93 49.09-44.92 44.94zm347.8-359.03l-59.79-59.78 74.73-14.95-14.94 74.73z\"]\n};\nvar faBowlingBall = {\n prefix: 'fal',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm-96-312c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm-16 64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faBowlingPins = {\n prefix: 'fal',\n iconName: 'bowling-pins',\n icon: [480, 512, [], \"f437\", \"M475.2 312.2c-13-54.4-49.3-89.2-53.9-137.8-3.4-34.7 21.2-57.4 18.7-99.4-2.6-43.3-32.9-74.9-72-75-39.1.1-69.3 31.7-71.9 75-2.5 42 22 64.8 18.7 99.4-4.6 48.6-41 83.5-53.9 137.8-12.5 52.3.4 139.9 28.2 191.3l4.5 8.4h149l4.5-8.4c27.7-51.4 40.6-139 28.1-191.3zM408 76.9c1.7 28.6-16.1 49.3-18.7 83.1h-42.6c-2.6-33.9-20.5-54.4-18.7-83.1 3.6-60.1 76.4-60.1 80 0zm15.1 403H312.9c-21-45.2-31-118.7-21-160.3 10.7-44.8 41.9-77 52.1-127.7h48c10.2 50.7 41.4 82.9 52.1 127.7 9.9 41.7-.1 115.1-21 160.3zM165.3 174.5c-3.3-34.7 21.2-57.4 18.7-99.4-2.6-43.4-32.9-74.9-72-75-39.1 0-69.3 31.6-72 75-2.6 42 22 64.7 18.7 99.4-4.6 48.7-41 83.5-53.9 137.8-12.5 52.3.4 140 28.2 191.4l4.5 8.4h149l4.5-8.4c27.8-51.4 40.7-139 28.2-191.4-12.9-54.3-49.3-89.2-53.9-137.8zM152 77c1.7 28.7-16.1 49.1-18.7 83H90.7c-2.6-33.9-20.5-54.3-18.7-83 3.6-60.1 76.4-60.1 80 0zm15.1 403H56.9c-21-45.2-31-118.7-21-160.3 10.7-44.8 42-77 52.1-127.7h48c10.2 50.7 41.4 82.9 52.1 127.7 10 41.6 0 115.1-21 160.3z\"]\n};\nvar faBox = {\n prefix: 'fal',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V199.8c0-5.2-.8-10.3-2.5-15.2zM32 199.8c0-1.7.3-3.4.8-5.1L83.4 42.9C85.6 36.4 91.7 32 98.6 32H240v168H32v-.2zM480 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V232h448v232zm0-264H272V32h141.4c6.9 0 13 4.4 15.2 10.9l50.6 151.8c.5 1.6.8 3.3.8 5.1v.2z\"]\n};\nvar faBoxAlt = {\n prefix: 'fal',\n iconName: 'box-alt',\n icon: [448, 512, [], \"f49a\", \"M447.9 176c0-10.6-2.6-21-7.6-30.3l-49.1-91.9c-4.3-13-16.5-21.8-30.3-21.8H87.1c-13.8 0-26 8.8-30.4 21.9L7.6 145.8c-5 9.3-7.6 19.7-7.6 30.3C.1 236.6 0 448 0 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32 0 0-.1-211.4-.1-272zm-87-112l50.8 96H286.1l-12-96h86.8zM192 192h64v64h-64v-64zm49.9-128l12 96h-59.8l12-96h35.8zM87.1 64h86.8l-12 96H36.3l50.8-96zM32 448s.1-181.1.1-256H160v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32v-64h127.9c0 74.9.1 256 .1 256H32z\"]\n};\nvar faBoxBallot = {\n prefix: 'fal',\n iconName: 'box-ballot',\n icon: [576, 512, [], \"f735\", \"M571.4 276.6l-51.3-128.2c-4.8-12.3-16.6-20.3-29.8-20.3h-42.2V32c0-17.7-14.3-32-32-32h-256c-17.7 0-32 14.3-32 32v96H86c-13.2 0-25 8.1-29.8 20.3L4.6 276.4C1.5 284 0 292.2 0 300.4l.3 179.4c-.1 17.7 14.3 32.2 32 32.2H544c17.7 0 32.1-14.4 32-32.2V300.3c0-8.1-1.6-16.2-4.6-23.7zM160.2 32h256v192h-256V32zM86 160h42.2v64H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-23.8v-64h42.2l.1.2 51 127.8h-507L86 160zm458 320l-511.7-.2-.1-159.8H544v160z\"]\n};\nvar faBoxCheck = {\n prefix: 'fal',\n iconName: 'box-check',\n icon: [640, 512, [], \"f467\", \"M492.5 133.4L458.9 32.8C452.4 13.2 434.1 0 413.4 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48h400c106 0 192-86 192-192 0-90.7-63-166.5-147.5-186.6zM272 32h141.4c6.9 0 13 4.4 15.2 10.9l28.5 85.5c-3-.1-6-.5-9.1-.5-56.8 0-107.7 24.8-142.8 64H272V32zM83.4 42.9C85.6 36.4 91.7 32 98.6 32H240v160H33.7L83.4 42.9zM48 480c-8.8 0-16-7.2-16-16V224h249.9c-16.4 28.3-25.9 61-25.9 96 0 66.8 34.2 125.6 86 160H48zm400 0c-88.2 0-160-71.8-160-160s71.8-160 160-160 160 71.8 160 160-71.8 160-160 160zm64.6-221.7c-3.1-3.1-8.1-3.1-11.2 0l-69.9 69.3-30.3-30.6c-3.1-3.1-8.1-3.1-11.2 0l-18.7 18.6c-3.1 3.1-3.1 8.1 0 11.2l54.4 54.9c3.1 3.1 8.1 3.1 11.2 0l94.2-93.5c3.1-3.1 3.1-8.1 0-11.2l-18.5-18.7z\"]\n};\nvar faBoxFragile = {\n prefix: 'fal',\n iconName: 'box-fragile',\n icon: [448, 512, [], \"f49b\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm24 392c0 13.2-10.8 24-24 24H56c-13.2 0-24-10.8-24-24V88c0-13.2 10.8-24 24-24h336c13.2 0 24 10.8 24 24v336zM304 96H144c-17.7 0-32 14.3-32 32v80c0 56.4 41.8 102.6 96 110.4V384h-40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-40v-65.6c54.2-7.8 96-54 96-110.4v-80c0-17.7-14.3-32-32-32zm0 112c0 44.1-35.9 80-80 80s-80-35.9-80-80v-80h68.8c2.3 6.7 4.8 13.3 7.3 19.9-7.9 8.1-36.3 38.4-36.3 38.4s47.6 34.8 67.2 43.8c2.6 1.2 5.7 1 8.2-.7 3.7-2.6 4.6-7.7 2-11.4-8.9-12.5-29.8-33.7-29.8-33.7L260 156s-9.1-22.1-11.6-28H304v80z\"]\n};\nvar faBoxFull = {\n prefix: 'fal',\n iconName: 'box-full',\n icon: [640, 512, [], \"f49c\", \"M638.3 239.8L586.8 137c-2.8-5.6-8.5-9-14.6-9-1 0 4.3-.7-56.3 7l26.2-71.8c6-16.6-2.5-35-19.1-41L467.3 1.9c-16.5-6-34.9 2.5-41 19.1l-42.8 117.7C380.7 61.7 317.7 0 240 0 164.7 0 103.7 58 97.3 131.6 67.8 127.8 69 128 67.8 128c-6.1 0-11.8 3.5-14.6 9L1.7 239.8c-4.6 9.2.3 20.2 10.1 23L64 277.7V425c0 14.7 10 27.5 24.2 31l216.2 54.1c13.6 3.4 25 1.5 31 0L551.8 456c14.2-3.6 24.2-16.4 24.2-31V277.7l52.1-14.9c9.9-2.8 14.7-13.8 10.2-23zM456.4 32L512 52.2l-31.8 87.3-66 8.4L456.4 32zM38.8 237.3l38-76 190.4 24.3-60.1 99.8-168.3-48.1zM304 477L96 425V286.9C219.3 322.1 211 320 214.3 320c5.6 0 11-2.9 14-7.9L304 186.5V477zm16-317c-95.7-12.2-154.6-19.7-191.1-24.4C133.2 77.8 181.1 32 240 32c61.8 0 112 50.2 112 112 0 4.1-.6 8.1-1.1 12.1L320 160zm224 265l-208 52V186.5L411.7 312c3 5 8.4 7.9 14 7.9 3.3 0-5.2 2.1 118.3-33.1V425zM432.9 285.3l-60.1-99.8 190.4-24.3 38 76-168.3 48.1z\"]\n};\nvar faBoxHeart = {\n prefix: 'fal',\n iconName: 'box-heart',\n icon: [448, 512, [], \"f49d\", \"M447.9 176c0-10.6-2.6-21-7.6-30.3l-49.1-91.9c-4.3-13-16.5-21.8-30.3-21.8H87.1c-13.8 0-26 8.8-30.4 21.9L7.6 145.8c-5 9.3-7.6 19.7-7.6 30.3C.1 236.6 0 448 0 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32 0 0-.1-211.4-.1-272zM240 64h120.9l50.8 96H240V64zM87.1 64H208v96H36.3l50.8-96zM224 448H32s.1-181.1.1-256H416c0 74.9.1 256 .1 256H224zm90.2-210.8c-13.9-11.6-47.7-28.5-90.2 14.5-42.6-43-76.4-26.1-90.2-14.5-27.5 23-28.9 64.2-4.3 89.1l84.7 85.6c5.5 5.5 14.3 5.5 19.8 0l84.7-85.6c24.5-24.9 23-66.1-4.5-89.1zm-18.4 66.5L224 376.4l-71.8-72.6c-10.2-10.3-12.3-30 2.1-42 13.7-11.5 31.2-3.4 38.4 3.7l31.4 31.7 31.4-31.7c7.1-7.2 24.6-15.2 38.4-3.7 14.2 12 12.2 31.6 1.9 41.9z\"]\n};\nvar faBoxOpen = {\n prefix: 'fal',\n iconName: 'box-open',\n icon: [608, 512, [], \"f49e\", \"M606.4 143.8L557.5 41c-2.7-5.6-8.1-9-13.9-9C543 32 304 64 304 64S65 32 64.4 32c-5.8 0-11.2 3.5-13.9 9L1.6 143.8c-4.4 9.2.3 20.2 9.6 23l49.5 14.9V393c0 14.7 9.5 27.5 23 31l205.4 54.1c13 3.4 23.7 1.5 29.5 0L524.2 424c13.5-3.6 23-16.4 23-31V181.7l49.5-14.9c9.4-2.8 14-13.8 9.7-23zM73 65.3l180.9 24.3-57.1 99.8-159.9-48.1 36.1-76zm18.2 125.6C208.3 226.1 200.5 224 203.6 224c5.4 0 10.5-2.9 13.3-7.9l71.9-125.5V445L91.2 393V190.9zM516.8 393l-197.6 52V90.5L391.1 216c2.9 5 8 7.9 13.3 7.9 3.1 0-5 2.1 112.4-33.1V393zM411.3 189.3l-57.1-99.8L535 65.3l36.1 76-159.8 48z\"]\n};\nvar faBoxTissue = {\n prefix: 'fal',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M464,224H405.33L448,96H338.6A70.2,70.2,0,0,1,272,48,70.19,70.19,0,0,0,205.4,0H64l49.78,224H48A48,48,0,0,0,0,272V464a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V272A48,48,0,0,0,464,224ZM103.89,32H205.4a38.15,38.15,0,0,1,36.24,26.12,102.07,102.07,0,0,0,97,69.88h65L350.27,288H160.78ZM480,464a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V416H480Zm0-80H32V272a16,16,0,0,1,16-16h72.89L128,288H112a16,16,0,0,0,0,32H400a16,16,0,0,0,0-32H384l10.67-32H464a16,16,0,0,1,16,16Z\"]\n};\nvar faBoxUp = {\n prefix: 'fal',\n iconName: 'box-up',\n icon: [512, 512, [], \"f49f\", \"M408 384H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM448 0H64C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 448c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v384zM108.5 202l35.5-44.4V312c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V157.6l35.5 44.4c4.6 5.8 14.5 8.8 22.5 2.5 6.9-5.5 8-15.6 2.5-22.5l-64-80c-6.1-7.6-18.9-7.6-25 0l-64 80c-5.5 6.9-4.4 17 2.5 22.5s17 4.4 22.5-2.5zm256-100c-6.1-7.6-18.9-7.6-25 0l-64 80c-5.5 6.9-4.4 17 2.5 22.5s17 4.4 22.5-2.5l35.5-44.4V312c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V157.6l35.5 44.4c4.6 5.8 14.5 8.8 22.5 2.5 6.9-5.5 8-15.6 2.5-22.5l-64-80z\"]\n};\nvar faBoxUsd = {\n prefix: 'fal',\n iconName: 'box-usd',\n icon: [448, 512, [], \"f4a0\", \"M249.4 310.9l-41.6-12.5c-4.2-1.3-7.2-5.6-7.2-10.6 0-6 4.3-10.9 9.7-10.9h25.9c3.9 0 7.7 1.1 11 3.1 3.2 1.9 7.3 1.2 10-1.4l11.4-10.9c3.5-3.4 3.4-9.2-.5-12.1-8.2-6-18-9.6-28.1-10.3V232c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v13.4c-21.9 1.3-39.4 19.6-39.4 42.5 0 19 12.3 35.9 30 41.2l41.6 12.5c4.2 1.3 7.2 5.6 7.2 10.6 0 6-4.3 10.9-9.7 10.9h-25.9c-3.9 0-7.7-1.1-11-3.1-3.2-1.9-7.3-1.2-10 1.4l-11.4 10.9c-3.5 3.4-3.4 9.2.5 12.1 8.2 6 18 9.6 28.1 10.3V408c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-13.4c21.9-1.3 39.4-19.6 39.4-42.5 0-18.9-12.4-35.9-30-41.2zM447.9 176c0-10.6-2.6-21-7.6-30.3l-49.1-91.9c-4.3-13-16.5-21.8-30.3-21.8H87.1c-13.8 0-26 8.8-30.4 21.9L7.6 145.8c-5 9.3-7.6 19.7-7.6 30.3C.1 236.6 0 448 0 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32 0 0-.1-211.4-.1-272zM240 64h120.9l50.8 96H240V64zM87.1 64H208v96H36.3l50.8-96zM32 448s.1-181.1.1-256H416c0 74.9.1 256 .1 256H32z\"]\n};\nvar faBoxes = {\n prefix: 'fal',\n iconName: 'boxes',\n icon: [640, 512, [], \"f468\", \"M624 224H480V16c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v208H16c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-176 32h64v62.3l-32-10.7-32 10.7V256zM352 32v62.3l-32-10.7-32 10.7V32h64zm-160 0h64v106.7l64-21.3 64 21.3V32h64v192H192V32zm0 224v62.3l-32-10.7-32 10.7V256h64zm-160 0h64v106.7l64-21.3 64 21.3V256h80v224H32V256zm576 224H336V256h80v106.7l64-21.3 64 21.3V256h64v224z\"]\n};\nvar faBoxesAlt = {\n prefix: 'fal',\n iconName: 'boxes-alt',\n icon: [640, 512, [], \"f4a1\", \"M624 224H480V16c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v208H16c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-112 32v64h-64v-64h64zM288 32h64v64h-64V32zm-96 0h64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V32h64v192H192V32zm-64 224h64v64h-64v-64zm176 224H32V256h64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32v-64h80v224zm304 0H336V256h80v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32v-64h64v224z\"]\n};\nvar faBoxingGlove = {\n prefix: 'fal',\n iconName: 'boxing-glove',\n icon: [448, 512, [], \"f438\", \"M252.4 360.8l7.2 14.3c2 4 .4 8.8-3.6 10.7L227.8 400l28.2 14.1c4 2 5.6 6.8 3.6 10.7l-7.2 14.3c-2 4-6.8 5.6-10.7 3.6L192 417.9l-49.7 24.8c-4 2-8.8.4-10.7-3.6l-7.2-14.3c-2-4-.4-8.8 3.6-10.7l28.2-14.1-28.2-14.1c-4-2-5.6-6.8-3.6-10.7l7.2-14.3c2-4 6.8-5.6 10.7-3.6l49.7 24.8 49.7-24.8c3.9-2 8.7-.4 10.7 3.5zm134 13.9L352 406.9V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32v-96l-17.1-96.5C5 227.6 0 166.6 0 106 0 47.6 47.2 0 105.2 0H280c57.3 0 104 47.6 104 106v43.6c37.2 12.6 64 45.9 64 85.4 0 52.8-21.9 102.4-61.6 139.7zm-21.9-23.4C397.7 320.2 416 278.9 416 235c0-32.5-28.7-59-64-59h-31.2c-26.3 0-48.3 20.8-48.8 47.1-.5 24.6 17.6 45.1 41.1 48.4 4 .6 6.9 4.1 6.9 8.1v16c0 4.7-4.1 8.5-8.8 8-40-4.4-71.2-38.4-71.2-79.5 0-11.4 2.5-22.2 6.8-32h-89.5c-30.6 0-59.5-10.9-82.3-30.8-3.5-3.1-3.7-8.4-.4-11.7l11.3-11.3c3-3 7.7-3.1 10.9-.4 16.9 14.4 38.1 22.3 60.5 22.3H272v.4c13.4-10.1 29.9-16.4 48-16.4h32v-38c0-41.5-31.6-74-72-74H105.2C64.8 32 32 65.2 32 106c0 149.6 31.7 252.5 31.8 278H88c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H63.8l.2 64h256v-64h-24c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h33.7l34.8-32.7z\"]\n};\nvar faBrackets = {\n prefix: 'fal',\n iconName: 'brackets',\n icon: [448, 512, [], \"f7e9\", \"M120 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h72a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H48a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h72a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8zm280 0h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h72a16 16 0 0 1 16 16v352a16 16 0 0 1-16 16h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h72a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"]\n};\nvar faBracketsCurly = {\n prefix: 'fal',\n iconName: 'brackets-curly',\n icon: [576, 512, [], \"f7ea\", \"M571.31 244.69l-45.25-45.25A48 48 0 0 1 512 165.49V80a48 48 0 0 0-48-48h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h72a16 16 0 0 1 16 16v85.48a80 80 0 0 0 23.44 56.58L537.38 256l-33.94 33.94A80 80 0 0 0 480 346.52V432a16 16 0 0 1-16 16h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h72a48 48 0 0 0 48-48v-85.49a48 48 0 0 1 14.06-33.95l45.25-45.25a16 16 0 0 0 0-22.62zM184 32h-72a48 48 0 0 0-48 48v85.49a48 48 0 0 1-14.06 33.95L4.69 244.69a16 16 0 0 0 0 22.62l45.25 45.25A48 48 0 0 1 64 346.51V432a48 48 0 0 0 48 48h72a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-72a16 16 0 0 1-16-16v-85.48a80 80 0 0 0-23.44-56.58L38.62 256l33.94-33.94A80 80 0 0 0 96 165.48V80a16 16 0 0 1 16-16h72a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8z\"]\n};\nvar faBraille = {\n prefix: 'fal',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M64 256c0 17.673-14.327 32-32 32S0 273.673 0 256s14.327-32 32-32 32 14.327 32 32zM32 400c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0-336C14.327 64 0 78.327 0 96s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm160 176c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0 160c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0-336c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm256 176c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0 160c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0-336c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm160 176c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0 160c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm0-320c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16z\"]\n};\nvar faBrain = {\n prefix: 'fal',\n iconName: 'brain',\n icon: [544, 512, [], \"f5dc\", \"M509.6 230.3c17.5-54.5-20.1-93.2-41.1-105.3 2.7-37.7-25.9-74.3-66.7-79.4C390 18.2 362.8 0 332.2 0 307.6 0 286 11.9 272 29.9 258 11.9 236.4 0 211.8 0c-30.6 0-57.7 18.2-69.7 45.6-40.8 5.1-69.3 41.7-66.7 79.4-21 12.2-58.6 50.9-41.1 105.3C12.9 247.4 0 273.4 0 301c0 32.7 17.4 62.4 45.3 78.5-2.3 48.2 36.7 88.7 84.9 87.4 14.2 27.4 42.6 45 74.1 45 27.9 0 52.5-13.8 67.8-34.8 15.2 21 39.9 34.8 67.8 34.8 31.5 0 59.8-17.6 74-45 48.2 1.2 87.2-39.3 84.9-87.4 27.9-16.2 45.3-45.8 45.3-78.5-.1-27.6-13-53.6-34.5-70.7zM255.9 428.5c0 28.4-23.2 51.5-51.7 51.5-31.9 0-44.2-21.8-53.1-48.2-16.3 2.7-18.3 3.2-22.2 3.2-28.5 0-51.7-23.1-51.7-51.5 0-6.2.9-9.1 3.7-23C55.5 350 32.1 336.3 32.1 301c0-33.9 23-46.9 42.9-58.3-12.6-25.7-12.8-29.2-12.8-39.2 0-33.9 21.9-48.5 49.4-59.7-2.5-10.9-4.2-16.6-4.2-22.8 0-24.1 19.6-43.8 45.5-43.8h.4l12.7.3c5.9-22.9 15-45.5 45.8-45.5 24.3 0 44.2 19.7 44.2 44v352.5zm207.1-68c2.8 13.8 3.7 16.8 3.7 23 0 28.4-23.2 51.5-51.7 51.5-3.9 0-5.9-.5-22.2-3.2-8.9 26.4-21.2 48.2-53.1 48.2-28.5 0-51.7-23.1-51.7-51.5V76c0-24.3 19.8-44 44.2-44 30.7 0 39.9 22.5 45.8 45.5l12.7-.3h.4c25.9 0 45.5 19.7 45.5 43.8 0 6.2-1.7 11.9-4.2 22.8 27.5 11.2 49.4 25.8 49.4 59.7 0 10-.2 13.4-12.8 39.2 19.9 11.4 42.9 24.5 42.9 58.3 0 35.3-23.4 49-48.9 59.5z\"]\n};\nvar faBreadLoaf = {\n prefix: 'fal',\n iconName: 'bread-loaf',\n icon: [640, 512, [], \"f7eb\", \"M400 32H240C107.45 32 0 103.63 0 192c0 35.35 30.86 64 64 64v192a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V256c33.14 0 64-28.65 64-64 0-88.37-107.45-160-240-160zm-16 416H96V224H64c-15.44 0-32-14.36-32-32 0-69.38 95.25-128 208-128s208 58.62 208 128c0 17.64-12.56 32-28 32h-36zm160 0H416V256h128zm36-224H471.68a66.61 66.61 0 0 0 8.32-32c0-52.43-38-98.82-96.44-128H400c112.75 0 208 58.62 208 128 0 17.64-12.56 32-28 32z\"]\n};\nvar faBreadSlice = {\n prefix: 'fal',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C115.72 0 0 90.88 0 175.75c0 34 26.59 60.63 64 66.58v223.45C64 491.27 86.44 512 114 512h348c27.56 0 50-20.73 50-46.22V242.33c37.41-6 64-32.6 64-66.58C576 90.88 460.28 0 288 0zm208 211.56h-16v254.22c0 7.7-8.25 14.22-18 14.22H114c-9.75 0-18-6.52-18-14.22V211.56H80c-27.38 0-48-15.39-48-35.81C32 117 123.16 32 288 32s256 85 256 143.75c0 20.42-20.62 35.81-48 35.81z\"]\n};\nvar faBriefcase = {\n prefix: 'fal',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M464 128H352V56c0-13.26-10.74-24-24-24H184c-13.26 0-24 10.74-24 24v72H48c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zM192 64h128v64H192V64zm288 368c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V288h160v40c0 13.25 10.75 24 24 24h80c13.25 0 24-10.75 24-24v-40h160v144zM224 320v-32h64v32h-64zm256-64H32v-80c0-8.82 7.18-16 16-16h416c8.82 0 16 7.18 16 16v80z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fal',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M344 288h-56v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h-56c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h56v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h56c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm120-160H352V56c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24v72H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 64h128v64H192V64zm288 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16v288z\"]\n};\nvar faBringForward = {\n prefix: 'fal',\n iconName: 'bring-forward',\n icon: [512, 512, [], \"f856\", \"M352 304V48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v256a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48zm-320 0V48a16 16 0 0 1 16-16h256a16 16 0 0 1 16 16v256a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16zm432-144h-80v32h80a16 16 0 0 1 16 16v256a16 16 0 0 1-16 16H208a16 16 0 0 1-16-16v-80h-32v80a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48V208a48 48 0 0 0-48-48zm-48 256H256v-32h-32v48a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V240a16 16 0 0 0-16-16h-48v32h32z\"]\n};\nvar faBringFront = {\n prefix: 'fal',\n iconName: 'bring-front',\n icon: [640, 512, [], \"f857\", \"M32 208V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v16h32V48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v160a48 48 0 0 0 48 48h80v-32H48a16 16 0 0 1-16-16zm448 160V144a48 48 0 0 0-48-48H208a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48zm-288 0V144a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16v224a16 16 0 0 1-16 16H208a16 16 0 0 1-16-16zm400-112h-80v32h80a16 16 0 0 1 16 16v160a16 16 0 0 1-16 16H432a16 16 0 0 1-16-16v-16h-32v16a48 48 0 0 0 48 48h160a48 48 0 0 0 48-48V304a48 48 0 0 0-48-48zM464 448h96a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16h-48v32h32v64h-48.41a79.76 79.76 0 0 1-41.25 28.43A15.66 15.66 0 0 0 464 448zM176 64H80a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h48v-32H96V96h48.41a79.76 79.76 0 0 1 41.25-28.43A15.66 15.66 0 0 0 176 64z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fal',\n iconName: 'broadcast-tower',\n icon: [576, 512, [], \"f519\", \"M40.55 0c-6.2 0-11.97 3.53-14.54 9.17C9.45 45.43 0 85.59 0 128c0 42.4 9.45 82.57 26.01 118.83 2.58 5.64 8.35 9.17 14.54 9.17 11.7 0 19.2-12.08 14.34-22.72C40.26 201.15 32 165.55 32 128s8.26-73.15 22.9-105.28C59.75 12.08 52.26 0 40.55 0zm285.89 178.84C341.87 167.14 352 148.81 352 128c0-35.3-28.72-64-64-64s-64 28.7-64 64c0 20.92 10.23 39.35 25.79 51.03l-137.13 315.4c-1.76 4.05.1 8.77 4.15 10.53l14.7 6.38c4.05 1.76 8.76-.1 10.52-4.15L209.51 352h157.3l67.47 155.19c1.76 4.05 6.47 5.91 10.52 4.15l14.7-6.38a8.005 8.005 0 0 0 4.15-10.53L326.44 178.84zM288 96c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32zm-64.58 224l56.03-128.87c2.82.38 5.62.87 8.55.87 3.03 0 5.94-.49 8.86-.9L352.9 320H223.42zM118.99 192c10.7 0 18.1-10.24 15.15-20.53-3.97-13.82-6.14-28.38-6.14-43.47s2.17-29.65 6.14-43.47C137.09 74.24 129.69 64 118.99 64h-.15c-6.93 0-13.28 4.42-15.21 11.07C98.73 91.89 96 109.62 96 128s2.73 36.11 7.63 52.93c1.94 6.66 8.28 11.07 15.21 11.07h.15zM457.16 64h-.15c-10.7 0-18.1 10.24-15.15 20.53C445.83 98.35 448 112.91 448 128s-2.17 29.65-6.14 43.47c-2.95 10.29 4.45 20.53 15.15 20.53h.15c6.94 0 13.28-4.42 15.22-11.07 4.89-16.82 7.62-34.54 7.62-52.93s-2.73-36.11-7.62-52.93C470.44 68.42 464.09 64 457.16 64zm92.83-54.83C547.41 3.53 541.65 0 535.45 0c-11.7 0-19.19 12.08-14.34 22.72C535.74 54.85 544 90.45 544 128s-8.26 73.15-22.9 105.28c-4.85 10.65 2.64 22.72 14.34 22.72 6.2 0 11.97-3.53 14.54-9.17C566.56 210.57 576 170.4 576 128c0-42.41-9.44-82.57-26.01-118.83z\"]\n};\nvar faBroom = {\n prefix: 'fal',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M638.26 15.53L628.3 3.02c-2.75-3.45-7.78-4.03-11.24-1.28L372.91 194.67l-45.44-57.08c-4.98-6.25-14.56-5.98-19.18.53l-48.62 68.59c-28.53.32-107.2 4.97-158.01 45.37C38.78 302.06 0 511.39 0 511.39c15.38.67 215.11 6.82 275.65-41.3 50.93-40.48 73.32-116.22 79.99-143.78l77.47-31.27c7.44-3 9.89-12.32 4.9-18.6l-45.17-56.75L636.98 26.76a7.985 7.985 0 0 0 1.28-11.23zM255.73 445.62c-26.7 21.22-109.44 34.4-215.93 34.4h-.6c4.06-17.75 8.96-36.82 14.4-55.92l68.79-54.68c4.96-3.94 1.22-11.88-4.97-10.57l-45.98 9.71c15.01-41.64 32.34-77.31 50.15-91.46 33.6-26.71 89.69-37.24 133.9-38.38l67.77 85.13c-7.19 27.54-27.17 89.69-67.53 121.77zm87.1-148.87l-56.94-71.53 28.4-40.47c2.3-3.28 7.11-3.43 9.61-.29l67.61 84.93c2.52 3.16 1.25 7.85-2.51 9.33l-46.17 18.03z\"]\n};\nvar faBrowser = {\n prefix: 'fal',\n iconName: 'browser',\n icon: [512, 512, [], \"f37e\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM32 80c0-8.8 7.2-16 16-16h48v64H32V80zm448 352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V160h448v272zm0-304H128V64h336c8.8 0 16 7.2 16 16v48z\"]\n};\nvar faBrush = {\n prefix: 'fal',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v288c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64V32c0-17.67-14.33-32-32-32zm0 320c0 17.64-14.36 32-32 32h-96v96c0 17.64-14.36 32-32 32s-32-14.36-32-32v-96H64c-17.64 0-32-14.36-32-32v-32h320v32zm0-64H32V32h320v224z\"]\n};\nvar faBug = {\n prefix: 'fal',\n iconName: 'bug',\n icon: [576, 512, [], \"f188\", \"M544,272H480V150.627L523.314,107.314A16,16,0,0,0,500.686,84.687L457.373,128H415a127.00381,127.00381,0,1,0-254,0H118.627L75.314,84.687A16,16,0,1,0,52.686,107.314L96,150.627V272H32a16,16,0,0,0,0,32H96v24a174.98856,174.98856,0,0,0,30.484,98.889L68.687,484.686a15.99972,15.99972,0,1,0,22.627,22.627l55.616-55.616A175.45165,175.45165,0,0,0,272,504h32a175.45165,175.45165,0,0,0,125.07-52.303l55.616,55.616a15.99972,15.99972,0,0,0,22.627-22.627l-57.797-57.797A174.98856,174.98856,0,0,0,480,328V304h64a16,16,0,0,0,0-32ZM288,32.01263A95.99568,95.99568,0,0,1,383,128H193A95.99568,95.99568,0,0,1,288,32.01263ZM448,328c0,79.401-64.598,144-144,144V236a12.00052,12.00052,0,0,0-12-12h-8a12.00052,12.00052,0,0,0-12,12V472c-79.402,0-144-64.599-144-144V160H448Z\"]\n};\nvar faBuilding = {\n prefix: 'fal',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M192 107v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12zm116-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-128 96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm128 0h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-128 96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm128 0h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm140 205v20H0v-20c0-6.627 5.373-12 12-12h20V24C32 10.745 42.745 0 56 0h336c13.255 0 24 10.745 24 24v456h20c6.627 0 12 5.373 12 12zm-64-12V32H64v448h128v-85c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v85h128z\"]\n};\nvar faBullhorn = {\n prefix: 'fal',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M544 184.88V32c0-8.74-6.98-32-31.99-32H512c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64l-.48 32c0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h106.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.12c19.05-11.09 32-31.49 32-55.12.01-23.63-12.94-44.03-31.99-55.12zM223.76 480l-105.89-.03c-14.83-30.56-22.35-62.19-22.36-95.49l.48-32L96 352h99.33c-2.31 10.7-3.81 21.43-3.81 32 0 35.29 11.3 68.78 32.24 96zM64 320c-17.64 0-32-14.36-32-32v-96c0-17.64 14.36-32 32-32h192v160H64zm448.05 126.93c-.04.25-.13.58-.25.9l-84.83-67.87C386.99 348 338.54 328.14 288 322.13V157.87c50.54-6.01 98.99-25.87 138.98-57.84l84.87-67.9c.03.03.06.05.08.05.04 0 .06-.05.07-.17l.05 414.92z\"]\n};\nvar faBullseye = {\n prefix: 'fal',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 92c-90.65 0-164 73.36-164 164 0 90.65 73.36 164 164 164 90.65 0 164-73.36 164-164 0-90.65-73.36-164-164-164zm0 296c-72.79 0-132-59.21-132-132s59.21-132 132-132 132 59.21 132 132-59.21 132-132 132zm0-212c-44.11 0-80 35.89-80 80s35.89 80 80 80 80-35.89 80-80-35.89-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm0-296C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216z\"]\n};\nvar faBullseyeArrow = {\n prefix: 'fal',\n iconName: 'bullseye-arrow',\n icon: [496, 512, [], \"f648\", \"M305.05 98.74l23.96 53.62-92.33 92.33c-6.25 6.25-6.25 16.38 0 22.62 3.12 3.12 7.22 4.69 11.31 4.69s8.19-1.56 11.31-4.69l92.33-92.33 53.62 23.96a20.547 20.547 0 0 0 21.04-4.96l63.67-63.67c10.8-10.8 6.46-29.2-8.04-34.04l-55.66-18.55-18.55-55.65C404.73 13.08 396.54 8 388.16 8c-5.14 0-10.36 1.92-14.47 6.03L310.02 77.7a20.582 20.582 0 0 0-4.97 21.04zm78.18-48.99l12.7 38.09 5.06 15.18 15.18 5.06 38.09 12.7-44.93 44.93-49.09-21.93-21.93-49.09 44.92-44.94zm101.2 131.35l-26.18 26.18c3.63 15.69 5.75 31.95 5.75 48.72 0 119.1-96.9 216-216 216S32 375.1 32 256 128.9 40 248 40c16.78 0 33.04 2.11 48.72 5.75l26.18-26.18A247.848 247.848 0 0 0 248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248c0-26.11-4.09-51.26-11.57-74.9zM274.7 108.85a53.056 53.056 0 0 1-2.68-14.44C264.12 93.25 256.23 92 248 92c-90.65 0-164 73.36-164 164 0 90.65 73.36 164 164 164 90.65 0 164-73.36 164-164 0-8.35-1.25-16.35-2.45-24.36-4.89-.21-9.76-.79-14.41-2.34-2.12-.71 1.02.62-20.69-9.07C377.7 231.68 380 243.52 380 256c0 72.79-59.21 132-132 132s-132-59.21-132-132 59.21-132 132-132c12.48 0 24.32 2.3 35.77 5.55-9.69-21.7-8.36-18.56-9.07-20.7zM248 176c-44.11 0-80 35.89-80 80s35.89 80 80 80 80-35.89 80-80c0-3.77-.61-7.38-1.11-11.01l-44.95 44.95-.01-.01c-8.7 8.69-20.7 14.07-33.93 14.07-26.47 0-48-21.53-48-48 0-13.23 5.38-25.23 14.07-33.93l-.01-.01 44.95-44.95c-3.63-.5-7.24-1.11-11.01-1.11z\"]\n};\nvar faBullseyePointer = {\n prefix: 'fal',\n iconName: 'bullseye-pointer',\n icon: [496, 512, [], \"f649\", \"M241.5 240.7L20.83 303.41c-15.63 4.44-17.46 25.86-2.82 32.89l55.27 26.54-60.59 60.59c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c6.25 6.25 14.44 9.37 22.63 9.37s16.38-3.12 22.63-9.37l60.59-60.59 26.54 55.27c3.25 6.76 9.56 10.01 15.86 10.01 7.34 0 14.64-4.41 17.04-12.83l62.72-220.67c3.77-13.3-8.53-25.57-21.82-21.79zm-61.35 197.32l-29.7-61.85-92.51 92.51-22.62-22.62 92.51-92.51-61.84-29.71 159.5-45.33-45.34 159.51zM328 256c0-44.11-35.89-80-80-80-33.74 0-62.53 21.07-74.26 50.69C228.07 211.24 236.67 208 248 208c26.47 0 48 21.53 48 48 0 11.26-3.1 19.44-18.69 74.26C306.93 318.53 328 289.74 328 256zm-76.08 163.61C340.71 417.47 412 345.29 412 256c0-90.65-73.36-164-164-164-89.31 0-161.47 71.3-163.61 160.08l32.95-9.36C124.12 176.23 179.76 124 248 124c72.79 0 132 59.21 132 132 0 68.23-52.24 123.88-118.71 130.66l-9.37 32.95zM248 8C111.03 8 0 119.03 0 256c0 7.3.47 14.49 1.09 21.63 3.46-1.97 7-3.87 10.99-5l20.47-5.82c-.18-3.6-.55-7.16-.55-10.81 0-119.1 96.9-216 216-216s216 96.9 216 216-96.9 216-216 216c-3.65 0-7.21-.37-10.81-.55l-5.82 20.46c-1.14 4.02-3.15 7.5-5.14 10.98 7.19.63 14.42 1.1 21.77 1.1 136.97 0 248-111.03 248-248S384.97 8 248 8z\"]\n};\nvar faBurgerSoda = {\n prefix: 'fal',\n iconName: 'burger-soda',\n icon: [640, 512, [], \"f858\", \"M640 376a55.65 55.65 0 0 0-18.46-41.26 58.81 58.81 0 0 0 7.37-77.49C594 208 523 176.06 448 176c-75 .06-146 32-180.88 81.25a58.8 58.8 0 0 0 7.36 77.49 55.14 55.14 0 0 0-4.78 77.52A43.79 43.79 0 0 0 256 444a68.08 68.08 0 0 0 68 68h248a68.08 68.08 0 0 0 68-68 43.79 43.79 0 0 0-13.68-31.74A55.49 55.49 0 0 0 640 376zM293.22 275.73C320 237.87 379 208.06 448 208s128 29.87 154.79 67.73C616 294.39 602.62 320 579.57 320H316.43c-23.04 0-36.43-25.62-23.21-44.27zM572 480H324a36 36 0 0 1-36-36 12 12 0 0 1 12-12h296a12 12 0 0 1 12 12 36 36 0 0 1-36 36zm12-80H312a24 24 0 0 1 0-48h272a24 24 0 0 1 0 48zM448 272a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm80 16a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-160 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zM95.89 479.11L63.89 160H344a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H212.5l24-96H280a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8h-43.5a32 32 0 0 0-31.06 24.25L179.5 128H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v1.68l32 320.61A31.88 31.88 0 0 0 96 512h155.11a99.79 99.79 0 0 1-20.18-32.14z\"]\n};\nvar faBurn = {\n prefix: 'fal',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zM98.9 385.2c0-13.3 4.2-61.2 93.1-161.2 88.9 100 93.1 147.9 93.1 161.2 0 48.5-28.9 84.1-72.4 92.7-6.8.8-13.5 2.1-20.7 2.1s-13.9-1.2-20.7-2.1c-43.5-8.5-72.4-44.2-72.4-92.7zm212 39.7c3.7-12.4 6.2-25.5 6.2-39.7 0-80.9-112.7-195.5-125.1-209.4-12.9 14.5-125.1 128.6-125.1 209.4 0 14.2 2.5 27.3 6.2 39.7-25.8-31.3-41.1-74-41.1-124.4 0-90.8 122.6-215.8 160-251.9 37.4 36 160 161.1 160 251.9 0 50.4-15.3 93.1-41.1 124.4z\"]\n};\nvar faBurrito = {\n prefix: 'fal',\n iconName: 'burrito',\n icon: [512, 512, [], \"f7ed\", \"M512 123a74.13 74.13 0 0 0-52.26-70.74A74.05 74.05 0 0 0 358.12 6.73a80.49 80.49 0 0 0-106 41.57L34 266.45a116 116 0 0 0 0 164.05L81.5 478a116 116 0 0 0 164.05 0L463.7 259.87a80.49 80.49 0 0 0 41.57-106A73.46 73.46 0 0 0 512 123zM267.55 78.13A174.58 174.58 0 0 1 288 160c0 97.05-79 176-176 176a175.92 175.92 0 0 1-74.51-16.9 83.35 83.35 0 0 1 19.11-30zm-44.63 377.26a84 84 0 0 1-118.79 0L56.6 407.87a83.4 83.4 0 0 1-24.25-55.77A208.34 208.34 0 0 0 112 368c90.14 0 166.86-57.75 195.66-138.11A178.68 178.68 0 0 1 434 244.35zM480 186c0 15.34-7.34 28.66-18.4 37.58-43.1-26.72-95.33-36.5-144.84-28.19A207.56 207.56 0 0 0 320 160c0-39.14-11.29-76.52-31.77-109.4A48.16 48.16 0 0 1 326 32a48.65 48.65 0 0 1 32.84 12.86A41.94 41.94 0 0 1 431 74a42.4 42.4 0 0 1-.78 7.78A41.74 41.74 0 0 1 480 123a41.82 41.82 0 0 1-12.86 30.16A48.65 48.65 0 0 1 480 186z\"]\n};\nvar faBus = {\n prefix: 'fal',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M128 384c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm256 0c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm104-256h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32h160v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32c17.67 0 32-14.33 32-32V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM144 480H96v-32h48v32zm272 0h-48v-32h48v32zm32-64H64l-.01-128h384.02L448 416zm.01-160H63.99l-.01-128h384.05l-.02 128zm.02-160H63.97V80.31C67.31 67 131.41 32 256 32s188.69 35 192.03 48.31V96z\"]\n};\nvar faBusAlt = {\n prefix: 'fal',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M384 384c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-256 0c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm360-256h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32h160v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32c17.67 0 32-14.33 32-32V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zm-424.03 0H240v128H63.99l-.02-128zM144 480H96v-32h48v32zm272 0h-48v-32h48v32zm32-64H64l-.01-128h384.02L448 416zm.01-160H272V128h176.03l-.02 128zm.02-160H320v-8c0-13.26-10.75-24-24-24h-80c-13.25 0-24 10.74-24 24v8H63.97V80.31C67.31 67 131.41 32 256 32s188.69 35 192.03 48.31V96z\"]\n};\nvar faBusSchool = {\n prefix: 'fal',\n iconName: 'bus-school',\n icon: [512, 512, [], \"f5dd\", \"M128 320c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm256 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96-192h-32V73.85C448 32.49 362.97 0 256 0S64 32.49 64 73.85V128H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h16.7C38.43 301.37 32 317.82 32 336v80c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32h160v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32c17.67 0 32-14.33 32-32v-80c0-18.18-6.43-34.63-16.7-48H480c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM256 32c102.96 0 156.91 30.59 160 41.85V96h-96v-8c0-13.26-10.75-24-24-24h-80c-13.25 0-24 10.74-24 24v8H95.96V74.21C99.09 62.59 153.04 32 256 32zm160 96v129.61a80.321 80.321 0 0 0-16-1.61H272V128h144zm-176 0v128H112c-5.48 0-10.83.57-16 1.61V128h144zM32 256v-96h32v96H32zm112 224H96v-32h48v32zm272 0h-48v-32h48v32zm32-64H64v-80c0-26.47 21.53-48 48-48h288c26.47 0 48 21.53 48 48v80zm32-160h-32v-96h32v96z\"]\n};\nvar faBusinessTime = {\n prefix: 'fal',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M48 416c-8.82 0-16-7.18-16-16V256h160v40c0 13.25 10.75 24 24 24h80c13.25 0 24-10.75 24-24v-40h40.23c10.06-12.19 21.81-22.9 34.77-32H32v-80c0-8.82 7.18-16 16-16h416c8.82 0 16 7.18 16 16v48.81c5.28-.48 10.6-.81 16-.81s10.72.33 16 .81V144c0-26.51-21.49-48-48-48H352V24c0-13.26-10.74-24-24-24H184c-13.26 0-24 10.74-24 24v72H48c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h291.37a174.574 174.574 0 0 1-12.57-32H48zm176-160h64v32h-64v-32zM192 32h128v64H192V32zm358.29 320H512v-54.29c0-5.34-4.37-9.71-9.71-9.71h-12.57c-5.34 0-9.71 4.37-9.71 9.71v76.57c0 5.34 4.37 9.71 9.71 9.71h60.57c5.34 0 9.71-4.37 9.71-9.71v-12.57c0-5.34-4.37-9.71-9.71-9.71zM496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm0 256c-61.76 0-112-50.24-112-112s50.24-112 112-112 112 50.24 112 112-50.24 112-112 112z\"]\n};\nvar faCabinetFiling = {\n prefix: 'fal',\n iconName: 'cabinet-filing',\n icon: [512, 512, [], \"f64b\", \"M464 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zm16 464c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V272h448v192zm0-224H32V48c0-8.82 7.18-16 16-16h416c8.82 0 16 7.18 16 16v192zM336 96H176c-8.84 0-16 7.16-16 16v40c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h128v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-40c0-8.84-7.16-16-16-16zM168 416h16c4.42 0 8-3.58 8-8v-24h128v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-40c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v40c0 4.42 3.58 8 8 8z\"]\n};\nvar faCactus = {\n prefix: 'fal',\n iconName: 'cactus',\n icon: [512, 512, [], \"f8a7\", \"M446.54 208.78C419 213.32 400 239.24 400 267.15V296a8 8 0 0 1-8 8h-40V101.43c0-52-38.93-98.58-90.84-101.29A96 96 0 0 0 160 96v96h-40a8 8 0 0 1-8-8v-28.85c0-27.91-19-53.83-46.54-58.37A56.08 56.08 0 0 0 0 152v32a120 120 0 0 0 120 120h40v192a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-80h40a120 120 0 0 0 120-120v-32a56.08 56.08 0 0 0-65.46-55.22zM160 272h-40a88.09 88.09 0 0 1-88-88v-32a24 24 0 0 1 48 0v32a40 40 0 0 0 40 40h40zm160 208H192V96a64 64 0 0 1 128 0zm160-184a88.09 88.09 0 0 1-88 88h-40v-48h40a40 40 0 0 0 40-40v-32a24 24 0 0 1 48 0zM240 128a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm32 224a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]\n};\nvar faCalculator = {\n prefix: 'fal',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M80 448h288c8.84 0 16-7.16 16-16V240c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16zm208-96v-96h64v160h-64v-64zm-96-96h64v64h-64v-64zm0 96h64v64h-64v-64zm-96-96h64v64H96v-64zm0 96h64v64H96v-64zM400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zm16 464c0 7.93-8.07 16-16 16H48c-7.93 0-16-8.07-16-16V192h384v272zm0-304H32V48c0-7.93 8.07-16 16-16h352c7.93 0 16 8.07 16 16v112z\"]\n};\nvar faCalculatorAlt = {\n prefix: 'fal',\n iconName: 'calculator-alt',\n icon: [480, 512, [], \"f64c\", \"M72 160h112c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm5.09 247.6l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L128 390.63l28.29 28.29c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L150.63 368l28.29-28.29c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0L128 345.37l-28.29-28.29c-3.12-3.12-8.19-3.12-11.31 0L77.09 328.4c-3.12 3.12-3.12 8.19 0 11.31L105.37 368l-28.29 28.28a8.006 8.006 0 0 0 .01 11.32zM448 16H32C14.33 16 0 30.33 0 48v416c0 17.67 14.33 32 32 32h416c17.67 0 32-14.33 32-32V48c0-17.67-14.33-32-32-32zM224 464H32V272h192v192zm0-224H32V48h192v192zm224 224H256V272h192v192zm0-224H256V48h192v192zm-152-80h40v40c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-40h40c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-40V88c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v40h-40c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm0 256h112c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H296c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm0-64h112c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H296c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faCalendar = {\n prefix: 'fal',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M400 64h-48V12c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v52H128V12c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zM48 96h352c8.822 0 16 7.178 16 16v48H32v-48c0-8.822 7.178-16 16-16zm352 384H48c-8.822 0-16-7.178-16-16V192h384v272c0 8.822-7.178 16-16 16z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fal',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H128V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h352c8.8 0 16 7.2 16 16v48H32v-48c0-8.8 7.2-16 16-16zm352 384H48c-8.8 0-16-7.2-16-16V192h384v272c0 8.8-7.2 16-16 16zM148 320h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm96 0h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm96 0h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-96 96h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-96 0h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm192 0h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fal',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M400 64h-48V12c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v52H128V12c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zM48 96h352c8.822 0 16 7.178 16 16v48H32v-48c0-8.822 7.178-16 16-16zm352 384H48c-8.822 0-16-7.178-16-16V192h384v272c0 8.822-7.178 16-16 16zm-66.467-194.937l-134.791 133.71c-4.7 4.663-12.288 4.642-16.963-.046l-67.358-67.552c-4.683-4.697-4.672-12.301.024-16.985l8.505-8.48c4.697-4.683 12.301-4.672 16.984.024l50.442 50.587 117.782-116.837c4.709-4.671 12.313-4.641 16.985.068l8.458 8.527c4.672 4.709 4.641 12.313-.068 16.984z\"]\n};\nvar faCalendarDay = {\n prefix: 'fal',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M400 64h-48V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H128V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V192h384v272zm0-304H32v-48c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v48zM112 384h96c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm16-96h64v64h-64v-64z\"]\n};\nvar faCalendarEdit = {\n prefix: 'fal',\n iconName: 'calendar-edit',\n icon: [448, 512, [], \"f333\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H128V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h352c8.8 0 16 7.2 16 16v48H32v-48c0-8.8 7.2-16 16-16zm352 384H48c-8.8 0-16-7.2-16-16V192h384v272c0 8.8-7.2 16-16 16zM255.7 269.7l34.6 34.6c2.1 2.1 2.1 5.4 0 7.4L159.1 442.9l-35.1 5c-6.9 1-12.9-4.9-11.9-11.9l5-35.1 131.2-131.2c2-2 5.4-2 7.4 0zm75.2 1.4l-19.2 19.2c-2.1 2.1-5.4 2.1-7.4 0l-34.6-34.6c-2.1-2.1-2.1-5.4 0-7.4l19.2-19.2c6.8-6.8 17.9-6.8 24.7 0l17.3 17.3c6.8 6.8 6.8 17.9 0 24.7z\"]\n};\nvar faCalendarExclamation = {\n prefix: 'fal',\n iconName: 'calendar-exclamation',\n icon: [448, 512, [], \"f334\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H128V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h352c8.8 0 16 7.2 16 16v48H32v-48c0-8.8 7.2-16 16-16zm352 384H48c-8.8 0-16-7.2-16-16V192h384v272c0 8.8-7.2 16-16 16zM212.7 224h22.6c6.9 0 12.4 5.8 12 12.7l-6.7 120c-.4 6.4-5.6 11.3-12 11.3h-9.3c-6.4 0-11.6-5-12-11.3l-6.7-120c-.3-6.9 5.2-12.7 12.1-12.7zM252 416c0 15.5-12.5 28-28 28s-28-12.5-28-28 12.5-28 28-28 28 12.5 28 28z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fal',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H128V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h352c8.8 0 16 7.2 16 16v48H32v-48c0-8.8 7.2-16 16-16zm352 384H48c-8.8 0-16-7.2-16-16V192h384v272c0 8.8-7.2 16-16 16zm-92-128H140c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fal',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M320 332v8c0 6.6-5.4 12-12 12h-68v68c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12v-68h-68c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h68v-68c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v68h68c6.6 0 12 5.4 12 12zm128-220v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v52h192V12c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-416 0v48h384v-48c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16zm384 352V192H32v272c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16z\"]\n};\nvar faCalendarStar = {\n prefix: 'fal',\n iconName: 'calendar-star',\n icon: [448, 512, [], \"f736\", \"M149.8 369l-7.9 46.3c-1.8 10.6 2.5 21.1 11.2 27.4 4.9 3.5 10.7 5.4 16.4 5.4 4.4 0 8.9-1.1 13-3.3L224 423l41.5 21.8c9.5 5 20.8 4.2 29.5-2.1 8.7-6.3 13-16.8 11.2-27.4l-7.9-46.3 33.5-32.7c7.7-7.5 10.4-18.5 7.1-28.7s-12-17.5-22.6-19l-46.4-6.8-20.7-42.1C244.3 230 234.7 224 224 224s-20.3 6-25 15.6l-20.7 42.1-46.4 6.8c-10.6 1.5-19.3 8.8-22.6 19s-.6 21.2 7.1 28.7l33.4 32.8zm49.6-58.1L224 261l24.6 49.9 55 8-39.8 38.9 9.4 54.8-49.2-25.8-49.2 25.9 9.4-54.8-39.8-38.9 55-8.1zM400 64h-48V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H128V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V192h384v272zm0-304H32v-48c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v48z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fal',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H128V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h352c8.8 0 16 7.2 16 16v48H32v-48c0-8.8 7.2-16 16-16zm352 384H48c-8.8 0-16-7.2-16-16V192h384v272c0 8.8-7.2 16-16 16zm-105.3-95.9c4.7 4.7 4.7 12.3 0 17l-5.7 5.7c-4.7 4.7-12.3 4.7-17 0l-48-48.2-48.1 48.1c-4.7 4.7-12.3 4.7-17 0l-5.7-5.7c-4.7-4.7-4.7-12.3 0-17l48.1-48.1-48.1-48.1c-4.7-4.7-4.7-12.3 0-17l5.7-5.7c4.7-4.7 12.3-4.7 17 0l48.1 48.1 48.1-48.1c4.7-4.7 12.3-4.7 17 0l5.7 5.7c4.7 4.7 4.7 12.3 0 17L246.6 336l48.1 48.1z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fal',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M400 64h-48V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H128V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V192h384v272zm0-304H32v-48c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v48zM80 352h288c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm16-96h256v64H96v-64z\"]\n};\nvar faCamcorder = {\n prefix: 'fal',\n iconName: 'camcorder',\n icon: [576, 512, [], \"f8a8\", \"M511.88 160l.12 31.5-.22 256.37L416 381.72V258.23L511.93 192h-.07v-32a32.13 32.13 0 0 0-18.27 5.73L416 219.32V208a48 48 0 0 0-48-48H128v-48a48 48 0 0 1 48-48h168a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8H176a80 80 0 0 0-80 80v48H80a48 48 0 0 0-48 48v224a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48v-11.39l77.59 53.59a32 32 0 0 0 18.26 5.8c16.63 0 32.15-13 32.15-31.59V191.5c0-18.5-15.48-31.5-32.12-31.5zM384 432a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V208a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16zm-38.4-208H102.4a6.41 6.41 0 0 0-6.4 6.4v19.2a6.41 6.41 0 0 0 6.4 6.4h243.2a6.41 6.41 0 0 0 6.4-6.4v-19.2a6.41 6.41 0 0 0-6.4-6.4z\"]\n};\nvar faCamera = {\n prefix: 'fal',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M324.3 64c3.3 0 6.3 2.1 7.5 5.2l22.1 58.8H464c8.8 0 16 7.2 16 16v288c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h110.2l20.1-53.6c2.3-6.2 8.3-10.4 15-10.4h131m0-32h-131c-20 0-37.9 12.4-44.9 31.1L136 96H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48h-88l-14.3-38c-5.8-15.7-20.7-26-37.4-26zM256 408c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88z\"]\n};\nvar faCameraAlt = {\n prefix: 'fal',\n iconName: 'camera-alt',\n icon: [512, 512, [], \"f332\", \"M256 408c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-32 88c0-17.6 14.4-32 32-32 8.8 0 16-7.2 16-16s-7.2-16-16-16c-35.3 0-64 28.7-64 64 0 8.8 7.2 16 16 16s16-7.2 16-16zM324.3 64c3.3 0 6.3 2.1 7.5 5.2l22.1 58.8H464c8.8 0 16 7.2 16 16v288c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h110.2l20.1-53.6c2.3-6.2 8.3-10.4 15-10.4h131m0-32h-131c-20 0-37.9 12.4-44.9 31.1L136 96H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48h-88l-14.3-38c-5.8-15.7-20.7-26-37.4-26z\"]\n};\nvar faCameraHome = {\n prefix: 'fal',\n iconName: 'camera-home',\n icon: [448, 512, [], \"f8fe\", \"M208,128a64.06,64.06,0,0,0-64,64,16,16,0,0,0,32,0,32,32,0,0,1,32-32,16,16,0,0,0,0-32Zm15.94-64a144,144,0,0,0,0,288H224a144,144,0,0,0-.05-288Zm0,256a112,112,0,0,1,0-224H224a112,112,0,0,1-.05,224ZM384,0H64A64,64,0,0,0,0,64V352a64,64,0,0,0,64,64h72.71L76.53,450.83c-6.9,4.33-12.5,14.45-12.5,22.6v11.9A26.68,26.68,0,0,0,90.7,512H357.37A26.68,26.68,0,0,0,384,485.33V473.45c0-8.17-5.65-18.3-12.58-22.62L311.28,416H384a64,64,0,0,0,64-64V64A64,64,0,0,0,384,0ZM352,476.54V480H96v-3.48l56.71-32.82L200.59,416H247.4l47.85,27.7ZM416,352a32,32,0,0,1-32,32H64a32,32,0,0,1-32-32V64A32,32,0,0,1,64,32H384a32,32,0,0,1,32,32Z\"]\n};\nvar faCameraMovie = {\n prefix: 'fal',\n iconName: 'camera-movie',\n icon: [576, 512, [], \"f8a9\", \"M368 80a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM176 80a64 64 0 1 0 64 64 64.07 64.07 0 0 0-64-64zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm374.29 80a25.67 25.67 0 0 0-14.61 4.59l-87.68 61V304a47.74 47.74 0 0 0-13.34-33.07C480.44 246.81 512 199.34 512 144A144 144 0 0 0 368 0c-37 0-70.48 14.38-96 37.37C246.48 14.38 213.05 0 176 0A144 144 0 0 0 32 144c0 45.52 21.54 85.61 54.51 112H32a32 32 0 0 0-32 32v32a32 32 0 0 0 32 32h64v112a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48v-17.54l87.68 60.94a25.53 25.53 0 0 0 14.6 4.6c13.3 0 25.72-10.36 25.72-25.24V281.23c0-14.83-12.39-25.23-25.71-25.23zM416 464a16 16 0 0 1-16 16H144a16 16 0 0 1-16-16V320H32v-32h368a16 16 0 0 1 16 16zm-48-208H176a112 112 0 1 1 74.58-194.85L272 80.44l21.42-19.29A111.78 111.78 0 1 1 368 256zm176 218.22l-96-66.74v-47l96-66.74z\"]\n};\nvar faCameraPolaroid = {\n prefix: 'fal',\n iconName: 'camera-polaroid',\n icon: [576, 512, [], \"f8aa\", \"M288 128a80 80 0 1 0 80 80 80.12 80.12 0 0 0-80-80zm0 128a48 48 0 1 1 48-48 48.05 48.05 0 0 1-48 48zM104 416h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm470.43-87.94a32.12 32.12 0 0 0-3.8-8.06L512 256V80a48 48 0 0 0-48-48H112a48 48 0 0 0-48 48v176L5.38 320A33.45 33.45 0 0 0 0 337.75V448a32 32 0 0 0 32 32h512a32 32 0 0 0 32-32V337.75a31.81 31.81 0 0 0-1.57-9.69zM96 268.44V80a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16v188.44L527.23 320H48.77zM544 448H32v-96h512zM432 104h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8z\"]\n};\nvar faCameraRetro = {\n prefix: 'fal',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M32 58V38c0-3.3 2.7-6 6-6h116c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6zm344 230c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88zm-120 0c0-17.6 14.4-32 32-32 8.8 0 16-7.2 16-16s-7.2-16-16-16c-35.3 0-64 28.7-64 64 0 8.8 7.2 16 16 16s16-7.2 16-16zM512 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h136l33.6-44.8C226.7 39.1 240.9 32 256 32h208c26.5 0 48 21.5 48 48zM224 96h240c5.6 0 11 1 16 2.7V80c0-8.8-7.2-16-16-16H256c-5 0-9.8 2.4-12.8 6.4L224 96zm256 48c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V144z\"]\n};\nvar faCampfire = {\n prefix: 'fal',\n iconName: 'campfire',\n icon: [512, 512, [], \"f6ba\", \"M256 320c79.53 0 144-64.47 144-144 0-33.29-33.42-101.96-80-144-13.37 12.06-25.45 24.75-36.14 37.48C266.34 46.01 244.61 22.21 220 0c-63.17 56.98-108 131.22-108 176 0 79.53 64.47 144 144 144zM220.1 44.42c14.11 14.38 27.04 29.37 38.12 44.21L282.39 121l25.98-30.95c3.56-4.24 7.23-8.41 10.99-12.47C349.96 114.53 368 159.21 368 176c0 61.76-50.24 112-112 112s-112-50.24-112-112c0-27.75 28.05-81.63 76.1-131.58zM295.91 400l211.3-82.02a7.99 7.99 0 0 0 4.12-10.53l-6.4-14.65a8.006 8.006 0 0 0-10.54-4.13L256 382.54 17.61 288.67a8.006 8.006 0 0 0-10.54 4.13l-6.4 14.65a7.999 7.999 0 0 0 4.12 10.53L216.09 400 4.8 482.02a7.994 7.994 0 0 0-4.12 10.53l6.4 14.65c1.77 4.05 6.49 5.9 10.54 4.12L256 417.46l238.39 93.87c4.05 1.77 8.77-.07 10.54-4.12l6.4-14.65a7.999 7.999 0 0 0-4.12-10.53L295.91 400z\"]\n};\nvar faCampground = {\n prefix: 'fal',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M632 480h-24L339.74 109.19l63-87.09c2.6-3.57 1.8-8.57-1.77-11.17l-12.93-9.4c-3.57-2.6-8.58-1.81-11.18 1.77L320 81.9 263.14 3.3a7.999 7.999 0 0 0-11.18-1.77l-12.93 9.4c-3.57 2.6-4.37 7.6-1.77 11.17l63 87.09L32 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-409.81 0L320 343.06 417.81 480H222.19zm234.96 0L333.02 306.23c-6.38-8.93-19.66-8.93-26.04 0L182.85 480H71.49L320 136.48 568.51 480H457.15z\"]\n};\nvar faCandleHolder = {\n prefix: 'fal',\n iconName: 'candle-holder',\n icon: [448, 512, [], \"f6bc\", \"M160 192c45.93 0 78-32.61 78-79.29C238 82.72 205.41 37.82 160 0c-45.62 38-78 82.84-78 112.71 0 46.68 32.07 79.29 78 79.29zm0-148.93c31.56 30.97 46 58.26 46 69.63 0 29.17-17.63 47.29-46 47.29s-46-18.12-46-47.29c0-11.37 14.44-38.66 46-69.63zM384 384c-35.35 0-64 28.65-64 64 0 11.72 3.38 22.55 8.88 32H256V256c0-17.67-14.33-32-32-32H96c-17.67 0-32 14.33-32 32v224H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h376c35.35 0 64-28.65 64-64s-28.65-64-64-64zm-160 96H96V256h32v48c0 8.84 7.16 16 16 16s16-7.16 16-16v-48h64v224zm160 0c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faCandyCane = {\n prefix: 'fal',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c9.4 15.7 29.3 19.8 43.9 11l27.5-16.4c35.9-21.5 69.6 33 32.8 54.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-205.2 29.4l-32.8-54.9C291.8 47.2 312.6 32.1 352 32v64c-23.6.3-37.3 12.1-59.7 25.4zm91-17.4h.7V36.1c36.7 9.2 67.8 34 84.6 69.5 3.4 7.2 6 14.7 7.9 22.3H408v.1c-.2-.3-.3-.6-.4-.9-5.9-9.9-14.4-17.7-24.3-23.1zM256.8 291.4l82.3-49 64.3 36.2-82.3 49-64.3-36.2zm32.6 55.1l-87.5 52-64.3-36.2 87.5-52 64.3 36.2zM64.8 480l-32.9-54.9 73.9-43.9 64.3 36.2L64.8 480zm368-221.5l-62-34.9 14.6-8.7c20-11.9 30.9-33.2 30.9-54.9h63c-.9 36.5-17.2 72.8-46.5 98.5z\"]\n};\nvar faCandyCorn = {\n prefix: 'fal',\n iconName: 'candy-corn',\n icon: [640, 512, [], \"f6bd\", \"M480 0C314.19 1.62 315.52 39.54 322.11 72.47 352.45 224.02 416.18 416 479.91 416h.09c63.77-.18 127.53-191.9 157.89-343.53C644.48 39.54 645.81 1.62 480 0zm-.09 383.99c-12.75-.03-39.26-37.06-67.43-108.71 43.78-3.73 91.2-3.73 134.98-.01-28.2 71.64-54.77 108.68-67.55 108.72zm79.07-139.8c-50.83-4.96-107.17-4.96-158 0-9.47-27.05-18.92-57.92-27.95-92.61 66.6-9.76 147.33-9.77 213.93 0-9.04 34.68-18.49 65.56-27.98 92.61zm47.65-178.03c-3.8 19-7.83 36.88-11.94 54.22-71.31-10.82-158.08-10.82-229.39 0-4.11-17.34-8.13-35.23-11.93-54.23-1.98-9.89-1.55-12.44-1.27-13.08.1-.2 12.85-19.9 127.9-21.06 115.06 1.16 127.81 20.87 127.9 21.06.28.65.71 3.2-1.27 13.09zM84.94 205.81c-116.1 118.4-88.35 144.26-60.4 162.89 128.62 85.71 309.43 176.4 354.49 131.34l.06-.06c44.96-45.22-45.52-225.87-131.27-354.56-18.62-27.96-44.48-55.71-162.88 60.39zM356.4 477.4c-9.03 9-53.97 1.56-124.54-29.19 28.32-33.6 61.85-67.12 95.44-95.45 30.71 70.59 38.11 115.57 29.1 124.64zm-42.94-154.77c-39.45 32.44-79.29 72.28-111.72 111.73-25.83-12.43-54.34-27.58-85.25-45.72 40.19-53.99 97.27-111.08 151.27-151.27 18.13 30.91 33.28 59.42 45.7 85.26zm-224.5 49.41c-15.17-9.36-30.66-19.16-46.78-29.91-8.39-5.59-9.89-7.7-10.15-8.35-.07-.21-4.99-23.16 75.55-105.34 82.18-80.54 105.13-75.62 105.34-75.55.64.25 2.75 1.76 8.35 10.15 10.74 16.12 20.54 31.62 29.9 46.78-58.08 42.79-119.43 104.15-162.21 162.22z\"]\n};\nvar faCannabis = {\n prefix: 'fal',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M494.42 323.43c-1.2-.6-19.6-9.78-47.96-17.83 48.3-64.24 63.94-129.7 64.72-133.04a31.977 31.977 0 0 0-8.31-29.62 31.997 31.997 0 0 0-22.86-9.61c-2.19 0-4.4.23-6.59.69-3.34.7-66.31 14.35-130.68 55.97-8.59-97.8-57.86-172.39-60.14-175.8C276.64 5.32 266.67 0 256 0s-20.64 5.32-26.58 14.19c-2.29 3.41-51.56 78.01-60.14 175.8-64.37-41.62-127.34-55.27-130.68-55.97-2.19-.46-4.4-.69-6.59-.69-8.51 0-16.78 3.4-22.86 9.61a31.991 31.991 0 0 0-8.31 29.62c.77 3.34 16.42 68.79 64.72 133.04-28.37 8.05-46.77 17.23-47.96 17.83A32 32 0 0 0 0 351.98a32.005 32.005 0 0 0 17.54 28.57c2.3 1.17 54.42 27.19 120.97 29.89-2.84 6.84-4.26 11.06-4.41 11.51A31.999 31.999 0 0 0 164.48 464c3.04 0 6.11-.43 9.12-1.33 1.66-.49 31.46-9.55 66.39-30.71V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72.03c34.94 21.16 64.74 30.21 66.39 30.71 3.01.89 6.08 1.33 9.12 1.33 8.53 0 16.86-3.41 22.97-9.72a31.982 31.982 0 0 0 7.41-32.33c-.15-.45-1.56-4.67-4.41-11.51 66.55-2.71 118.66-28.73 120.97-29.89 10.77-5.45 17.55-16.5 17.54-28.57s-6.79-23.12-17.56-28.56zM362.4 378.66c-17.33 0-31.19-.9-42.49-2.42-.22.12-.4.16-.62.28 19.8 30.01 28.23 55.48 28.23 55.48s-48.08-14.3-91.52-50.5c-43.44 36.2-91.52 50.5-91.52 50.5s8.43-25.47 28.23-55.48c-.22-.12-.4-.16-.62-.28-11.3 1.53-25.16 2.42-42.49 2.42C84.65 378.66 32 352 32 352s40.95-20.67 95.13-25.58c-.85-.8-1.57-1.36-2.43-2.18C53.02 255.98 32 165.33 32 165.33s95.18 20.02 166.85 88.28c.93.89 1.57 1.63 2.48 2.51-.85-11.28-1.33-23.67-1.33-37.46C200 115.57 256 32 256 32s56 83.57 56 186.67c0 13.79-.48 26.18-1.33 37.46.91-.88 1.55-1.62 2.48-2.51C384.82 185.35 480 165.33 480 165.33s-21.02 90.64-92.7 158.9c-.86.82-1.58 1.38-2.43 2.18C439.05 331.33 480 352 480 352s-52.65 26.66-117.6 26.66z\"]\n};\nvar faCapsules = {\n prefix: 'fal',\n iconName: 'capsules',\n icon: [544, 512, [], \"f46b\", \"M529 296.8L417.5 103.7c-30.8-53.2-99-71.5-152.3-40.8-21.2 12.2-36.5 30.5-45.8 51.3C206.3 67 163.4 32 112 32 50.2 32 0 82.2 0 144v224c0 61.8 50.2 112 112 112s112-50.2 112-112V214.2c.2.3.2.6.4.9l111.5 193.1c20.6 35.7 58.2 55.7 96.8 55.7 18.9 0 38-4.8 55.5-14.9 25.8-14.9 44.2-38.9 51.9-67.7 7.8-28.7 3.8-58.7-11.1-84.5zM112 64c44.1 0 80 35.9 80 80v112H32V144c0-44.1 35.9-80 80-80zm0 384c-44.1 0-80-35.9-80-80v-80h160v80c0 44.1-35.9 80-80 80zM281.2 90.5c40.4-23.3 88.2-6.5 108.8 29.1l47.6 82.4-137.9 79.6-47.7-82.3c-21.9-38.1-8.9-86.9 29.2-108.8zm228.2 282.7c-5.5 20.5-18.7 37.7-37.1 48.4-38 21.9-86.8 8.8-108.8-29.1l-47.9-83 137.9-79.6 47.9 83c10.7 18.2 13.5 39.7 8 60.3z\"]\n};\nvar faCar = {\n prefix: 'fal',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M120.81 248c-25.96 0-44.8 16.8-44.8 39.95 0 23.15 18.84 39.95 44.8 39.95l10.14.1c39.21 0 45.06-20.1 45.06-32.08-.01-24.68-31.1-47.92-55.2-47.92zm10.14 56c-3.51 0-7.02-.1-10.14-.1-12.48 0-20.8-6.38-20.8-15.95s8.32-15.95 20.8-15.95 31.2 14.36 31.2 23.93c0 7.17-10.54 8.07-21.06 8.07zm260.24-56c-24.1 0-55.19 23.24-55.19 47.93 0 11.98 5.85 32.08 45.06 32.08l10.14-.1c25.96 0 44.8-16.8 44.8-39.95-.01-23.16-18.85-39.96-44.81-39.96zm0 55.9c-3.12 0-6.63.1-10.14.1-10.53 0-21.06-.9-21.06-8.07 0-9.57 18.72-23.93 31.2-23.93s20.8 6.38 20.8 15.95-8.32 15.95-20.8 15.95zm114.8-140.94c-7.34-11.88-20.06-18.97-34.03-18.97H422.3l-8.07-24.76C403.5 86.29 372.8 64 338.17 64H173.83c-34.64 0-65.33 22.29-76.06 55.22l-8.07 24.76H40.04c-13.97 0-26.69 7.09-34.03 18.97s-8 26.42-1.75 38.91l5.78 11.61c3.96 7.88 9.92 14.09 17 18.55-6.91 11.74-11.03 25.32-11.03 39.97V400c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48v-16H384v16c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48V271.99c0-14.66-4.12-28.23-11.03-39.98 7.09-4.46 13.04-10.68 17-18.57l5.78-11.56c6.24-12.5 5.58-27.05-1.76-38.92zM128.2 129.14C134.66 109.32 153 96 173.84 96h164.33c20.84 0 39.18 13.32 45.64 33.13l20.47 62.85H107.73l20.47-62.84zm-89.53 70.02l-5.78-11.59c-1.81-3.59-.34-6.64.34-7.78.87-1.42 2.94-3.8 6.81-3.8h39.24l-6.45 19.82a80.69 80.69 0 0 0-23.01 11.29c-4.71-1-8.94-3.52-11.15-7.94zM96.01 400c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm367.98 0c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm0-80.01v32H48.01v-80c0-26.47 21.53-48 48-48h319.98c26.47 0 48 21.53 48 48v48zm15.12-132.41l-5.78 11.55c-2.21 4.44-6.44 6.97-11.15 7.97-6.94-4.9-14.69-8.76-23.01-11.29l-6.45-19.82h39.24c3.87 0 5.94 2.38 6.81 3.8.69 1.14 2.16 4.18.34 7.79z\"]\n};\nvar faCarAlt = {\n prefix: 'fal',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M423.18 195.81l-24.94-76.58C387.51 86.29 356.81 64 322.17 64H157.83c-34.64 0-65.34 22.29-76.07 55.22L56.82 195.8C24.02 205.79 0 235.92 0 271.99V400c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48v-16h256v16c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48V271.99c0-36.07-24.02-66.2-56.82-76.18zm-310.99-66.67c6.46-19.82 24.8-33.14 45.64-33.14h164.34c20.84 0 39.18 13.32 45.64 33.13l20.47 62.85H91.72l20.47-62.84zM80 400c0 8.83-7.19 16-16 16H48c-8.81 0-16-7.17-16-16v-16h48v16zm368 0c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm0-80.01v32H32v-80c0-26.47 21.53-48 48-48h320c26.47 0 48 21.53 48 48v48zM104.8 248C78.84 248 60 264.8 60 287.95c0 23.15 18.84 39.95 44.8 39.95l10.14.1c39.21 0 45.06-20.1 45.06-32.08 0-24.68-31.1-47.92-55.2-47.92zm10.14 56c-3.51 0-7.02-.1-10.14-.1-12.48 0-20.8-6.38-20.8-15.95S92.32 272 104.8 272s31.2 14.36 31.2 23.93c0 7.17-10.53 8.07-21.06 8.07zm260.26-56c-24.1 0-55.2 23.24-55.2 47.93 0 11.98 5.85 32.08 45.06 32.08l10.14-.1c25.96 0 44.8-16.8 44.8-39.95 0-23.16-18.84-39.96-44.8-39.96zm0 55.9c-3.12 0-6.63.1-10.14.1-10.53 0-21.06-.9-21.06-8.07 0-9.57 18.72-23.93 31.2-23.93s20.8 6.38 20.8 15.95-8.32 15.95-20.8 15.95z\"]\n};\nvar faCarBattery = {\n prefix: 'fal',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16H304c-8.84 0-16 7.16-16 16v48h-64V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM320 96h96v32h-96V96zM96 96h96v32H96V96zm384 320H32V160h448v256zm-56-160h-40v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v40h-40c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h40v40c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-40h40c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-224 0H88c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h112c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faCarBuilding = {\n prefix: 'fal',\n iconName: 'car-building',\n icon: [640, 512, [], \"f859\", \"M595.4 294.44l-15.88-68.83A63.71 63.71 0 0 0 517.16 176H344.07a63.7 63.7 0 0 0-62.36 49.61l-16.28 70.55C241 308.44 224 333.49 224 362.67v55.11a46.14 46.14 0 0 0 32 43.75V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-32h256v32a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-34.47a46.14 46.14 0 0 0 32-43.75v-55.11a74.7 74.7 0 0 0-44.6-68.23zM312.89 232.8a32 32 0 0 1 31.18-24.8h173.09a32 32 0 0 1 31.18 24.8l12.73 55.2H300.15zM608 417.78A14.24 14.24 0 0 1 593.78 432H270.22A14.24 14.24 0 0 1 256 417.78v-55.11A42.72 42.72 0 0 1 298.67 320h266.66A42.72 42.72 0 0 1 608 362.67zM320 48v96h32V48a48 48 0 0 0-48-48H48A48 48 0 0 0 0 48v392a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V48a16 16 0 0 1 16-16h256a16 16 0 0 1 16 16zM204 96a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-56 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm160 64a20 20 0 1 0 20 20 20 20 0 0 0-20-20zm248 0a20 20 0 1 0 20 20 20 20 0 0 0-20-20zM148 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm102.53 122.42a96.81 96.81 0 0 1 5.16-15.95A11.86 11.86 0 0 0 244 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h37.85z\"]\n};\nvar faCarBump = {\n prefix: 'fal',\n iconName: 'car-bump',\n icon: [576, 512, [], \"f5e0\", \"M157.56 410.15l233.93-105.9 13.63 28.39c11.28 23.48 40.13 33.68 64.31 22.73l14.62-6.62c24.19-10.95 34.69-38.96 23.41-62.44L446.1 158.56c-15.37-32-50.16-48.79-84.38-44.08L306.3 56.86c-23.84-24.78-61.39-31.85-93.04-17.52L63.1 107.32c-31.65 14.33-50.21 46.8-45.98 80.46l9.84 78.25C1.24 288.46-7.87 325.13 7.5 357.12l61.36 127.75c11.28 23.48 40.13 33.68 64.31 22.73l14.62-6.62c24.19-10.95 34.69-38.96 23.41-62.44l-13.64-28.39zm320.67-110.61c3.76 7.83.25 17.17-7.8 20.81l-14.62 6.62c-8.05 3.65-17.68.26-21.44-7.57l-13.63-28.39 43.86-19.86 13.63 28.39zM76.73 135.71L226.9 67.73c19.04-8.62 41.48-4.4 55.82 10.51l45.49 47.29L57.22 248.21l-8.08-64.22c-2.54-20.26 8.55-39.66 27.59-48.28zm57.43 336.88l-14.62 6.62c-8.05 3.65-17.68.26-21.44-7.58l-13.64-28.39 43.86-19.86 13.63 28.39c3.77 7.84.26 17.18-7.79 20.82zm-63.33-57.73l-34.09-70.97c-11.28-23.48-.78-51.49 23.41-62.44l292.41-132.38c24.19-10.95 53.04-.75 64.31 22.73l20.45 42.58 13.63 28.39-43.86 19.86-29.24 13.24L70.83 414.86zm327.25-217.32c-9.87-20.54-34.24-27.65-57.96-16.91-22.02 9.97-40.54 43.45-30.02 65.35 5.1 10.63 19.01 26.03 54.84 9.81l9.22-4.28c23.73-10.74 33.78-33.43 23.92-53.97zm-34.14 32.68c-2.85 1.29-6.01 2.83-9.22 4.28-9.62 4.36-19.63 7.92-22.69 1.55-4.08-8.49 6.91-28.97 18.31-34.13 11.4-5.16 21.72-2.95 25.8 5.54s-.8 17.6-12.2 22.76zm-270.9 62.27c-23.72 10.74-33.78 33.44-23.91 53.97 9.87 20.54 34.24 27.65 57.96 16.91l9.3-4.11c35.83-16.22 32.61-36.47 27.51-47.09-10.52-21.9-48.83-29.65-70.86-19.68zm33.13 45.48c-3.21 1.45-6.46 2.81-9.3 4.11-11.4 5.16-21.72 2.94-25.8-5.55-4.08-8.49.81-17.59 12.21-22.75s34.62-.17 38.7 8.32c3.05 6.36-6.19 11.52-15.81 15.87zm449.49 154.78c-10.72-51.84-57.56-89.47-111.34-89.47S363.72 440.91 353 492.75c-1.81 8.66 3.75 17.12 12.41 18.92 8.5 1.73 17.09-3.77 18.91-12.42 7.69-37.06 41.31-63.97 80-63.97s72.34 26.91 80.03 63.97c1.56 7.55 8.22 12.75 15.63 12.75 1.09 0 2.19-.11 3.28-.33 8.65-1.79 14.21-10.26 12.4-18.92z\"]\n};\nvar faCarBus = {\n prefix: 'fal',\n iconName: 'car-bus',\n icon: [640, 512, [], \"f85a\", \"M64 300a20 20 0 1 0 20-20 20 20 0 0 0-20 20zm-32 49.09L31.93 256h209.92l7.39-32H208v-96h144v16h32V70.23C384 30.91 299 0 192 0S0 30.91 0 70.23v278.86A34.91 34.91 0 0 0 34.91 384H32v48a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-48h112v-21.33c0-3.66.93-7.09 1.29-10.67H34.91a2.91 2.91 0 0 1-2.91-2.91zM176 224H32v-96h144zM31.8 71.55C36.41 60.29 90.84 32 192 32s155.59 28.29 160 38.23V96H31.82zm563.6 222.89l-15.88-68.83A63.71 63.71 0 0 0 517.16 176H344.07a63.7 63.7 0 0 0-62.36 49.61l-16.28 70.55C241 308.44 224 333.49 224 362.67v55.11a46.14 46.14 0 0 0 32 43.75V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-32h256v32a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-34.47a46.14 46.14 0 0 0 32-43.75v-55.11a74.7 74.7 0 0 0-44.6-68.23zm-282.51-61.63A32 32 0 0 1 344.07 208h173.09a32 32 0 0 1 31.18 24.81L561.07 288H300.15zM608 417.78A14.24 14.24 0 0 1 593.78 432H270.22A14.24 14.24 0 0 1 256 417.78v-55.11A42.72 42.72 0 0 1 298.67 320h266.66A42.72 42.72 0 0 1 608 362.67zM308 352a20 20 0 1 0 20 20 20 20 0 0 0-20-20zm248 0a20 20 0 1 0 20 20 20 20 0 0 0-20-20z\"]\n};\nvar faCarCrash = {\n prefix: 'fal',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M162.55 84.62c3.72 5.59 9.66 9.39 16.31 10.39 6.44.97 13.41-.86 18.66-5.16l52.16-42.94c6.84-5.63 7.81-15.7 2.19-22.53-5.63-6.86-15.75-7.81-22.5-2.19L184.2 59.37l-32.38-48.69c-5.66-8.52-15.63-12.45-25.66-9.92-9.91 2.48-16.94 10.66-17.91 20.78l-5.66 58.22-57.32-11.55c-10.09-2.11-19.88 2.34-25.13 11.11S15.7 98.84 22.2 106.7l37.16 45.16-48.72 32.39c-8.5 5.66-12.38 15.7-9.91 25.59 2.47 9.91 10.63 16.94 20.81 17.94l58.22 5.64-11.56 57.34c-1.75 8.66 3.88 17.09 12.53 18.84 1.06.22 2.13.31 3.19.31 7.44 0 14.13-5.25 15.66-12.84l13.34-66.25c1.31-6.58-.22-13.45-4.22-18.84-4-5.41-10.13-8.88-16.84-9.53l-44.34-4.3 37.06-24.64c5.63-3.7 9.41-9.66 10.41-16.3a23.68 23.68 0 0 0-5.16-18.7l-28.28-34.38 43.69 8.8c6.44 1.27 13.47-.23 18.88-4.25 5.41-4 8.84-10.14 9.5-16.8l4.28-44.34 24.65 37.08zm118.53 132.42c-25.07-6.72-47.62 4.63-53.61 26.99-5.99 22.36 7.86 43.47 32.93 50.19l9.77 2.72c37.87 10.15 48.73-7.75 51.83-19.32 6.38-23.84-17.64-54.34-40.92-60.58zm-4.71 56.72c-3.39-.91-6.75-1.91-9.77-2.72-12.05-3.23-18.44-11.55-15.96-20.79 2.48-9.24 12.16-13.25 24.22-10.02 12.05 3.23 26.42 21.94 23.94 31.19-1.85 6.92-12.26 5.06-22.43 2.34zm325.74-24.73l-4.27-80.42c-1.84-34.59-25.73-64.06-59.18-73.03L379.92 53.04c-33.46-8.96-68.88 4.62-87.77 33.65l-43.91 67.51c-34.27 1.16-65.27 24.04-74.6 58.88l-37.27 139.09c-6.85 25.57 8.37 51.94 33.94 58.79l15.45 4.14c25.57 6.85 51.94-8.38 58.79-33.94l8.28-30.91 247.28 66.26-8.28 30.91c-6.85 25.57 8.37 51.94 33.94 58.79l15.46 4.14c25.57 6.85 51.94-8.37 58.79-33.94l37.27-139.09c9.32-34.83-6.08-70.16-35.18-88.29zM318.97 104.14c11.37-17.47 32.53-25.59 52.66-20.19l158.74 42.53c20.13 5.39 34.4 23 35.51 43.82l3.51 66.01-286.46-76.76 36.04-55.41zM213.64 372.89c-2.29 8.53-11.08 13.6-19.6 11.31l-15.46-4.14c-8.51-2.28-13.6-11.07-11.31-19.6l8.28-30.91 46.37 12.42-8.28 30.92zm355.46 95.25c-2.29 8.53-11.08 13.59-19.6 11.31l-15.46-4.14c-8.51-2.28-13.6-11.07-11.31-19.6l8.28-30.91 46.36 12.42-8.27 30.92zm37.27-139.1l-12.42 46.37-8.28 30.91-46.37-12.42-30.91-8.28-324.55-86.96 20.71-77.27c6.85-25.56 33.22-40.79 58.79-33.94l309.1 82.82c25.55 6.83 40.78 33.21 33.93 58.77zm-64.11-42.02c-23.28-6.24-59.33 8.16-65.72 32.01-3.1 11.57-2.65 32.5 35.22 42.64l9.82 2.53c25.07 6.72 47.62-4.63 53.61-26.99 5.99-22.36-7.86-43.47-32.93-50.19zm9.75 43.98c-2.48 9.24-12.17 13.25-24.22 10.02-3.01-.81-6.43-1.62-9.82-2.53-10.17-2.72-20.11-6.32-18.25-13.25 2.48-9.24 24.27-18.27 36.33-15.04 12.05 3.24 18.43 11.55 15.96 20.8z\"]\n};\nvar faCarGarage = {\n prefix: 'fal',\n iconName: 'car-garage',\n icon: [640, 512, [], \"f5e2\", \"M635.88 160L327.78 2.02c-4.88-2.69-10.69-2.69-15.56 0l-308.1 161c-3.87 2.15-5.26 7.02-3.11 10.88l7.78 13.99c2.15 3.86 7.02 5.25 10.88 3.1L320 34.3l300.33 153.68c3.86 2.14 8.73.76 10.87-3.1l7.79-13.99c2.15-3.87.76-8.74-3.11-10.89zm-142.5 101.74l-15.15-46.5c-10.73-32.93-41.43-55.22-76.07-55.22H237.83c-34.64 0-65.34 22.29-76.07 55.22l-15.15 46.5C117.01 273.47 96 302.22 96 336v128c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48v-16h224v16c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48V336c0-33.78-21.01-62.53-50.62-74.26zm-301.19-36.59a47.888 47.888 0 0 1 45.64-33.13h164.34c20.84 0 39.18 13.32 45.64 33.13L457.86 256H182.14l10.05-30.85zM176 464c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm336 0c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm0-80v32H128v-80c0-26.47 21.53-48 48-48h288c26.47 0 48 21.53 48 48v48zm-72.8-71.99c-24.1 0-55.2 23.24-55.2 47.93 0 11.98 5.85 32.07 45.06 32.07l10.14-.1c25.96 0 44.8-16.8 44.8-39.95 0-23.15-18.84-39.95-44.8-39.95zm0 55.9c-3.12 0-6.63.1-10.14.1-10.53 0-21.06-.9-21.06-8.07 0-9.57 18.72-23.93 31.2-23.93s20.8 6.38 20.8 15.95-8.33 15.95-20.8 15.95zm-238.4-55.9c-25.96 0-44.8 16.8-44.8 39.95 0 23.15 18.84 39.95 44.8 39.95l10.14.1c39.21 0 45.06-20.1 45.06-32.07 0-24.69-31.1-47.93-55.2-47.93zm10.14 56c-3.51 0-7.02-.1-10.14-.1-12.48 0-20.8-6.38-20.8-15.95s8.32-15.95 20.8-15.95 31.2 14.36 31.2 23.93c0 7.17-10.53 8.07-21.06 8.07z\"]\n};\nvar faCarMechanic = {\n prefix: 'fal',\n iconName: 'car-mechanic',\n icon: [512, 512, [], \"f5e3\", \"M510.15 53.28C498.82 21.41 468.6 0 434.94 0c-26.03 0-48.97 12.69-63.59 32h-230.7C126.04 12.69 103.09 0 77.06 0 43.4 0 13.18 21.41 1.85 53.28A31.966 31.966 0 0 0 4.29 80a32.036 32.036 0 0 0-2.44 26.72C13.18 138.59 43.4 160 77.06 160c26.02 0 48.95-12.68 63.57-31.97h230.74c14.62 19.29 37.55 31.97 63.57 31.97 33.66 0 63.89-21.41 75.21-53.28A32.04 32.04 0 0 0 507.71 80c4.67-8.08 5.6-17.84 2.44-26.72zM434.94 96H480c-6.61 18.6-24.19 32-45.06 32s-38.45-13.4-45.06-32H122.13c-6.61 18.6-24.19 32-45.06 32S38.61 114.6 32 96h45.06l16-16-16-16H32c6.61-18.6 24.19-32 45.06-32 20.88 0 38.47 13.41 45.07 32.03h267.73C396.47 45.41 414.06 32 434.94 32c20.87 0 38.45 13.4 45.06 32h-45.06l-16 16 16 16zm-5.56 165.74l-15.15-46.5c-10.73-32.93-41.43-55.22-76.07-55.22H173.83c-34.64 0-65.34 22.29-76.07 55.22l-15.15 46.5C53.01 273.47 32 302.22 32 336v128c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48v-16h224v16c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48V336c0-33.78-21.01-62.53-50.62-74.26zm-301.19-36.59a47.888 47.888 0 0 1 45.64-33.13h164.34c20.84 0 39.18 13.32 45.64 33.13L393.86 256H118.14l10.05-30.85zM112 464c0 8.83-7.19 16-16 16H80c-8.81 0-16-7.17-16-16v-16h48v16zm336 0c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm0-80v32H64v-80c0-26.47 21.53-48 48-48h288c26.47 0 48 21.53 48 48v48zm-72.8-71.99c-24.1 0-55.2 23.24-55.2 47.93 0 11.98 5.85 32.07 45.06 32.07l10.14-.1c25.96 0 44.8-16.8 44.8-39.95 0-23.15-18.84-39.95-44.8-39.95zm0 55.9c-3.12 0-6.63.1-10.14.1-10.53 0-21.06-.9-21.06-8.07 0-9.57 18.72-23.93 31.2-23.93s20.8 6.38 20.8 15.95-8.32 15.95-20.8 15.95zm-238.4-55.9c-25.96 0-44.8 16.8-44.8 39.95 0 23.15 18.84 39.95 44.8 39.95l10.14.1c39.21 0 45.06-20.1 45.06-32.07 0-24.69-31.1-47.93-55.2-47.93zm10.14 56c-3.51 0-7.02-.1-10.14-.1-12.48 0-20.8-6.38-20.8-15.95s8.32-15.95 20.8-15.95 31.2 14.36 31.2 23.93c0 7.17-10.53 8.07-21.06 8.07z\"]\n};\nvar faCarSide = {\n prefix: 'fal',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.21 56.02A63.99 63.99 0 0 0 369.24 32H171.33c-26.17 0-49.7 15.93-59.42 40.23L64 192c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM288 64h81.24c9.77 0 18.88 4.38 24.99 12.01L487.02 192H288V64zM141.62 84.12C146.51 71.89 158.17 64 171.33 64H256v128H98.46l43.16-107.88zM160 448c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm128-96h-37.88c-13.22-37.2-48.38-64-90.12-64s-76.9 26.8-90.12 64H250.12c-13.22-37.2-48.38-64-90.12-64s-76.9 26.8-90.12 64H32v-96c0-17.64 14.36-32 32-32h480c35.29 0 64 28.71 64 64v64z\"]\n};\nvar faCarTilt = {\n prefix: 'fal',\n iconName: 'car-tilt',\n icon: [640, 512, [], \"f5e5\", \"M179.55 305.94c-18.28 18.28-19.71 43.37-3.42 59.67 16.3 16.3 41.4 14.87 59.68-3.41l7.21-7.07c27.61-27.61 17.58-45.88 9.14-54.31-17.38-17.38-55.64-11.85-72.61 5.12zm46.57 32.29c-2.47 2.47-5.01 4.87-7.21 7.07-8.79 8.79-19.14 10.15-25.88 3.41-6.74-6.74-5.37-17.09 3.41-25.88 8.79-8.79 32.07-11.86 38.81-5.12 5.06 5.06-1.72 13.11-9.13 20.52zM632 480H307.39c13.09-18.64 12.16-44.2-4.48-60.84l-22.53-22.53 180.26-180.25 22.53 22.53c18.64 18.64 48.96 18.64 67.6 0l11.27-11.27c18.64-18.64 18.64-48.96 0-67.6L460.63 58.65c-25.4-25.39-63.53-29.7-93.65-13.63L295.49 8.66c-30.74-15.63-68.05-9.71-92.44 14.68L87.33 139.05c-24.39 24.39-30.31 61.7-14.68 92.45l36.36 71.48c-16.06 30.13-11.76 68.26 13.63 93.65L206.02 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-92.51-297.43c6.22 6.22 6.21 16.33 0 22.53l-11.27 11.27c-6.21 6.21-16.32 6.21-22.53 0l-22.53-22.53 33.8-33.8 22.53 22.53zm-438.43 34.48c-9.41-18.5-5.87-40.79 8.81-55.47L225.58 45.87a47.715 47.715 0 0 1 55.47-8.81l58.67 29.84L130.9 275.72l-29.84-58.67zm100.45 213.38l-56.33-56.33c-18.64-18.63-18.64-48.96 0-67.6L370.5 81.18c18.64-18.64 48.96-18.64 67.6 0l33.8 33.8 22.53 22.53-33.8 33.8-22.53 22.53-236.59 236.59zm78.86 33.79l-11.27 11.27c-2.9 2.9-6.68 4.32-10.5 4.51h-1.53c-3.82-.18-7.6-1.6-10.51-4.51l-22.53-22.53 33.8-33.8 22.53 22.53c6.23 6.22 6.22 16.33.01 22.53zm149.24-352.09c-16.3-16.3-41.39-14.86-59.67 3.41-16.97 16.97-22.5 55.23-5.12 72.61 8.44 8.44 26.71 18.46 54.31-9.14l7.07-7.21c18.28-18.27 19.71-43.36 3.41-59.67zm-20.31 42.78c-2.2 2.2-4.6 4.74-7.07 7.21-7.41 7.41-15.46 14.2-20.51 9.14-6.74-6.74-3.67-30.03 5.12-38.81 8.79-8.79 19.14-10.15 25.88-3.42s5.37 17.09-3.42 25.88z\"]\n};\nvar faCarWash = {\n prefix: 'fal',\n iconName: 'car-wash',\n icon: [448, 512, [], \"f5e6\", \"M80 128c26.47 0 48-21.6 48-48.16 0-20.52-24.38-58.12-34.84-73.32-5.94-8.69-20.38-8.69-26.31 0C56.38 21.72 32 59.32 32 79.84 32 106.4 53.53 128 80 128zm0-82.61c9.22 15.57 15.88 29.55 16 34.44 0 8.86-7.19 16.05-16 16.05s-16-7.2-16-16.04c.12-4.89 6.78-18.88 16-34.45zM224 128c26.47 0 48-21.6 48-48.16 0-20.52-24.38-58.12-34.84-73.32-5.94-8.69-20.38-8.69-26.31 0C200.38 21.72 176 59.32 176 79.84c0 26.56 21.53 48.16 48 48.16zm0-82.61c9.22 15.57 15.88 29.55 16 34.44 0 8.86-7.19 16.05-16 16.05s-16-7.2-16-16.04c.12-4.89 6.78-18.88 16-34.45zM368 128c26.47 0 48-21.6 48-48.16 0-20.52-24.38-58.12-34.84-73.32-5.94-8.69-20.38-8.69-26.31 0C344.38 21.72 320 59.32 320 79.84c0 26.56 21.53 48.16 48 48.16zm0-82.61c9.22 15.57 15.88 29.55 16 34.44 0 8.86-7.19 16.05-16 16.05s-16-7.2-16-16.04c.12-4.89 6.78-18.88 16-34.45zm29.38 216.35l-15.15-46.5c-10.73-32.93-41.43-55.22-76.07-55.22H141.83c-34.64 0-65.34 22.29-76.07 55.22l-15.15 46.5C21.01 273.47 0 302.22 0 336v128c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48v-16h224v16c0 26.47 21.53 48 48 48h16c26.47 0 48-21.53 48-48V336c0-33.78-21.01-62.53-50.62-74.26zM96.19 225.15a47.888 47.888 0 0 1 45.64-33.13h164.34c20.84 0 39.18 13.32 45.64 33.13L361.86 256H86.14l10.05-30.85zM80 464c0 8.83-7.19 16-16 16H48c-8.81 0-16-7.17-16-16v-16h48v16zm336 0c0 8.83-7.19 16-16 16h-16c-8.81 0-16-7.17-16-16v-16h48v16zm0-80v32H32v-80c0-26.47 21.53-48 48-48h288c26.47 0 48 21.53 48 48v48zm-72.8-71.99c-24.1 0-55.2 23.24-55.2 47.93 0 11.98 5.85 32.07 45.06 32.07l10.14-.1c25.96 0 44.8-16.8 44.8-39.95 0-23.15-18.84-39.95-44.8-39.95zm0 55.9c-3.12 0-6.63.1-10.14.1-10.53 0-21.06-.9-21.06-8.07 0-9.57 18.72-23.93 31.2-23.93s20.8 6.38 20.8 15.95-8.32 15.95-20.8 15.95zm-238.4-55.9c-25.96 0-44.8 16.8-44.8 39.95 0 23.15 18.84 39.95 44.8 39.95l10.14.1c39.21 0 45.06-20.1 45.06-32.07 0-24.69-31.1-47.93-55.2-47.93zm10.14 56c-3.51 0-7.02-.1-10.14-.1-12.48 0-20.8-6.38-20.8-15.95s8.32-15.95 20.8-15.95 31.2 14.36 31.2 23.93c0 7.17-10.53 8.07-21.06 8.07z\"]\n};\nvar faCaravan = {\n prefix: 'fal',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,240a16,16,0,1,0-16-16A16,16,0,0,0,416,240ZM632,352H576V160A160,160,0,0,0,416,0H96A96,96,0,0,0,0,96V288a96,96,0,0,0,96,96,96,96,0,0,0,192,0H632a8,8,0,0,0,8-8V360A8,8,0,0,0,632,352ZM192,448a64,64,0,1,1,64-64A64.07,64.07,0,0,1,192,448Zm256-96H352V128h96Zm96,0H480V128a32,32,0,0,0-32-32H352a32,32,0,0,0-32,32V352H282.12c-13.22-37.2-48.38-64-90.12-64s-76.9,26.8-90.12,64H96a64.07,64.07,0,0,1-64-64V96A64.07,64.07,0,0,1,96,32H416A128.14,128.14,0,0,1,544,160ZM240,96H112a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32H240a32,32,0,0,0,32-32V128A32,32,0,0,0,240,96Zm0,96H112V128H240Z\"]\n};\nvar faCaravanAlt = {\n prefix: 'fal',\n iconName: 'caravan-alt',\n icon: [640, 512, [], \"e000\", \"M432,96H368a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V128A32,32,0,0,0,432,96Zm0,96H368V128h64ZM632,352H576V160A160,160,0,0,0,416,0H96A96,96,0,0,0,0,96V288a96,96,0,0,0,96,96,96,96,0,0,0,192,0H632a8,8,0,0,0,8-8V360A8,8,0,0,0,632,352ZM192,448a64,64,0,1,1,64-64A64.07,64.07,0,0,1,192,448Zm352-96H282.12c-13.22-37.2-48.38-64-90.12-64s-76.9,26.8-90.12,64H96a64.07,64.07,0,0,1-64-64V96A64.07,64.07,0,0,1,96,32H416A128.14,128.14,0,0,1,544,160ZM240,96H112a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32H240a32,32,0,0,0,32-32V128A32,32,0,0,0,240,96Zm0,96H112V128H240Z\"]\n};\nvar faCaretCircleDown = {\n prefix: 'fal',\n iconName: 'caret-circle-down',\n icon: [512, 512, [], \"f32d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216zm-120-32l-96 96-96-96h192m-192-32c-28.4 0-42.8 34.5-22.6 54.6l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c20.1-20.1 5.9-54.6-22.6-54.6H160z\"]\n};\nvar faCaretCircleLeft = {\n prefix: 'fal',\n iconName: 'caret-circle-left',\n icon: [512, 512, [], \"f32e\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zM256 472c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216zm32-120l-96-96 96-96v192m32-192c0-28.4-34.5-42.8-54.6-22.6l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c20.1 20.1 54.6 5.9 54.6-22.6V160z\"]\n};\nvar faCaretCircleRight = {\n prefix: 'fal',\n iconName: 'caret-circle-right',\n icon: [512, 512, [], \"f330\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zM256 40c118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216zm-32 120l96 96-96 96V160m-32 192c0 28.4 34.5 42.8 54.6 22.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-20.1-20.1-54.6-5.9-54.6 22.6V352z\"]\n};\nvar faCaretCircleUp = {\n prefix: 'fal',\n iconName: 'caret-circle-up',\n icon: [512, 512, [], \"f331\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zM40 256c0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216zm120 32l96-96 96 96H160m192 32c28.4 0 42.8-34.5 22.6-54.6l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-20.1 20.1-5.9 54.6 22.6 54.6H352z\"]\n};\nvar faCaretDown = {\n prefix: 'fal',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M287.968 160H32.038c-28.425 0-42.767 34.488-22.627 54.627l127.962 128c12.496 12.496 32.758 12.497 45.255 0l127.968-128C330.695 194.528 316.45 160 287.968 160zM160 320L32 192h256L160 320z\"]\n};\nvar faCaretLeft = {\n prefix: 'fal',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 383.968v-255.93c0-28.425-34.488-42.767-54.627-22.627l-128 127.962c-12.496 12.496-12.497 32.758 0 45.255l128 127.968C157.472 426.695 192 412.45 192 383.968zM32 256l128-128v256L32 256z\"]\n};\nvar faCaretRight = {\n prefix: 'fal',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 128.032v255.93c0 28.425 34.488 42.767 54.627 22.627l128-127.962c12.496-12.496 12.497-32.758 0-45.255l-128-127.968C34.528 85.305 0 99.55 0 128.032zM160 256L32 384V128l128 128z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fal',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zm-96-208l-96 96-96-96h192m-192-32c-28.4 0-42.8 34.5-22.6 54.6l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c20.1-20.1 5.9-54.6-22.6-54.6H128z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fal',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM48 448c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48zm208-96l-96-96 96-96v192m32-192c0-28.4-34.5-42.8-54.6-22.6l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c20.1 20.1 54.6 5.9 54.6-22.6V160z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fal',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80zm400-16c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352zm-208 96l96 96-96 96V160m-32 192c0 28.4 34.5 42.8 54.6 22.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-20.1-20.1-54.6-5.9-54.6 22.6V352z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fal',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M48 480h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48zM32 80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80zm96 208l96-96 96 96H128m192 32c28.4 0 42.8-34.5 22.6-54.6l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-20 20.1-5.8 54.6 22.7 54.6h192z\"]\n};\nvar faCaretUp = {\n prefix: 'fal',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M32.032 352h255.93c28.425 0 42.767-34.488 22.627-54.627l-127.962-128c-12.496-12.496-32.758-12.497-45.255 0l-127.968 128C-10.695 317.472 3.55 352 32.032 352zM160 192l128 128H32l128-128z\"]\n};\nvar faCarrot = {\n prefix: 'fal',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M504.6 138.5c-22.9-27.6-53.4-43.4-86.4-44.8-1.6-32.1-17.1-63.4-44.7-86.3-5.9-4.9-13.1-7.4-20.4-7.4-7.2 0-14.5 2.5-20.4 7.4-27.2 22.6-43.1 53-44.6 85.8-.7 14.5 1.8 28.7 6.6 42.2-13.3-4.4-26.8-7.3-40.3-7.3-48 0-94.1 26.8-116.6 72.8L2.4 478.3c-3 6.2-3.3 13.8 0 20.5 4.1 8.3 12.4 13.1 21 13.1 3.4 0 6.9-.8 10.2-2.4L311.2 374c25-12.2 46.4-32.6 59.6-59.6 15.4-31.5 16.7-66.2 6.5-97.1 11.8 4.1 23.9 6.6 36.4 6.6 34.7 0 67-15.9 90.9-44.7 9.9-11.7 9.9-28.9 0-40.7zm-162.5 162c-9.6 19.7-25.2 35.3-44.9 44.9l-124.8 60.9c-.4-.5-.6-1.1-1.1-1.6l-32-32c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l25.6 25.6-100.2 49L154 240.6l26.7 26.7c3.1 3.1 7.2 4.7 11.3 4.7s8.2-1.6 11.3-4.7c6.2-6.2 6.2-16.4 0-22.6l-32-32c-.7-.7-1.7-1.1-2.5-1.7 17.1-31.5 49.4-51 85.6-51 14.9 0 29.2 3.3 42.7 9.9 23.4 11.4 41 31.3 49.5 56s6.9 51.1-4.5 74.6zM413.8 192c-21.5 0-43.1-8.9-60.6-26.5l-6.7-6.7c-37.2-37.1-35.4-92 6.6-126.8 33.2 27.5 41.5 67.6 25.3 101.6 11.2-5.3 23-8 34.9-8 24.1 0 48.3 11.1 66.7 33.3-18.3 22.1-42.3 33.1-66.2 33.1z\"]\n};\nvar faCars = {\n prefix: 'fal',\n iconName: 'cars',\n icon: [640, 512, [], \"f85b\", \"M241.85 256H46.22A14.24 14.24 0 0 1 32 241.78v-55.11A42.72 42.72 0 0 1 74.67 144h266.66c.29 0 .53.16.81.16.65 0 1.27-.16 1.93-.16h58.14a75.19 75.19 0 0 0-30.81-25.56l-15.88-68.83A63.71 63.71 0 0 0 293.16 0H120.07a63.7 63.7 0 0 0-62.36 49.61l-16.28 70.55C17 132.44 0 157.49 0 186.67v55.11a46.14 46.14 0 0 0 32 43.75V320a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-32h143.65c4.31-4.29 8.57-8.65 13.64-12.21zM88.89 56.81A32 32 0 0 1 120.07 32h173.09a32 32 0 0 1 31.18 24.81L337.07 112H76.15zM64 196a20 20 0 1 0 20-20 20 20 0 0 0-20 20zm244 156a20 20 0 1 0 20 20 20 20 0 0 0-20-20zm248 0a20 20 0 1 0 20 20 20 20 0 0 0-20-20zm39.4-57.56l-15.88-68.83A63.71 63.71 0 0 0 517.16 176H344.07a63.7 63.7 0 0 0-62.36 49.61l-16.28 70.55C241 308.44 224 333.49 224 362.67v55.11a46.14 46.14 0 0 0 32 43.75V496a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-32h256v32a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-34.47a46.14 46.14 0 0 0 32-43.75v-55.11a74.7 74.7 0 0 0-44.6-68.23zm-282.51-61.63A32 32 0 0 1 344.07 208h173.09a32 32 0 0 1 31.18 24.81L561.07 288H300.15zM608 417.78A14.24 14.24 0 0 1 593.78 432H270.22A14.24 14.24 0 0 1 256 417.78v-55.11A42.72 42.72 0 0 1 298.67 320h266.66A42.72 42.72 0 0 1 608 362.67z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fal',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M551.991 64H129.28l-8.329-44.423C118.822 8.226 108.911 0 97.362 0H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h78.72l69.927 372.946C150.305 416.314 144 431.42 144 448c0 35.346 28.654 64 64 64s64-28.654 64-64a63.681 63.681 0 0 0-8.583-32h145.167a63.681 63.681 0 0 0-8.583 32c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-17.993-7.435-34.24-19.388-45.868C506.022 391.891 496.76 384 485.328 384H189.28l-12-64h331.381c11.368 0 21.177-7.976 23.496-19.105l43.331-208C578.592 77.991 567.215 64 551.991 64zM240 448c0 17.645-14.355 32-32 32s-32-14.355-32-32 14.355-32 32-32 32 14.355 32 32zm224 32c-17.645 0-32-14.355-32-32s14.355-32 32-32 32 14.355 32 32-14.355 32-32 32zm38.156-192H171.28l-36-192h406.876l-40 192zm-106.641-75.515l-51.029 51.029c-4.686 4.686-12.284 4.686-16.971 0l-51.029-51.029c-7.56-7.56-2.206-20.485 8.485-20.485H320v-52c0-6.627 5.373-12 12-12h8c6.627 0 12 5.373 12 12v52h35.029c10.691 0 16.045 12.926 8.486 20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fal',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M551.991 64H129.28l-8.329-44.423C118.822 8.226 108.911 0 97.362 0H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h78.72l69.927 372.946C150.305 416.314 144 431.42 144 448c0 35.346 28.654 64 64 64s64-28.654 64-64a63.681 63.681 0 0 0-8.583-32h145.167a63.681 63.681 0 0 0-8.583 32c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-17.993-7.435-34.24-19.388-45.868C506.022 391.891 496.76 384 485.328 384H189.28l-12-64h331.381c11.368 0 21.177-7.976 23.496-19.105l43.331-208C578.592 77.991 567.215 64 551.991 64zM464 416c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32zm-256 0c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32zm294.156-128H171.28l-36-192h406.876l-40 192zM272 196v-8c0-6.627 5.373-12 12-12h36v-36c0-6.627 5.373-12 12-12h8c6.627 0 12 5.373 12 12v36h36c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-36v36c0 6.627-5.373 12-12 12h-8c-6.627 0-12-5.373-12-12v-36h-36c-6.627 0-12-5.373-12-12z\"]\n};\nvar faCashRegister = {\n prefix: 'fal',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M232 248c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16zm-96 0c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16zm32 48h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm96 0h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm64-48c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16zm183.4 131.5l-25.5-178.3c-3.4-23.6-23.6-41.2-47.5-41.2H192V96h80c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h80v64H73.6c-23.9 0-44.1 17.6-47.5 41.2L.6 379.5c-.4 3-.6 6-.6 9.1V464c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-75.5c0-3-.2-6-.6-9zM96 64V32h160v32H96zM57.8 205.7c1.1-7.8 7.9-13.7 15.8-13.7h364.7c7.9 0 14.7 5.9 15.8 13.7L479.7 384H32.3l25.5-178.3zM480 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-48h448v48zm-72-232h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-48 64h-16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16z\"]\n};\nvar faCassetteTape = {\n prefix: 'fal',\n iconName: 'cassette-tape',\n icon: [512, 512, [], \"f8ab\", \"M464 64H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM123.78 416l24-48h216.44l24 48zM480 400a16 16 0 0 1-16 16h-40l-40-80H128l-40 80H48a16 16 0 0 1-16-16V112a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16zM368 160H144a64 64 0 0 0 0 128h224a64 64 0 0 0 0-128zm-224 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm168.88 0H199.12a62.1 62.1 0 0 0 0-64h113.76a62.1 62.1 0 0 0 0 64zm55.12 0a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faCat = {\n prefix: 'fal',\n iconName: 'cat',\n icon: [576, 512, [], \"f6be\", \"M432 128c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm48 16c0 8.84 7.16 16 16 16s16-7.16 16-16-7.16-16-16-16-16 7.16-16 16zM544.01 0c-9.32 0-18.39 4.08-24.59 11.52L475.68 64h-23.36l-43.74-52.49A32.024 32.024 0 0 0 383.99 0C366.37 0 352 14.3 352 32v128h-16c-103.82 0-194.18 58.53-240 144.27V176c0-44.11-35.88-80-80-80-8.84 0-16 7.16-16 16s7.16 16 16 16c26.47 0 48 21.53 48 48v256c0 44.11 35.88 80 80 80h208c17.66 0 32-14.36 32-32 0-33.05-25.19-60.33-57.38-63.66L416 376.63V480c0 17.64 14.34 32 32 32h32c17.66 0 32-14.36 32-32V260.77c37.7-18.05 64-56.25 64-100.77V32c0-17.7-14.37-32-31.99-32zM480 480h-32V327.38l-144.81 64.37c-3.98-39-30.03-72.23-67.25-84.89-4.33-1.47-8.99 1.34-10.1 5.77l-3.88 15.55c-1.03 4.12 1.41 8.09 5.39 9.57A68.41 68.41 0 0 1 272 401.97V448h48c17.66 0 32 14.36 32 32H144c-26.47 0-48-21.53-48-48 0-132.34 107.66-240 240-240h21.22c13.87 46.1 56.22 80 106.78 80 5.48 0 10.73-.85 16-1.62V480zm64-320c0 44.18-35.82 80-80 80s-80-35.82-80-80V32l53.33 64h53.33L544 32v128z\"]\n};\nvar faCatSpace = {\n prefix: 'fal',\n iconName: 'cat-space',\n icon: [640, 512, [], \"e001\", \"M512,176a16,16,0,1,0-16-16A15.9908,15.9908,0,0,0,512,176ZM576,32.72461V32l-.46094.3457C548.81445,12.30469,515.97461,0,480,0s-68.81445,12.30469-95.53906,32.3457L384,32v.72461C345.35156,61.93164,320,107.82422,320,160c0,.38086.10938.73242.11133,1.11328A272.01015,272.01015,0,0,0,96,304.26562V176A80.08413,80.08413,0,0,0,16,96a16,16,0,0,0,0,32,48.05249,48.05249,0,0,1,48,48V432a80.08413,80.08413,0,0,0,80,80H352a32.03165,32.03165,0,0,0,32-32,64.0956,64.0956,0,0,0-57.375-63.65625L416,376.625V480a32.03165,32.03165,0,0,0,32,32h32a32.03165,32.03165,0,0,0,32-32V316.77539A160.036,160.036,0,0,0,640,160C640,107.82422,614.64844,61.93164,576,32.72461ZM480,32a126.94015,126.94015,0,0,1,68.78906,20.4082L512,80H448L411.21094,52.4082A126.94015,126.94015,0,0,1,480,32Zm64,64v64a64,64,0,0,1-128,0V96l21.334,16h85.332ZM480,480H448V351.99609A15.99929,15.99929,0,0,0,425.5,337.377L303.1875,391.75a100.1169,100.1169,0,0,0-67.25-84.89062,7.96929,7.96929,0,0,0-10.09375,5.76562l-3.875,15.5625a8.16346,8.16346,0,0,0,5.375,9.5625C252,346.875,272,375.625,272,401.90625V448h48a32.03165,32.03165,0,0,1,32,32H144c-26.94531,0-48.13086-22.27344-47.99609-49.21875.63671-127.52734,101.31054-231.53516,227.36914-238.14063A160.02931,160.02931,0,0,0,480,320Zm0-192A128.14414,128.14414,0,0,1,352,160c0-32.16992,12.334-61.25391,32-83.76367V160a96,96,0,0,0,192,0V76.23633C595.666,98.74609,608,127.83008,608,160A128.14414,128.14414,0,0,1,480,288ZM432,160a16,16,0,1,0,16-16A15.9908,15.9908,0,0,0,432,160ZM162.94531,68.76953l39.71094,16.56055,16.5625,39.71094a5.32345,5.32345,0,0,0,9.53906,0l16.5586-39.71094,39.71484-16.56055a5.336,5.336,0,0,0,0-9.541l-39.71484-16.5586L228.75781,2.957a5.325,5.325,0,0,0-9.53906,0l-16.5625,39.71289-39.71094,16.5586a5.336,5.336,0,0,0,0,9.541Z\"]\n};\nvar faCauldron = {\n prefix: 'fal',\n iconName: 'cauldron',\n icon: [448, 512, [], \"f6bf\", \"M272 128c26.51 0 48-21.49 48-48s-21.49-48-48-48-48 21.49-48 48 21.49 48 48 48zm0-64c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm176 120v-16c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h46.73C20.78 237.78 0 293.62 0 345.6c0 39.08 11.82 70.65 32 95.53V496c0 8.84 7.16 16 16 16s16-7.16 16-16v-25.34C104.66 498.69 161.28 512 224 512c62.71 0 119.34-13.31 160-41.33V496c0 8.84 7.16 16 16 16s16-7.16 16-16v-54.87c20.18-24.88 32-56.45 32-95.53 0-51.98-20.78-107.82-54.73-153.6H440c4.42 0 8-3.58 8-8zm-32 161.6C416 466.9 281.73 480 224 480S32 466.9 32 345.6c0-52.25 24.14-110.02 63.64-153.6h256.71C391.86 235.58 416 293.35 416 345.6zM160 64c17.67 0 32-14.33 32-32S177.67 0 160 0s-32 14.33-32 32 14.33 32 32 32z\"]\n};\nvar faCctv = {\n prefix: 'fal',\n iconName: 'cctv',\n icon: [576, 512, [], \"f8ac\", \"M556.34 243.12l-40.43-17.79a44.91 44.91 0 0 0-18.47-69.25L149.8 3.22a45.59 45.59 0 0 0-56.28 19.61L6 176a45.43 45.43 0 0 0 23.53 65l160.15 66.31L148.93 416H32v-56a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h128a16 16 0 0 0 15-10.37l44.25-118 71.59 29.64a45.33 45.33 0 0 0 39.55-4.16l17.84-11.15 141 62c18.6 8.2 37-2.33 43.34-16.85l40.68-92.63a32.83 32.83 0 0 0-16.91-43.36zm-242.86 74.8a13 13 0 0 1-11.06 1.5L41.5 211.35l-.66-.25c-10-3.65-9.9-14.21-7-19.22L121.3 38.71c1.74-3 8-9.16 16.1-6l347.66 152.87a13.39 13.39 0 0 1 2.13 23.77zm188.61 48.69l-121-53.21 105.41-65.89 57.43 26z\"]\n};\nvar faCertificate = {\n prefix: 'fal',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M495.768 272.292l-16.72-16.363 16.719-16.362c30.04-28.786 16.251-79.537-23.83-89.365l-22.768-5.811 6.464-22.698c11.232-39.997-26.115-76.468-65.449-65.451l-22.672 6.461-5.809-22.778C351.926.052 300.89-13.786 272.299 16.142L256 32.934l-16.301-16.791c-28.323-29.647-79.535-16.514-89.405 23.793l-5.807 22.768-22.672-6.461c-39.14-10.992-76.677 25.224-65.449 65.45l6.464 22.698-22.767 5.811c-40.081 9.827-53.87 60.579-23.831 89.365l16.72 16.363-16.719 16.362c-30.04 28.786-16.251 79.537 23.83 89.365l22.768 5.811-6.464 22.698c-11.221 40.203 26.255 76.429 65.449 65.45l22.672-6.461 5.807 22.767c9.93 40.578 60.865 53.609 89.366 23.836L256 479.05l16.254 16.62c28.257 29.9 79.554 16.68 89.452-23.746l5.807-22.767 22.672 6.461c39.472 11.086 76.598-25.509 65.449-65.45l-6.464-22.698 22.767-5.811c40.082-9.829 53.87-60.581 23.831-89.367zm-31.567 58.313l-54.819 13.991 15.453 54.263c4.366 15.605-10.346 30.332-25.953 25.962l-54.245-15.458L330.65 464.2c-3.796 15.884-24.347 21.136-35.285 9.334L256 433.284l-39.366 40.251c-11.051 11.681-31.4 6.919-35.285-9.334l-13.986-54.837-54.245 15.458c-15.603 4.368-30.32-10.354-25.953-25.962l15.453-54.263-54.819-13.991c-15.733-3.762-21.326-23.942-9.331-35.297l40.237-39.379-40.237-39.379c-11.989-11.35-6.407-31.532 9.331-35.296l54.819-13.991L87.165 113c-4.366-15.605 10.346-30.332 25.953-25.962l54.245 15.458 13.986-54.837c3.743-15.664 24.233-21.016 35.285-9.334L256 78.873l39.366-40.548c11.179-11.816 31.583-6.152 35.285 9.334l13.986 54.837 54.245-15.458c15.603-4.368 30.32 10.354 25.953 25.962l-15.453 54.263 54.819 13.991c15.733 3.762 21.326 23.942 9.331 35.296l-40.237 39.379 40.237 39.379c11.989 11.351 6.407 31.533-9.331 35.297z\"]\n};\nvar faChair = {\n prefix: 'fal',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M446.2 341.5l-22.2-64c-4.5-12.9-16.6-21.5-30.2-21.5H384V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h-9.8c-13.6 0-25.8 8.6-30.2 21.5l-22.2 64C-5.4 362.3 10 384 32 384v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384h320v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384c22 0 37.4-21.7 30.2-42.5zM288 37.9c37.2 13.2 64 48.4 64 90.1v128h-64zM192 32h64v224h-64zm-96 96c0-41.7 26.8-76.8 64-90.1V256H96zM32 352l22.2-64h339.6l22.2 64z\"]\n};\nvar faChairOffice = {\n prefix: 'fal',\n iconName: 'chair-office',\n icon: [384, 512, [], \"f6c1\", \"M32 240v-96c0-8.84-7.16-16-16-16s-16 7.16-16 16v96c0 8.84 7.16 16 16 16s16-7.16 16-16zm314.49 47.03c-6.39-10.63-15.74-18.67-26.49-24.02V64c0-35.35-28.65-64-64-64H128C92.65 0 64 28.65 64 64v199.01c-10.75 5.35-20.1 13.39-26.49 24.02l-14.57 24.24C3.71 343.26 26.75 384 64.07 384H176v33.22c-35.61 5.41-65 28.54-77.85 59.63-6.41 15.51 2.41 35.14 15.02 35.14h157.66c12.61 0 21.44-19.63 15.02-35.14-12.85-31.08-42.24-54.22-77.85-59.63V384h111.93c37.33 0 60.37-40.74 41.14-72.73l-14.58-24.24zM96 64c0-17.64 14.36-32 32-32h128c17.64 0 32 14.36 32 32v192H96V64zm155.6 416H132.4c12.18-19.47 34.96-32 59.6-32s47.42 12.53 59.6 32zm82.25-136.12c-1.38 2.44-5.5 8.12-13.93 8.12H64.07c-8.42 0-12.54-5.68-13.93-8.12-1.38-2.44-4.13-8.9.21-16.12l14.57-24.24C70.69 293.95 81.19 288 92.36 288h199.28c11.17 0 21.67 5.95 27.43 15.52l14.57 24.24c4.34 7.21 1.59 13.68.21 16.12zM368 128c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16s16-7.16 16-16v-96c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboard = {\n prefix: 'fal',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M632 448h-24V64c0-17.67-14.33-32-32-32H64c-17.67 0-32 14.33-32 32v384H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-344 0v-64h192v64H288zm224 0v-64c0-17.67-14.33-32-32-32H288c-17.67 0-32 14.33-32 32v64H64V64h512v384h-64z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fal',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M608 0H192c-17.67 0-32 14.33-32 32v96c-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-41.74-26.8-76.9-64-90.12V32h416v352h-64v-64c0-17.67-14.33-32-32-32H384c-17.67 0-32 14.33-32 32v64h-46.66c-.59-.94-1.03-1.96-1.65-2.88-17.25-25.62-46.67-39.11-76.9-39.11C199 342.02 192.02 352 160 352c-31.97 0-38.95-9.98-66.79-9.98-30.23 0-59.65 13.48-76.9 39.11C6.01 396.42 0 414.84 0 434.67V472c0 22.09 17.91 40 40 40h240c22.09 0 40-17.91 40-40v-37.33c0-6.41-.84-12.6-2.04-18.67H608c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zM224 224c0 35.29-28.71 64-64 64s-64-28.71-64-64 28.71-64 64-64 64 28.71 64 64zm64 248c0 4.41-3.59 8-8 8H40c-4.41 0-8-3.59-8-8v-37.33c0-12.79 3.75-25.13 10.85-35.67 10.53-15.64 29.35-24.98 50.36-24.98 21.8 0 29.99 9.98 66.79 9.98 36.79 0 45.01-9.98 66.79-9.98 21 0 39.83 9.34 50.36 24.98 7.1 10.54 10.85 22.88 10.85 35.67V472zm224-88H384v-64h128v64z\"]\n};\nvar faChargingStation = {\n prefix: 'fal',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M560 128h-16V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v48c0 38.7 27.48 70.97 64 78.39V384c0 17.64-14.34 32-32 32s-32-14.36-32-32v-48c0-44.11-35.88-80-80-80h-16V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v416H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h336c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-24V288h16c26.47 0 48 21.53 48 48v48c0 35.3 28.72 64 64 64s64-28.7 64-64V270.39c36.52-7.41 64-39.69 64-78.39v-48c0-8.84-7.16-16-16-16zM288 480H64V64c0-17.64 14.36-32 32-32h160c17.64 0 32 14.36 32 32v416zm256-288c0 26.47-21.53 48-48 48s-48-21.53-48-48v-32h96v32zm-304-16h-16.91l15.88-42.38C242.9 123.13 235.13 112 224 112h-80c-6.53 0-12.44 3.98-14.84 10.06l-32 80C92.94 212.59 100.72 224 112 224h19.5l-19.03 76.12c-3.89 15.5 15.22 26.76 26.84 15.19l112-112C261.35 193.24 254.24 176 240 176zm-82.47 75.84l10-39.97C170.06 201.7 162.35 192 152 192h-16.38l19.22-48h46.06l-15.88 42.38c-3.28 8.75 1.46 21.62 16.34 21.62l-43.83 43.84z\"]\n};\nvar faChartArea = {\n prefix: 'fal',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 416c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v340h468zM372 162l-84 54-86.5-84.5c-5.1-5.1-13.4-4.6-17.9 1L64 288v96h416l-90.3-216.7c-3-6.9-11.5-9.4-17.7-5.3zM96 299.2l98.7-131.3 89.3 89.3 85.8-57.2 61.7 152H96v-52.8z\"]\n};\nvar faChartBar = {\n prefix: 'fal',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M424 352h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8zm-96 0h16c4.4 0 8-3.6 8-8V200c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm-192 0h16c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v208c0 4.4 3.6 8 8 8zm272 64H32V72c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v360c0 8.84 7.16 16 16 16h488c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faChartLine = {\n prefix: 'fal',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M504 416H32V72c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v360c0 8.84 7.16 16 16 16h488c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM98.34 263.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l72.69-72.01 84.69 84.69c6.25 6.25 16.38 6.25 22.63 0l93.53-93.53 44.04 44.04c4.95 4.95 11.03 7.16 17 7.16 12.48 0 24.46-9.7 24.46-24.34V112.19c0-8.94-7.25-16.19-16.19-16.19H344.34c-21.64 0-32.47 26.16-17.17 41.46l44.71 44.71-82.22 82.22-84.63-84.63c-6.23-6.23-16.32-6.25-22.57-.05l-84.12 83.32zM362.96 128H448v85.04L362.96 128z\"]\n};\nvar faChartLineDown = {\n prefix: 'fal',\n iconName: 'chart-line-down',\n icon: [512, 512, [], \"f64d\", \"M504 416H32V72c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v360c0 8.84 7.16 16 16 16h488c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM182.45 236.29c6.26 6.2 16.35 6.18 22.57-.05l84.63-84.63 82.22 82.22-44.71 44.71c-15.3 15.3-4.46 41.46 17.17 41.46H463.8c8.94 0 16.19-7.25 16.19-16.19V184.34c0-14.64-11.98-24.34-24.46-24.34-5.97 0-12.05 2.21-17 7.16L394.5 211.2l-93.53-93.53c-6.25-6.25-16.38-6.25-22.63 0l-84.69 84.69-72.69-72.01c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l84.11 83.32zM448 202.96V288h-85.04L448 202.96z\"]\n};\nvar faChartNetwork = {\n prefix: 'fal',\n iconName: 'chart-network',\n icon: [640, 512, [], \"f78a\", \"M513.6 202.8l-19.2-25.6-48 36 19.2 25.6 48-36zM576 192c13.3 0 25.6-4 35.8-10.9 6.8-4.6 12.7-10.5 17.3-17.3C636 153.6 640 141.3 640 128c0-13.3-4-25.6-10.9-35.8-2.3-3.4-4.9-6.6-7.8-9.5-2.9-2.9-6.1-5.5-9.5-7.8C601.6 68 589.3 64 576 64s-25.6 4-35.8 10.9c-6.8 4.6-12.7 10.5-17.3 17.3C516 102.4 512 114.7 512 128c0 35.3 28.7 64 64 64zm0-96c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zM99.8 250.9C89.6 244 77.3 240 64 240s-25.6 4-35.8 10.9c-6.8 4.6-12.7 10.5-17.3 17.3C4 278.4 0 290.7 0 304c0 35.3 28.7 64 64 64s64-28.7 64-64c0-13.3-4-25.6-10.9-35.8-4.6-6.8-10.5-12.7-17.3-17.3zM64 336c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm88-16h48v-32h-48v32zm469.3 82.7c-2.9-2.9-6.1-5.5-9.5-7.8C601.6 388 589.3 384 576 384s-25.6 4-35.8 10.9c-3.3 2.2-6.3 4.7-9.1 7.5l-91.8-55.1c5.6-13.3 8.7-28 8.7-43.3 0-61.9-50.1-112-112-112-11.3 0-21.9 2.2-32.2 5.2l-39.3-84.1C278.8 101.4 288 83.9 288 64c0-13.3-4-25.6-10.9-35.8-4.6-6.8-10.5-12.7-17.3-17.3C249.6 4 237.3 0 224 0s-25.6 4-35.8 10.9c-6.8 4.6-12.7 10.5-17.3 17.3C164 38.4 160 50.7 160 64c0 35.3 28.7 64 64 64 4 0 7.9-.5 11.7-1.2l39 83.6c-30.5 20-50.7 54.4-50.7 93.6 0 61.9 50.1 112 112 112 35 0 65.8-16.4 86.4-41.5l92.4 55.4c-1.7 5.8-2.7 11.8-2.7 18.1 0 35.3 28.7 64 64 64 13.3 0 25.6-4 35.8-10.9 6.8-4.6 12.7-10.5 17.3-17.3C636 473.6 640 461.3 640 448c0-13.3-4-25.6-10.9-35.8-2.3-3.4-5-6.6-7.8-9.5zM224 96c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm112 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm240 96c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faChartPie = {\n prefix: 'fal',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03a16.51 16.51 0 0 0 11.62 4.81c3.82 0 7.62-1.35 10.57-4.13 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-67.91 124.12L367.76 320h140.88c-8.12 34.16-24.96 66-48.76 92.12zM224 288V50.71c0-8.83-7.18-16.21-15.74-16.21-.69 0-1.4.05-2.11.15C86.99 51.49-4.1 155.6.14 280.37 4.47 407.53 113.18 512 240.13 512c.98 0 1.93-.01 2.91-.02 50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288zm18.63 191.98l-2.51.02c-109.04 0-204.3-91.92-208-200.72C28.72 179.15 96.33 92.25 192 69.83v231.42l9.37 9.37 141.84 141.84c-30.56 17.62-64.96 27.08-100.58 27.52zM511.96 223.2C503.72 103.74 408.26 8.28 288.8.04c-.35-.03-.7-.04-1.04-.04C279.1 0 272 7.45 272 16.23V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM304 208V33.9c89.25 13.81 160.28 84.85 174.1 174.1H304z\"]\n};\nvar faChartPieAlt = {\n prefix: 'fal',\n iconName: 'chart-pie-alt',\n icon: [512, 512, [], \"f64e\", \"M461.29 288H224V50.71c0-8.83-7.18-16.21-15.74-16.21-.69 0-1.4.05-2.11.15C87.08 51.47-3.96 155.43.13 280.07 4.2 404.1 107.91 507.8 231.93 511.87c2.69.09 5.39.13 8.07.13 121.04 0 220.89-89.66 237.35-206.16 1.33-9.45-6.52-17.84-16.06-17.84zM240 480c-2.33 0-4.68-.04-7.02-.12-107.24-3.52-197.35-93.63-200.87-200.87C28.84 179.02 96.45 92.23 192 69.83V320h250.15C420.27 412.43 336.49 480 240 480zM288.8.04c-.35-.03-.7-.04-1.04-.04C279.1 0 272 7.44 272 16.23V240h223.77c9.14 0 16.82-7.69 16.2-16.8C503.72 103.74 408.26 8.28 288.8.04zM304 208V33.9c89.25 13.81 160.28 84.85 174.1 174.1H304z\"]\n};\nvar faChartScatter = {\n prefix: 'fal',\n iconName: 'chart-scatter',\n icon: [512, 512, [], \"f7ee\", \"M504 416H32V72a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v360a16 16 0 0 0 16 16h488a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM160 312a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm256-160a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm-224 0a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm192 160a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm-96-64a24 24 0 1 0-24-24 24 24 0 0 0 24 24z\"]\n};\nvar faCheck = {\n prefix: 'fal',\n iconName: 'check',\n icon: [448, 512, [], \"f00c\", \"M413.505 91.951L133.49 371.966l-98.995-98.995c-4.686-4.686-12.284-4.686-16.971 0L6.211 284.284c-4.686 4.686-4.686 12.284 0 16.971l118.794 118.794c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.686-4.686-12.284-4.686-16.97 0z\"]\n};\nvar faCheckCircle = {\n prefix: 'fal',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 464c-118.664 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.664 0 216 96.055 216 216 0 118.663-96.055 216-216 216zm141.63-274.961L217.15 376.071c-4.705 4.667-12.303 4.637-16.97-.068l-85.878-86.572c-4.667-4.705-4.637-12.303.068-16.97l8.52-8.451c4.705-4.667 12.303-4.637 16.97.068l68.976 69.533 163.441-162.13c4.705-4.667 12.303-4.637 16.97.068l8.451 8.52c4.668 4.705 4.637 12.303-.068 16.97z\"]\n};\nvar faCheckDouble = {\n prefix: 'fal',\n iconName: 'check-double',\n icon: [448, 512, [], \"f560\", \"M444.96 159l-12.16-11c-2.03-2.67-4.72-4-8.11-4s-6.08 1.33-8.11 4L131.77 428 31.42 329c-2.03-2.67-4.72-4-8.11-4s-6.08 1.33-8.11 4L3.04 340C1.01 342.67 0 345.67 0 349s1.01 6 3.04 8l120.62 119c2.69 2.67 5.57 4 8.62 4s5.92-1.33 8.62-4l304.07-300c2.03-2 3.04-4.67 3.04-8s-1.02-6.33-3.05-9zM127.17 284.03c2.65 2.65 5.48 3.97 8.47 3.97s5.82-1.32 8.47-3.97L365.01 63.8c1.99-2 2.99-4.65 2.99-7.96s-1-6.29-2.99-8.94l-11.96-10.93c-1.99-2.65-4.64-3.97-7.97-3.97s-5.98 1.32-7.97 3.97L135.14 236.34l-72.25-72.03c-1.99-2.65-4.64-3.97-7.97-3.97s-5.98 1.32-7.97 3.97l-11.96 10.93C33 177.89 32 180.87 32 184.18s1 5.96 2.99 7.95l92.18 91.9z\"]\n};\nvar faCheckSquare = {\n prefix: 'fal',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 32c8.823 0 16 7.178 16 16v352c0 8.822-7.177 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352m-34.301 98.293l-8.451-8.52c-4.667-4.705-12.265-4.736-16.97-.068l-163.441 162.13-68.976-69.533c-4.667-4.705-12.265-4.736-16.97-.068l-8.52 8.451c-4.705 4.667-4.736 12.265-.068 16.97l85.878 86.572c4.667 4.705 12.265 4.736 16.97.068l180.48-179.032c4.704-4.667 4.735-12.265.068-16.97z\"]\n};\nvar faCheese = {\n prefix: 'fal',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M299.83 32h-1.49a32.27 32.27 0 0 0-19.64 7L0 255.87V448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V255.87C512 136.05 418 38.2 299.83 32zM480 448H32V287.89h448zM52.13 255.87L298.72 64C400.42 69.62 480 153.78 480 255.87z\"]\n};\nvar faCheeseSwiss = {\n prefix: 'fal',\n iconName: 'cheese-swiss',\n icon: [512, 512, [], \"f7f0\", \"M176 319.9a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16.04zM299.83 32h-1.49a32.27 32.27 0 0 0-19.64 7L0 255.87V448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V255.87C512 136.05 418 38.2 299.83 32zM240 127.79a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM480 448H32V287.89h290.94a47.72 47.72 0 0 0 90.12 0H480zM352 271.88a16 16 0 1 1 16 16 16 16 0 0 1-16-16zm61.06-16a47.72 47.72 0 0 0-90.12 0H52.13l140.17-109a47.89 47.89 0 1 0 62.38-48.58l44-34.26C400.42 69.62 480 153.78 480 255.87z\"]\n};\nvar faCheeseburger = {\n prefix: 'fal',\n iconName: 'cheeseburger',\n icon: [512, 512, [], \"f7f1\", \"M304 144a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm208 176a63.81 63.81 0 0 0-30.2-54.1c13.5-20.9 18.5-52.9 6.3-79.1C448 100.3 359.5 32.1 256 32c-103.5.1-192 68.3-232.2 154.8-12.5 26.8-9.1 59.9 3.7 80.8a63.46 63.46 0 0 0-16.3 88.3 65.07 65.07 0 0 0 10.1 11.5c-3.1 4.9-5.3 10.4-5.3 16.6v32a64.06 64.06 0 0 0 64 64h352a64.06 64.06 0 0 0 64-64v-32c0-6.2-2.2-11.7-5.3-16.6A64.06 64.06 0 0 0 512 320zM52.81 200.3C90.71 118.9 172.31 64.1 256 64c83.69.1 165.39 54.9 203.19 136.3 5.8 12.5 5.2 29.5-1.4 43.5a5.94 5.94 0 0 1-.4.8A21 21 0 0 1 438.5 256H70.11c-6.1 0-12.2-2.4-16-7.2a14.75 14.75 0 0 1-2.5-4.4c-5.2-13.9-4.8-31.2 1.2-44.1zM464 416a32 32 0 0 1-32 32H80a32 32 0 0 1-32-32v-32h416zm-16-64H64a32 32 0 1 1 0-64h160l96 48 96-48h32a32 32 0 0 1 0 64zm-64-144a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-256 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm80-64a16 16 0 1 0-16-16 16 16 0 0 0 16 16z\"]\n};\nvar faChess = {\n prefix: 'fal',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M400 320a16 16 0 0 0-32 0v32h32zm103.16 115.57L480 424v-24a16 16 0 0 0-16-16h-1.1l-2.83-82.21 24.6-20.79A32 32 0 0 0 496 256.54V176a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v80.6a32 32 0 0 0 11.35 24.4l24.57 20.76L305.1 384H304a16 16 0 0 0-16 16v24l-23.15 11.57a16 16 0 0 0-8.85 14.31 16 16 0 0 0-8.84-14.31L224 424v-24a16 16 0 0 0-16-16h-6.4c-6-30.16-9.6-60.75-9.6-91.47V256h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16.9l31.81-84.78a32 32 0 0 0-30-43.22H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a32 32 0 0 0-30 43.25L56.91 224H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v36.53c0 30.71-3.56 61.31-9.6 91.47H48a16 16 0 0 0-16 16v24L8.84 435.57c-4.25 2.13-6.7 6.19-7.81 10.68-.3 1.24-1 2.33-1 3.64V496a16 16 0 0 0 16 16H240a16 16 0 0 0 16-16 16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-46.12a16 16 0 0 0-8.84-14.31zM55.09 128h145.85l-36 96H91.09zm113.79 256H87.12A499.15 499.15 0 0 0 96 292.53V256h64v36.53a499.15 499.15 0 0 0 8.88 91.47zM224 480H32v-20.22l32-16V416h128v27.78l32 16zm80-223.4V192h32v32h32v-32h32v32h32v-32h32v64.54l-24.6 20.82-11.84 10 .53 15.5 2.79 81.14h-93.76l2.79-81.1.53-15.52-11.86-10zM480 480H288v-20.22l32-16V416h128v27.78l32 16z\"]\n};\nvar faChessBishop = {\n prefix: 'fal',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M64 400v48h32v-71.41l-22.31-7.09C53.54 363.1 32 342.52 32 304c0-58.29 54.72-162.67 99.6-208h56.8c19.29 19.48 40.19 50 58 83l-84 84a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.32 0l76.43-76.44C277.09 243.77 288 278.35 288 304c0 38.52-21.54 59.1-41.69 65.5L224 376.59V448h32v-48c33.86-10.76 64-44.36 64-96 0-72.64-66.43-194.57-119-240h-82C66.43 109.43 0 231.36 0 304c0 51.64 30.14 85.24 64 96zm248 80H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h304a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM112 32h96a16 16 0 0 0 0-32h-96a16 16 0 0 0 0 32z\"]\n};\nvar faChessBishopAlt = {\n prefix: 'fal',\n iconName: 'chess-bishop-alt',\n icon: [256, 512, [], \"f43b\", \"M247.16 435.58L224 424v-16a24 24 0 0 0-24-24h1.41a519 519 0 0 1-9.31-96H216a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-9.21c19.63-21.36 17.06-51.75 17.06-52.61 0-49.4-36.44-117.48-70.59-139.39h-1.1a16 16 0 0 0 0-32h-48a16 16 0 0 0 0 32h-1.07c-34.3 22-70.74 90.34-70.74 139.48 0 .7-2.55 31.09 17.1 52.52H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h23.9a519 519 0 0 1-9.31 96H56a24 24 0 0 0-24 24v16L8.85 435.58A16 16 0 0 0 0 449.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-46.11a16 16 0 0 0-8.84-14.31zm-119-346.69c6.59 0 21.69 11.08 37.59 37.14l-44.68 46.34a6.46 6.46 0 0 0 0 8.82l14.09 14.61a5.92 5.92 0 0 0 8.5 0l37.5-38.89c6.69 16.92 10.69 33.61 10.69 46.57 0 34.42-19.1 36.82-31.69 40.55v12h-64V244c-12.41-3.63-31.69-6-31.69-40.55 0-45.69 43.69-114.56 63.69-114.56zM168.84 384H87.16a552.7 552.7 0 0 0 8.75-96h64.18a552.7 552.7 0 0 0 8.75 96zM224 480H32v-20.22l32-16V416h128v27.78l32 16z\"]\n};\nvar faChessBoard = {\n prefix: 'fal',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M320.07 448h64v-64h-64zm-127.95 0h64v-64h-64zM64.18 256.1v64h64v-64zM192.12 64.17h-64v64h64zM448 256.1v-64h-64v64zm0-191.93h-64v64h64zm0 319.88v-64h-64v64zM320 64.17h-64v64h64zm-255.89 64v64h64v-64zm255.89 128v-64h-64v64zm-64-64v-64h-64v64zm-64 0h-64v64h64zM128 384.1H64v64h64zm64-64h-64v64h64zm192.05-127.98v-64h-64v64zm-127.95 64h-64v64h64zm0 64v64h64v-64zm64 0h64v-64h-64zM480 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm0 480H32V32h448z\"]\n};\nvar faChessClock = {\n prefix: 'fal',\n iconName: 'chess-clock',\n icon: [640, 512, [], \"f43d\", \"M464 416a112 112 0 1 0-112-112 112 112 0 0 0 112 112zm0-192a79.42 79.42 0 0 1 43.85 13.22l-56.52 56.53a12 12 0 0 0 0 17l5.65 5.65a12 12 0 0 0 17 0l56.6-56.6A79.93 79.93 0 1 1 464 224zM176 416A112 112 0 1 0 64 304a112 112 0 0 0 112 112zm-16-190.37V308a12 12 0 0 0 12 12h8a12 12 0 0 0 12-12v-82.37a80 80 0 1 1-32 0zM608 128h-72a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8H192V64h56a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v64H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zm0 320H32V160h576z\"]\n};\nvar faChessClockAlt = {\n prefix: 'fal',\n iconName: 'chess-clock-alt',\n icon: [640, 512, [], \"f43e\", \"M464 416a112 112 0 1 0-112-112 112 112 0 0 0 112 112zm-16-190.37V308a12 12 0 0 0 12 12h8a12 12 0 0 0 12-12v-82.37a80 80 0 1 1-32 0zM608 128H480V64h56a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v64H248a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zm0 320H32V160h576zm-432-32A112 112 0 1 0 64 304a112 112 0 0 0 112 112zm0-192a79.42 79.42 0 0 1 43.85 13.22l-56.52 56.53a12 12 0 0 0 0 17l5.65 5.65a12 12 0 0 0 17 0l56.6-56.6A79.93 79.93 0 1 1 176 224z\"]\n};\nvar faChessKing = {\n prefix: 'fal',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M408 480H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm31.34-301.88A44 44 0 0 0 403.51 160H240V96h56a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8h-56V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v64H44.46a44.46 44.46 0 0 0-42.34 58L79 448h33.75L32.59 208.16A12.42 12.42 0 0 1 44.46 192h359.05c10.57 0 13.67 10.38 12 15.88L335.2 448H369l77-230.28a44.07 44.07 0 0 0-6.68-39.6z\"]\n};\nvar faChessKingAlt = {\n prefix: 'fal',\n iconName: 'chess-king-alt',\n icon: [320, 512, [], \"f440\", \"M295.16 435.58L272 424v-16a24 24 0 0 0-24-24h-13.09A469.21 469.21 0 0 1 224 284.53V256h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16.9l31.81-84.78a32 32 0 0 0-30-43.22H176V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24h-24a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H87.09a32 32 0 0 0-30 43.25L88.91 224H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v28.53A469.21 469.21 0 0 1 85.09 384H72a24 24 0 0 0-24 24v16l-23.15 11.58A16 16 0 0 0 16 449.89V496a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-46.11a16 16 0 0 0-8.84-14.31zM87.09 128h145.85l-36 96h-73.85zM128 284.53V256h64v28.53A500.84 500.84 0 0 0 202.1 384h-84.2a500.84 500.84 0 0 0 10.1-99.47zM272 480H48v-20.22l32-16V416h160v27.78l32 16z\"]\n};\nvar faChessKnight = {\n prefix: 'fal',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M35.48 301.64c38 16.9 36.79 16.47 40.39 17.68A100.72 100.72 0 0 0 32 402.82V448h32v-45.18a69.35 69.35 0 0 1 38.31-62L144.62 316a41.62 41.62 0 0 0 23-37.21v-62.25l-16.16 9.59a20.8 20.8 0 0 0-10.87 13.56l-8 26.57A27.75 27.75 0 0 1 116.32 284l-11.08 4.43a27.68 27.68 0 0 1-21.56-.41l-35.2-15.62A27.74 27.74 0 0 1 32 247.05v-119c0-10.4 6.44-15.06 13.86-22.49L33.55 81c-4.67-9.33 1.63-17 8.85-17H128c106 0 192 86 192 192v192h32V256c0-123.51-100.49-224-224-224H42.4A42.45 42.45 0 0 0 0 74.4a46.92 46.92 0 0 0 4.94 20.9l2.69 5.39A52.56 52.56 0 0 0 0 128.09v119a59.8 59.8 0 0 0 35.48 54.55zM64 164a20 20 0 1 0 20-20 20 20 0 0 0-20 20zm312 316H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faChessKnightAlt = {\n prefix: 'fal',\n iconName: 'chess-knight-alt',\n icon: [320, 512, [], \"f442\", \"M91.73 170.67a14.87 14.87 0 1 0-14.87 14.93 14.91 14.91 0 0 0 14.87-14.93zm219.43 264.91L288 424v-16c0-11.71-8.54-21-19.63-23.12l.88-.88A63.58 63.58 0 0 0 288 338.74V225.88C288 136.62 215.38 64 126.12 64H40a40 40 0 0 0-40 40 43.55 43.55 0 0 0 4.54 19.3l.36.74A47.92 47.92 0 0 0 0 145.22v83.37a53.41 53.41 0 0 0 31.61 48.72l26.68 11.91c-20.56 22.1-35.67 54.56-18.69 101.42A23.81 23.81 0 0 0 32 408v16L8.85 435.58A16 16 0 0 0 0 449.89V496a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-46.11a16 16 0 0 0-8.84-14.31zM44.65 248.09A21.36 21.36 0 0 1 32 228.59v-83.37a16 16 0 0 1 4.66-11.29l6-6L33.19 109a11.29 11.29 0 0 1-1.19-5 8 8 0 0 1 8-8h86.16C197.55 96 256 154.45 256 225.88v112.86a32 32 0 0 1-9.37 22.63L224 384H71.05c-35.32-86.63 73.62-95.47 73.62-133.8v-42.73l-21.26 5.06a15.93 15.93 0 0 0-8.32 10.47L109 243.35A21.26 21.26 0 0 1 96.53 257l-8.48 3.4a21.09 21.09 0 0 1-16.5-.31zM288 480H32v-20.22l14.31-7.16L64 443.78V416h192v27.78l17.69 8.84 14.31 7.16z\"]\n};\nvar faChessPawn = {\n prefix: 'fal',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M312 480H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h304a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM56 256h40v32c0 73.62-11.36 128.34-33 160h36.8c18.66-37.54 28.2-91 28.2-160v-32h64v32c0 69 9.54 122.46 28.2 160H257c-21.6-31.66-33-86.38-33-160v-32h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-25.78a112 112 0 1 0-156.44 0H56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm24-112a80 80 0 1 1 80 80 80.09 80.09 0 0 1-80-80z\"]\n};\nvar faChessPawnAlt = {\n prefix: 'fal',\n iconName: 'chess-pawn-alt',\n icon: [256, 512, [], \"f444\", \"M247.16 435.58L224 424v-16a24 24 0 0 0-24-24h1.41a519 519 0 0 1-9.31-96H216a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16.91A95.86 95.86 0 1 0 32 192a95.3 95.3 0 0 0 24.91 64H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h23.9a519 519 0 0 1-9.31 96H56a24 24 0 0 0-24 24v16L8.85 435.58A16 16 0 0 0 0 449.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-46.11a16 16 0 0 0-8.84-14.31zM160.09 288a552.7 552.7 0 0 0 8.75 96H87.16a552.7 552.7 0 0 0 8.75-96zM128 128a64 64 0 1 1-64 64 64.07 64.07 0 0 1 64-64zm96 352H32v-20.22l32-16V416h128v27.78l32 16z\"]\n};\nvar faChessQueen = {\n prefix: 'fal',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm0-80a24 24 0 1 1-24 24 24 24 0 0 1 24-24zm184 448H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm64.87-295.84l-28.51-15.92a15.09 15.09 0 0 0-8.45-2.59 17.59 17.59 0 0 0-13.84 7.27A47.48 47.48 0 0 1 416 192a50.79 50.79 0 0 1-9.16-.85C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49-1.12.07-2.23.11-3.33.11a47.47 47.47 0 0 1-38.21-19.26 17.17 17.17 0 0 0-13.61-7.13 15.16 15.16 0 0 0-8.48 2.59l-28.57 16a16 16 0 0 0-5.44 20.47L117.45 448h35.43l-116-243.82 4.12-2.27A78.8 78.8 0 0 0 96 224c1.81 0 3.65-.06 5.49-.19 35.63-2.41 64.68-29.1 72.46-63.81h8.73a80 80 0 0 0 146.64 0H338c6.95 31.66 31.32 56.74 63 62.61a82.66 82.66 0 0 0 15 1.39 78.81 78.81 0 0 0 55-22.09l4.07 2.27L359.11 448h35.44l115.76-243.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessQueenAlt = {\n prefix: 'fal',\n iconName: 'chess-queen-alt',\n icon: [256, 512, [], \"f446\", \"M128 48a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm119.16 387.58L224 424v-16a23.72 23.72 0 0 0-20.95-23.38A469.21 469.21 0 0 1 192 284.53V256h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-22.39l50.93-124.23a7.46 7.46 0 0 0-2.54-9.55l-11.16-7.44a7.06 7.06 0 0 0-3.94-1.21 8.18 8.18 0 0 0-6.45 3.4 22.19 22.19 0 0 1-17.78 8.9 23.34 23.34 0 0 1-4.27-.4c-10.8-2-18.13-12.23-18.13-23.21A6.26 6.26 0 0 0 174 64h-18.07a6 6 0 0 0-6 4.62 22.41 22.41 0 0 1-43.86 0 6 6 0 0 0-6-4.62H82a6.26 6.26 0 0 0-6.26 6.26c0 12-8.89 22.75-20.85 23.56-.52 0-1 .05-1.55.05a22.17 22.17 0 0 1-17.84-9 8 8 0 0 0-6.35-3.33 7.13 7.13 0 0 0-4 1.21L14 90.22a7.46 7.46 0 0 0-2.53 9.55L62.39 224H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v28.53a469.21 469.21 0 0 1-11 100.09A23.72 23.72 0 0 0 32 408v16L8.85 435.58A16 16 0 0 0 0 449.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-46.11a16 16 0 0 0-8.84-14.31zM56.7 125.77h.33a53.69 53.69 0 0 0 37.35-19 54.14 54.14 0 0 0 67.14.07 53.35 53.35 0 0 0 31.08 18.17 55.71 55.71 0 0 0 6.7.83L159 224H97zM170.1 384H85.9A500.84 500.84 0 0 0 96 284.53V256h64v28.53A500.84 500.84 0 0 0 170.1 384zm53.9 96H32v-20.22l32-16V416h128v27.78l32 16z\"]\n};\nvar faChessRook = {\n prefix: 'fal',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M376 480H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM352 32H32A32 32 0 0 0 0 64v167.34l56 48C56 322 57.57 372.73 45.35 448h32.47C89.44 373.48 88 326.59 88 264.66l-56-48V64h80l.09 64h32V64H240v64h32V64h80v152.66l-56 48c0 62.63-1.41 109 10.18 183.34h32.47C326.43 372.77 328 322.05 328 279.34l56-48V64a32 32 0 0 0-32-32zM192 192a48.05 48.05 0 0 0-48 48v80h96v-80a48.05 48.05 0 0 0-48-48zm16 96h-32v-48a16 16 0 0 1 32 0z\"]\n};\nvar faChessRookAlt = {\n prefix: 'fal',\n iconName: 'chess-rook-alt',\n icon: [320, 512, [], \"f448\", \"M311.16 427.58L288 416v-16a16 16 0 0 0-16-16h-.39l-7.27-145.31 30.42-30.78a32 32 0 0 0 9.24-22.49V88a24.07 24.07 0 0 0-24-24H40a24.07 24.07 0 0 0-24 24v97.52A32 32 0 0 0 25.27 208l30.39 30.68L48.39 384H48a16 16 0 0 0-16 16v16L8.85 427.58A16 16 0 0 0 0 441.89V496a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-54.11a16 16 0 0 0-8.84-14.31zM48 185.5V96h48v48h32V96h64v48h32V96h48v89.44l-40.34 40.75L239.59 384H80.41l7.93-157.78zM288 480H32v-28.22l14.31-7.16L64 435.78V416h192v19.78l17.69 8.84 14.31 7.16zM183.59 231.59a23.59 23.59 0 0 0-47.18 0v47.18h47.18z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fal',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216zm-207.5 86.6l115-115.1c4.7-4.7 4.7-12.3 0-17l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L256 303l-99.5-99.5c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l115 115.1c4.8 4.6 12.4 4.6 17.1-.1z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fal',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zM256 472c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216zm-86.6-224.5l115.1-115c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L209 256l99.5 99.5c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0l-115.1-115c-4.6-4.8-4.6-12.4.1-17.1z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fal',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zM256 40c118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216zm86.6 224.5l-115.1 115c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L303 256l-99.5-99.5c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l115.1 115c4.6 4.8 4.6 12.4-.1 17.1z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fal',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zM40 256c0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216zm224.5-86.6l115 115.1c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L256 209l-99.5 99.5c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17l115-115.1c4.8-4.6 12.4-4.6 17.1.1z\"]\n};\nvar faChevronDoubleDown = {\n prefix: 'fal',\n iconName: 'chevron-double-down',\n icon: [448, 512, [], \"f322\", \"M443.5 98.5l-211 211.1c-4.7 4.7-12.3 4.7-17 0L4.5 98.5c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L224 269.9 419.5 74.5c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.6 4.6 4.6 12.2-.1 16.9zm0 111l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L224 397.9 28.5 202.5c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.8 4.8-12.4.1-17.1z\"]\n};\nvar faChevronDoubleLeft = {\n prefix: 'fal',\n iconName: 'chevron-double-left',\n icon: [384, 512, [], \"f323\", \"M349.5 475.5l-211.1-211c-4.7-4.7-4.7-12.3 0-17l211.1-211c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L178.1 256l195.5 195.5c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.6-12.3 4.6-17-.1zm-111 0l7.1-7.1c4.7-4.7 4.7-12.3 0-17L50.1 256 245.5 60.5c4.7-4.7 4.7-12.3 0-17l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0l-211.1 211c-4.7 4.7-4.7 12.3 0 17l211.1 211c4.8 4.8 12.4 4.8 17.1.1z\"]\n};\nvar faChevronDoubleRight = {\n prefix: 'fal',\n iconName: 'chevron-double-right',\n icon: [384, 512, [], \"f324\", \"M34.5 36.5l211.1 211c4.7 4.7 4.7 12.3 0 17l-211.1 211c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L205.9 256 10.5 60.5c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.6-4.6 12.2-4.6 16.9.1zm111 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17L333.9 256 138.5 451.5c-4.7 4.7-4.7 12.3 0 17l7.1 7.1c4.7 4.7 12.3 4.7 17 0l211.1-211c4.7-4.7 4.7-12.3 0-17l-211.1-211c-4.8-4.8-12.4-4.8-17.1-.1z\"]\n};\nvar faChevronDoubleUp = {\n prefix: 'fal',\n iconName: 'chevron-double-up',\n icon: [448, 512, [], \"f325\", \"M4.5 413.5l211-211.1c4.7-4.7 12.3-4.7 17 0l211 211.1c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L224 242.1 28.5 437.5c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.6-4.6-4.6-12.2.1-16.9zm0-111l7.1 7.1c4.7 4.7 12.3 4.7 17 0L224 114.1l195.5 195.5c4.7 4.7 12.3 4.7 17 0l7.1-7.1c4.7-4.7 4.7-12.3 0-17l-211-211.1c-4.7-4.7-12.3-4.7-17 0L4.5 285.5c-4.7 4.7-4.7 12.3 0 17z\"]\n};\nvar faChevronDown = {\n prefix: 'fal',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M443.5 162.6l-7.1-7.1c-4.7-4.7-12.3-4.7-17 0L224 351 28.5 155.5c-4.7-4.7-12.3-4.7-17 0l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l211 211.1c4.7 4.7 12.3 4.7 17 0l211-211.1c4.8-4.7 4.8-12.3.1-17z\"]\n};\nvar faChevronLeft = {\n prefix: 'fal',\n iconName: 'chevron-left',\n icon: [256, 512, [], \"f053\", \"M238.475 475.535l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L50.053 256 245.546 60.506c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0L10.454 247.515c-4.686 4.686-4.686 12.284 0 16.971l211.051 211.05c4.686 4.686 12.284 4.686 16.97-.001z\"]\n};\nvar faChevronRight = {\n prefix: 'fal',\n iconName: 'chevron-right',\n icon: [256, 512, [], \"f054\", \"M17.525 36.465l-7.071 7.07c-4.686 4.686-4.686 12.284 0 16.971L205.947 256 10.454 451.494c-4.686 4.686-4.686 12.284 0 16.971l7.071 7.07c4.686 4.686 12.284 4.686 16.97 0l211.051-211.05c4.686-4.686 4.686-12.284 0-16.971L34.495 36.465c-4.686-4.687-12.284-4.687-16.97 0z\"]\n};\nvar faChevronSquareDown = {\n prefix: 'fal',\n iconName: 'chevron-square-down',\n icon: [448, 512, [], \"f329\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zm-200.5-96.4l-115-115.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L224 296l99.5-99.5c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17l-115 115.1c-4.8 4.5-12.4 4.5-17.1-.1z\"]\n};\nvar faChevronSquareLeft = {\n prefix: 'fal',\n iconName: 'chevron-square-left',\n icon: [448, 512, [], \"f32a\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM48 448c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48zm96.4-200.5l115.1-115c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L184 256l99.5 99.5c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0l-115.1-115c-4.5-4.8-4.5-12.4.1-17.1z\"]\n};\nvar faChevronSquareRight = {\n prefix: 'fal',\n iconName: 'chevron-square-right',\n icon: [448, 512, [], \"f32b\", \"M0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80zm400-16c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352zm-96.4 200.5l-115.1 115c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L264 256l-99.5-99.5c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l115.1 115c4.5 4.8 4.5 12.4-.1 17.1z\"]\n};\nvar faChevronSquareUp = {\n prefix: 'fal',\n iconName: 'chevron-square-up',\n icon: [448, 512, [], \"f32c\", \"M48 480h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48zM32 80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80zm200.5 96.4l115 115.1c4.7 4.7 4.7 12.3 0 17l-7.1 7.1c-4.7 4.7-12.3 4.7-17 0L224 216l-99.5 99.5c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17l115-115.1c4.8-4.5 12.4-4.5 17.1.1z\"]\n};\nvar faChevronUp = {\n prefix: 'fal',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M4.465 366.475l7.07 7.071c4.686 4.686 12.284 4.686 16.971 0L224 178.053l195.494 195.493c4.686 4.686 12.284 4.686 16.971 0l7.07-7.071c4.686-4.686 4.686-12.284 0-16.97l-211.05-211.051c-4.686-4.686-12.284-4.686-16.971 0L4.465 349.505c-4.687 4.686-4.687 12.284 0 16.97z\"]\n};\nvar faChild = {\n prefix: 'fal',\n iconName: 'child',\n icon: [448, 512, [], \"f1ae\", \"M413.287 90.746c-23.71-23.707-63.332-27.212-93.318 2.776C318.651 41.725 276.107 0 224 0c-52.104 0-94.647 41.729-95.969 93.521-30.087-30.087-69.711-26.379-93.316-2.778-24.954 24.956-24.954 65.558-.002 90.511L112 258.511V456c0 30.879 25.122 56 56 56h16c15.654 0 29.828-6.456 40-16.846C234.172 505.544 248.346 512 264 512h16c30.878 0 56-25.121 56-56V258.511l77.286-77.256c24.952-24.954 24.952-65.556.001-90.509zM224 32c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zm166.628 126.628L304 245.256V456c0 13.255-10.745 24-24 24h-16c-13.255 0-24-10.745-24-24V344h-32v112c0 13.255-10.745 24-24 24h-16c-13.255 0-24-10.745-24-24V245.256l-86.628-86.628c-12.496-12.497-12.496-32.759 0-45.256 12.498-12.496 32.757-12.497 45.256 0L181.256 192h85.488l78.628-78.628c12.498-12.496 32.757-12.497 45.256 0 12.496 12.497 12.496 32.759 0 45.256z\"]\n};\nvar faChimney = {\n prefix: 'fal',\n iconName: 'chimney',\n icon: [512, 512, [], \"f78b\", \"M480 0H32C14.3 0 0 14.3 0 32v128c0 17.7 14.3 32 32 32v304c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V192c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32zM64 192h96v128H64V192zm0 288V352h256v128H64zm384 0h-96V352h96v128zm0-160H192V192h256v128zm32-160H32V32h448v128z\"]\n};\nvar faChurch = {\n prefix: 'fal',\n iconName: 'church',\n icon: [576, 512, [], \"f51d\", \"M281.71 320.3c-33.28 3.17-57.71 33.02-57.71 66.45V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V385.8c0-15.95 10.86-30.76 26.59-33.36C302.61 349.15 320 364.58 320 384v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V384c0-37.42-32.12-67.34-70.29-63.7zm276.86 35.69L448 303.26v-29.14c0-11.24-5.9-21.66-15.54-27.44L304 169.6V96h72c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8h-72V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v56h-72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h72v73.6l-128.46 77.08A31.997 31.997 0 0 0 128 274.12v29.15L17.43 355.99C6.96 360.99 0 373.89 0 388.32V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V388.32c0-1.98.45-3.42.8-4.21l95.2-45.4V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V274.12l128-76.8 128 76.8V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V338.71l95.2 45.4c.35.78.8 2.22.8 4.21V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V388.32c0-14.43-6.96-27.33-17.43-32.33z\"]\n};\nvar faCircle = {\n prefix: 'fal',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"]\n};\nvar faCircleNotch = {\n prefix: 'fal',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 24.103v8.169a11.995 11.995 0 0 0 9.698 11.768C396.638 63.425 472 150.461 472 256c0 118.663-96.055 216-216 216-118.663 0-216-96.055-216-216 0-104.534 74.546-192.509 174.297-211.978A11.993 11.993 0 0 0 224 32.253v-8.147c0-7.523-6.845-13.193-14.237-11.798C94.472 34.048 7.364 135.575 8.004 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.789 504 256c0-121.187-86.924-222.067-201.824-243.704C294.807 10.908 288 16.604 288 24.103z\"]\n};\nvar faCity = {\n prefix: 'fal',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M132 368H92c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96H92c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96H92c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm96 192h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm192 96h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12V92c0-6.63-5.38-12-12-12zm128 288h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm0-96h-40c-6.62 0-12 5.37-12 12v40c0 6.63 5.38 12 12 12h40c6.62 0 12-5.37 12-12v-40c0-6.63-5.38-12-12-12zm68-80H512V24c0-13.26-10.75-24-24-24H312c-13.25 0-24 10.74-24 24v72h-64V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v88h-64V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v88H24c-13.25 0-24 10.74-24 24v384c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V128h288V32h160v192h128v280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V216c0-13.26-10.75-24-24-24z\"]\n};\nvar faClarinet = {\n prefix: 'fal',\n iconName: 'clarinet',\n icon: [640, 512, [], \"f8ad\", \"M272 232a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm96 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm96 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm152-120a23.73 23.73 0 0 0-13.28 4l-66 44H480v-32h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H232a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H101.2a31.92 31.92 0 0 0-10.12 1.64l-69.2 23.07A32 32 0 0 0 0 215.06v81.88a32 32 0 0 0 21.88 30.35l69.2 23.07A31.92 31.92 0 0 0 101.2 352h435.53l66 44A24 24 0 0 0 640 376V136a24 24 0 0 0-24-24zm-232 16h64v32h-64zm-96 0h64v32h-64zm320 233.05L546.42 320H101.2L32 296.94v-81.88L101.2 192h445.22L608 151z\"]\n};\nvar faClawMarks = {\n prefix: 'fal',\n iconName: 'claw-marks',\n icon: [512, 512, [], \"f6c2\", \"M509.64 477.53l-1.47-3.12C463.56 378.88 328.12 141.69 34.58 2.4c-10.75-5.11-23.12-1.86-30 7.86-6.94 9.84-5.84 22.69 2.69 31.23l168.44 168.35c.44 1.06.41 4.81.34 10.25v51.89h55.89c3.69 0 7.28 1.5 9.69 3.9l75.08 77.51c2.62 2.64 4.09 6.15 4.09 9.54l-1.12 53.39 53.02-1.14c3.69 0 7.31 1.5 10.06 4.25l87.8 85.37c4.72 4.77 10.84 7.19 17.03 7.19 4.84 0 9.75-1.48 14.06-4.53 9.77-6.85 13.05-19.15 7.99-29.93zm-104.42-80.87c-8.56-8.56-20.4-13.47-32.84-13.47h-.03l-20 .42.44-20.33c0-12.28-4.78-23.83-13.28-32.33l-75.08-77.51c-8.69-8.69-20.21-13.47-32.49-13.47h-23.9l.03-22.45c.09-8.05.25-20.23-9.5-29.97L64.26 53.23c222.8 119.7 342.4 296.28 396.05 397.03l-55.09-53.6zM29.52 212l-.03-.02a20.536 20.536 0 0 0-25.59 6.75c-5.81 8.23-4.84 19.4 1.06 25.17l71.02 89.17c2.62 2.64 4.09 6.16 4.09 9.91v57h56.99c3.75 0 7.25 1.45 10.84 4.97L266.75 505.9c4 4 9.28 6.06 14.59 6.06 4.12 0 8.28-1.25 11.87-3.78 8.22-5.75 11.09-16.5 6.81-25.56C222.01 317.23 84.85 238.26 29.52 212zm140.06 169.44c-8.69-8.69-20.25-13.47-32.53-13.47h-24.99v-25c0-12.3-4.78-23.84-12.25-31.17L64.6 267.62c52.18 32.22 122.97 87.92 177.46 175.4l-72.48-61.58zm144.19-274.15c1.69 1.67 2.62 3.95 2.75 8.19l5.09 42.9 44.8 5.23c2.34 0 4.62.94 7.62 3.8l104.04 82.75c3.84 3.84 8.9 5.81 14 5.81 4 0 8-1.2 11.5-3.66 7.87-5.55 10.59-15.89 6.5-24.56C445 89.79 330.55 23.88 284.34 1.93c-8.72-4.12-19.06-1.44-24.65 6.45-5.59 7.94-4.69 18.67.44 23.47l53.64 75.44zm137.29 80.63l-55.71-44.33c-7.5-7.52-17.87-11.87-26.71-11.87h-.31l-17.96-2.14-1.97-16c0-10.89-4.25-21.15-10.22-26.84l-21.53-30.25c40.37 25.78 92.42 67.86 134.41 131.43z\"]\n};\nvar faClinicMedical = {\n prefix: 'fal',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M573.48 219.92L310.6 8a35.85 35.85 0 0 0-45.19 0L2.53 219.92a6.71 6.71 0 0 0-1 9.5l14.2 17.49a6.82 6.82 0 0 0 9.6 1L64 216.72V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V216.82l38.8 31.29a6.83 6.83 0 0 0 9.6-1l14.19-17.5a7.13 7.13 0 0 0-1.11-9.69zM480 480H96V190.92l187.71-151.4a6.63 6.63 0 0 1 8.4 0L480 191zM256 216v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8z\"]\n};\nvar faClipboard = {\n prefix: 'fal',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M336 64h-88.6c.4-2.6.6-5.3.6-8 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 2.7.2 5.4.6 8H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 32c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm160 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h48v20c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V96h48c8.8 0 16 7.2 16 16z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fal',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-88.6c.4-2.6.6-5.3.6-8 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 2.7.2 5.4.6 8H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 32c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm160 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h48v20c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V96h48c8.8 0 16 7.2 16 16v352zm-58.9-236.4c-4.7-4.7-12.3-4.7-17-.1L158.4 344.3 108 293.7c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17l67.4 67.6c4.7 4.7 12.3 4.7 17 0l134.8-133.7c4.7-4.7 4.7-12.3.1-17l-8.7-8.5z\"]\n};\nvar faClipboardList = {\n prefix: 'fal',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M280 240H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0 96H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM112 232c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM336 64h-88.6c.4-2.6.6-5.3.6-8 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 2.7.2 5.4.6 8H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 32c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm160 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h48v20c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V96h48c8.8 0 16 7.2 16 16v352z\"]\n};\nvar faClipboardListCheck = {\n prefix: 'fal',\n iconName: 'clipboard-list-check',\n icon: [384, 512, [], \"f737\", \"M336 64h-88.6c.4-2.6.6-5.3.6-8 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 2.7.2 5.4.6 8H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 32c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm160 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h48v20c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V96h48c8.8 0 16 7.2 16 16v352zM112 328c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm168 8H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-153.8-65.6l64.2-63.6c2.1-2.1 2.1-5.5 0-7.6l-12.6-12.7c-2.1-2.1-5.5-2.1-7.6 0l-47.6 47.2-20.6-20.9c-2.1-2.1-5.5-2.1-7.6 0l-12.7 12.6c-2.1 2.1-2.1 5.5 0 7.6l37.1 37.4c1.9 2.1 5.3 2.1 7.4 0zM280 240h-77.6l-32.3 32H280c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faClipboardPrescription = {\n prefix: 'fal',\n iconName: 'clipboard-prescription',\n icon: [384, 512, [], \"f5e8\", \"M336 64h-88.6c.4-2.6.6-5.3.6-8 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 2.7.2 5.4.6 8H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 32c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24s-24-10.8-24-24c0-13.3 10.7-24 24-24zm160 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h48v20c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V96h48c8.8 0 16 7.2 16 16zm-66.3-162.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-39 39-31.4-31.4c18.5-9.1 31.3-28 31.3-50 0-30.9-25.1-56-56-56h-64c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-40h25.4l48 48-39 39c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l39-39 39 39c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-39-39 39-39c3.2-3.2 3.2-8.2.1-11.3zM168 272h-40v-48h40c13.2 0 24 10.8 24 24s-10.8 24-24 24z\"]\n};\nvar faClipboardUser = {\n prefix: 'fal',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M336 64h-88.58a57.06 57.06 0 0 0 .58-8 56 56 0 0 0-112 0 57.06 57.06 0 0 0 .58 8H48a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V112a48 48 0 0 0-48-48zM192 32a24 24 0 1 1-24 24 24 24 0 0 1 24-24zm160 432a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V112a16 16 0 0 1 16-16h48v20a12 12 0 0 0 12 12h168a12 12 0 0 0 12-12V96h48a16 16 0 0 1 16 16zM236.81 336c-21.5 2.38-22.6 8-44.81 8s-23.31-5.58-44.81-8C101.31 336 64 369 64 409.59 64 435 83 448 102.41 448h179.18C301 448 320 435 320 409.59 320 369 282.69 336 236.81 336zm44.78 80H102.41c-6.82 0-6.41-3.19-6.41-6.41 0-22.93 23-41.59 51.19-41.59 4.66 0 18.43 8 44.81 8s40.15-8 44.81-8C265 368 288 386.66 288 409.59c0 3.22.41 6.41-6.41 6.41zM192 320a80 80 0 1 0-80-80 80.09 80.09 0 0 0 80 80zm0-128a48 48 0 1 1-48 48 48.05 48.05 0 0 1 48-48z\"]\n};\nvar faClock = {\n prefix: 'fal',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216zm-148.9 88.3l-81.2-59c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h14c6.6 0 12 5.4 12 12v146.3l70.5 51.3c5.4 3.9 6.5 11.4 2.6 16.8l-8.2 11.3c-3.9 5.3-11.4 6.5-16.8 2.6z\"]\n};\nvar faClone = {\n prefix: 'fal',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zm-80 464c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V144c0-8.82 7.18-16 16-16h48v240c0 26.51 21.49 48 48 48h240v48zm96-96c0 8.82-7.18 16-16 16H144c-8.82 0-16-7.18-16-16V48c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16v320z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fal',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M246.2 188.5l-9.8 15.2c-2 3-5.7 3.7-8.6 1.5-40.7-31.2-113-14.3-113 48.5 0 64.8 70.1 85.3 111.6 47.6 2.7-2.4 6.8-1.9 9 1l10.7 14.6c1.8 2.4 1.5 5.8-.6 7.9-49.2 50-165.5 29.4-165.5-70.6 0-96.3 118.3-117.1 165.2-73.5 2.2 2.1 2.6 5.4 1 7.8zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm16 336c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16v288zm-49-211.5l-9.8 15.2c-2 3-5.7 3.7-8.6 1.5-40.7-31.2-113-14.3-113 48.5 0 64.8 70.1 85.3 111.6 47.6 2.7-2.4 6.8-1.9 9 1l10.7 14.6c1.8 2.4 1.5 5.8-.6 7.9-49.1 50.1-165.4 29.5-165.4-70.5 0-96.3 118.3-117.1 165.2-73.5 2.1 2 2.5 5.3.9 7.7z\"]\n};\nvar faCloud = {\n prefix: 'fal',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M571.7 238.8c2.8-9.9 4.3-20.2 4.3-30.8 0-61.9-50.1-112-112-112-16.7 0-32.9 3.6-48 10.8-31.6-45-84.3-74.8-144-74.8-94.4 0-171.7 74.5-175.8 168.2C39.2 220.2 0 274.3 0 336c0 79.6 64.4 144 144 144h368c70.7 0 128-57.2 128-128 0-47-25.8-90.8-68.3-113.2zM512 448H144c-61.9 0-112-50.1-112-112 0-56.8 42.2-103.7 97-111-.7-5.6-1-11.3-1-17 0-79.5 64.5-144 144-144 60.3 0 111.9 37 133.4 89.6C420 137.9 440.8 128 464 128c44.2 0 80 35.8 80 80 0 18.5-6.3 35.6-16.9 49.2C573 264.4 608 304.1 608 352c0 53-43 96-96 96z\"]\n};\nvar faCloudDownload = {\n prefix: 'fal',\n iconName: 'cloud-download',\n icon: [640, 512, [], \"f0ed\", \"M571.7 238.8c2.8-9.9 4.3-20.2 4.3-30.8 0-61.9-50.1-112-112-112-16.7 0-32.9 3.6-48 10.8-31.6-45-84.3-74.8-144-74.8-94.4 0-171.7 74.5-175.8 168.2C39.2 220.2 0 274.3 0 336c0 79.6 64.4 144 144 144h368c70.7 0 128-57.2 128-128 0-47-25.8-90.8-68.3-113.2zM512 448H144c-61.9 0-112-50.1-112-112 0-56.8 42.2-103.7 97-111-.7-5.6-1-11.3-1-17 0-79.5 64.5-144 144-144 60.3 0 111.9 37 133.4 89.6C420 137.9 440.8 128 464 128c44.2 0 80 35.8 80 80 0 18.5-6.3 35.6-16.9 49.2C573 264.4 608 304.1 608 352c0 53-43 96-96 96zM405.2 254.5c-4.7-4.7-12.3-4.7-17 0L320 322.7V172c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v150.7l-68.2-68.2c-4.7-4.7-12.3-4.7-17 0l-5.7 5.7c-4.7 4.7-4.7 12.3 0 17l98.3 98.3c4.7 4.7 12.3 4.7 17 0l98.3-98.3c4.7-4.7 4.7-12.3 0-17l-5.5-5.7z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fal',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M571.7 238.8c2.8-9.9 4.3-20.2 4.3-30.8 0-61.9-50.1-112-112-112-16.7 0-32.9 3.6-48 10.8-31.6-45-84.3-74.8-144-74.8-94.4 0-171.7 74.5-175.8 168.2C39.2 220.2 0 274.3 0 336c0 79.6 64.4 144 144 144h368c70.7 0 128-57.2 128-128 0-47-25.8-90.8-68.3-113.2zM512 448H144c-61.9 0-112-50.1-112-112 0-56.8 42.2-103.7 97-111-.7-5.6-1-11.3-1-17 0-79.5 64.5-144 144-144 60.3 0 111.9 37 133.4 89.6C420 137.9 440.8 128 464 128c44.2 0 80 35.8 80 80 0 18.5-6.3 35.6-16.9 49.2C573 264.4 608 304.1 608 352c0 53-43 96-96 96zM384 248h-64v-84c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v84h-64c-29.2 0-43.2 36.2-21.4 55.8l80 72c12.2 11 30.6 11 42.8 0l80-72c21.7-19.6 7.9-55.8-21.4-55.8zm-80 104l-80-72h160l-80 72z\"]\n};\nvar faCloudDrizzle = {\n prefix: 'fal',\n iconName: 'cloud-drizzle',\n icon: [512, 512, [], \"f738\", \"M48 360c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16s16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm96 80c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16s16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm96-80c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16s16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm96 80c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16s16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm96-80c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16s16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-16.3-247.7C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM408 288H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S447.7 288 408 288z\"]\n};\nvar faCloudHail = {\n prefix: 'fal',\n iconName: 'cloud-hail',\n icon: [512, 512, [], \"f739\", \"M376 368c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 96c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-64-96c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm64-96c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm295.7-255.7C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM408 288H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S447.7 288 408 288z\"]\n};\nvar faCloudHailMixed = {\n prefix: 'fal',\n iconName: 'cloud-hail-mixed',\n icon: [512, 512, [], \"f73a\", \"M415.7 112.3C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM408 288H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S447.7 288 408 288zm-224.1 82.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM216 464c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM87.2 369.7c-7.9-3.9-17.5-.8-21.5 7.2l-16 32c-3.9 7.9-.8 17.5 7.2 21.5 2.3 1.1 4.8 1.7 7.2 1.7 5.8 0 11.5-3.2 14.3-8.8l16-32c3.8-8.1.7-17.7-7.2-21.6zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm447.2-94.3c-7.9-3.9-17.5-.8-21.5 7.2l-16 32c-3.9 7.9-.8 17.5 7.2 21.5 2.3 1.1 4.8 1.7 7.2 1.7 5.8 0 11.5-3.2 14.3-8.8l16-32c3.8-8.1.7-17.7-7.2-21.6zm-192 0c-7.9-3.9-17.5-.8-21.5 7.2l-16 32c-3.9 7.9-.8 17.5 7.2 21.5 2.3 1.1 4.8 1.7 7.2 1.7 5.8 0 11.5-3.2 14.3-8.8l16-32c3.8-8.1.7-17.7-7.2-21.6zM408 464c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-32.1-93.9c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fal',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm416-64c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM346.5 293.5c-12.2-12.2-29.3-17.9-46.3-16.3-21.8-26.6-66.7-26.6-88.4 0-16.9-1.6-34 4.1-46.3 16.3-12.2 12.2-18 29.2-16.3 46.3-13.3 10.9-21.2 27-21.2 44.2s7.9 33.3 21.2 44.2c-1.7 17.1 4.1 34.1 16.3 46.3 12.3 12.3 30.5 19 46.5 16.6 10.9 13.1 26.8 20.9 44 20.9s33.1-7.8 44-20.9c16.2 2.4 34.2-4.3 46.5-16.6 12.2-12.2 18-29.2 16.3-46.3 13.3-10.9 21.2-27 21.2-44.2s-7.9-33.3-21.2-44.2c1.7-17.1-4.1-34.1-16.3-46.3zm-8.8 113.2l-11.9 6.2 4.1 12.8c3 9.5.8 19.5-5.9 26.2-4.9 4.9-11.4 7.6-18.4 7.6-2 0-4.5-.7-7.8-1.7l-12.8-4.1-6.2 12c-9.2 17.7-36.2 17.7-45.4 0l-6.2-12-12.8 4.1c-3.2 1-5.8 1.7-7.8 1.7-6.9 0-13.5-2.7-18.4-7.6-6.7-6.7-8.9-16.7-5.9-26.2l4.1-12.8-11.9-6.2c-8.8-4.6-14.3-13.3-14.3-22.7s5.5-18.1 14.3-22.7l11.9-6.2-4.1-12.8c-3-9.5-.8-19.5 5.9-26.2 6.7-6.7 16.7-8.9 26.2-5.9l12.8 4.1 6.2-11.9c9.2-17.7 36.2-17.7 45.4 0l6.2 11.9 12.8-4.1c9.4-3 19.5-.8 26.2 5.9 6.7 6.7 8.9 16.7 5.9 26.2l-4.1 12.8 11.9 6.2c8.8 4.6 14.3 13.3 14.3 22.7s-5.5 18.1-14.3 22.7zM512 216c0-54.8-42.6-99.8-96.3-103.7C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h14.3c1.8-11.4 5.7-22.2 11.6-32H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72s-32.3 72-72 72h-25.9c5.9 9.8 9.8 20.6 11.6 32H408c57.3-.1 104-46.8 104-104.1z\"]\n};\nvar faCloudMoon = {\n prefix: 'fal',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M351.5 313.6c-4.5-41.3-39.6-73.6-82.1-73.6-13.9 0-27.3 3.5-39.5 10.3-18.3-16.8-41.9-26.3-66.8-26.3-53.7 0-97.5 42.8-99.2 96.2-38.3 14.3-64 50.7-64 92.7C0 467.5 44.5 512 99.2 512h249.6c54.7 0 99.2-44.5 99.2-99.2 0-53.8-43-97.7-96.5-99.2zM348.8 480H99.2C62.1 480 32 449.9 32 412.8c0-31.6 21.5-58.5 52.4-65.4l14-5.9-2-14.6c-.2-1.2-.4-2.5-.4-3.8 0-37.1 30.1-67.2 67.2-67.2 20.1 0 39 9.2 52 25.2l10.1 12.5 12.4-10.1C247 276 258 272 269.4 272c27.9 0 50.6 22.7 50.6 50.6 0 1.5-.2 2.8-.7 6.4l-2.6 21.3 21.2-3.6c3.6-.6 7.2-1.2 11-1.2 37.1 0 67.2 30.2 67.2 67.2S385.9 480 348.8 480zm288.8-192.8c-4.1-8.6-12.4-13.9-21.8-13.9-1.5 0-3 .1-4.6.4-7.7 1.5-15.5 2.2-23.2 2.2-67 0-121.5-54.7-121.5-121.9 0-43.7 23.6-84.3 61.6-106 8.9-5.1 13.6-15 11.9-25.1-1.7-10.2-9.4-17.9-19.5-19.8-11.5-2-23.2-3.1-35-3.1-105.7 0-191.8 86.1-191.8 192 0 6.5.4 12.8 1.1 19.2 12.7 2.9 24.6 7.8 35.4 14.6-2.6-10.9-4.5-22-4.5-33.7 0-88.2 71.7-160 159.8-160 3 0 5.9.1 8.9.2-37.4 28.9-59.9 73.9-59.9 121.9C434.5 239 503.4 308 588 308c2.6 0 5.2-.1 7.8-.2C566.2 336.1 527 352 485.5 352c-7.5 0-14.8-.7-21.9-1.9 5.7 10.3 9.7 21.5 12.5 33.1 3.1.2 6.2.7 9.4.7 58.1 0 112.4-25.9 149-71.1 6-7.2 7.2-17.1 3.1-25.6z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fal',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M573.9 237.5c-3.6-7.7-11.5-12.6-19.9-12.6h-1.4l-2.8.4c-6.3 1.2-12.6 1.8-18.9 1.8-54.4 0-98.7-44-98.7-98.2 0-35.2 19.2-67.9 50.1-85.3 8.2-4.6 12.4-13.6 10.9-22.8-1.6-9.3-8.5-16.3-17.8-18C465.7.9 455.8 0 446 0c-67.1 0-123.6 41.4-147.7 99.5 10.2 2.5 20 6.3 29 11.4 19.1-45.6 63.9-78 116.5-78.9-27.3 24.4-43.5 59.6-43.5 96.8 0 70.7 57 128.5 127.6 130.1-22.3 18.2-50.3 28.4-79.8 28.8v.2c0 11-1.5 21.7-4.1 31.9.7 0 1.4.1 2.1.1 48.7 0 94.3-21.6 125-59.2 5.3-6.5 6.4-15.5 2.8-23.2zm-222.6-40.2C346 158.2 312.5 128 272 128c-8.6 0-17 1.4-25.2 4.3-19.7-23-48.2-36.3-78.8-36.3-56.5 0-102.7 45.3-104 101.6C26.2 210.9 0 246.9 0 288c0 52.9 43.1 96 96 96h224c52.9 0 96-43.1 96-96 0-1.3-.3-2.6-.3-4-1.7-39.6-27.5-74-64.4-86.7zM320 352H96c-35.3 0-64-28.7-64-64 0-30.6 21.8-57 52-62.8l14.5-2.8-2-18c-.2-1.5-.4-2.9-.4-4.4 0-39.7 32.3-72 72-72 24.3 0 46.8 12.2 60.2 32.8l8.1 12.4 13-7.1c32.7-17.8 70.7 8.2 70.8 40.4l-.2 16.2 12.8 2.6c29.8 6 51.3 32.3 51.3 62.7-.1 35.3-28.8 64-64.1 64zm-149.8 66.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm192 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudMusic = {\n prefix: 'fal',\n iconName: 'cloud-music',\n icon: [640, 512, [], \"f8ae\", \"M571.69 238.8A112 112 0 0 0 464 96a110.64 110.64 0 0 0-48 10.8A175.82 175.82 0 0 0 272 32c-94.41 0-171.69 74.5-175.81 168.2A144 144 0 0 0 144 480h368a128 128 0 0 0 59.69-241.2zM512 448H144a112 112 0 0 1-15-223 139.16 139.16 0 0 1-1-17 144.05 144.05 0 0 1 277.41-54.41A80 80 0 0 1 527.09 257.2 96 96 0 0 1 512 448zM363.19 176.75l-128 47.25A16 16 0 0 0 224 239.25V338a69.34 69.34 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V259.16l96-37.52V306a69.34 69.34 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V192a16 16 0 0 0-20.81-15.25z\"]\n};\nvar faCloudRain = {\n prefix: 'fal',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M118.5 369.2c-2.8-10.2-11.8-17.1-22.3-17.2-11.6.7-19.7 6.8-22.7 17.1-4.7 16.3-11.8 26.9-18.8 37.1-8.6 12.7-17.4 25.8-17.4 45.3 0 33.4 26.3 60.5 58.7 60.5s58.7-27.1 58.7-60.5c0-19.6-8.8-32.6-17.4-45.2-7-10.3-14.1-20.8-18.8-37.1zM96 480c-14.7 0-26.7-12.8-26.7-28.5 0-9.3 4.1-15.8 11.9-27.3 4.6-6.8 9.9-14.7 14.7-24.6 4.8 9.9 10.2 17.8 14.8 24.6 7.8 11.5 11.9 18 11.9 27.3.1 15.7-11.9 28.5-26.6 28.5zm182.5-110.8c-2.8-10.2-11.8-17.1-22.3-17.2h-.2c-10.5 0-19.5 6.8-22.5 17.1-4.7 16.3-11.8 26.9-18.8 37.1-8.6 12.7-17.4 25.8-17.4 45.3 0 33.4 26.3 60.5 58.7 60.5s58.7-27.1 58.7-60.5c0-19.6-8.8-32.6-17.4-45.2-7-10.3-14.1-20.8-18.8-37.1zM256 480c-14.7 0-26.7-12.8-26.7-28.5 0-9.3 4.1-15.8 11.9-27.3 4.6-6.8 9.9-14.7 14.7-24.6 4.8 9.9 10.2 17.8 14.8 24.6 7.8 11.5 11.9 18 11.9 27.3.1 15.7-11.9 28.5-26.6 28.5zm182.5-110.8c-2.8-10.2-11.8-17.1-22.3-17.2-10.4.7-19.7 6.8-22.7 17.1-4.7 16.3-11.8 26.9-18.8 37.1-8.6 12.7-17.4 25.8-17.4 45.3 0 33.4 26.3 60.5 58.7 60.5s58.7-27.1 58.7-60.5c0-19.6-8.8-32.6-17.4-45.2-7-10.3-14.1-20.8-18.8-37.1zM416 480c-14.7 0-26.7-12.8-26.7-28.5 0-9.3 4.1-15.8 11.9-27.3 4.6-6.8 9.9-14.7 14.7-24.6 4.8 9.9 10.2 17.8 14.8 24.6 7.8 11.5 11.9 18 11.9 27.3.1 15.7-11.9 28.5-26.6 28.5zm-.3-367.7C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM408 288H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S447.7 288 408 288z\"]\n};\nvar faCloudRainbow = {\n prefix: 'fal',\n iconName: 'cloud-rainbow',\n icon: [576, 512, [], \"f73e\", \"M568.2 32c4.3-.1 7.8-3.5 7.8-7.9v-16c0-4.5-3.7-8.2-8.2-8.1-140.6 2.9-265.9 80.3-331.7 204.2-16-7.8-33.7-12.2-52.1-12.2-66.2 0-120 53.8-120 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-38.8-21.6-72.4-53.1-90.2 25.3-36.1 65.8-59.1 109.5-61.5 4.3-.2 7.7-3.6 7.7-7.9v-16c0-4.5-3.8-8.3-8.3-8.1-56.8 2.7-109 33.6-139.8 82.1-4.1-.8-8.1-1.8-12.4-2.1-2.3-26.3-16.3-49-36.6-63.6 45.6-58.7 114.3-94.3 189.2-96.6 4.3-.1 7.8-3.6 7.8-7.9v-16c0-4.5-3.8-8.3-8.3-8.1-87.1 2.5-166.7 45-218.2 114.8-6.9-1.8-14-3-21.5-3-17.8 0-34.8 5.3-49.2 15.2-4.7-6.2-10.2-11.5-15.9-16.6C322.8 107.2 438.2 34.8 568.2 32zM287 274.1c10.8-11.7 25.4-18.1 41-18.1 30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72s-32.3 72-72 72H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8 15.2-16.6z\"]\n};\nvar faCloudShowers = {\n prefix: 'fal',\n iconName: 'cloud-showers',\n icon: [512, 512, [], \"f73f\", \"M415.7 112.3C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM408 288H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S447.7 288 408 288zM48 368c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16v-80c0-8.8-7.2-16-16-16zm96 32c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16v-80c0-8.8-7.2-16-16-16zm96-32c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16v-80c0-8.8-7.2-16-16-16zm96 32c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16v-80c0-8.8-7.2-16-16-16zm96-32c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16v-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fal',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm39.8-257.8C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.9 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM408 288H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S447.7 288 408 288z\"]\n};\nvar faCloudSleet = {\n prefix: 'fal',\n iconName: 'cloud-sleet',\n icon: [512, 512, [], \"f741\", \"M87.2 353.7c-7.9-3.9-17.5-.7-21.5 7.2l-64 128c-3.9 7.9-.8 17.5 7.2 21.5 2.3 1.1 4.8 1.7 7.2 1.7 5.8 0 11.5-3.2 14.3-8.8l64-128c3.8-8.1.7-17.7-7.2-21.6zm256 0c-7.9-3.9-17.5-.7-21.5 7.2l-64 128c-3.9 7.9-.8 17.5 7.2 21.5 2.3 1.1 4.8 1.7 7.2 1.7 5.8 0 11.5-3.2 14.3-8.8l64-128c3.8-8.1.7-17.7-7.2-21.6zm151.7 35.4l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V360c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16-27.9 16c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-28.4l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9l-27.9-16 27.9-16c3.8-2.2 5.1-7.1 2.9-10.9zm-256 0l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V360c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16-27.9 16c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-28.4l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9l-27.9-16 27.9-16c3.8-2.2 5.1-7.1 2.9-10.9zM512 216c0-54.8-42.6-99.8-96.3-103.7C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104zm-480 0c0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72s-32.3 72-72 72H104c-39.7-.1-72-32.4-72-72.1z\"]\n};\nvar faCloudSnow = {\n prefix: 'fal',\n iconName: 'cloud-snow',\n icon: [512, 512, [], \"f742\", \"M126.9 389.1l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V360c0-4.4-3.6-8-8-8H56c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16L4 432c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-28.4l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9l-27.9-16 27.9-16c3.8-2.2 5.1-7.1 2.9-10.9zm384 0l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V360c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16-27.9 16c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-28.4l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9l-27.9-16 27.9-16c3.8-2.2 5.1-7.1 2.9-10.9zm-192 32l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V392c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16-27.9 16c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-28.4l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9l-27.9-16 27.9-16c3.8-2.2 5.1-7.1 2.9-10.9zM104 320h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7-4-44.9-41.8-80.3-87.7-80.3-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104zM85.3 146.8l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72s-32.3 72-72 72H104c-39.7 0-72-32.3-72-72 0-32.4 21.9-60.8 53.3-69.3z\"]\n};\nvar faCloudSun = {\n prefix: 'fal',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M543.7 304.3C539.8 259.4 502 224 456 224c-17.8 0-34.8 5.3-49.2 15.2-22.5-29.5-57.3-47.2-94.8-47.2-66.2 0-120 53.8-120 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM536 480H232c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8 15.2-16.5c10.8-11.7 25.4-18.1 41-18.1 30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S575.7 480 536 480zM92.6 323l12.5-63.2c1.2-6.3-1.4-12.8-6.8-16.4l-53.5-35.8 53.5-35.8c5.4-3.6 8-10.1 6.8-16.4L92.6 92.1l63.2 12.5c6.4 1.3 12.8-1.5 16.4-6.8L208 44.3l35.8 53.5c3.6 5.3 9.9 8.1 16.4 6.8l63.2-12.5-12.5 63.2c-.3 1.6-.1 3.2 0 4.8.4 0 .7-.1 1.1-.1 10.1 0 20 1.1 29.6 3 .2-.5.5-.9.6-1.5l17.2-86.7c1-5.2-.6-10.6-4.4-14.4s-9.2-5.5-14.4-4.4l-76.2 15.1-43.1-64.4c-6-8.9-20.6-8.9-26.6 0l-43.2 64.5-76.1-15.1c-5.3-1.1-10.7.6-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.4l15.1 76.2-64.6 43.1c-4.4 3-7.1 8-7.1 13.3s2.7 10.3 7.1 13.3L71.6 264l-15.1 76.2c-1 5.2.6 10.6 4.4 14.4 3 3 7.1 4.7 11.3 4.7 1 0 2.1-.1 3.1-.3l32.8-6.5c6.2-13.8 14.6-26.5 25.1-37.6L92.6 323zM208 149.7c18.5 0 34.8 8.9 45.4 22.4 10.2-4.3 20.8-7.6 31.9-9.6-15.6-26.6-44.2-44.8-77.3-44.8-49.5 0-89.8 40.3-89.8 89.8 0 33 18.1 61.7 44.8 77.3 2-11.1 5.3-21.7 9.6-31.9-13.6-10.6-22.4-26.9-22.4-45.4 0-31.8 25.9-57.8 57.8-57.8z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fal',\n iconName: 'cloud-sun-rain',\n icon: [640, 512, [], \"f743\", \"M298.2 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zM192 140c26.4 0 48 20 51.1 45.6 4.8-3.6 9.8-6.9 15.1-9.9 1.5-8.4 3.9-16.5 6.8-24.3-14.3-25.7-41.5-43.4-73-43.4-46.2 0-83.7 37.6-83.7 83.8s37.5 83.8 83.7 83.8c.3 0 .6-.1.9-.1 1.1-11.4 3.7-22.4 7.7-32.8-2.8.5-5.6.9-8.5.9-28.5 0-51.7-23.2-51.7-51.7-.1-28.6 23.1-51.9 51.6-51.9zm-31.7 151.7c-3.6-5.3-9.9-8.1-16.4-6.8l-56 11.1L99 240c1.2-6.4-1.4-12.8-6.8-16.4l-47.4-31.8L92.2 160c5.4-3.6 8-10.1 6.8-16.4l-11.1-56 56 11.1c6.5 1.3 12.8-1.4 16.4-6.8L192 44.4l31.8 47.5c3.6 5.3 10 8.1 16.4 6.8L319.6 83c8.7-1.7 14.3-10.1 12.6-18.8-1.7-8.7-10.3-14.5-18.8-12.6l-68.9 13.6-39.2-58.5c-5.9-8.9-20.6-8.9-26.6 0l-39.1 58.5-69-13.7c-5.3-1.1-10.7.6-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.5l13.7 69-58.4 39.1c-4.4 3-7.1 7.9-7.1 13.3 0 5.3 2.7 10.3 7.1 13.3l58.4 39.1-13.7 69c-1 5.3.6 10.7 4.4 14.5 3.8 3.8 9 5.5 14.4 4.4l68.9-13.7 39.1 58.5c3.1 4.6 8.2 7.1 13.3 7.1 3.1 0 6.2-.9 8.9-2.7 7.3-4.9 9.3-14.9 4.4-22.2l-44.9-67.4zm329.9 126.4c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm85.1-220.8C570 158.2 536.5 128 496 128c-8.6 0-17 1.4-25.2 4.3C451.1 109.4 422.6 96 392 96c-56.5 0-102.7 45.3-104 101.6-37.8 13.3-64 49.3-64 90.4 0 52.9 43.1 96 96 96h224c52.9 0 96-43.1 96-96 0-41.3-26.6-77.6-64.7-90.7zM560 208.8zM544 352H320c-35.3 0-64-28.7-64-64 0-30.6 21.8-57 52-62.8l14.5-2.8-2-18c-.2-1.5-.4-2.9-.4-4.4 0-39.7 32.3-72 72-72 24.3 0 46.8 12.2 60.2 32.8l8.1 12.4 13-7.1c32.7-17.8 70.7 8.2 70.8 40.4l-.2 16.2 12.8 2.6c29.8 6 51.3 32.3 51.3 62.7-.1 35.3-28.8 64-64.1 64zm42.2 66.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8zm-192 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.4-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUpload = {\n prefix: 'fal',\n iconName: 'cloud-upload',\n icon: [640, 512, [], \"f0ee\", \"M312.5 168.5c-4.7-4.7-12.3-4.7-17 0l-98.3 98.3c-4.7 4.7-4.7 12.3 0 17l5.7 5.7c4.7 4.7 12.3 4.7 17 0l68.2-68.2V372c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V221.3l68.2 68.2c4.7 4.7 12.3 4.7 17 0l5.7-5.7c4.7-4.7 4.7-12.3 0-17l-98.5-98.3zm259.2 70.3c2.8-9.9 4.3-20.2 4.3-30.8 0-61.9-50.1-112-112-112-16.7 0-32.9 3.6-48 10.8-31.6-45-84.3-74.8-144-74.8-94.4 0-171.7 74.5-175.8 168.2C39.2 220.2 0 274.3 0 336c0 79.6 64.4 144 144 144h368c70.7 0 128-57.2 128-128 0-47-25.8-90.8-68.3-113.2zM512 448H144c-61.9 0-112-50.1-112-112 0-56.8 42.2-103.7 97-111-.7-5.6-1-11.3-1-17 0-79.5 64.5-144 144-144 60.3 0 111.9 37 133.4 89.6C420 137.9 440.8 128 464 128c44.2 0 80 35.8 80 80 0 18.5-6.3 35.6-16.9 49.2C573 264.4 608 304.1 608 352c0 53-43 96-96 96z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fal',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M405.4 232.2l-80-72c-12.2-11-30.6-11-42.8 0l-80 72c-21.7 19.6-7.9 55.8 21.4 55.8h64v84c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-84h64c29.2 0 43.1-36.2 21.4-55.8zM224 256l80-72 80 72H224zm347.7-17.2c2.8-9.9 4.3-20.2 4.3-30.8 0-61.9-50.1-112-112-112-16.7 0-32.9 3.6-48 10.8-31.6-45-84.3-74.8-144-74.8-94.4 0-171.7 74.5-175.8 168.2C39.2 220.2 0 274.3 0 336c0 79.6 64.4 144 144 144h368c70.7 0 128-57.2 128-128 0-47-25.8-90.8-68.3-113.2zM512 448H144c-61.9 0-112-50.1-112-112 0-56.8 42.2-103.7 97-111-.7-5.6-1-11.3-1-17 0-79.5 64.5-144 144-144 60.3 0 111.9 37 133.4 89.6C420 137.9 440.8 128 464 128c44.2 0 80 35.8 80 80 0 18.5-6.3 35.6-16.9 49.2C573 264.4 608 304.1 608 352c0 53-43 96-96 96z\"]\n};\nvar faClouds = {\n prefix: 'fal',\n iconName: 'clouds',\n icon: [640, 512, [], \"f744\", \"M543.7 304.3C539.8 259.4 502 224 456 224c-7.1 0-14 1.1-20.7 2.7 7.9-15.3 12.7-32.4 12.7-50.7 0-61.8-50.2-112-112-112-10.5 0-20.9 1.5-31 4.5C283 27 239.4 0 192 0 130.2 0 78.2 43.9 66.9 103.8c-39.4 11.8-66.9 48-66.9 90 0 52 42.3 94.2 94.2 94.2h100.2c-1.6 7.8-2.4 15.8-2.4 24v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7zM94.2 256C59.9 256 32 228.1 32 193.8c0-30.3 21.8-56 51.8-61.1l12-2 1.2-12.1c5-49.4 45.8-86.6 95-86.6 39.5 0 75.5 25 89.6 62.3l6 16 15.5-7c10.6-4.8 21.7-7.3 32.9-7.3 44.1 0 80 35.9 80 80 0 19.9-7.4 38.1-19.7 52.2-22.2-22.5-52-36.2-84.3-36.2-45.8 0-85.3 26.1-105.5 64H94.2zM536 480H232c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8 15.2-16.5c10.8-11.7 25.4-18.1 41-18.1 30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72S575.7 480 536 480z\"]\n};\nvar faCloudsMoon = {\n prefix: 'fal',\n iconName: 'clouds-moon',\n icon: [640, 512, [], \"f745\", \"M462.6 321.1c-7-37-39.6-65.1-78.6-65.1 0-52.9-43.1-96-96-96h-5.5C269.2 122.2 233 96 192 96s-77.2 26.2-90.5 64H96c-52.9 0-96 43.1-96 96s43.1 96 96 96h40.8c-15.4 17.1-24.8 39.5-24.8 64 0 52.9 43.1 96 96 96h240c52.9 0 96-43.1 96-96 0-48-35.4-87.8-81.4-94.9zM96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64h30.7l2.6-12.8c6-29.7 32.4-51.2 62.7-51.2s56.7 21.5 62.7 51.2l2.6 12.8H288c35.3 0 64 28.7 64 64 0 2.6-.7 5-1 7.4-.4.2-.9.3-1.4.5-17.8-24.7-46.7-39.9-77.6-39.9-52.9 0-96 43.1-96 96H96zm352 160H208c-35.3 0-64-28.7-64-64 0-31 22.2-57.4 52.8-62.8l16.5-2.9-3.6-16.3c-1.1-5-1.7-9.6-1.7-13.9 0-35.3 28.7-64 64-64 24.6 0 47.2 14.5 57.7 37l8.6 18.4 15.8-12.7c8.8-7 19.1-10.7 29.8-10.7 26.5 0 48 21.5 48 48v16h16c35.3 0 64 28.7 64 64S483.3 480 448 480zm189.8-230.6c-3.8-8.1-12-13.3-20.9-13.3h-1.5l-2.9.4c-6.6 1.2-13.2 1.9-19.8 1.9-57.2 0-103.7-46.2-103.7-103.1 0-37 20.1-71.3 52.6-89.6 8.6-4.8 13.1-14.2 11.4-23.9-1.6-9.7-9-17.1-18.7-18.9C524.2.9 513.8 0 503.5 0c-83 0-151.8 59.8-166 138.2 10.9 4.6 21 10.7 30.2 18.1C373.7 86.8 431.9 32 503.5 32h1.9C475 57.4 457 95.2 457 135.3c0 74.5 60.9 135.1 135.7 135.1h1c-23.5 20.5-53.5 32-85.1 33.2 13.1 7.2 24.7 16.6 34.5 27.7 35.7-8.5 67.9-28.4 91.6-57.4 5.8-7 6.9-16.4 3.1-24.5z\"]\n};\nvar faCloudsSun = {\n prefix: 'fal',\n iconName: 'clouds-sun',\n icon: [640, 512, [], \"f746\", \"M640 258.3c0-51.6-40.2-93.5-89.6-93.5h-.5c-16.6-40.7-55.3-69.2-99.4-69.2-46.4 0-86.2 30.1-101.5 74.2-25.3 8.8-45.2 29.1-54.7 54.9-48.3 5-86.3 45.5-86.3 95.1 0 1.8.1 3.7.2 5.6-38 13.2-64.2 49.2-64.2 90.5 0 53 43.1 96.1 96 96.1h240c52.9 0 96-43.1 96-96.1 0-24.7-9.4-47.1-24.8-64.1 49-.5 88.8-42.2 88.8-93.5zM480 480H240c-35.3 0-64-28.7-64-64.1 0-31 22.2-57.5 52.8-62.9l16.5-2.9-3.6-16.3c-1.1-5-1.7-9.6-1.7-13.9 0-35.3 28.7-64.1 64-64.1 24.6 0 47.2 14.5 57.8 37l8.6 18.4 15.8-12.7c8.8-7 19.1-10.7 29.8-10.7 26.5 0 48 21.5 48 48v16h16c35.3 0 64 28.7 64 64.1S515.3 480 480 480zm70.4-160.2h-56.1c-7.5-36.5-39.7-64.1-78.3-64.1-12 0-23.7 2.7-34.4 7.9-13-18-32-30.8-53.2-36.5 9.6-17.3 26.7-29.1 46.7-30.1 5.6-39.3 37-69.4 75.3-69.4 40.3 0 72.9 33.3 75.9 75.5 7.4-3.7 15.3-6.3 24-6.3 31.8 0 57.6 27.5 57.6 61.5.1 34-25.7 61.5-57.5 61.5zm-384.9-7.7c-2.1-1-4.3-1.7-6.6-1.7-1 0-2.1.1-3.1.3l-63.2 12.5 12.5-63.2c1.2-6.3-1.4-12.8-6.8-16.5l-53.5-35.8 53.5-35.8c5.4-3.6 8-10.1 6.8-16.5L92.6 92.2l63.2 12.5c6.5 1.3 12.8-1.5 16.4-6.8L208 44.4 243.8 98c3.6 5.3 9.9 8.1 16.4 6.8l63.2-12.5-12.1 61.2c4.2-2.8 8.4-5.5 13-7.8 7.3-15.7 17.5-29.4 29.3-41.2l5.8-29.5c1-5.2-.6-10.6-4.4-14.4-3.8-3.8-9-5.5-14.4-4.4l-76.2 15.1-43.1-64.6c-6-8.9-20.6-8.9-26.6 0l-43.2 64.6-76.2-15.2c-5.3-1.1-10.6.7-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.4l15.1 76.3-64.5 43.2c-4.4 3-7.1 8-7.1 13.3C0 213 2.7 218 7.1 221l64.5 43.2-15.1 76.2c-1 5.3.6 10.7 4.4 14.4s9.2 5.4 14.4 4.4l56.3-11.1c8.8-14 20.3-26.3 33.9-36zM208 149.8c28.8 0 52.5 21.2 56.9 48.8 2.4-.8 4.8-1.8 7.3-2.4 5-9 11.2-17.1 18-24.5-13.9-31.7-45.5-53.9-82.2-53.9-49.5 0-89.8 40.3-89.8 89.9 0 39.5 25.7 72.7 61.1 84.8 2.3-10.6 5.9-20.6 10.6-30.1-23-7.6-39.8-29.1-39.8-54.7.1-31.9 26-57.9 57.9-57.9z\"]\n};\nvar faClub = {\n prefix: 'fal',\n iconName: 'club',\n icon: [512, 512, [], \"f327\", \"M256 32c64.9 0 109.1 65.6 85.7 125.4l-16 41c-1.7 4.3 1.9 8.7 6.4 8.1l43.7-5.8c55.4-7.3 103.8 35.7 104.2 90.5.4 51.7-42.8 93.2-94.5 92.7-41-.4-54.6-11.3-87.2-45.2-3.7-3.9-10.3-1.2-10.3 4.2v25c0 40.6 0 52.6 29.1 89.3 7.3 9.2.7 22.7-11 22.7H205.8c-11.7 0-18.3-13.5-11-22.7C224 420.6 224 408.6 224 368v-25c0-5.4-6.6-8.1-10.3-4.2-32.3 33.7-45.9 44.7-87.1 45.2-51.8.5-95-41.1-94.5-92.8.5-54.8 49-97.7 104.2-90.3l43.7 5.8c4.5.6 8-3.9 6.4-8.1l-16-41C146.8 97.5 191.2 32 256 32m0-32c-87.4 0-147.1 88.2-115.5 169.1C65.6 159.2 0 217.6 0 292c0 68.4 55.6 124 124 124 35.5 0 52-8 76-32 0 24-9.7 27.6-30.2 53.4-23.9 30.1-2.4 74.6 36 74.6h100.3c38.5 0 60-44.5 36-74.6-19-24.1-30.1-29.4-30.1-53.4 24 24 48.9 32 76 32 68.4 0 124-55.6 124-124 0-74.5-65.8-132.8-140.5-122.9C403.1 88.4 343.5 0 256 0z\"]\n};\nvar faCocktail = {\n prefix: 'fal',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M391.32 128H24.68c-21.95 0-32.94 26.53-17.42 42.05L192 354.79V480h-53.33c-14.73 0-26.67 11.94-26.67 26.67 0 2.95 2.39 5.33 5.33 5.33h181.33c2.95 0 5.33-2.39 5.33-5.33 0-14.73-11.94-26.67-26.67-26.67H224V354.79l107.7-107.7 22.66-22.66 54.37-54.37c15.52-15.53 4.53-42.06-17.41-42.06zM208 325.53L42.47 160h331.06L208 325.53zM432 0c-62.55 0-114.89 40.23-134.61 96h34.31c17.95-37.68 55.83-64 100.3-64 61.76 0 112 50.24 112 112s-50.24 112-112 112c-18.49 0-35.68-4.93-51.06-12.9l-23.52 23.52C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0zm0 192c-.04 0-.08-.01-.13-.01-.2.21-.3.48-.51.69L405.04 219c8.46 3.05 17.46 5 26.96 5 44.12 0 80-35.89 80-80s-35.88-80-80-80c-26.05 0-49.01 12.68-63.62 32H432c26.47 0 48 21.53 48 48s-21.53 48-48 48z\"]\n};\nvar faCode = {\n prefix: 'fal',\n iconName: 'code',\n icon: [576, 512, [], \"f121\", \"M228.5 511.8l-25-7.1c-3.2-.9-5-4.2-4.1-7.4L340.1 4.4c.9-3.2 4.2-5 7.4-4.1l25 7.1c3.2.9 5 4.2 4.1 7.4L235.9 507.6c-.9 3.2-4.3 5.1-7.4 4.2zm-75.6-125.3l18.5-20.9c1.9-2.1 1.6-5.3-.5-7.1L49.9 256l121-102.5c2.1-1.8 2.4-5 .5-7.1l-18.5-20.9c-1.8-2.1-5-2.3-7.1-.4L1.7 252.3c-2.3 2-2.3 5.5 0 7.5L145.8 387c2.1 1.8 5.3 1.6 7.1-.5zm277.3.4l144.1-127.2c2.3-2 2.3-5.5 0-7.5L430.2 125.1c-2.1-1.8-5.2-1.6-7.1.4l-18.5 20.9c-1.9 2.1-1.6 5.3.5 7.1l121 102.5-121 102.5c-2.1 1.8-2.4 5-.5 7.1l18.5 20.9c1.8 2.1 5 2.3 7.1.4z\"]\n};\nvar faCodeBranch = {\n prefix: 'fal',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 39.2 28.2 71.8 65.5 78.7-.8 17.2-5 30.4-12.7 40-17.5 21.8-53.1 25.2-90.7 28.7-28.2 2.6-57.4 5.4-80.4 16.9-3.4 1.7-6.7 3.6-9.7 5.7V158.4c36.5-7.4 64-39.7 64-78.4 0-44.2-35.8-80-80-80S0 35.8 0 80c0 38.7 27.5 71 64 78.4v195.2C27.5 361 0 393.3 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-36.9-24.9-67.9-58.9-77.2 5-9.6 12.3-14.6 19-18 17.5-8.8 42.5-11.2 68.9-13.7 42.6-4 86.7-8.1 112.7-40.5 12.4-15.5 19-35.5 19.8-60.7C357.3 214 384 182.1 384 144zM32 80c0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48-48-21.5-48-48zm96 352c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-26.4 21.4-47.9 47.8-48h.6c26.3.2 47.6 21.7 47.6 48zm187.8-241.5L304 192c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48c0 22.4-15.4 41.2-36.2 46.5z\"]\n};\nvar faCodeCommit = {\n prefix: 'fal',\n iconName: 'code-commit',\n icon: [640, 512, [], \"f386\", \"M320 128c34.19 0 66.33 13.31 90.51 37.49S448 221.81 448 256s-13.31 66.33-37.49 90.51S354.19 384 320 384s-66.33-13.31-90.51-37.49S192 290.19 192 256s13.31-66.33 37.49-90.51S285.81 128 320 128m0-32c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160S408.37 96 320 96zm308 144H511.33c.44 5.3.67 10.63.67 16s-.23 10.7-.67 16H628c6.63 0 12-5.37 12-12v-8c0-6.63-5.37-12-12-12zm-500 16c0-5.37.23-10.7.67-16H12c-6.63 0-12 5.37-12 12v8c0 6.63 5.37 12 12 12h116.67c-.44-5.3-.67-10.63-.67-16z\"]\n};\nvar faCodeMerge = {\n prefix: 'fal',\n iconName: 'code-merge',\n icon: [384, 512, [], \"f387\", \"M304 192c-41.7 0-76 32-79.7 72.8-25.2-1.3-61.6-7.9-88.8-31.7-20.3-17.8-32.8-43-37.5-75.1 35.5-8.2 62-40 62-77.9 0-44.2-35.8-80-80-80S0 35.8 0 80c0 38.7 27.5 71 64 78.4v195.2C27.5 361 0 393.3 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-38.7-27.5-71-64-78.4V237.4c5.5 7.2 11.7 13.9 18.6 19.9C151 289 197.9 296.1 228 297c10.5 31.9 40.5 55 76 55 44.2 0 80-35.8 80-80s-35.8-80-80-80zM32 80c0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48-48-21.5-48-48zm96 352c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48zm176-112c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faCoffee = {\n prefix: 'fal',\n iconName: 'coffee',\n icon: [576, 512, [], \"f0f4\", \"M517.9 448H26.1c-24.5 0-33.1-32-20-32h531.8c13.1 0 4.5 32-20 32zM576 159.1c.5 53.4-42.7 96.9-96 96.9h-32v32c0 53-43 96-96 96H160c-53 0-96-43-96-96V76c0-6.6 5.4-12 12-12h402.8c52.8 0 96.7 42.2 97.2 95.1zM416 96H96v192c0 35.3 28.7 64 64 64h192c35.3 0 64-28.7 64-64V96zm128 64c0-35.3-28.7-64-64-64h-32v128h32c35.3 0 64-28.7 64-64z\"]\n};\nvar faCoffeePot = {\n prefix: 'fal',\n iconName: 'coffee-pot',\n icon: [512, 512, [], \"e002\", \"M431.45,177.65,437.33,160h0L480,32H80A80,80,0,0,0,0,112V216a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V112A48,48,0,0,1,80,64h26.67l32,96h0l6.05,18.16C95.41,217.9,64,277.69,64,344.62c0,51.47,18.62,84.77,49.64,117.71A57.18,57.18,0,0,0,155.17,480H420.84a57.08,57.08,0,0,0,41.45-17.6c31-32.95,49.69-66.24,49.71-117.72C512,278.37,481.37,217.83,431.45,177.65ZM140.4,64H435.6l-32,96H172.4Zm38.15,128h219.7c21,16.92,54.68,42.08,72.5,96H105.39C123.5,234,158.21,208.39,178.55,192ZM439,440.45A24.92,24.92,0,0,1,420.84,448H155.17a25,25,0,0,1-18.23-7.62C107.1,408.71,96,382.75,96,344.62A178.3,178.3,0,0,1,97.9,320H478.13A180.47,180.47,0,0,1,480,344.67C480,382.79,468.88,408.75,439,440.45Z\"]\n};\nvar faCoffeeTogo = {\n prefix: 'fal',\n iconName: 'coffee-togo',\n icon: [448, 512, [], \"f6c5\", \"M432 64h-16l-23.16-46.31A32 32 0 0 0 364.22 0H83.78a32 32 0 0 0-28.62 17.69L32 64H16C7.16 64 0 71.16 0 80v64c0 8.84 7.16 16 16 16h18.67l26.89 322.66C62.94 499.24 76.8 512 93.44 512h261.11c16.64 0 30.51-12.76 31.89-29.34L413.33 160H432c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16zm-77.44 416H93.44l-5.33-64h271.78l-5.33 64zm8-96H85.44L74.78 256h298.45l-10.67 128zm13.33-160H72.11l-5.33-64h314.45l-5.34 64zM416 128H32V96h19.78l32-64h280.45l32 64H416v32z\"]\n};\nvar faCoffin = {\n prefix: 'fal',\n iconName: 'coffin',\n icon: [384, 512, [], \"f6c6\", \"M370.62,112.7,271.83,13.47A45.65,45.65,0,0,0,239.38,0H144.62a45.63,45.63,0,0,0-32.47,13.5L13.39,112.7a46.34,46.34,0,0,0-12,43.64L81.2,477.14A45.83,45.83,0,0,0,125.71,512H258.29a45.83,45.83,0,0,0,44.51-34.86l79.85-320.77a46.39,46.39,0,0,0-12-43.67ZM271.73,469.42A13.83,13.83,0,0,1,258.29,480H125.71a13.82,13.82,0,0,1-13.44-10.58L32.42,148.59a14.16,14.16,0,0,1,3.66-13.33l98.73-99.17A13.84,13.84,0,0,1,144.62,32h94.76a13.78,13.78,0,0,1,9.78,4.06l98.76,99.2a14.22,14.22,0,0,1,3.66,13.36l-79.85,320.8Z\"]\n};\nvar faCoffinCross = {\n prefix: 'fal',\n iconName: 'coffin-cross',\n icon: [384, 512, [], \"e051\", \"M370.62 112.7l-98.79-99.23C263.13 4.78 251.6 0 239.38 0h-94.76c-12.22 0-23.75 4.78-32.47 13.5l-98.76 99.2C2.07 124.08-2.52 140.81 1.35 156.34l79.85 320.8c5.1 20.52 23.41 34.86 44.51 34.86h132.58c21.1 0 39.41-14.34 44.51-34.86l79.85-320.77c3.87-15.56-.72-32.29-12.03-43.67zm-98.89 356.72c-1.53 6.23-7.06 10.58-13.44 10.58H125.71c-6.38 0-11.91-4.34-13.44-10.58L32.42 148.59c-1.19-4.75.22-9.86 3.66-13.33l98.73-99.17c2.66-2.64 6.13-4.09 9.81-4.09h94.76c3.69 0 7.16 1.45 9.78 4.06l98.76 99.2c3.44 3.47 4.84 8.58 3.66 13.36l-79.85 320.8zm.28-325.42h-32v-32c0-8.84-7.16-16-16-16H160c-8.84 0-16 7.16-16 16v32h-32c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h32v96c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-96h32c8.84 0 16-7.16 16-16v-64c.01-8.84-7.15-16-15.99-16zm-16 64H208v112h-32V208h-48.01v-32H176v-48h32v48h48.01v32z\"]\n};\nvar faCog = {\n prefix: 'fal',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M482.696 299.276l-32.61-18.827a195.168 195.168 0 0 0 0-48.899l32.61-18.827c9.576-5.528 14.195-16.902 11.046-27.501-11.214-37.749-31.175-71.728-57.535-99.595-7.634-8.07-19.817-9.836-29.437-4.282l-32.562 18.798a194.125 194.125 0 0 0-42.339-24.48V38.049c0-11.13-7.652-20.804-18.484-23.367-37.644-8.909-77.118-8.91-114.77 0-10.831 2.563-18.484 12.236-18.484 23.367v37.614a194.101 194.101 0 0 0-42.339 24.48L105.23 81.345c-9.621-5.554-21.804-3.788-29.437 4.282-26.36 27.867-46.321 61.847-57.535 99.595-3.149 10.599 1.47 21.972 11.046 27.501l32.61 18.827a195.168 195.168 0 0 0 0 48.899l-32.61 18.827c-9.576 5.528-14.195 16.902-11.046 27.501 11.214 37.748 31.175 71.728 57.535 99.595 7.634 8.07 19.817 9.836 29.437 4.283l32.562-18.798a194.08 194.08 0 0 0 42.339 24.479v37.614c0 11.13 7.652 20.804 18.484 23.367 37.645 8.909 77.118 8.91 114.77 0 10.831-2.563 18.484-12.236 18.484-23.367v-37.614a194.138 194.138 0 0 0 42.339-24.479l32.562 18.798c9.62 5.554 21.803 3.788 29.437-4.283 26.36-27.867 46.321-61.847 57.535-99.595 3.149-10.599-1.47-21.972-11.046-27.501zm-65.479 100.461l-46.309-26.74c-26.988 23.071-36.559 28.876-71.039 41.059v53.479a217.145 217.145 0 0 1-87.738 0v-53.479c-33.621-11.879-43.355-17.395-71.039-41.059l-46.309 26.74c-19.71-22.09-34.689-47.989-43.929-75.958l46.329-26.74c-6.535-35.417-6.538-46.644 0-82.079l-46.329-26.74c9.24-27.969 24.22-53.869 43.929-75.969l46.309 26.76c27.377-23.434 37.063-29.065 71.039-41.069V44.464a216.79 216.79 0 0 1 87.738 0v53.479c33.978 12.005 43.665 17.637 71.039 41.069l46.309-26.76c19.709 22.099 34.689 47.999 43.929 75.969l-46.329 26.74c6.536 35.426 6.538 46.644 0 82.079l46.329 26.74c-9.24 27.968-24.219 53.868-43.929 75.957zM256 160c-52.935 0-96 43.065-96 96s43.065 96 96 96 96-43.065 96-96-43.065-96-96-96zm0 160c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faCogs = {\n prefix: 'fal',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M538.6 196.4l-2.5-3.9c-4.1.3-8.1.3-12.2 0l-2.5 4c-5.8 9.2-17.1 13.4-27.5 10.1-13.8-4.3-23-8.8-34.3-18.1-9-7.4-11.2-20.3-5.4-30.4l2.5-4.3c-2.3-3.4-4.3-6.9-6.1-10.6h-9.1c-11.6 0-21.4-8.2-23.6-19.6-2.6-13.7-2.7-24.2.1-38.5 2.1-11.3 12.1-19.5 23.6-19.5h9c1.8-3.7 3.8-7.2 6.1-10.6l-2.6-4.5c-5.8-10-3.6-22.7 5.2-30.3 10.6-9.1 19.7-14.3 33.5-19 10.8-3.7 22.7.7 28.5 10.6l2.6 4.4c4.1-.3 8.1-.3 12.2 0l2.6-4.4c5.8-9.9 17.7-14.3 28.6-10.5 13.3 4.5 22.3 9.6 33.5 19.1 8.8 7.5 10.9 20.2 5.1 30.2l-2.6 4.4c2.3 3.4 4.3 6.9 6.1 10.6h5.1c11.6 0 21.4 8.2 23.6 19.6 2.6 13.7 2.7 24.2-.1 38.5-2.1 11.3-12.1 19.5-23.6 19.5h-5c-1.8 3.7-3.8 7.2-6.1 10.6l2.5 4.3c5.9 10.2 3.5 23.1-5.5 30.5-10.7 8.8-19.9 13.4-34 17.9-10.5 3.3-21.9-.8-27.7-10.1zm12.2-34.5l10.6 18.3c6.7-2.8 12.9-6.4 18.7-10.8l-10.6-18.3 6.4-7.5c4.8-5.7 8.6-12.1 11-19.1l3.3-9.3h21.1c.9-7.1.9-14.4 0-21.5h-21.1l-3.3-9.3c-2.5-7-6.2-13.4-11-19.1l-6.4-7.5L580 39.4c-5.7-4.4-12-8-18.7-10.8l-10.6 18.3-9.7-1.8c-7.3-1.4-14.8-1.4-22.1 0l-9.7 1.8-10.6-18.3C492 31.3 485.7 35 480 39.4l10.6 18.3-6.4 7.5c-4.8 5.7-8.6 12.1-11 19.1l-3.3 9.3h-21.1c-.9 7.1-.9 14.4 0 21.5h21.1l3.3 9.3c2.5 7 6.2 13.4 11 19.1l6.4 7.5-10.6 18.4c5.7 4.4 12 8 18.7 10.8l10.6-18.3 9.7 1.8c7.3 1.4 14.8 1.4 22.1 0l9.7-1.8zM145.3 454.4v-31.6c-12.9-5.5-25.1-12.6-36.4-21.1l-27.5 15.9c-9.8 5.6-22.1 3.7-29.7-4.6-24.2-26.3-38.5-49.5-50.6-88.1-3.4-10.7 1.1-22.3 10.8-28L39.2 281c-1.7-14-1.7-28.1 0-42.1l-27.3-15.8c-9.7-5.6-14.2-17.3-10.8-28 12.1-38.4 26.2-61.6 50.6-88.1 7.6-8.3 20-10.2 29.7-4.6l27.4 15.9c11.3-8.5 23.5-15.5 36.4-21.1V65.6c0-11.3 7.8-21 18.8-23.4 34.7-7.8 62-8.7 101.7 0 11 2.4 18.9 12.2 18.9 23.4v31.6c12.9 5.5 25.1 12.6 36.4 21l27.4-15.8c9.8-5.6 22.2-3.7 29.8 4.6 26.9 29.6 41.5 55.9 52.1 88.5 3.4 10.5-.8 21.9-10.2 27.7l-25 15.8c1.7 14 1.7 28.1 0 42.1l28.1 17.5c8.6 5.4 13 15.6 10.8 25.5-6.9 31.3-33 64.6-55.9 89.2-7.6 8.2-19.9 10-29.6 4.4L321 401.8c-11.3 8.5-23.5 15.5-36.4 21.1v31.6c0 11.2-7.8 21-18.8 23.4-37.5 8.3-64.9 8.2-101.9 0-10.8-2.5-18.6-12.3-18.6-23.5zm32-6.2c24.8 5 50.5 5 75.3 0v-47.7l10.7-3.8c16.8-5.9 32.3-14.9 45.9-26.5l8.6-7.4 41.4 23.9c16.8-19.1 34-41.3 42.1-65.2l-41.4-23.9 2.1-11.1c3.2-17.6 3.2-35.5 0-53.1l-2.1-11.1 41.4-23.9c-8.1-23.9-25.3-46.2-42.1-65.2l-41.4 23.9-8.6-7.4c-13.6-11.7-29-20.6-45.9-26.5l-10.7-3.8V71.8c-24.8-5-50.5-5-75.3 0v47.7l-10.7 3.8c-16.8 5.9-32.3 14.9-45.9 26.5l-8.6 7.4-41.4-23.9A192.19 192.19 0 0 0 33 198.5l41.4 23.9-2.1 11.1c-3.2 17.6-3.2 35.5 0 53.1l2.1 11.1L33 321.6c8.1 23.9 20.9 46.2 37.7 65.2l41.4-23.9 8.6 7.4c13.6 11.7 29 20.6 45.9 26.5l10.7 3.8v47.6zm38.4-105.3c-45.7 0-82.9-37.2-82.9-82.9s37.2-82.9 82.9-82.9 82.9 37.2 82.9 82.9-37.2 82.9-82.9 82.9zm0-133.8c-28 0-50.9 22.8-50.9 50.9s22.8 50.9 50.9 50.9c28 0 50.9-22.8 50.9-50.9s-22.8-50.9-50.9-50.9zm322.9 291.7l-2.5-3.9c-4.1.3-8.1.3-12.2 0l-2.5 4c-5.8 9.2-17.1 13.4-27.5 10.1-13.8-4.3-23-8.8-34.3-18.1-9-7.4-11.2-20.3-5.4-30.4l2.5-4.3c-2.3-3.4-4.3-6.9-6.1-10.6h-9.1c-11.6 0-21.4-8.2-23.6-19.6-2.6-13.7-2.7-24.2.1-38.5 2.1-11.3 12.1-19.5 23.6-19.5h9c1.8-3.7 3.8-7.2 6.1-10.6l-2.6-4.5c-5.8-10-3.6-22.7 5.2-30.3 10.6-9.1 19.7-14.3 33.5-19 10.8-3.7 22.7.7 28.5 10.6l2.6 4.4c4.1-.3 8.1-.3 12.2 0l2.6-4.4c5.8-9.9 17.7-14.3 28.6-10.5 13.3 4.5 22.3 9.6 33.5 19.1 8.8 7.5 10.9 20.2 5.1 30.2l-2.6 4.4c2.3 3.4 4.3 6.9 6.1 10.6h5.1c11.6 0 21.4 8.2 23.6 19.6 2.6 13.7 2.7 24.2-.1 38.5-2.1 11.3-12.1 19.5-23.6 19.5h-5c-1.8 3.7-3.8 7.2-6.1 10.6l2.5 4.3c5.9 10.2 3.5 23.1-5.5 30.5-10.7 8.8-19.9 13.4-34 17.9-10.5 3.2-21.9-.9-27.7-10.1zm12.2-34.6l10.6 18.3c6.7-2.8 12.9-6.4 18.7-10.8l-10.6-18.3 6.4-7.5c4.8-5.7 8.6-12.1 11-19.1l3.3-9.3h21.1c.9-7.1.9-14.4 0-21.5h-21.1l-3.3-9.3c-2.5-7-6.2-13.4-11-19.1l-6.4-7.5 10.6-18.3c-5.7-4.4-12-8-18.7-10.8l-10.6 18.3-9.7-1.8c-7.3-1.4-14.8-1.4-22.1 0l-9.7 1.8-10.6-18.3c-6.7 2.8-12.9 6.4-18.7 10.8l10.6 18.3-6.4 7.5c-4.8 5.7-8.6 12.1-11 19.1l-3.3 9.3h-21.1c-.9 7.1-.9 14.4 0 21.5h21.1l3.3 9.3c2.5 7 6.2 13.4 11 19.1l6.4 7.5-10.6 18.3c5.7 4.4 12 8 18.7 10.8l10.6-18.3 9.7 1.8c7.3 1.4 14.8 1.4 22.1 0l9.7-1.8zM560 408c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm0-304.3c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.4 32-32z\"]\n};\nvar faCoin = {\n prefix: 'fal',\n iconName: 'coin',\n icon: [512, 512, [], \"f85c\", \"M256 64C114.67 64 0 128.44 0 208v112c0 70.72 114.67 128 256 128s256-57.28 256-128V208c0-79.56-114.67-144-256-144zM64 366.61C43.69 352 32 335.68 32 320v-42.34A183.65 183.65 0 0 0 64 303zm80 35.32A306.25 306.25 0 0 1 96 385v-64.69a327.39 327.39 0 0 0 48 17zm96 13.68a450 450 0 0 1-64-6.61v-64.27a442.1 442.1 0 0 0 64 6.53zm96-6.61a450 450 0 0 1-64 6.64v-64.38a442.1 442.1 0 0 0 64-6.53zm80-24a306.25 306.25 0 0 1-48 16.9v-64.6a327.39 327.39 0 0 0 48-17zm64-65c0 15.68-11.69 32-32 46.61V303a183.65 183.65 0 0 0 32-25.37zm-224 0c-132 0-224-59-224-112S124 96 256 96s224 59 224 112-92 112-224 112z\"]\n};\nvar faCoins = {\n prefix: 'fal',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M336 32c-48.6 0-92.6 9-124.5 23.4-.9.4-51.5 21-51.5 56.6v16.7C76.1 132.2 0 163.4 0 208v192c0 44.2 78.8 80 176 80s176-35.8 176-80v-16.4c89.7-3.7 160-37.9 160-79.6V112c0-37-62.1-80-176-80zm-16 368c0 13.9-50.5 48-144 48S32 413.9 32 400v-50.1c31.8 20.6 84.4 34.1 144 34.1s112.2-13.5 144-34.1V400zm0-96c0 13.9-50.5 48-144 48S32 317.9 32 304v-50.1c31.8 20.6 84.4 34.1 144 34.1s112.2-13.5 144-34.1V304zm-144-48c-81 0-146.7-21.5-146.7-48S95 160 176 160s146.7 21.5 146.7 48S257 256 176 256zm304 48c0 13.1-45 43.6-128 47.3v-64.1c52.8-2.2 99.1-14.6 128-33.3V304zm0-96c0 13.1-45.1 43.4-128 47.2V208c0-5.6-1.7-11-4.1-16.3 54.6-1.7 102.4-14.5 132.1-33.8V208zm-144-48c-7.3 0-14-.5-20.9-.9-36.9-21.7-85-28.2-115.6-30-6.3-5.3-10.1-11-10.1-17.1 0-26.5 65.7-48 146.7-48s146.7 21.5 146.7 48S417 160 336 160z\"]\n};\nvar faColumns = {\n prefix: 'fal',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM240 448H48c-8.837 0-16-7.163-16-16V96h208v352zm240-16c0 8.837-7.163 16-16 16H272V96h208v336z\"]\n};\nvar faComet = {\n prefix: 'fal',\n iconName: 'comet',\n icon: [512, 512, [], \"e003\", \"M236.90992,256.02578,205.6384,192.55713a15.29617,15.29617,0,0,0-27.45706,0l-31.27152,63.46865L77.04451,266.223a15.3143,15.3143,0,0,0-8.46875,26.13668l50.60356,49.33391-12,69.72841a15.3707,15.3707,0,0,0,15.08595,17.9531,14.985,14.985,0,0,0,7.11329-1.81641L191.90987,394.631l62.53131,32.92768A15.26524,15.26524,0,0,0,276.64043,411.422l-11.92775-69.72841,50.5938-49.33391a15.347,15.347,0,0,0-8.53126-26.13668Zm5.46289,62.75772-12.03712,11.73435,2.83594,16.57029,6.22266,36.38081L206.82,366.31663l-14.91017-7.85155-14.91017,7.85155-32.53715,17.13278,6.25392-36.32806L153.57,330.53153l-12.05274-11.75194L115.08362,293.0101l36.4473-5.32031,16.64846-2.42968,7.43555-15.09177,16.29494-33.07222,16.29494,33.07222,7.43555,15.09177,16.64846,2.42968,36.50589,5.32812ZM504.754,7.23124a24.64079,24.64079,0,0,0-24.5-6.20116C447.97068,10.825,371.3749,34.616,312.87484,59.92256c-.8125-2.90624-1.71875-5.5-2.40625-7.90428a31.09684,31.09684,0,0,0-17.72073-19.58981,30.52225,30.52225,0,0,0-26.375,1.18749C223.154,56.11007,116.36877,114.79943,58.05621,173.08255c-77.40828,77.3866-77.40828,203.45086,0,280.83746a198.87425,198.87425,0,0,0,280.91241,0c58.28326-58.28311,116.90832-165.05444,139.50405-208.24578a31.37146,31.37146,0,0,0,1.1875-26.40035,31.034,31.034,0,0,0-19.59572-17.69919c-2.40626-.6875-5-1.5-7.90626-2.39062,25.002-58.18741,49.002-134.96659,58.81451-167.365A24.76358,24.76358,0,0,0,504.754,7.23124Zm-89.2833,195.2497-7.90626,16.90232,18,5.18554c9.68751,2.81249,18.40627,5.40624,24.40628,6.20311-21.81253,41.89447-78.59579,145.37088-133.72085,200.45087-64.877,64.89053-170.69158,64.98428-235.59985,0s-64.90827-170.66185,0-235.53675C135.74575,140.59041,239.24781,83.80729,279.87285,61.51631c2,6.59179,4.59376,15.29295,7.375,24.99215l5.21875,17.99607,16.90823-7.90429c51.375-24.08785,126.28333-48.28508,166.69158-60.67178C463.752,76.30926,439.37692,151.49274,415.47065,202.48094Z\"]\n};\nvar faComment = {\n prefix: 'fal',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 64c123.5 0 224 79 224 176S379.5 416 256 416c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176m0-32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26 3.8 8.8 12.4 14.5 22 14.5 61.5 0 110-25.7 139.1-46.3 29 9.1 60.2 14.3 93 14.3 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fal',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288z\"]\n};\nvar faCommentAltCheck = {\n prefix: 'fal',\n iconName: 'comment-alt-check',\n icon: [512, 512, [], \"f4a2\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM345.3 134.5c-1.6-1.6-3.6-2.3-5.7-2.3-2 0-4.1.8-5.7 2.3L226.5 241.9 178 193.4c-1.6-1.6-3.6-2.3-5.7-2.3-2 0-4.1.8-5.7 2.3l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l65.5 65.5c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3L356.7 157c3.1-3.1 3.1-8.2 0-11.3l-11.4-11.2z\"]\n};\nvar faCommentAltDollar = {\n prefix: 'fal',\n iconName: 'comment-alt-dollar',\n icon: [512, 512, [], \"f650\", \"M448 0H64C28.65 0 0 28.65 0 64v288c0 35.35 28.65 64 64 64h96v83.98c0 7.1 5.83 12.02 12.05 12.02 2.41 0 4.87-.74 7.08-2.37L304 416h144c35.35 0 64-28.65 64-64V64c0-35.35-28.65-64-64-64zm32 352c0 17.64-14.36 32-32 32H293.34l-8.53 6.4L192 459.98V384H64c-17.64 0-32-14.36-32-32V64c0-17.64 14.36-32 32-32h384c17.64 0 32 14.36 32 32v288zM289.94 201.05l-59.06-16.86c-8.75-2.52-14.88-10.61-14.88-19.7 0-11.3 9.19-20.48 20.47-20.48h36.91c8.24 0 16.08 2.56 22.63 7.32 2.99 2.17 7.22 1.46 9.84-1.16l11.42-11.42c3.5-3.5 2.94-9.22-.99-12.23-12.26-9.41-27.18-14.51-42.9-14.51H272V88c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24h-3.53c-30.59 0-55.13 26.3-52.24 57.48 2.06 22.16 19.06 40.12 40.45 46.22l56.44 16.11c8.75 2.52 14.88 10.61 14.88 19.7 0 11.3-9.19 20.48-20.47 20.48h-36.91c-8.24 0-16.08-2.56-22.63-7.32-2.99-2.17-7.22-1.46-9.84 1.16l-11.42 11.42c-3.5 3.5-2.94 9.21.99 12.23 12.26 9.41 27.18 14.51 42.9 14.51H240v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h1.36c22.81 0 44.33-13.59 51.72-35.17 10.15-29.64-7.28-59.79-35.14-67.77z\"]\n};\nvar faCommentAltDots = {\n prefix: 'fal',\n iconName: 'comment-alt-dots',\n icon: [512, 512, [], \"f4a3\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM128 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24z\"]\n};\nvar faCommentAltEdit = {\n prefix: 'fal',\n iconName: 'comment-alt-edit',\n icon: [512, 512, [], \"f4a4\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM336 105.4c-12.5-12.5-32.8-12.5-45.2 0l-126.1 126c-2 2-3.4 4.5-4.2 7.3l-16 61.2c-1.4 5.5.1 11.3 4.2 15.4 3 3 7.1 4.7 11.3 4.7 1.3 0 2.7-.2 4-.5l61.2-16c2.8-.7 5.3-2.2 7.3-4.2l126.1-126.1c12.5-12.5 12.5-32.8 0-45.2L336 105.4zM213 273.6l-30.6 8 8-30.6 75-75 22.6 22.6-75 75zm97.6-97.6L288 153.4l25.4-25.4 22.6 22.6-25.4 25.4z\"]\n};\nvar faCommentAltExclamation = {\n prefix: 'fal',\n iconName: 'comment-alt-exclamation',\n icon: [512, 512, [], \"f4a5\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zm-224-88c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-8.5-24h17c4.2 0 7.7-3.3 8-7.5l7-112c.3-4.6-3.4-8.5-8-8.5h-31c-4.6 0-8.3 3.9-8 8.5l7 112c.3 4.2 3.8 7.5 8 7.5z\"]\n};\nvar faCommentAltLines = {\n prefix: 'fal',\n iconName: 'comment-alt-lines',\n icon: [512, 512, [], \"f4a6\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM280 240H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm96-96H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faCommentAltMedical = {\n prefix: 'fal',\n iconName: 'comment-alt-medical',\n icon: [512, 512, [], \"f7f4\", \"M448 0H64A64 64 0 0 0 0 64v288a64 64 0 0 0 64 64h96v84a12 12 0 0 0 12.05 12 11.84 11.84 0 0 0 7.08-2.37L304 416h144a64 64 0 0 0 64-64V64a64 64 0 0 0-64-64zm32 352a32 32 0 0 1-32 32H293.34l-8.54 6.4L192 460v-76H64a32 32 0 0 1-32-32V64a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32zM344 176h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8z\"]\n};\nvar faCommentAltMinus = {\n prefix: 'fal',\n iconName: 'comment-alt-minus',\n icon: [512, 512, [], \"f4a7\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM344 192H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faCommentAltMusic = {\n prefix: 'fal',\n iconName: 'comment-alt-music',\n icon: [512, 512, [], \"f8af\", \"M448 0H64A64.05 64.05 0 0 0 0 64v288a64.05 64.05 0 0 0 64 64h96v84a12 12 0 0 0 12 12 11.35 11.35 0 0 0 7.09-2.41L304 416h144a64.05 64.05 0 0 0 64-64V64a64.05 64.05 0 0 0-64-64zm32 352a32.11 32.11 0 0 1-32 32H293.31l-8.5 6.41L192 460v-76H64a32.11 32.11 0 0 1-32-32V64a32.11 32.11 0 0 1 32-32h384a32.11 32.11 0 0 1 32 32zM331.19 96.75l-128 47.25A16 16 0 0 0 192 159.25V258a69.89 69.89 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V179.16l96-37.52V226a69.89 69.89 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V112a16 16 0 0 0-20.81-15.25z\"]\n};\nvar faCommentAltPlus = {\n prefix: 'fal',\n iconName: 'comment-alt-plus',\n icon: [512, 512, [], \"f4a8\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM344 192h-72v-72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v72h-72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h72v72c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-72h72c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faCommentAltSlash = {\n prefix: 'fal',\n iconName: 'comment-alt-slash',\n icon: [640, 512, [], \"f4a9\", \"M637 485.2l-96.7-76.1-22.5-17.7-443.2-349-5.2-4.1L23 1.8C19.6-1 14.5-.4 11.8 3l-10 12.5C-1 19-.4 24 3 26.8l61 48L96 100l360.7 284 15.9 12.5L617 510.2c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.2-8.5-1.2-11.3zM368 384h-10.7l-8.5 6.4L256 460v-76H128c-17.6 0-32-14.4-32-32V161.1l-32-25.2V352c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L368 416h51.7l-40.6-32H368zM512 32c17.6 0 32 14.4 32 32v286.9l28.2 22.2c2.3-6.6 3.8-13.7 3.8-21.1V64c0-35.3-28.7-64-64-64H128c-8.4 0-16.4 1.7-23.7 4.7L139 32h373z\"]\n};\nvar faCommentAltSmile = {\n prefix: 'fal',\n iconName: 'comment-alt-smile',\n icon: [512, 512, [], \"f4aa\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM331.8 237.3C313 259.4 285.4 272 256 272s-57-12.6-75.8-34.6c-5.7-6.7-15.8-7.4-22.5-1.8-6.8 5.8-7.5 15.8-1.8 22.6C180.7 287.3 217.2 304 256 304s75.3-16.7 100.2-45.9c5.8-6.7 4.9-16.8-1.8-22.6-6.7-5.7-16.8-4.9-22.6 1.8zM192 184c13.3 0 24-10.7 24-24s-10.7-24-24-24-24 10.7-24 24 10.7 24 24 24zm128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24-24 10.7-24 24 10.7 24 24 24z\"]\n};\nvar faCommentAltTimes = {\n prefix: 'fal',\n iconName: 'comment-alt-times',\n icon: [512, 512, [], \"f4ab\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 352c0 17.6-14.4 32-32 32H293.3l-8.5 6.4L192 460v-76H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v288zM329.5 145.8l-11.3-11.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3L256 185.4l-50.9-50.9c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l50.9 50.9-50.9 50.9c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l50.9-50.9 50.9 50.9c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-51-50.9 50.9-50.9c3.2-3.1 3.2-8.2 0-11.3z\"]\n};\nvar faCommentCheck = {\n prefix: 'fal',\n iconName: 'comment-check',\n icon: [512, 512, [], \"f4ac\", \"M345.3 166.5c-1.6-1.6-3.6-2.3-5.7-2.3-2 0-4.1.8-5.7 2.3L226.5 273.9 178 225.4c-1.6-1.6-3.6-2.3-5.7-2.3-2 0-4.1.8-5.7 2.3l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l65.5 65.5c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3L356.7 189c3.1-3.1 3.1-8.2 0-11.3l-11.4-11.2zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentDollar = {\n prefix: 'fal',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 47.55 19.86 91.23 52.9 126.27C38 405.72 6.97 439.06 6.54 439.5c-6.56 6.95-8.38 17.19-4.59 25.98S14.39 480 23.98 480c61.51 0 110.02-25.72 139.15-46.33C191.95 442.8 223.2 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm0 384c-28.33 0-56.32-4.32-83.21-12.84l-15.16-4.8-12.99 9.19c-23.02 16.29-58.53 35.34-102.62 39.59 11.99-15.09 29.82-40.44 40.81-69.55l7.07-18.71-13.72-14.55C47.28 313.67 32 277.6 32 240c0-97.05 100.49-176 224-176s224 78.95 224 176-100.49 176-224 176zm33.94-182.95l-59.06-16.86c-8.75-2.52-14.88-10.61-14.88-19.7 0-11.3 9.19-20.48 20.47-20.48h36.91c8.24 0 16.08 2.56 22.63 7.32 2.99 2.17 7.22 1.46 9.84-1.16l11.42-11.42c3.5-3.5 2.94-9.22-.99-12.23-12.26-9.41-27.18-14.51-42.9-14.51H272v-24c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24h-3.53c-30.59 0-55.13 26.3-52.24 57.48 2.06 22.16 19.06 40.12 40.45 46.22l56.44 16.11c8.75 2.52 14.88 10.61 14.88 19.7 0 11.3-9.19 20.48-20.47 20.48h-36.91c-8.24 0-16.08-2.56-22.63-7.32-2.99-2.17-7.22-1.46-9.84 1.16l-11.42 11.42c-3.5 3.5-2.94 9.21.99 12.23 12.26 9.41 27.18 14.51 42.9 14.51H240v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h1.36c22.81 0 44.33-13.59 51.72-35.17 10.15-29.65-7.28-59.8-35.14-67.78z\"]\n};\nvar faCommentDots = {\n prefix: 'fal',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M128 216c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentEdit = {\n prefix: 'fal',\n iconName: 'comment-edit',\n icon: [512, 512, [], \"f4ae\", \"M336 137.4c-12.5-12.5-32.8-12.5-45.2 0l-126.1 126c-2 2-3.4 4.5-4.2 7.3l-16 61.2c-1.4 5.5.1 11.3 4.2 15.4 3 3 7.1 4.7 11.3 4.7 1.3 0 2.7-.2 4-.5l61.2-16c2.8-.7 5.3-2.2 7.3-4.2l126.1-126.1c12.5-12.5 12.5-32.8 0-45.2L336 137.4zM213 305.6l-30.6 8 8-30.6 75-75 22.6 22.6-75 75zm97.6-97.6L288 185.4l25.4-25.4 22.6 22.6-25.4 25.4zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentExclamation = {\n prefix: 'fal',\n iconName: 'comment-exclamation',\n icon: [512, 512, [], \"f4af\", \"M256 296c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-8.5-24h17c4.2 0 7.7-3.3 8-7.5l7-112c.3-4.6-3.4-8.5-8-8.5h-31c-4.6 0-8.3 3.9-8 8.5l7 112c.3 4.2 3.8 7.5 8 7.5zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentLines = {\n prefix: 'fal',\n iconName: 'comment-lines',\n icon: [512, 512, [], \"f4b0\", \"M280 272H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm96-96H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentMedical = {\n prefix: 'fal',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M344 208h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zM256 32C114.62 32 0 125.12 0 240c0 47.55 19.86 91.23 52.9 126.27C38 405.72 7 439.06 6.54 439.5A24 24 0 0 0 24 480c61.51 0 110-25.72 139.15-46.33A307.33 307.33 0 0 0 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm0 384a275.11 275.11 0 0 1-83.21-12.84l-15.16-4.8-13 9.18c-23 16.29-58.53 35.34-102.63 39.59 12-15.13 29.84-40.44 40.84-69.55l7.06-18.71-13.72-14.56C47.28 313.67 32 277.6 32 240c0-97 100.49-176 224-176s224 79 224 176-100.49 176-224 176z\"]\n};\nvar faCommentMinus = {\n prefix: 'fal',\n iconName: 'comment-minus',\n icon: [512, 512, [], \"f4b1\", \"M344 224H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentMusic = {\n prefix: 'fal',\n iconName: 'comment-music',\n icon: [512, 512, [], \"f8b0\", \"M256 32C114.64 32 .07 125.09.07 240 .07 287.59 20 331.2 53 366.3c-14.91 39.4-45.9 72.79-46.4 73.2A24 24 0 0 0 24 480c61.49 0 110-25.7 139.07-46.3A309.89 309.89 0 0 0 256 448c141.39 0 256-93.09 256-208S397.42 32 256 32zm0 384a275.44 275.44 0 0 1-83.17-12.8l-15.22-4.79-13 9.18c-23 16.32-58.49 35.32-102.58 39.61 12-15.11 29.81-40.4 40.81-69.61L90 358.91 76.24 344.3C47.37 313.7 32.06 277.59 32.06 240c0-97 100.49-176 224-176s224 79 224 176S379.52 416 256 416zm75.18-287.25L203.23 176A16 16 0 0 0 192 191.25V290a69.82 69.82 0 0 0-16-2c-26.49 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V211.16l96-37.52V258a69.8 69.8 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V144a16 16 0 0 0-20.79-15.25z\"]\n};\nvar faCommentPlus = {\n prefix: 'fal',\n iconName: 'comment-plus',\n icon: [512, 512, [], \"f4b2\", \"M344 224h-72v-72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v72h-72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h72v72c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-72h72c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faCommentSlash = {\n prefix: 'fal',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M320 64c123.5 0 224 79 224 176 0 31.8-11 61.6-29.9 87.4l25 19.7C562.4 315.8 576 279.2 576 240c0-114.9-114.6-208-256-208-51.2 0-98.7 12.3-138.7 33.3l27.8 21.9C241.9 72.5 279.7 64 320 64zm317 421.2L164.8 113.4 138.9 93 23 1.8C19.6-1 14.5-.4 11.8 3l-10 12.5C-1 19-.4 24 3 26.8l112.5 88.6 25.1 19.8 476.4 375c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.2-8.5-1.2-11.3zM320 416c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C111.3 313.7 96 277.6 96 240c0-23.3 5.9-45.6 16.5-66l-25.4-20C72.4 180.3 64 209.3 64 240c0 47.6 19.9 91.2 52.9 126.3-14.9 39.4-45.9 72.8-46.4 73.2-6.6 7-8.4 17.2-4.6 26S78.4 480 88 480c61.5 0 110-25.7 139.1-46.3C256 442.8 287.2 448 320 448c40.6 0 78.9-7.9 113-21.6l-29.5-23.2c-25.9 8.2-54 12.8-83.5 12.8z\"]\n};\nvar faCommentSmile = {\n prefix: 'fal',\n iconName: 'comment-smile',\n icon: [512, 512, [], \"f4b4\", \"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176zm75.8-130.7C313 307.4 285.4 320 256 320s-57-12.6-75.8-34.6c-5.7-6.7-15.8-7.4-22.5-1.8-6.8 5.8-7.5 15.8-1.8 22.6C180.7 335.3 217.2 352 256 352s75.3-16.7 100.2-45.9c5.8-6.7 4.9-16.8-1.8-22.6-6.7-5.7-16.8-4.9-22.6 1.8zM192 216c13.3 0 24-10.7 24-24s-10.7-24-24-24-24 10.7-24 24 10.7 24 24 24zm128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24-24 10.7-24 24 10.7 24 24 24z\"]\n};\nvar faCommentTimes = {\n prefix: 'fal',\n iconName: 'comment-times',\n icon: [512, 512, [], \"f4b5\", \"M329.5 177.8l-11.3-11.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3L256 217.4l-50.9-50.9c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l50.9 50.9-50.9 50.9c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l50.9-50.9 50.9 50.9c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-51-50.9 50.9-50.9c3.2-3.1 3.2-8.2 0-11.3zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.3 313.7 32 277.6 32 240c0-97 100.5-176 224-176s224 79 224 176-100.5 176-224 176z\"]\n};\nvar faComments = {\n prefix: 'fal',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M569.9 441.1c-.5-.4-22.6-24.2-37.9-54.9 27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.4 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.1 2.1 18.4 3.7 28 4.8 31.5 57.5 105.5 98 191.8 98 20.8 0 40.8-2.4 59.8-6.8 28.5 18.5 71.6 38.8 125.2 38.8 9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25zM155.4 314l-13.2-3-11.4 7.4c-20.1 13.1-50.5 28.2-87.7 32.5 8.8-11.3 20.2-27.6 29.5-46.4L83 283.7l-16.5-16.3C50.7 251.9 32 226.2 32 192c0-70.6 79-128 176-128s176 57.4 176 128-79 128-176 128c-17.7 0-35.4-2-52.6-6zm289.8 100.4l-11.4-7.4-13.2 3.1c-17.2 4-34.9 6-52.6 6-65.1 0-122-25.9-152.4-64.3C326.9 348.6 416 278.4 416 192c0-9.5-1.3-18.7-3.3-27.7C488.1 178.8 544 228.7 544 288c0 34.2-18.7 59.9-34.5 75.4L493 379.7l10.3 20.7c9.4 18.9 20.8 35.2 29.5 46.4-37.1-4.2-67.5-19.4-87.6-32.4z\"]\n};\nvar faCommentsAlt = {\n prefix: 'fal',\n iconName: 'comments-alt',\n icon: [576, 512, [], \"f4b6\", \"M512 160h-96V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64v160c0 35.3 28.7 64 64 64h32v52c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4l76.9-43.5V384c0 35.3 28.7 64 64 64h96l108.9 61.6c2.2 1.6 4.7 2.4 7.1 2.4 6.2 0 12-4.9 12-12v-52h32c35.3 0 64-28.7 64-64V224c0-35.3-28.7-64-64-64zM64 256c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h288c17.6 0 32 14.4 32 32v160c0 17.6-14.4 32-32 32H215.6l-7.3 4.2-80.3 45.4V256zm480 128c0 17.6-14.4 32-32 32h-64v49.6l-80.2-45.4-7.3-4.2H256c-17.6 0-32-14.4-32-32v-96h128c35.3 0 64-28.7 64-64v-32h96c17.6 0 32 14.4 32 32z\"]\n};\nvar faCommentsAltDollar = {\n prefix: 'fal',\n iconName: 'comments-alt-dollar',\n icon: [576, 512, [], \"f652\", \"M224 234.6c21.85-1.29 39.38-19.62 39.38-42.46 0-18.98-12.34-35.94-30-41.23l-41.56-12.47c-4.22-1.27-7.19-5.62-7.19-10.58 0-6.03 4.34-10.94 9.66-10.94h25.94c3.9 0 7.65 1.08 10.96 3.1 3.17 1.93 7.31 1.15 10-1.4l11.44-10.87c3.53-3.36 3.38-9.22-.54-12.11-8.18-6.03-17.97-9.58-28.08-10.32V72c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v13.4c-21.85 1.29-39.38 19.62-39.38 42.46 0 18.98 12.34 35.94 30 41.23l41.56 12.47c4.22 1.27 7.19 5.62 7.19 10.58 0 6.03-4.34 10.94-9.66 10.94h-25.94c-3.9 0-7.65-1.08-10.96-3.1-3.17-1.94-7.31-1.15-10 1.4l-11.44 10.87c-3.53 3.36-3.38 9.22.54 12.11 8.18 6.03 17.97 9.58 28.08 10.32V248c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-13.4zM512 160h-96V64c0-35.35-28.65-64-64-64H64C28.65 0 0 28.65 0 64v192c0 35.35 28.65 64 64 64h32v51.98c0 7.1 5.83 12.02 12.05 12.02 2.41 0 4.87-.74 7.08-2.37L192 338.12V384c0 35.35 28.65 64 64 64h96l108.87 61.63c2.21 1.63 4.68 2.37 7.08 2.37 6.22 0 12.05-4.92 12.05-12.02V448h32c35.35 0 64-28.65 64-64V224c0-35.35-28.65-64-64-64zM128 337.57V288H64c-17.64 0-32-14.36-32-32V64c0-17.64 14.36-32 32-32h288c17.64 0 32 14.36 32 32v192c0 17.64-14.36 32-32 32H215.57L128 337.57zM544 384c0 17.64-14.36 32-32 32h-64v49.57L360.43 416H256c-17.64 0-32-14.36-32-32v-64h128c35.35 0 64-28.65 64-64v-64h96c17.64 0 32 14.36 32 32v160z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fal',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M532.01 386.17C559.48 359.05 576 325.04 576 288c0-80.02-76.45-146.13-176.18-157.94 0 .01.01.02.01.03C368.37 72.47 294.34 32 208 32 93.12 32 0 103.63 0 192c0 37.04 16.52 71.05 43.99 98.17-15.3 30.74-37.34 54.53-37.7 54.89-6.31 6.69-8.05 16.53-4.42 24.99A23.085 23.085 0 0 0 23.06 384c53.54 0 96.67-20.24 125.17-38.78 9.08 2.09 18.45 3.68 28 4.82C207.74 407.59 281.73 448 368 448c20.79 0 40.83-2.41 59.77-6.78C456.27 459.76 499.4 480 552.94 480c9.22 0 17.55-5.5 21.18-13.96 3.64-8.46 1.89-18.3-4.42-24.99-.35-.36-22.39-24.14-37.69-54.88zm-376.59-72.13l-13.24-3.05-11.39 7.41c-20.07 13.06-50.49 28.25-87.68 32.47 8.77-11.3 20.17-27.61 29.54-46.44l10.32-20.75-16.49-16.28C50.75 251.87 32 226.19 32 192c0-70.58 78.95-128 176-128s176 57.42 176 128-78.95 128-176 128c-17.73 0-35.42-2.01-52.58-5.96zm289.8 100.35l-11.39-7.41-13.24 3.05A234.318 234.318 0 0 1 368 416c-65.14 0-122-25.94-152.43-64.29C326.91 348.62 416 278.4 416 192c0-9.45-1.27-18.66-3.32-27.66C488.12 178.78 544 228.67 544 288c0 34.19-18.75 59.87-34.47 75.39l-16.49 16.28 10.32 20.75c9.38 18.86 20.81 35.19 29.53 46.44-37.19-4.22-67.6-19.41-87.67-32.47zM233.38 182.91l-41.56-12.47c-4.22-1.27-7.19-5.62-7.19-10.58 0-6.03 4.34-10.94 9.66-10.94h25.94c3.9 0 7.65 1.08 10.96 3.1 3.17 1.93 7.31 1.15 10-1.4l11.44-10.87c3.53-3.36 3.38-9.22-.54-12.11-8.18-6.03-17.97-9.58-28.08-10.32V104c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v13.4c-21.85 1.29-39.38 19.62-39.38 42.46 0 18.98 12.34 35.94 30 41.23l41.56 12.47c4.22 1.27 7.19 5.62 7.19 10.58 0 6.03-4.34 10.94-9.66 10.94h-25.94c-3.9 0-7.65-1.08-10.96-3.1-3.17-1.94-7.31-1.15-10 1.4l-11.44 10.87c-3.53 3.36-3.38 9.22.54 12.11 8.18 6.03 17.97 9.58 28.08 10.32V280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-13.4c21.85-1.29 39.38-19.62 39.38-42.46 0-18.98-12.35-35.94-30-41.23z\"]\n};\nvar faCompactDisc = {\n prefix: 'fal',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm0-312c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm0-88c-13.2 0-24 10.8-24 24s10.8 24 24 24 24-10.8 24-24-10.8-24-24-24zm-8-144c-88.2 0-160 71.8-160 160h32c0-70.6 57.4-128 128-128V88z\"]\n};\nvar faCompass = {\n prefix: 'fal',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M264.97 272.97c9.38-9.37 9.38-24.57 0-33.94-9.37-9.37-24.57-9.37-33.94 0-9.38 9.37-9.38 24.57 0 33.94 9.37 9.37 24.57 9.37 33.94 0zM351.44 125c-2.26 0-4.51.37-6.71 1.16l-154.9 55.85c-7.49 2.7-13.1 8.31-15.8 15.8l-55.85 154.91c-5.65 15.67 10.33 34.27 26.4 34.27 2.26 0 4.51-.37 6.71-1.16l154.9-55.85c7.49-2.7 13.1-8.31 15.8-15.8l55.85-154.9c5.64-15.67-10.33-34.28-26.4-34.28zm-58.65 175.79l-140.1 50.51 50.51-140.11 140.11-50.51-50.52 140.11zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216z\"]\n};\nvar faCompassSlash = {\n prefix: 'fal',\n iconName: 'compass-slash',\n icon: [640, 512, [], \"f5e9\", \"M322 474.1c-58 0-114.6-23.3-155.2-63.9C126.5 370 104.3 315.6 104 257c-.1-33.2 7.1-65 20.5-93.9l-25.8-20.3c-47.4 94.3-31.2 213.4 45.4 290 48.4 48.4 113.1 73.3 177.9 73.3 57.6 0 115.1-20 161.2-60.5l-25.5-20C420 457 372.5 474.1 322 474.1zm89.1-207.4l38.7-107.4c5.6-15.7-10.3-34.3-26.4-34.3-2.3 0-4.5.4-6.7 1.2l-126.2 45.5 29.6 23.3 95.2-34.3-30.7 85.1zM317.3 40c58.2 0 113.2 23 154.9 64.7 66 66 80.4 164.1 43.7 244.4l25.8 20.3C587.9 276 572.4 159.6 494.8 82 445.6 32.9 381.4 8 317.3 8 260.5 8 203.9 27.8 158 67.3l25.5 20.1C221.4 56.7 268 40 317.3 40zm-88.4 205.3l-38.7 107.4c-5.7 15.7 10.3 34.3 26.4 34.3 2.3 0 4.5-.4 6.7-1.2l126.2-45.5-29.6-23.3-95.2 34.3 30.7-85.1zM637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3z\"]\n};\nvar faCompress = {\n prefix: 'fal',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v116h116c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v116H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h116v116c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12zm160 0V352h116c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fal',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M9.171 476.485l-5.656-5.656c-4.686-4.686-4.686-12.284 0-16.971L169.373 288H108c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h100c8.837 0 16 7.163 16 16v100c0 6.627-5.373 12-12 12h-8c-6.627 0-12-5.373-12-12v-61.373L26.142 476.485c-4.687 4.687-12.285 4.687-16.971 0zM240 256h100c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-61.373L444.485 58.142c4.686-4.686 4.686-12.284 0-16.971l-5.656-5.656c-4.686-4.686-12.284-4.686-16.971 0L256 201.373V140c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v100c0 8.837 7.163 16 16 16z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fal',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M312 224h112c21.4 0 32.1-25.9 17-41l-44.7-44.7L509.7 25c3.1-3.1 3.1-8.2 0-11.3L498.3 2.3c-3.1-3.1-8.2-3.1-11.3 0L373.6 115.7 329 71.1c-4.9-4.9-10.9-7.1-16.8-7.1-12.3 0-24.2 9.6-24.2 24.1v112c0 13.2 10.7 23.9 24 23.9zm8-116.7l84.7 84.7H320v-84.7zm76.3 266.3l44.7-44.7c4.9-4.9 7.1-10.9 7.1-16.8 0-12.3-9.6-24.2-24.1-24.2H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l44.7-44.7L487 509.7c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L396.3 373.6zM320 404.7V320h84.7L320 404.7zM200 288H88c-21.4 0-32.1 25.9-17 41l44.7 44.7L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l113.4-113.4 44.7 44.7c4.9 4.9 10.9 7.1 16.8 7.1 12.3 0 24.2-9.6 24.2-24.1V312c0-13.3-10.7-24-24-24zm-8 116.7L107.3 320H192v84.7zm-9-333.6l-44.7 44.7L25 2.3c-3.1-3.1-8.2-3.1-11.3 0L2.3 13.7c-3.1 3.1-3.1 8.2 0 11.3l113.4 113.4L71.1 183c-4.9 4.9-7.1 10.9-7.1 16.8 0 12.3 9.6 24.2 24.1 24.2h112c13.3 0 24-10.7 24-24V88c-.1-21.3-26-32-41.1-16.9zm9 120.9h-84.7l84.7-84.7V192z\"]\n};\nvar faCompressWide = {\n prefix: 'fal',\n iconName: 'compress-wide',\n icon: [512, 512, [], \"f326\", \"M500 224H376c-13.3 0-24-10.7-24-24V76c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v116h116c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12zm-340-24V76c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v116H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 236V312c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h116v116c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12zm224 0V320h116c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H376c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12z\"]\n};\nvar faComputerClassic = {\n prefix: 'fal',\n iconName: 'computer-classic',\n icon: [448, 512, [], \"f8b1\", \"M376 320H232a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM416 0H32A32 32 0 0 0 0 32v400a16 16 0 0 0 16 16h16v48a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-48h16a16 16 0 0 0 16-16V32a32 32 0 0 0-32-32zm-32 480H64v-32h320zm32-64H32V32h384zM96 256h256a32 32 0 0 0 32-32V96a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32zm0-160h256v128H96zM80 356a20 20 0 1 0-20-20 20 20 0 0 0 20 20z\"]\n};\nvar faComputerSpeaker = {\n prefix: 'fal',\n iconName: 'computer-speaker',\n icon: [640, 512, [], \"f8b2\", \"M480 192a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm0-64a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm0 96a96 96 0 1 0 96 96 96.1 96.1 0 0 0-96-96zm0 160a64 64 0 1 1 64-64 64.08 64.08 0 0 1-64 64zm0-88a24 24 0 1 0 24 24 24 24 0 0 0-24-24zM592 32H368a48 48 0 0 0-48 48v352a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm16 400a16 16 0 0 1-16 16H368a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h224a16 16 0 0 1 16 16zm-504 16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h200.41a79.15 79.15 0 0 1-14.79-32zM0 64v288a32 32 0 0 0 32 32h256v-32H32V64h257.62a79.15 79.15 0 0 1 14.79-32H32A32 32 0 0 0 0 64z\"]\n};\nvar faConciergeBell = {\n prefix: 'fal',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M504 416h-24v-64c0-118.31-91.79-214.96-208-223.19V96h40c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8H200c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h40v32.81C123.79 137.04 32 233.69 32 352v64H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h496c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-56 0H64v-64c0-100.17 78.3-184.19 178.26-191.27 16.87-1.19 10.33-1.21 27.48 0C369.7 167.81 448 251.83 448 352v64z\"]\n};\nvar faConstruction = {\n prefix: 'fal',\n iconName: 'construction',\n icon: [640, 512, [], \"f85d\", \"M289.38 372l-83-53.81-29.75 109.4a16 16 0 0 0 11.23 19.69 15.75 15.75 0 0 0 4.22.56A16 16 0 0 0 207.45 436l18.25-67.06 46.31 30v32.85a16 16 0 1 0 32 0v-32.85A32 32 0 0 0 289.38 372zM308 215.22a28.08 28.08 0 1 0-28-28.07 28 28 0 0 0 28 28.07zm168.87 117.17a10.92 10.92 0 0 0-8.4-6.13 16.3 16.3 0 0 0-5-1.23h-.07a1400.59 1400.59 0 0 0-7.31 1.76 15.78 15.78 0 0 0-6 5.35l-28.34 42.44-79.45-49-10.55-52.87c-3.72-18.66-18.11-33.4-35.56-37.24l-24.57-7.3a47.44 47.44 0 0 0-10.45-1.17 48 48 0 0 0-38.35 19.27l-11.6 15.53a16.07 16.07 0 0 0 4.4 23.28l103.94 64.14a.6.6 0 0 0 .11.06l70.65 43.6H369a19.14 19.14 0 0 0-18.21 12.54L336 447.83h185.49A16 16 0 0 0 535 423.12zm-229.53-65.46l1.09-1.47a16 16 0 0 1 12.74-6.46 14.86 14.86 0 0 1 2.66.23l23.3 6.92 1.11.33 1.13.25c5.21 1.15 9.86 6.27 11 12.19l4.72 23.62zm185.45 148.82l3.38-5.07 27-40.37 29.08 45.44zm199.51 22.74L361.43 20.91C343.37-7 296.63-7 278.57 20.91L7.7 438.49a46.38 46.38 0 0 0-1.94 48A49.12 49.12 0 0 0 49.13 512h541.74a49.12 49.12 0 0 0 43.37-25.54 46.38 46.38 0 0 0-1.94-47.97zm-26.18 32.67a17 17 0 0 1-15.25 8.76H49.13a17 17 0 0 1-15.25-8.76 14.59 14.59 0 0 1 .63-15.16L305.38 38.4a17.78 17.78 0 0 1 29.24 0L605.49 456a14.59 14.59 0 0 1 .63 15.16z\"]\n};\nvar faContainerStorage = {\n prefix: 'fal',\n iconName: 'container-storage',\n icon: [640, 512, [], \"f4b7\", \"M632 64c4.4 0 8-3.6 8-8V40c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h8v384H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-8V64h8zm-40 384H48V64h544v384zm-472-64h16c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8z\"]\n};\nvar faConveyorBelt = {\n prefix: 'fal',\n iconName: 'conveyor-belt',\n icon: [640, 512, [], \"f46e\", \"M544 320H96c-53 0-96 43-96 96s43 96 96 96h448c53 0 96-43 96-96s-43-96-96-96zm0 160H96c-35.3 0-64-28.7-64-64s28.7-64 64-64h448c35.3 0 64 28.7 64 64s-28.7 64-64 64zM144 368c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm352-64c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm-176-64c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM144 288h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zM288 32h64v76.2l-32-16-32 16V32zm-128 0h96v128l64-32 64 32V32h96v224H160V32z\"]\n};\nvar faConveyorBeltAlt = {\n prefix: 'fal',\n iconName: 'conveyor-belt-alt',\n icon: [640, 512, [], \"f46f\", \"M544 320H96c-53 0-96 43-96 96s43 96 96 96h448c53 0 96-43 96-96s-43-96-96-96zm0 160H96c-35.3 0-64-28.7-64-64s28.7-64 64-64h448c35.3 0 64 28.7 64 64s-28.7 64-64 64zM144 368c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm352-64c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm-176-64c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM112 288h416c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H384V16c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zM384 96h128v160H384V96zM128 32h224v224H128V32z\"]\n};\nvar faCookie = {\n prefix: 'fal',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M352 328c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-8-200c0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24s24-10.75 24-24zm-160 64c0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24s24-10.75 24-24zm8 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96-96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm222.37 22.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15C250.11.54 243.22 0 236.34 0c-20.72 0-41.25 4.88-59.89 14.38l-69.12 35.21a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.87A132.602 132.602 0 0 0 1.62 257.2l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c6.86 1.09 13.75 1.62 20.63 1.62 20.72 0 41.25-4.88 59.88-14.38l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87a132.56 132.56 0 0 0 12.82-80.93zm-41.33 66.41l-35.1 68.88c-9.68 19-24.83 34.15-43.8 43.82l-69.12 35.21c-13.98 7.13-29.67 10.89-45.36 10.89-5.21 0-10.47-.41-15.63-1.23l-76.69-12.14c-20.99-3.33-40.04-13.04-55.09-28.08L73.5 383.79c-15.09-15.09-24.84-34.22-28.18-55.33L33.24 252.2c-3.35-21.12.02-42.36 9.72-61.4l35.1-68.88c9.68-19 24.83-34.15 43.8-43.82l69.12-35.21C204.97 35.77 220.65 32 236.34 32c5.21 0 10.47.41 15.62 1.23l76.7 12.15c20.99 3.32 40.04 13.03 55.08 28.08l54.76 54.75c15.09 15.09 24.84 34.22 28.18 55.33l12.08 76.26c3.35 21.12-.02 42.36-9.72 61.4z\"]\n};\nvar faCookieBite = {\n prefix: 'fal',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M352 328c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zM184 192c0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24s24-10.75 24-24zm8 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96-96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm222.52 23.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45C249.57.5 242.9 0 236.26 0c-20.68 0-41.18 4.85-59.79 14.33l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.28a132.555 132.555 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.14c6.86 1.09 13.76 1.62 20.64 1.62 20.72 0 41.25-4.88 59.89-14.38l69.13-35.22a132.221 132.221 0 0 0 57.79-57.81l35.1-68.88c12.56-24.63 17.01-52.57 12.91-79.9zm-41.42 65.36L434 390.07c-9.68 19-24.83 34.15-43.81 43.82l-69.13 35.22C307.08 476.23 291.39 480 275.7 480c-5.21 0-10.47-.41-15.63-1.23l-76.7-12.14c-21-3.33-40.05-13.04-55.09-28.08l-54.77-54.76c-15.1-15.09-24.84-34.23-28.18-55.33l-12.08-76.27c-3.35-21.12.02-42.36 9.72-61.41l35.1-68.88c9.68-19 24.83-34.15 43.81-43.82L191 42.85c11.33-5.77 23.8-9.33 36.51-10.46 13.15 63.15 63.84 112.95 127.25 124.86 11.91 63.42 61.71 114.11 124.87 127.25-1.1 12.73-4.64 25.14-10.53 36.68z\"]\n};\nvar faCopy = {\n prefix: 'fal',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM352 32.491a15.88 15.88 0 0 1 7.431 4.195l51.882 51.883A15.885 15.885 0 0 1 415.508 96H352V32.491zM288 464c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V144c0-8.822 7.178-16 16-16h80v240c0 26.51 21.49 48 48 48h112v48zm128-96c0 8.822-7.178 16-16 16H176c-8.822 0-16-7.178-16-16V48c0-8.822 7.178-16 16-16h144v72c0 13.2 10.8 24 24 24h72v240z\"]\n};\nvar faCopyright = {\n prefix: 'fal',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm216 248c0 118.663-96.055 216-216 216-118.663 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.663 0 216 96.055 216 216zM360.474 357.366c-9.414 9.142-44.455 38.966-100.106 38.966-77.825 0-136.513-60.551-136.513-140.846 0-77.951 58.345-137.596 135.431-137.596 53.547 0 85.508 24.785 94.028 32.381a11.96 11.96 0 0 1 1.721 16.001l-8.763 12.08c-4.034 5.561-11.877 6.579-17.203 2.329-8.921-7.122-33.509-23.688-69.062-23.688-54.32 0-94.161 41.791-94.161 98.131 0 58.209 40.791 102.104 94.882 102.104 39.538 0 66.522-22.074 73.851-28.84 5.068-4.681 13.054-4.108 17.423 1.239l9.414 11.534c3.969 4.861 3.564 11.828-.942 16.205z\"]\n};\nvar faCorn = {\n prefix: 'fal',\n iconName: 'corn',\n icon: [512, 512, [], \"f6c7\", \"M446.02 0c-12.95 0-25.27 3.8-35.67 10.62-15.35-4.08-28.15-1.5-34.89.49a65.477 65.477 0 0 0-27.61 15.95c-6.24-.44-17.55-.39-30.47 5.1-10.02 4.51-18.52 11.13-25.04 19.2a64.994 64.994 0 0 0-29.68 8.99c-8.75 4.96-16.12 11.98-21.61 20.32-10.18 1.49-19.83 5.37-28.32 11.43-.09.06-.15.16-.24.23-6.96-9.54-14.48-18.74-22.99-27.24l-21.13-21.14c-9.04-9.04-24.5-4.36-27 8.17l-23.76 118.81-80.55 80.56C16.98 271.58 2.98 297.65.47 325.94c-3.1 34.91 9.09 68.28 33.5 92.69l62.21 62.23.28-.28c27.38 25.57 64.77 36.9 103.31 28.88 22.86-4.75 43.42-17.25 59.93-33.76l81.32-81.34 118.8-23.76c12.53-2.51 17.21-17.97 8.18-27l-21.14-21.14c-8.66-8.66-18.02-16.31-27.74-23.36 4.96-7.75 8.43-16.21 9.79-25.06a64.739 64.739 0 0 0 20.94-22.24c5.29-8.9 8.26-18.84 8.84-28.94 8.11-6.41 14.68-14.7 19.02-24.35 4.47-9.93 6.33-20.58 5.63-31.05a66.545 66.545 0 0 0 16.12-26.97 66.217 66.217 0 0 0 .79-34.51C528.26 65.2 504.65 0 446.02 0zM56.6 277.21l90.49-90.51 19.79-98.99c48.33 48.33 65.35 115.45 52.51 177.72-35.47 10.72-67.98 30.09-94.92 57.04L54.06 392.9c-29.96-32.98-29.3-83.86 2.54-115.69zm367.63 67.88l-98.98 19.8-90.5 90.51c-16.4 16.4-37.89 24.6-59.39 24.6-21.49 0-42.99-8.2-59.39-24.6l-39.59-39.6 70.7-70.71c38.27-38.27 88.42-57.41 138.57-57.41 50.16 0 100.31 19.14 138.58 57.41zm37.16-246.25c7.5 8.31 10.98 20.36 7.5 32.15-3.49 11.25-12.33 19.55-22.77 22.76 5.88 9.11 7.23 20.9 2.41 31.61-4.83 10.71-14.46 17.41-25.17 19.29 4.83 9.64 4.55 21.42-1.33 31.33-5.63 9.91-15.81 15.8-26.52 16.61 3.58 9.45 2.61 20.32-3.29 29.45-32.44-17.2-68.79-26.36-106.55-26.36-10.82 0-21.46 1.01-31.98 2.48 1.53-10.48 2.6-21.08 2.6-31.87 0-37.79-9.16-74.16-26.38-106.63 13.48-11.22 27.58-7.41 32.49-5.56.81-10.44 6.7-20.63 16.61-26.25 15.82-9.39 30.92-1.53 31.33-1.33 1.88-10.45 8.84-20.09 19.55-24.91 13.46-5.71 25.43-1.32 31.61 2.68 3.22-10.71 11.78-19.28 23.03-22.5 3-.89 18.64-5.03 32.14 8.03C422.33 38.99 433.44 32 446.02 32c.52 0 33.85-.95 33.85 37.92-.54 12.85-8.03 23.56-18.48 28.92z\"]\n};\nvar faCouch = {\n prefix: 'fal',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M576 193.9v-33.7c0-53.1-43-96.2-96-96.2H160c-53 0-96 43.1-96 96.2v33.7c-36.5 7.5-64 39.8-64 78.6 0 25.1 12.1 48.8 32 63.8v79.6c0 17.7 14.3 32.1 32 32.1h64c17.3 0 31.3-14.7 31.8-32h320.4c.5 17.3 14.5 32 31.8 32h64c17.7 0 32-14.4 32-32.1v-79.6c19.9-15.1 32-38.7 32-63.8 0-38.7-27.5-71.1-64-78.6zm-448 222H64v-97.4c-17.1-10-32-21.1-32-46 0-26.5 21.5-48.1 48-48.1h32c8.8 0 16 7.2 16 16v175.5zM480 384H160v-95.5h320V384zm0-143.6V256H160v-15.6c0-26.5-21.5-48.1-48-48.1H96v-32.1c0-35.4 28.7-64.1 64-64.1h320c35.3 0 64 28.8 64 64.1v32.1h-16c-26.5 0-48 21.6-48 48.1zm96 78.1v97.4h-64V240.4c0-8.8 7.2-16 16-16h32c26.5 0 48 21.6 48 48.1 0 23.9-13.9 35.4-32 46z\"]\n};\nvar faCow = {\n prefix: 'fal',\n iconName: 'cow',\n icon: [640, 512, [], \"f6c8\", \"M634.06 279.67L624 265.54v-54.96c0-19.35-15.74-35.09-35.08-35.09-9.08 0-14.25 2.94-23.61 7.65l-56.6-79.46A96.029 96.029 0 0 0 430.95 64H112c-44.12 0-80 35.89-80 80v88.88C12.95 243.96 0 264.37 0 288v32c35.35 0 64-28.65 64-64V144c0-23.89 17.59-43.59 40.46-47.24C99.23 106.04 96 116.59 96 128v288c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-51.58c7.31 2.92 15.62 4.97 24.04 6.85V392c0 8.84 7.16 16 16 16s16-7.16 16-16v-16.71c2.73.12 5.18.71 7.96.71 2.81 0 5.29-.61 8.04-.72V392c0 8.84 7.16 16 16 16s16-7.16 16-16v-20.75c8.39-1.88 16.68-3.92 23.96-6.83V416c0 17.67 14.33 32 32 32h47.96c17.67 0 32-14.32 32-31.99l.04-143.97L479.96 288v41.98c0 12.32 3.55 24.38 10.24 34.72l35.46 54.9a62.073 62.073 0 0 0 52.15 28.4h.11c34.29 0 62.08-27.79 62.08-62.08v-87.69c0-6.65-2.08-13.14-5.94-18.56zM212.73 96h118.54c17.54 0 27.12 19.78 15.89 32.8-40.1 46.51-57.96 47.2-75.11 47.2h-1.09c-17.2 0-33.82-.43-74.13-47.2-11.22-13.02-1.64-32.8 15.9-32.8zm-4.14 234.19C211.57 297.65 238.71 272 272 272s60.43 25.65 63.41 58.19c-14.2 5.68-57.45 27.73-126.82 0zM608 385.92c0 16.59-13.49 30.08-30.19 30.08-10.26 0-19.7-5.14-25.27-13.76l-35.46-54.9a31.939 31.939 0 0 1-5.12-17.36v-61.77l-95.95-47.92-.01 51.74-.04 143.97H368v-80c0-30.87-25.45-96-96-96-70.86 0-96 64.55-96 96v80h-48V128c0-17.64 14.36-32 32-32h4.29c-7.71 18.18-4.71 38.6 8.3 53.7 42.25 49.01 67.17 58.3 98.37 58.3 32.93 0 58.19-9.29 100.44-58.3 13.01-15.1 16.02-35.52 8.3-53.7h51.25c20.46 0 39.83 9.89 51.69 26.26l78.66 110.42c4.49-17.23 18.92-24.62 22.69-24.62 4.2 0 8 3.37 8 8.01v59.7l16 22.46v87.69zM568 304c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faCowbell = {\n prefix: 'fal',\n iconName: 'cowbell',\n icon: [448, 512, [], \"f8b3\", \"M384.19 122.35A32 32 0 0 0 352.64 96h-16V48a48.1 48.1 0 0 0-48.12-48H160.29a48.1 48.1 0 0 0-48.09 48v48H95.36a32 32 0 0 0-31.55 26.35l-63.3 352A32 32 0 0 0 32.07 512h383.86a32 32 0 0 0 31.56-37.65zM144.2 48a16.07 16.07 0 0 1 16.09-16h128.23a16.07 16.07 0 0 1 16.09 16v48H144.2zM32 480l63.36-352H352.7l63.23 352z\"]\n};\nvar faCowbellMore = {\n prefix: 'fal',\n iconName: 'cowbell-more',\n icon: [640, 512, [], \"f8b4\", \"M480 192a160 160 0 1 0 160 160 160 160 0 0 0-160-160zm0 288a128 128 0 1 1 128-128 128.14 128.14 0 0 1-128 128zm72-144h-56v-56a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM32 480l63.36-352h257.33l12.63 70.26a192.21 192.21 0 0 1 29.28-18.05l-10.41-57.87A32 32 0 0 0 352.64 96h-16V48a48.1 48.1 0 0 0-48.12-48H160.29a48.1 48.1 0 0 0-48.09 48v48H95.36a32 32 0 0 0-31.56 26.35l-63.29 352A32 32 0 0 0 32.07 512H374a192.56 192.56 0 0 1-36.77-32zM144.2 48a16.07 16.07 0 0 1 16.09-16h128.23a16.07 16.07 0 0 1 16.09 16v48H144.2z\"]\n};\nvar faCreditCard = {\n prefix: 'fal',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM48 64h480c8.8 0 16 7.2 16 16v48H32V80c0-8.8 7.2-16 16-16zm480 384H48c-8.8 0-16-7.2-16-16V224h512v208c0 8.8-7.2 16-16 16zm-336-84v8c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v8c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"]\n};\nvar faCreditCardBlank = {\n prefix: 'fal',\n iconName: 'credit-card-blank',\n icon: [576, 512, [], \"f389\", \"M528 31H48C21.5 31 0 52.5 0 79v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V79c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V79c0-8.8 7.2-16 16-16h480c8.8 0 16 7.2 16 16v352zm-352-68v8c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v8c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"]\n};\nvar faCreditCardFront = {\n prefix: 'fal',\n iconName: 'credit-card-front',\n icon: [576, 512, [], \"f38a\", \"M528 31H48C21.5 31 0 52.5 0 79v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V79c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V79c0-8.8 7.2-16 16-16h480c8.8 0 16 7.2 16 16v352zm-352-68v8c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v8c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12zM488 95h-80c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm-8 64h-64v-32h64v32zM260 319h-56c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm28-12v-40c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12zm-192 0v-40c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12zm384-40v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12z\"]\n};\nvar faCricket = {\n prefix: 'fal',\n iconName: 'cricket',\n icon: [640, 512, [], \"f449\", \"M632.8 30.2l-9.2-13.1C617.5 8.3 608.3 2.5 597.8.6c-10.5-2-21.1.5-29.9 6.6L419.1 112c-14.5 10.1-34.4 6.6-44.6-7.9L365.3 91c-10.1-14.5-30-18-44.5-7.9L20.6 293.4c-14 9.8-21.8 25.9-20.5 42C6.2 410.4 52.5 476.6 121 508c20.8 9.5 39.4.1 46.5-4.9l300.1-210.2c14.4-10.1 18.2-29.9 7.9-44.6l-9.2-13.1c-10.1-14.5-6.6-34.4 7.9-44.6L622.9 85.9c18.1-12.7 22.5-37.6 9.9-55.7zM149.1 476.9c-4.6 3.3-10.4 4-14.8 2C53.2 441.6 32.9 362.4 32 332.7c-.4-4.8 2.3-9.9 6.9-13.2l225.3-157.7-23.6 133.7 133.7 23.6-225.2 157.8zm293.6-205.6l-31.3 21.9-133.7-23.6 23.6-133.7 31.3-21.9c3.6-2.5 8.6-1.7 11.1 2l100.9 144.2c2.6 3.6 1.7 8.5-1.9 11.1zM604.6 59.7l-175 123.1-18.4-26.2 175-123.1c3.3-2.3 8.4-2 11.1 2l9.2 13.1c2.6 3.6 1.7 8.6-1.9 11.1zM496 352c-44.1 0-80 35.9-80 80s35.9 80 80 80 80-35.9 80-80-35.9-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faCroissant = {\n prefix: 'fal',\n iconName: 'croissant',\n icon: [512, 512, [], \"f7f6\", \"M508.1 175.66c-11.51-30.34-29.86-56.51-52.36-78.17a59.19 59.19 0 0 0-.27-12.12 60.35 60.35 0 0 0-23.13-40.11A222.19 222.19 0 0 0 298.37 0a217.65 217.65 0 0 0-58.26 8.4C229.86 2.58 215.22-3 196.19 1.8A266.7 266.7 0 0 0 1.78 196.18a59.74 59.74 0 0 0 6.63 45c-17.76 65.52-5.22 136 36.84 191.13a60.4 60.4 0 0 0 40.11 23.13c9.18 1.16 9.09 0 11.4-.16 21.78 22.72 48.24 41.2 78.88 52.81 42.54 16.12 87-19.95 79.5-65.18l-14.54-87.23a58.85 58.85 0 0 0 17.47-31.43 59.4 59.4 0 0 0 26.33-15.11l24.77-24.77A59.82 59.82 0 0 0 324.35 258a58.82 58.82 0 0 0 31.32-17.41l87.24 14.54c45.43 7.6 81.25-37.13 65.19-79.47zM298.37 32a190.06 190.06 0 0 1 114.57 38.7c13.92 10.62 13.47 28.81 5 39.54l-84 107c-1.55 2-9.2 9.34-9.91 7.06l-56-182c-.77-2.48-2.3-4.47-3.35-6.79A181.18 181.18 0 0 1 298.36 32zM35.26 265.11a60.1 60.1 0 0 0 7.09 3l182 56c2.26.69-5.09 8.35-7.07 9.9l-107 84c-14.08 11.05-31.58 5.4-39.55-5a188.09 188.09 0 0 1-35.47-147.9zM187 478.17a181.28 181.28 0 0 1-57-35.09l82-64.32 11.57 69.42c3.48 20.82-17.01 37.4-36.57 29.99zm99.56-216.42l-24.77 24.76c-4 4-14.4 11.15-28 7l-182-56a28 28 0 0 1-18.93-33.55A234.75 234.75 0 0 1 204 32.84a28 28 0 0 1 33.5 18.93l56 182a28 28 0 0 1-6.96 27.98zm161.63-38.14L378.76 212l64.34-82a182.08 182.08 0 0 1 35.08 57c7.49 19.76-9.36 40.05-30.01 36.61z\"]\n};\nvar faCrop = {\n prefix: 'fal',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 320h-72V118.62l93.66-93.66c3.12-3.12 3.12-8.19 0-11.31L498.35 2.34c-3.12-3.12-8.19-3.12-11.31 0L393.37 96H192V24c0-13.26-10.75-24-24-24h-48c-13.25 0-24 10.74-24 24v72H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h72v192c0 17.67 14.33 32 32 32h192v72c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-72h72c13.25 0 24-10.75 24-24v-48c0-13.25-10.75-24-24-24zM96 160H32v-32h64v32zm96-32h169.37l-32 32H192v-32zm105.38 64L192 297.38V192h105.38zM320 384H128V32h32v320h160v32zm-105.38-64L320 214.63V320H214.62zM352 480V182.63l32-32V480h-32zm128-96h-64v-32h64v32z\"]\n};\nvar faCropAlt = {\n prefix: 'fal',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 320h-72V128c0-17.67-14.33-32-32-32H192V24c0-13.26-10.75-24-24-24h-48c-13.25 0-24 10.74-24 24v72H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h72v192c0 17.67 14.33 32 32 32h192v72c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-72h72c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM96 160H32v-32h64v32zm224 224H128V32h32v320h160v32zm0-64H192V192h128v128zm64 160h-32V160H192v-32h192v352zm96-96h-64v-32h64v32z\"]\n};\nvar faCross = {\n prefix: 'fal',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 96H224v256h-64V224H32v-64h128V32h64v128h128v64z\"]\n};\nvar faCrosshairs = {\n prefix: 'fal',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M506 240h-34.591C463.608 133.462 378.538 48.392 272 40.591V6a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v34.591C133.462 48.392 48.392 133.462 40.591 240H6a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h34.591C48.392 378.538 133.462 463.608 240 471.409V506a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6v-34.591C378.538 463.608 463.608 378.538 471.409 272H506a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6zM272 439.305V374a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v65.305C151.282 431.711 80.315 361.031 72.695 272H138a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6H72.695C80.289 151.282 150.969 80.316 240 72.695V138a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V72.695C360.718 80.289 431.685 150.969 439.305 240H374a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h65.305C431.711 360.718 361.031 431.684 272 439.305zM280 256c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"]\n};\nvar faCrow = {\n prefix: 'fal',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M416 72c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm104-8h-13.88C492.9 26.8 457.74 0 416 0c-53.02 0-96 42.98-96 96v39.6L11.38 393.57C4.21 399.28 0 408.23 0 417.74 0 435.26 13.53 448 28.45 448c4.22 0 8.54-1.02 12.71-3.23L168 384h109.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l6.83-2.49c6.23-2.27 9.44-9.15 7.17-15.38L310.82 384h20.47c13.89 0 27.36-1.82 40.35-4.98l46.25 125.08c2.27 6.23 9.15 9.44 15.38 7.17l6.83-2.49c6.23-2.27 9.44-9.15 7.17-15.38l-45.98-124.36C466.33 339.98 512 271.67 512 192v-30.93L640 144c0-44.18-53.73-80-120-80zm-40 128c0 88.22-66.71 160-148.71 160h-57.03l45.33-12.95c48.03-13.73 88.41-47.23 110.72-91.89 3.94-7.91.75-17.52-7.16-21.47-7.91-3.89-17.47-.77-21.47 7.16-18.31 36.66-51.44 64.16-90.91 75.42-192.18 54.91-115.72 27.27-266.62 99.61L352 150.56V96c0-35.29 28.71-64 64-64s64 28.71 64 64v96zm32-63.22V96h8c30.83 0 56.88 9.49 72.46 22.05L512 128.78z\"]\n};\nvar faCrown = {\n prefix: 'fal',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M536 480H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm48-320c-30.9 0-56 25.1-56 56 0 7.6 1.5 14.8 4.3 21.4L476 271.2c-5.2 3.1-10.8 4.6-16.4 4.6-11.1 0-21.9-5.8-27.8-16.1l-74.4-130.2c11.3-10.3 18.6-25 18.6-41.5 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 16.5 7.3 31.2 18.6 41.4l-74.4 130.2c-5.9 10.4-16.7 16.1-27.8 16.1-5.6 0-11.3-1.5-16.4-4.6l-56.3-33.8c2.7-6.6 4.3-13.8 4.3-21.4 0-30.9-25.1-56-56-56S0 185.1 0 216s25.1 56 56 56c2 0 3.9-.4 5.8-.6L128 448h384l66.2-176.6c1.9.2 3.8.6 5.8.6 30.9 0 56-25.1 56-56s-25.1-56-56-56zM320 64c13.2 0 24 10.8 24 24s-10.8 24-24 24-24-10.8-24-24 10.8-24 24-24zM56 240c-13.2 0-24-10.8-24-24s10.8-24 24-24 24 10.8 24 24-10.8 24-24 24zm433.8 176H150.2l-56-149.4 53.4 32c10 6 21.3 9.1 32.9 9.1 22.9 0 44.2-12.4 55.6-32.3l75.6-132.3c2.8.4 5.5.8 8.4.8s5.6-.4 8.4-.8L404 275.5c11.4 19.9 32.7 32.2 55.6 32.2 11.6 0 22.9-3.2 32.9-9.1l53.4-32L489.8 416zM584 240c-13.2 0-24-10.8-24-24s10.8-24 24-24 24 10.8 24 24-10.8 24-24 24z\"]\n};\nvar faCrutch = {\n prefix: 'fal',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0l-42.2 42.15a16 16 0 0 0 0 22.63l22.63 22.63-112.74 112.72A80 80 0 0 0 150 243.45l-28.8 124.73L2.34 487a8 8 0 0 0 0 11.31l11.32 11.32a8 8 0 0 0 11.31 0l118.87-118.84L268.56 362a79.85 79.85 0 0 0 38.56-21.4l112.76-112.72 22.63 22.63a16 16 0 0 0 22.63 0l42.17-42.18a16 16 0 0 0 0-22.62zM284.5 318a47.79 47.79 0 0 1-23.12 12.81l-104.29 24.08 24.1-104.27A47.78 47.78 0 0 1 194 227.48l21.43-21.42 90.51 90.51zm44.07-44.08l-90.51-90.51 68.69-68.68 90.5 90.5zm125.25-57.37L295.43 58.18 315 38.63 473.37 197z\"]\n};\nvar faCrutches = {\n prefix: 'fal',\n iconName: 'crutches',\n icon: [640, 512, [], \"f7f8\", \"M635.31 185.71l-181-181a16 16 0 0 0-22.62 0l-42.2 42.15a16 16 0 0 0 0 22.63l22.63 22.63-112.74 112.72A80 80 0 0 0 278 243.45l-28.8 124.73L130.34 487a8 8 0 0 0 0 11.31l11.32 11.32a8 8 0 0 0 11.31 0l118.87-118.84L396.56 362a79.85 79.85 0 0 0 38.56-21.4l112.75-112.72 22.64 22.63a16 16 0 0 0 22.63 0l42.17-42.18a16 16 0 0 0 0-22.62zM412.5 318a47.77 47.77 0 0 1-23.13 12.81l-104.28 24.08 24.1-104.27A47.86 47.86 0 0 1 322 227.48l21.43-21.42 90.51 90.51zm44.07-44.08l-90.51-90.51 68.69-68.68 90.5 90.5zm125.25-57.37L423.43 58.18 443 38.63 601.37 197zM220 352.07l7.79-33.74c-.11-.11-.26-.17-.37-.28l-112.67-112.8 90.5-90.5 69.63 69.62c.66-.69 1.19-1.48 1.87-2.16l20.62-20.61-69.49-69.48 22.63-22.63a16 16 0 0 0 0-22.63L208.33 4.69a16 16 0 0 0-22.62 0l-181 181a16 16 0 0 0 0 22.62l42.17 42.18a16 16 0 0 0 22.63 0l22.64-22.63 112.73 112.76A78.72 78.72 0 0 0 220 352.07zM58.18 216.57L38.63 197 197 38.63l19.55 19.55zM413 390.37c-3.07 1-6.09 2.1-9.24 2.83l-27 6.22L487 509.66a8 8 0 0 0 11.31 0l11.32-11.32a8 8 0 0 0 0-11.31z\"]\n};\nvar faCube = {\n prefix: 'fal',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 34.2l224 84v.3l-224 97.1-224-97.1v-.3l224-84zM32 153.4l208 90.1v224.7l-208-104V153.4zm240 314.8V243.5l208-90.1v210.9L272 468.2z\"]\n};\nvar faCubes = {\n prefix: 'fal',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 256.7L388 219V107.9c0-15-9.3-28.4-23.4-33.7l-96-36c-8.1-3.1-17.1-3.1-25.3 0l-96 36c-14.1 5.3-23.4 18.7-23.4 33.7V219L23.4 256.7C9.3 262 0 275.4 0 290.4v101.3c0 13.6 7.7 26.1 19.9 32.2l96 48c10.1 5.1 22.1 5.1 32.2 0L256 418l107.9 54c10.1 5.1 22.1 5.1 32.2 0l96-48c12.2-6.1 19.9-18.6 19.9-32.2V290.4c0-15-9.3-28.4-23.4-33.7zM16.5 403.8V295.1l107.2 46.5v115.8zm231 0l-107.2 53.6V341.6l107.2-46.5zm0-126.7l-115.5 50-115.5-50v-.2L131 234l107.6 39.6 8.9 3.3zm.3-19.7L195 239.6l-54.5-20.4V112.5L247.8 159zM140.5 94.5v-.1L256 51l115.5 43.3v.2l-115.5 50zM264.2 159l107.2-46.5v106.7L317 239.6l-52.8 17.8zm107.6 298.4l-107.2-53.6V295.1l107.2 46.5zm123.7-53.6l-107.2 53.6V341.6l107.2-46.5zm0-126.7l-115.5 50L264.5 277v-.2l8.9-3.3L381 234l114.5 42.9z\"]\n};\nvar faCurling = {\n prefix: 'fal',\n iconName: 'curling',\n icon: [640, 512, [], \"f44a\", \"M517.9 194.2c-18-39.9-57.6-66.2-101.9-66.2H304c0-17.7 14.3-32 32-32h128c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H336c-70.6 0-128 57.4-128 128v1.2c-37.7 5.4-70.2 30.1-86 65.1C53 204.9 0 264 0 336v32c0 79.5 64.5 144 144 144h352c79.5 0 144-64.5 144-144v-32c0-72-53.1-131.2-122.1-141.8zM240 160v-32c0-52.9 43.1-96 96-96h128v32H336c-35.3 0-64 28.7-64 64v32h144c25.6 0 49.1 12.3 64 32H160c26.8-35.6 64.3-32 80-32zm256 320H144c-61.8 0-112-50.2-112-112h576c0 61.8-50.2 112-112 112zM32 336c0-61.8 50.2-112 112-112h352c61.8 0 112 50.2 112 112H32z\"]\n};\nvar faCut = {\n prefix: 'fal',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M249.52 256L446.83 58.83a3.996 3.996 0 0 0 0-5.65c-12.5-12.5-32.76-12.5-45.25 0L224.06 230.56l-48.64-48.61C185.88 166.57 192 148 192 128c0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c20.01 0 38.58-6.12 53.96-16.6l48.63 48.6-48.63 48.6C134.58 294.12 116.01 288 96 288c-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-20-6.12-38.57-16.58-53.95l48.64-48.61 177.52 177.38c12.5 12.5 32.76 12.5 45.25 0a3.996 3.996 0 0 0 0-5.65L249.52 256zM96 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm0 256c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faDagger = {\n prefix: 'fal',\n iconName: 'dagger',\n icon: [384, 512, [], \"f6cb\", \"M335.21 127.96H240V16c0-8.83-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v111.97H48.79c-26.32 0-48.34 20.85-48.78 47.17C-.44 202 21.22 223.93 48 223.93c26.51 0 48-21.48 48-47.99 0-5.64-1.15-10.97-2.94-16H128v268.92l50.69 76.01c6.33 9.5 20.29 9.5 26.63 0l50.68-76V159.95h34.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.5 21.49 47.99 48 47.99 26.78 0 48.44-21.93 47.99-48.81-.44-26.31-22.46-47.17-48.78-47.17zM64 175.95c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM176 31.99h32v95.97h-32V31.99zm48 387.19l-32 47.99-32-47.99V159.95h64v259.23zm112-227.24c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDatabase = {\n prefix: 'fal',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M224 32c106 0 192 28.75 192 64v32c0 35.25-86 64-192 64S32 163.25 32 128V96c0-35.25 86-64 192-64m192 149.5V224c0 35.25-86 64-192 64S32 259.25 32 224v-42.5c41.25 29 116.75 42.5 192 42.5s150.749-13.5 192-42.5m0 96V320c0 35.25-86 64-192 64S32 355.25 32 320v-42.5c41.25 29 116.75 42.5 192 42.5s150.749-13.5 192-42.5m0 96V416c0 35.25-86 64-192 64S32 451.25 32 416v-42.5c41.25 29 116.75 42.5 192 42.5s150.749-13.5 192-42.5M224 0C145.858 0 0 18.801 0 96v320c0 77.338 146.096 96 224 96 78.142 0 224-18.801 224-96V96c0-77.338-146.096-96-224-96z\"]\n};\nvar faDeaf = {\n prefix: 'fal',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M409.171 108.485l-5.656-5.656c-4.686-4.686-4.686-12.284 0-16.971l82.344-82.344c4.686-4.686 12.284-4.686 16.971 0l5.656 5.656c4.686 4.686 4.686 12.284 0 16.971l-82.344 82.344c-4.687 4.687-12.285 4.687-16.971 0zm-383.029 400l186.344-186.344c4.686-4.686 4.686-12.284 0-16.971l-5.656-5.656c-4.686-4.686-12.284-4.686-16.971 0L3.515 485.858c-4.686 4.686-4.686 12.284 0 16.971l5.656 5.656c4.686 4.687 12.284 4.687 16.971 0zm317.534-103.151c0-69.293 73.391-78.477 73.391-165.334 0-88.812-72.255-161.066-161.067-161.066S94.933 151.188 94.933 240c0 8.837 7.163 16 16 16s16-7.163 16-16c0-71.167 57.899-129.066 129.066-129.066 71.168 0 129.067 57.899 129.067 129.066 0 71.434-73.391 80.16-73.391 165.334 0 41.171-33.495 74.666-74.667 74.666-8.837 0-16 7.163-16 16s7.163 16 16 16c58.818 0 106.668-47.851 106.668-106.666zM336.743 256c-8.837 0-16-7.163-16-16 0-36.172-29.428-65.6-65.6-65.6s-65.6 29.428-65.6 65.6c0 8.837-7.163 16-16 16s-16-7.163-16-16c0-53.816 43.783-97.6 97.6-97.6s97.6 43.783 97.6 97.6c0 8.837-7.163 16-16 16z\"]\n};\nvar faDebug = {\n prefix: 'fal',\n iconName: 'debug',\n icon: [512, 512, [], \"f7f9\", \"M130.25 311.84l45.88-6.55a79.17 79.17 0 0 0 3.1 20l-44.11 29.4a16 16 0 0 0-4.43 22.19c3.41 5.09 12.87 10.64 22.19 4.43L194 353.93c14.62 18.19 36.81 30.07 62 30.07a79.26 79.26 0 0 0 45.63-14.49l-23.29-23.29A47.3 47.3 0 0 1 256 352a48.05 48.05 0 0 1-48-48v-28.12l-32-32V273l-50.25 7.18a16 16 0 0 0-13.59 18.11c1.97 13.58 15.36 13.95 18.09 13.55zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 464c-119.1 0-216-96.9-216-216a214.87 214.87 0 0 1 52.56-140.81l304.25 304.25A214.87 214.87 0 0 1 256 472zm-44.16-282.78A48 48 0 0 1 304 208v73.38zm207.6 207.59l-84.37-84.36a67.57 67.57 0 0 0 .8-7.16l45.88 6.55c2.73.4 16.12 0 18.09-13.57a16 16 0 0 0-13.59-18.11L336 273v-26l50.25-7.18a16 16 0 1 0-4.5-31.68L336 214.69c0-17.31-1.41-21.43-3.23-28l44.11-29.4a16 16 0 0 0-17.76-26.62l-41.07 27.38C303.38 139.88 281.19 128 256 128c-28.64 0-53.4 15.26-67.46 37.92l-73.35-73.36A214.87 214.87 0 0 1 256 40c119.1 0 216 96.9 216 216a214.87 214.87 0 0 1-52.56 140.81z\"]\n};\nvar faDeer = {\n prefix: 'fal',\n iconName: 'deer',\n icon: [512, 512, [], \"f78e\", \"M400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm88.7-26.7l-91.9-25.8 11.1-5.6c12.4-6.2 23-15.6 30.7-27.1l18.1-27.2c2.5-3.7 1.5-8.6-2.2-11.1l-13.3-8.9c-3.7-2.5-8.6-1.5-11.1 2.2l-18 27.2c-4.6 7-11 12.6-18.5 16.3L351 94.6l-33.8-9.5 8.3-10.3c6.8-8.5 10.5-19.1 10.5-30V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v36.8c0 3.6-1.2 7.1-3.5 10l-16.8 20.9-16.1-4.5c-6.9-1.9-11.7-8.2-11.7-15.4V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v47.8c0 21.5 14.3 40.4 35 46.2l78.9 22.2L304 192H96c-53 0-96 43-96 96v32h32v27.5l-11.9 31.8c-4.6 12.2-5.3 25.4-2.2 38l23 72.4C45.1 503 57.5 512 71.4 512h47.7c20.8 0 36.1-19.5 31.1-39.7l-17-68.6 19.4-51.7H256v128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V320l32-64h48c26.5 0 48-21.5 48-48v-43.9c0-14.3-9.6-26.9-23.3-30.8zM480 208c0 8.8-7.2 16-16 16h-67.8L352 312.4V480h-64V320H130.4l-30.7 81.8 19.4 78.2H71.4l-22.6-71.2c-1.4-6.1-.9-12.3 1.3-18.2l14-37.2V288H32c0-35.3 28.7-64 64-64h227.8l33.7-67.4c6.9-13.7 22.5-20.6 37.3-16.5l73.6 20.7c6.9 1.9 11.7 8.2 11.7 15.4V208z\"]\n};\nvar faDeerRudolph = {\n prefix: 'fal',\n iconName: 'deer-rudolph',\n icon: [512, 512, [], \"f78f\", \"M368 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm112-48c-13.3 0-24.6 8.1-29.5 19.5l-85.7-24.1 11.1-5.6c12.4-6.2 23-15.6 30.7-27.1l18.1-27.2c2.5-3.7 1.5-8.6-2.2-11.1l-13.3-8.9c-3.7-2.5-8.6-1.5-11.1 2.2l-18 27.3c-4.6 7-11 12.6-18.5 16.3L319 94.6l-33.8-9.5 8.3-10.3c6.8-8.5 10.5-19.1 10.5-30V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v36.8c0 3.6-1.2 7.1-3.5 10l-16.8 20.9-16.1-4.5c-6.9-1.9-11.7-8.2-11.7-15.4V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v47.8c0 21.5 14.3 40.4 35 46.2l78.9 22.2L272 192H96c-53 0-96 43-96 96v32h32v27.5l-11.9 31.8c-4.6 12.2-5.3 25.4-2.2 38l23 72.4C45.1 503 57.5 512 71.4 512h47.7c20.8 0 36.1-19.5 31.1-39.7l-17-68.6 19.4-51.7H224v128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V320l32-64h48c26.5 0 48-21.5 48-48v-32c17.7 0 32-14.3 32-32s-14.3-32-32-32zm-32 96c0 8.8-7.2 16-16 16h-67.8L320 312.4V480h-64V320H130.4l-30.7 81.8 19.4 78.2H71.4l-22.6-71.2c-1.4-6.1-.9-12.3 1.3-18.2l14-37.2V288H32c0-35.3 28.7-64 64-64h195.8l33.7-67.4c6.9-13.7 22.5-20.6 37.3-16.5l73.6 20.7c6.9 1.9 11.7 8.2 11.7 15.4V208z\"]\n};\nvar faDemocrat = {\n prefix: 'fal',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M283.7 226.8l-8.2-16.5c-1.5-3-5.7-3-7.2 0l-8.2 16.5-18.2 2.7c-3.3.5-4.6 4.5-2.2 6.8l13.2 12.9-3.1 18.2c-.6 3.3 2.9 5.7 5.8 4.2l16.3-8.6 16.3 8.6c2.9 1.5 6.4-.9 5.8-4.2l-3.1-18.2 13.2-12.9c2.4-2.3 1.1-6.3-2.2-6.8l-18.2-2.7zm96 0l-8.2-16.5c-1.5-3-5.7-3-7.2 0l-8.2 16.5-18.2 2.7c-3.3.5-4.6 4.5-2.2 6.8l13.2 12.9-3.1 18.2c-.6 3.3 2.9 5.7 5.8 4.2l16.3-8.6 16.3 8.6c2.9 1.5 6.4-.9 5.8-4.2l-3.1-18.2 13.2-12.9c2.4-2.3 1.1-6.3-2.2-6.8l-18.2-2.7zm259-.6l-15.2-22.8C579.6 137.7 516.3 144 485.2 144H271.8L247 111.6c17.3-28 17.5-64.4-1.2-92.7C238.2 7.4 225.4.6 211.6.5c-11 0-21.3 4.3-29.1 12l-14.9 14.9-15.8-15.8C144.3 4.1 134.4 0 123.8 0 110.6 0 98.3 6.6 91 17.6 76.2 40 74.7 68.1 85.5 91.5l-75.2 91.9c-11.7 14.3-13.6 33.9-4.8 50l15.9 29.1C30 278.3 46.9 288 65.6 288H100c12.8 0 24.8-4.5 34.1-12.7l14.6-12.2 27.2 63.5v138.7c0 25.7 20.9 46.7 46.7 46.7h50.6c25.7 0 46.7-20.9 46.7-46.7V416h113.3v49.3c0 25.7 20.9 46.7 46.7 46.7h49.3c25.7 0 46.7-20.9 46.7-46.7V234.8c0-16.4-4.7-31.6-12.4-44.9 13 7.8 24.5 18.2 33.2 31.3L612 244c2.4 3.7 7.4 4.7 11.1 2.2l13.3-8.9c3.7-2.4 4.7-7.4 2.3-11.1zM544 465.3c0 8.1-6.6 14.7-14.7 14.7H480c-8.1 0-14.7-6.6-14.7-14.7V384H288v81.3c0 8.1-6.6 14.7-14.7 14.7h-50.6c-8.1 0-14.7-6.6-14.7-14.7V336h336v129.3zm0-161.3H201.1l-39.8-93-48.1 40.1c-3.4 3.1-8.2 4.9-13.1 4.9H65.6c-6.9 0-13.3-3.4-16.2-8.7l-15.9-29.1c-2.6-4.7-2-10.1 1.5-14.4l82.9-101.2c3.1-3.8 8.2-6 13.7-6.3-2.8-1.7-5.8-3.1-8.3-5.5-15.1-15.1-16.9-38.3-5.6-55.4 1.4-2.2 3.8-3.3 6.2-3.3 1.9 0 3.8.7 5.3 2.2l38.5 38.5 37.5-37.5c1.8-1.8 4.1-2.7 6.4-2.7 2.9 0 5.8 1.4 7.5 4 13.8 20.9 11.5 49.4-6.9 67.8-2.1 2.1-4.4 3.9-6.8 5.5L256 176h229.3c32.5 0 58.8 26.3 58.8 58.8V304zm-68.3-77.2l-8.2-16.5c-1.5-3-5.7-3-7.2 0l-8.2 16.5-18.2 2.7c-3.3.5-4.6 4.5-2.2 6.8l13.2 12.9-3.1 18.2c-.6 3.3 2.9 5.7 5.8 4.2l16.3-8.6 16.3 8.6c2.9 1.5 6.4-.9 5.8-4.2l-3.1-18.2 13.2-12.9c2.4-2.3 1.1-6.3-2.2-6.8l-18.2-2.7z\"]\n};\nvar faDesktop = {\n prefix: 'fal',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v288c0 26.5 21.5 48 48 48h192l-24 96h-72c-8.8 0-16 7.2-16 16s7.2 16 16 16h288c8.8 0 16-7.2 16-16s-7.2-16-16-16h-72l-24-96h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM249 480l16-64h46l16 64h-78zm295-144c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h480c8.8 0 16 7.2 16 16v288z\"]\n};\nvar faDesktopAlt = {\n prefix: 'fal',\n iconName: 'desktop-alt',\n icon: [576, 512, [], \"f390\", \"M528 0H48C21.5 0 0 21.5 0 48v288c0 26.5 21.5 48 48 48h192l-24 96h-72c-8.8 0-16 7.2-16 16s7.2 16 16 16h288c8.8 0 16-7.2 16-16s-7.2-16-16-16h-72l-24-96h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM249 480l16-64h46l16 64h-78zm295-144c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-48h512v48zm0-80H32V48c0-8.8 7.2-16 16-16h480c8.8 0 16 7.2 16 16v208z\"]\n};\nvar faDewpoint = {\n prefix: 'fal',\n iconName: 'dewpoint',\n icon: [448, 512, [], \"f748\", \"M176 0c-12.4 0-24.7 6.8-29.2 20.7C100 168.6 0 240.8 0 345c0 92.3 78.7 167 176 167s176-74.7 176-167c0-104.8-99.8-175.8-146.8-324.3C201.2 7.1 188.6 0 176 0zm144 345c0 74.4-64.6 135-144 135S32 419.5 32 345c0-47.5 26.1-89.2 59.2-142 29.2-46.6 62.2-99.3 84.8-168.6 22.7 69.7 55.7 122.3 84.9 168.8 33 52.6 59.1 94.1 59.1 141.8zM384 0c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faDharmachakra = {\n prefix: 'fal',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M503.67 232.35l-24.81 1.03c-4.5-44.89-22.28-85.84-49.31-118.94l18.31-16.84c3.35-3.08 3.46-8.33.24-11.54l-22.15-22.15c-3.21-3.21-8.46-3.11-11.54.24l-16.84 18.31c-33.1-27.03-74.05-44.81-118.94-49.31l1.03-24.81a7.997 7.997 0 0 0-7.99-8.33h-31.32c-4.55 0-8.18 3.79-7.99 8.33l1.03 24.81c-44.88 4.5-85.84 22.28-118.94 49.31L97.6 64.15c-3.08-3.35-8.33-3.46-11.54-.24L63.91 86.05a7.99 7.99 0 0 0 .24 11.54l18.31 16.84c-27.04 33.1-44.81 74.05-49.31 118.94l-24.81-1.03c-4.55-.18-8.34 3.45-8.34 8v31.32c0 4.55 3.79 8.18 8.33 7.99l24.81-1.03c4.5 44.89 22.28 85.84 49.31 118.94l-18.3 16.84c-3.35 3.08-3.46 8.33-.24 11.54l22.15 22.15c3.21 3.22 8.46 3.11 11.54-.24l16.84-18.31c33.1 27.04 74.05 44.81 118.94 49.31l-1.03 24.81a7.997 7.997 0 0 0 7.99 8.33h31.32c4.55 0 8.18-3.79 7.99-8.33l-1.03-24.81c44.89-4.5 85.84-22.28 118.94-49.31l16.84 18.31c3.08 3.35 8.33 3.46 11.54.24l22.15-22.15a7.99 7.99 0 0 0-.24-11.54l-18.31-16.84c27.04-33.1 44.81-74.05 49.31-118.94l24.81 1.03c4.55.19 8.33-3.44 8.33-7.99v-31.32c.01-4.55-3.78-8.18-8.32-7.99zm-56.92 2.37l-96.49 4.02c-2.48-13.64-7.74-26.27-15.34-37.24l70.91-65.24c22.13 27.64 36.82 61.45 40.92 98.46zM256 320c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm119.74-213.83l-65.24 70.91c-10.97-7.6-23.6-12.86-37.24-15.34l4.02-96.49c37.01 4.1 70.82 18.79 98.46 40.92zM234.72 65.25l4.02 96.49c-13.64 2.48-26.27 7.74-37.24 15.34l-65.24-70.91c27.64-22.13 61.45-36.82 98.46-40.92zm-128.55 71.01l70.91 65.24c-7.6 10.97-12.86 23.6-15.34 37.24l-96.49-4.02c4.1-37.01 18.79-70.82 40.92-98.46zM65.25 277.28l96.49-4.02c2.48 13.64 7.74 26.27 15.34 37.24l-70.91 65.24c-22.13-27.64-36.82-61.45-40.92-98.46zm71.01 128.55l65.24-70.91c10.97 7.6 23.6 12.86 37.24 15.34l-4.02 96.49c-37.01-4.1-70.82-18.79-98.46-40.92zm141.02 40.92l-4.02-96.49c13.64-2.48 26.27-7.74 37.24-15.34l65.24 70.91c-27.64 22.13-61.45 36.82-98.46 40.92zm128.55-71.01l-70.91-65.24c7.6-10.97 12.86-23.6 15.34-37.24l96.49 4.02c-4.1 37.01-18.79 70.82-40.92 98.46z\"]\n};\nvar faDiagnoses = {\n prefix: 'fal',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M160 256c0 .5-.1 1-.1 1.4 46.7-18.1 103-33.4 160.1-33.4 44.9 0 89 9.6 128.6 22.4-1.3-9.8-.4-20.1 6.6-31.5C413.7 201.7 367.4 192 320 192c-61.1 0-120.5 16-170 35 6.2 8.1 10 18 10 29zm336 0c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm88.6 72.4l-17.8 26.7c-5 7.5-14.5 9-21.4 4.9-22.4-13.2-71.7-39.7-129.4-56.7V444c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-95.8c37.9 14.9 67.8 31.5 81.2 39.4 20.4 12 49.1 8.1 64.3-14.7l17.8-26.7c13.1-19.7 11.4-51.8-15.1-67.7-12.4-7.4-30.9-17.7-53.2-28.5-2.3 11-8.6 20.5-17.1 27.3 23.2 11.1 42.2 21.6 53.9 28.6 7.8 4.7 9.9 14.9 4.8 22.5zM416 96c0-52.9-43.1-96-96-96s-96 43.1-96 96 43.1 96 96 96 96-43.1 96-96zm-96 64c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zM46.5 372.9c15 22.6 43.7 26.9 64.3 14.7 13.3-7.9 43.3-24.6 81.2-39.4V444c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4V303.4c-57.7 16.9-107.1 43.5-129.4 56.7-7 4.1-16.4 2.5-21.4-4.9l-17.8-26.7c-5.1-7.6-2.9-17.8 4.9-22.5 5.7-3.4 13.4-7.8 22.1-12.5-8.5-6.8-14.8-16.2-17.2-27.1-8.2 4.5-15.5 8.7-21.3 12.2-26.4 15.8-28.3 47.8-15.1 67.7zM632 480H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM112 272c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm144 32c0 8.8 7.2 16 16 16s16-7.2 16-16-7.2-16-16-16-16 7.2-16 16zm96 96c0 8.8 7.2 16 16 16s16-7.2 16-16-7.2-16-16-16-16 7.2-16 16z\"]\n};\nvar faDiamond = {\n prefix: 'fal',\n iconName: 'diamond',\n icon: [448, 512, [], \"f219\", \"M253 13.4c-15.3-17.9-42.8-17.9-58.1 0L9.3 230.9c-12.4 14.5-12.4 35.6 0 50.2L195 498.6c15.3 17.9 42.8 17.9 58.1 0l185.6-217.5c12.4-14.5 12.4-35.6 0-50.2L253 13.4zm161.4 246.9L228.7 477.8c-2.5 2.9-6.9 2.9-9.4 0L33.6 260.3c-2.1-2.5-2.1-6.2 0-8.6L219.3 34.2c2.5-2.9 6.9-2.9 9.4 0l185.7 217.5c2.1 2.5 2.1 6.1 0 8.6z\"]\n};\nvar faDice = {\n prefix: 'fal',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M480 328c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zM224 200c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96 0c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-192 0c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0-192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm352 88H439.38c-2.89-5.17-6.26-10.15-10.65-14.54L270.54 19.28C257.69 6.42 240.84 0 224 0s-33.69 6.42-46.54 19.28L19.28 177.46c-25.7 25.7-25.7 67.38 0 93.08l158.18 158.18C190.31 441.57 207.16 448 224 448s33.69-6.43 46.54-19.28L320 379.26V448c0 35.35 28.65 64 64 64h192c35.35 0 64-28.65 64-64V256c0-35.35-28.65-64-64-64zM247.27 405.45c-6.21 6.21-14.48 9.64-23.27 9.64s-17.05-3.42-23.27-9.64L42.55 247.27c-6.21-6.22-9.64-14.48-9.64-23.27s3.42-17.05 9.64-23.27L200.73 42.55c6.21-6.21 14.48-9.64 23.27-9.64s17.05 3.42 23.27 9.64l158.18 158.18c6.22 6.21 9.64 14.48 9.64 23.27s-3.42 17.05-9.64 23.27L247.27 405.45zM608 448c0 17.64-14.36 32-32 32H384c-17.64 0-32-14.36-32-32V347.26l76.72-76.72C441.57 257.69 448 240.84 448 224h128c17.64 0 32 14.36 32 32v192z\"]\n};\nvar faDiceD10 = {\n prefix: 'fal',\n iconName: 'dice-d10',\n icon: [512, 512, [], \"f6cd\", \"M503.88 261.29L279.8 10.64C273.45 3.55 264.72 0 256 0s-17.45 3.55-23.8 10.64L8.12 261.29c-11.81 13.21-10.6 33.5 2.69 45.22l224.08 197.52c6.03 5.32 13.57 7.97 21.11 7.97 7.54 0 15.08-2.66 21.11-7.97L501.19 306.5c13.29-11.71 14.49-32.01 2.69-45.21zM256 297.95l-75.86-50.57 75.86-177 75.86 177L256 297.95zm-107.28-58.24L47.69 264.97 220.97 71.12l-72.25 168.59zm214.56 0L291.03 71.12 464.5 265.01l-101.22-25.3zM31.91 282.62l.01.04-.03-.02.02-.02zm17.03 15.03l108.34-27.09 82.76 55.19v140.22L48.94 297.65zM271.96 465.9V325.75l82.76-55.19 108.2 27.06L271.96 465.9z\"]\n};\nvar faDiceD12 = {\n prefix: 'fal',\n iconName: 'dice-d12',\n icon: [512, 512, [], \"f6ce\", \"M505.24 178.49l-47.7-95.41a63.972 63.972 0 0 0-28.62-28.62l-95.41-47.7A63.905 63.905 0 0 0 304.89 0h-97.78c-9.94 0-19.73 2.31-28.62 6.76l-95.41 47.7a63.972 63.972 0 0 0-28.62 28.62l-47.7 95.41A63.874 63.874 0 0 0 0 207.11v97.78c0 9.94 2.31 19.73 6.76 28.62l47.7 95.41a63.972 63.972 0 0 0 28.62 28.62l95.41 47.7a64.07 64.07 0 0 0 28.62 6.76h97.78c9.94 0 19.73-2.31 28.62-6.76l95.41-47.7a63.972 63.972 0 0 0 28.62-28.62l47.7-95.41a64.07 64.07 0 0 0 6.76-28.62v-97.78c0-9.94-2.31-19.74-6.76-28.62zm-29.55 12.44l-95.58 109.23L272 246.11V140.22l156.94-42.8 46.75 93.51zM308.8 480H203.2l-55.29-152.06L256 273.89l108.09 54.05L308.8 480zM199.55 32h112.89l82.85 41.42L256 111.41 116.71 73.42 199.55 32zM83.06 97.42L240 140.22V246.1l-108.11 54.05-95.58-109.22 46.75-93.51zM32 312.45v-77.88l81.99 93.7 48.42 133.16-74.56-37.28L32 312.45zm392.15 111.7l-74.56 37.28 48.42-133.16 81.99-93.7v77.88l-55.85 111.7z\"]\n};\nvar faDiceD20 = {\n prefix: 'fal',\n iconName: 'dice-d20',\n icon: [448, 512, [], \"f6cf\", \"M431.88 116.13L239.88 4.3a31.478 31.478 0 0 0-31.76 0l-192 111.84C6.15 121.94 0 132.75 0 144.46v223.09c0 11.71 6.15 22.51 16.12 28.32l192 111.83a31.478 31.478 0 0 0 31.76 0l192-111.83c9.97-5.81 16.12-16.62 16.12-28.32V144.46c0-11.71-6.15-22.52-16.12-28.33zM224 57.62L318.7 176H129.3L224 57.62zM124.62 208h198.75L224 369.47 124.62 208zm68.28 171.99L55.92 362.87l44.43-133.28 92.55 150.4zm154.75-150.41l44.43 133.28-136.98 17.13 92.55-150.41zm7.17-59.69L262.67 54.72l138.01 80.78-45.86 34.39zm-261.64 0l-46.24-34.68 138.54-80.7-92.3 115.38zm-16.01 27.98l-45.13 135.4.17-169.12 44.96 33.72zM208 414.12v56.43L85.4 398.8 208 414.12zm155.6-15.45L240 470.84v-56.72l123.6-15.45zm7.23-200.8l45.15-33.86-.17 168.79-44.98-134.93zM224.14 480h.17l-.09.05-.08-.05z\"]\n};\nvar faDiceD4 = {\n prefix: 'fal',\n iconName: 'dice-d4',\n icon: [512, 512, [], \"f6d0\", \"M504.9 289.03L280.84 11.86C274.45 3.96 265.23 0 256 0s-18.45 3.96-24.85 11.86L7.1 289.03c-11.31 14-8.84 34.57 5.47 45.49l224.05 170.94c5.72 4.37 12.55 6.55 19.38 6.55s13.66-2.18 19.38-6.55l224.05-170.94c14.31-10.92 16.78-31.5 5.47-45.49zM31.99 309.14L240 51.75v416.04L31.99 309.14zM256.02 480h.03l-.01.01-.02-.01zM272 467.82v-416l208.02 257.26L272 467.82z\"]\n};\nvar faDiceD6 = {\n prefix: 'fal',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M431.88 116.13L239.88 4.3a31.478 31.478 0 0 0-31.76 0l-192 111.84C6.15 121.94 0 132.75 0 144.46v223.09c0 11.71 6.15 22.51 16.12 28.32l192 111.83a31.478 31.478 0 0 0 31.76 0l192-111.83c9.97-5.81 16.12-16.62 16.12-28.32V144.46c0-11.71-6.15-22.52-16.12-28.33zM224 32.08l175.75 102.86L224 237.48 47.83 134.7 224 32.08zM32.21 162.65L208 265.18v205.37L32 367.54l.21-204.89zM240 470.84V265.18l175.98-102.64-.21 205.67L240 470.84z\"]\n};\nvar faDiceD8 = {\n prefix: 'fal',\n iconName: 'dice-d8',\n icon: [512, 512, [], \"f6d2\", \"M502.1 232.1L279.9 9.9C273.3 3.3 264.6 0 256 0s-17.3 3.3-23.9 9.9L9.9 232.1c-13.2 13.2-13.2 34.5 0 47.7L232.1 502c6.6 6.6 15.2 9.9 23.9 9.9s17.3-3.3 23.9-9.9l222.2-222.2c13.2-13.1 13.2-34.5 0-47.7zM240 464.7L61.2 285.9 240 362.5zm0-137L43.7 243.6 240 47.3zm32 137V362.5l178.8-76.6zm0-137V47.3l196.3 196.3z\"]\n};\nvar faDiceFive = {\n prefix: 'fal',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h320c17.64 0 32 14.36 32 32v320zM128 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-96 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm192-192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faDiceFour = {\n prefix: 'fal',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h320c17.64 0 32 14.36 32 32v320zM128 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm192-192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faDiceOne = {\n prefix: 'fal',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h320c17.64 0 32 14.36 32 32v320zM224 232c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faDiceSix = {\n prefix: 'fal',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h320c17.64 0 32 14.36 32 32v320zM128 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm192 0c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-192 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm192-192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faDiceThree = {\n prefix: 'fal',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h320c17.64 0 32 14.36 32 32v320zM128 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faDiceTwo = {\n prefix: 'fal',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zm32 384c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h320c17.64 0 32 14.36 32 32v320zM128 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm192 192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faDigging = {\n prefix: 'fal',\n iconName: 'digging',\n icon: [576, 512, [], \"f85e\", \"M208 464a16 16 0 0 1-32 0V325.11l-47.75-25L63 469.74A16 16 0 0 1 48 480a16.28 16.28 0 0 1-5.75-1.07 16 16 0 0 1-9.18-20.68l66.59-173.14-28.54-14.95L3.2 446.75a48 48 0 0 0 27.6 62A47.47 47.47 0 0 0 48 512a48 48 0 0 0 44.82-30.78l50.69-131.8.49.24V464a48 48 0 0 0 96 0V358.63l-32-16.76zm103.06-48a32 32 0 0 0-30.35 21.88L256 512h320L474.07 305.68a32 32 0 0 0-56.07-2.15l-36 61.4-14.73-7.6a46.66 46.66 0 0 0-2.11-21.67c-10.16-28.14-18.47-51.81-25.47-71.84-22.73-64.81-35.05-99-56.65-122.69 30.45-8.4 53-36 53-69.13a72 72 0 0 0-144 0 71.26 71.26 0 0 0 4.91 25.56A145.19 145.19 0 0 0 176.73 96H104a48 48 0 0 0-36.87 17.26l-40 48a48 48 0 0 0 6.16 67.61 47.46 47.46 0 0 0 35.57 10.67l296.88 153L352 416zM264 32a40 40 0 1 1-40 40 40 40 0 0 1 40-40zm-58.81 241.77l26.65-26.37c4.56 12.27 10.09 27.83 17.23 48.18.11.31.24.69.35 1zM290.88 318c-4.22-11.9-8.18-23.12-11.62-33-16.79-47.85-25.92-73.31-34.85-88.83l-64.55 64.53-74.63-38.49L167.45 160H111.5l-35.2 42.24a16 16 0 1 1-24.57-20.5l34.68-42.09a32 32 0 0 1 24.7-11.65h64.36c17.49 0 34.93 3.48 50.65 11.17 43.35 21.2 49.94 39.93 83.32 135.24 6.42 18.28 14.07 40.06 23.05 65zm79.45 130l9.27-15.81L445.31 320h.12l79.07 160H300.41l10.66-32h59.26z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fal',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zm0 288H32V128h576v256zM80 272h208c8.84 0 16-7.16 16-16v-80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80c0 8.84 7.16 16 16 16zm8-88h192v64H88v-64zM72 360h224c4.42 0 8-3.58 8-8v-8c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v8c0 4.42 3.58 8 8 8zm272 0h224c4.42 0 8-3.58 8-8v-8c0-4.42-3.58-8-8-8H344c-4.42 0-8 3.58-8 8v8c0 4.42 3.58 8 8 8zM80 288c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H80zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-16z\"]\n};\nvar faDiploma = {\n prefix: 'fal',\n iconName: 'diploma',\n icon: [640, 512, [], \"f5ea\", \"M608.64 47.56C603.02 38.01 591.58 32 579.27 32c-2.53 0-5.1.25-7.66.78L444.65 75.56A390.24 390.24 0 0 1 320 96c-42.38 0-84.48-6.9-124.65-20.44L68.39 32.78c-2.56-.53-5.13-.78-7.65-.78-12.31 0-23.75 6.01-29.38 15.56-41.81 70.94-41.81 217.95 0 288.89C36.99 345.99 48.42 352 60.74 352c2.53 0 5.09-.25 7.65-.78l126.96-42.78c4.29-1.45 8.74-2.3 13.08-3.56l-56.23 94.79a31.992 31.992 0 0 0-.29 32.16 32.007 32.007 0 0 0 27.81 16.16h20.2l15.61 19.81a32.009 32.009 0 0 0 25.13 12.19c11.56 0 22.23-6.24 27.9-16.32l51.47-91.57 51.53 91.5a32.004 32.004 0 0 0 53.03 4.1l15.52-19.71 20.35-.01a31.997 31.997 0 0 0 27.49-48.35l-56.3-94.73c4.32 1.25 8.73 2.1 13 3.54l126.96 42.78c2.56.53 5.13.78 7.66.78 12.31 0 23.75-6.01 29.38-15.55 41.8-70.94 41.8-217.95-.01-288.89zM185.13 278.11L60.74 320.03V320c-.8 0-1.45-.16-1.75-.16-.16 0-.23.05-.16.2-35.92-61.18-35.89-195.18-.53-255.43.15-.12.87-.51 2.82-.51l124.02 41.79c17.99 6.06 36.34 10.58 54.87 14.15v131.62l-8.35 14.07c-15.68 3.34-31.25 7.23-46.53 12.38zM424.56 416l-25.12 31.91L320 306.84 240.66 448l-25.22-32h-35.72L272 260.44v-135.5c15.91 1.82 31.9 3.07 48 3.07s32.09-1.25 48-3.07v135.5l92.44 155.55-35.88.01zm157.14-96.61c-.15.11-.87.5-2.83.5l-124-41.79c-15.27-5.14-30.83-9.04-46.5-12.38L400 251.65v-131.6c18.52-3.58 36.88-8.09 54.87-14.15L579.18 64h.09c.8 0 1.45.16 1.75.16.16 0 .22-.05.16-.2 35.91 61.18 35.88 195.19.52 255.43z\"]\n};\nvar faDirections = {\n prefix: 'fal',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39C272.42 3.13 264.21 0 256 0s-16.42 3.13-22.68 9.39L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c6.26 6.26 14.47 9.39 22.68 9.39s16.42-3.13 22.68-9.39l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zM255.95 479.98L32.02 255.95 255.95 32.01c.01 0 .02-.01.05-.01l.05.02 223.93 224.03-224.03 223.93zM330.89 224H208c-26.51 0-48 21.49-48 48v40c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-40c0-8.84 7.16-16 16-16h122.89l-54.63 50.43c-3.25 3-3.45 8.06-.45 11.3l10.84 11.74c3 3.25 8.06 3.45 11.3.45l78.4-72.36c4.87-4.52 7.66-10.94 7.66-17.58s-2.78-13.06-7.72-17.62l-78.34-72.31c-3.25-3-8.31-2.79-11.3.45l-10.84 11.74c-3 3.25-2.79 8.31.45 11.3L330.89 224z\"]\n};\nvar faDiscDrive = {\n prefix: 'fal',\n iconName: 'disc-drive',\n icon: [512, 512, [], \"f8b5\", \"M256 224a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm248 224h-24V96a64 64 0 0 0-64-64H96a64 64 0 0 0-64 64v352H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h496a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-56 0H64V96a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32zM256 96a160 160 0 1 0 160 160A160 160 0 0 0 256 96zm0 288a128 128 0 1 1 128-128 128.14 128.14 0 0 1-128 128z\"]\n};\nvar faDisease = {\n prefix: 'fal',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M463.92 185.06L401 163.75c-13-4.41-22.5-13.58-25.4-24.53l-15-56.16c-6.28-23.38-25.56-41.41-51.6-48.24-28.7-7.5-58.83.18-78.39 20.18l-43.25 44.29c-9.19 9.38-23.5 14.4-38.12 13.16l-67.38-5.22c-31.31-2.42-60.43 12.11-74.18 37-11.68 21.19-9.94 45.63 4.75 65.4l36.12 48.69c6.81 9.19 7.88 20.09 2.91 29.92L24.8 341.17c-10.68 21.22-8.25 45.26 6.5 64.33 17.85 23.06 49.19 33.65 80.06 27L177 418.36c14.54-3.13 29.57-.08 40.57 8.07l50.9 37.91A81.26 81.26 0 0 0 316.86 480a83.83 83.83 0 0 0 34.71-7.48c23.44-10.66 38.5-31 40.28-54.35l4.44-57.46c.81-10.87 8.28-20.92 20-26.86l58.13-29.47c24.87-12.62 39.21-36.22 37.43-61.58-1.85-26.22-20.25-48.33-47.93-57.74zm-4 90.79l-58.13 29.47c-21.75 11.05-35.75 30.85-37.4 53L360 415.73c-1.25 16.66-15.53 24.89-21.62 27.67-16.72 7.63-36.66 5.82-50.78-4.71l-50.94-37.93c-13.66-10.15-31-15.59-48.56-15.59a83.84 83.84 0 0 0-17.84 1.9l-65.6 14.19c-23 5-40.15-5.19-48-15.36-4.18-5.4-10.15-16.55-3.22-30.34L80 302.66c10.47-20.72 8.31-44.4-5.78-63.41l-36.1-48.69c-9.72-13.09-5.69-24.93-2.44-30.83 7.75-14 25.34-21.9 43.68-20.59l67.38 5.22c24.31 1.87 47.78-6.61 63.5-22.71l43.24-44.26c11.38-11.64 30.07-16.19 47.52-11.6 14.75 3.86 25.53 13.41 28.75 25.54l15 56.14c5.72 21.33 22.94 38.73 46.09 46.59l62.84 21.32c15.53 5.26 25.38 16.36 26.31 29.69.83 12.47-6.67 23.98-20.07 30.78zM160 192a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm128 96a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm16-96a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]\n};\nvar faDivide = {\n prefix: 'fal',\n iconName: 'divide',\n icon: [384, 512, [], \"f529\", \"M376 232H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8zM192 336c-26.46 0-48 21.54-48 48s21.54 48 48 48 48-21.54 48-48-21.54-48-48-48zm0-160c26.46 0 48-21.54 48-48s-21.54-48-48-48-48 21.54-48 48 21.54 48 48 48z\"]\n};\nvar faDizzy = {\n prefix: 'fal',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm0-184c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm0 96c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm-28.7-140.7c6.2-6.2 6.2-16.4 0-22.6L190.6 192l28.7-28.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L168 169.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l28.7 28.7-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6 6.2 6.2 16.4 6.3 22.6 0l28.7-28.7 28.7 28.7c6.2 6.3 16.4 6.3 22.6 0zm160-102.6c-6.2-6.2-16.4-6.2-22.6 0L328 169.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l28.7 28.7-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6 6.2 6.2 16.4 6.3 22.6 0l28.7-28.7 28.7 28.7c6.2 6.2 16.4 6.3 22.6 0 6.2-6.2 6.2-16.4 0-22.6L350.6 192l28.7-28.7c6.3-6.2 6.3-16.4 0-22.6z\"]\n};\nvar faDna = {\n prefix: 'fal',\n iconName: 'dna',\n icon: [384, 512, [], \"f471\", \"M0 503.5c-.3 4.6 3.3 8.5 8 8.5h16.1c4.2 0 7.7-3.1 8-7.3.4-5.6 1.4-14.1 3.5-24.7h312.6c2.2 10.7 3.3 19.3 3.7 24.8.4 4.1 3.8 7.2 8 7.2H376c4.7 0 8.3-3.9 8-8.5-2.3-31.5-18.5-142-132.2-227.9-9.3 6.3-19.2 12.4-29.6 18.3 26 18.4 46.6 38.2 63.2 58.2H97.7c24.1-28.8 57-57.5 102-82C360.9 182.3 381.4 44.4 384 8.5c.3-4.6-3.3-8.5-8-8.5h-16.1c-4.2 0-7.7 3.1-8 7.3-.4 5.6-1.4 14.2-3.5 24.8H35.8c-2.2-10.7-3.2-19.3-3.7-24.8-.4-4.1-3.8-7.2-8-7.2L8 0C3.4 0-.3 3.9 0 8.5c2.5 34 21.7 159.5 161 247.3C21.3 343.6 2.5 469.5 0 503.5zM340 64c-6.3 19.2-15.9 41.2-30.4 64H75c-14.4-22.9-24.1-44.8-30.5-64H340zM192 237.4c-40.7-23.3-71.2-50.2-93.8-77.4h188.1c-22.7 27.1-53.4 53.9-94.3 77.4zM44 448c6.3-19.2 15.9-41.1 30.4-64h234.5c14.5 22.9 24.2 44.9 30.6 64H44z\"]\n};\nvar faDoNotEnter = {\n prefix: 'fal',\n iconName: 'do-not-enter',\n icon: [496, 512, [], \"f5ec\", \"M394.67 192H101.33C93.97 192 88 199.16 88 208v96c0 8.84 5.97 16 13.33 16h293.33c7.36 0 13.33-7.16 13.33-16v-96c.01-8.84-5.96-16-13.32-16zM376 288H120v-64h256v64zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216z\"]\n};\nvar faDog = {\n prefix: 'fal',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M528,96H464l-7.16-14.31C452,71.92,439.13,64,428.22,64H358.59L331.31,36.72A15.57,15.57,0,0,0,320.13,32,16,16,0,0,0,304,48V224H192a95.53,95.53,0,0,0-52.94,16H112a48.05,48.05,0,0,1-48-48,16,16,0,0,0-32,0,79.94,79.94,0,0,0,77.47,79.73A95.08,95.08,0,0,0,96,320V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V384h96v96a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V240h32a64,64,0,0,0,64-64V112A16,16,0,0,0,528,96ZM416,480H352V352H192V480H128V320a64.07,64.07,0,0,1,64-64H310.06L416,282.48Zm96-304a32,32,0,0,1-32,32H416v41.52l-80-20V86.66L345.34,96h82.88l16,32H512Zm-96-48a16,16,0,1,1-16-16A16,16,0,0,1,416,128Z\"]\n};\nvar faDogLeashed = {\n prefix: 'fal',\n iconName: 'dog-leashed',\n icon: [576, 512, [], \"f6d4\", \"M544,112v64a64,64,0,0,1-64,64H448V480a32,32,0,0,1-32,32H352a32,32,0,0,1-32-32V384H224v96a32,32,0,0,1-32,32H128a32,32,0,0,1-32-32V320a95,95,0,0,1,13.46-48.26A80,80,0,0,1,32,192a16,16,0,0,1,32,0,48.05,48.05,0,0,0,48,48h27.05A95.48,95.48,0,0,1,192,224h79.94L34.88,26.45a8,8,0,0,1-1-11.27L44.11,2.88a8,8,0,0,1,11.27-1L304,209V48a16,16,0,0,1,16.12-16,15.67,15.67,0,0,1,11.2,4.72L358.6,64h69.62c10.92,0,23.74,7.93,28.62,17.69L464,96h64A16,16,0,0,1,544,112ZM288,256H192a64.07,64.07,0,0,0-64,64V480h64V352h96Zm128,26.48-96-24V352h32V480h64ZM512,128H444.22l-16-32H345.34L336,86.66V229.52l80,20V208h64a32,32,0,0,0,32-32Zm-96,0a16,16,0,1,1-16-16A16,16,0,0,1,416,128Z\"]\n};\nvar faDollarSign = {\n prefix: 'fal',\n iconName: 'dollar-sign',\n icon: [256, 512, [], \"f155\", \"M191.9 259.3L73.7 222.2C49.2 214.5 32 189 32 160.3 32 124.8 57.6 96 89 96h73.8c22.2 0 43.3 8.6 60.1 24.5 3.1 2.9 7.8 3.2 11 .3l11.9-10.8c3.4-3.1 3.6-8.4.4-11.6-22.8-22-52.7-34.5-83.3-34.5H144V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56H89c-49.1 0-89 43.2-89 96.3 0 42.6 26.4 80.6 64.1 92.4l118.2 37.1c24.6 7.7 41.7 33.2 41.7 61.9 0 35.4-25.6 64.3-57 64.3H93.2c-22.2 0-43.3-8.6-60.1-24.5-3.1-2.9-7.8-3.2-11-.3L10.3 402c-3.3 3-3.6 8.4-.3 11.5 22.8 22 52.7 34.5 83.3 34.5H112v56c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56h23c49.1 0 89-43.2 89-96.3 0-42.5-26.4-80.5-64.1-92.4z\"]\n};\nvar faDolly = {\n prefix: 'fal',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M575.6 309.8l-5.1-15.2c-1.4-4.2-5.9-6.5-10.1-5.1L526 301.1 451.5 77.9c-2.7-8.1-8.4-14.7-16-18.5-7.7-3.8-16.3-4.4-24.4-1.7L176.3 136l-18-50.7C146.9 53.3 116.7 32 82.8 32H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h74.8c20.3 0 38.4 12.8 45.2 31.9l96.7 271.9c-23.3 17.2-37.2 46.5-31.4 78.9 5.6 31.3 30.4 57 61.5 63.5 51.7 10.7 97.2-28.4 97.2-78.2 0-13.1-3.4-25.2-9-36.1l227.5-76c4.2-1.4 6.5-5.9 5.1-10.1zM187 166.1l106.4-35.5 25 74.9c1.4 4.2 5.9 6.5 10.1 5.1l15.2-5.1c4.2-1.4 6.5-5.9 5.1-10.1l-25-74.9L421.2 88l74.5 223.3-174.4 58.1C307.6 358.7 290.7 352 272 352c-6.3 0-12.3.9-18.1 2.3L187 166.1zM272 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyEmpty = {\n prefix: 'fal',\n iconName: 'dolly-empty',\n icon: [576, 512, [], \"f473\", \"M570.5 294.6c-1.4-4.2-5.9-6.5-10.1-5.1l-239.1 79.8C307.6 358.7 290.7 352 272 352c-6.3 0-12.3.9-18.1 2.3l-95.7-269C146.9 53.3 116.7 32 82.8 32H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h74.8c20.3 0 38.4 12.8 45.2 31.9l96.7 271.9c-23.3 17.2-37.2 46.5-31.4 78.9 5.6 31.3 30.4 57.1 61.5 63.5C306.5 521 352 481.8 352 432c0-13.1-3.4-25.2-9-36.1l227.5-76c4.2-1.4 6.5-5.9 5.1-10.1l-5.1-15.2zM272 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fal',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 352h384c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zM352 96h96v80.7l-36.1-14.4-11.9-4.8-11.9 4.8-36.1 14.4V96zm-128 0h96v128l80-32 80 32V96h96v224H224V96zm408 320H128V8c0-4.4-3.6-8-8-8H8C3.6 0 0 3.6 0 8v16c0 4.4 3.6 8 8 8h88v408c0 4.4 3.6 8 8 8h58.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-424 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm288 0c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDollyFlatbedAlt = {\n prefix: 'fal',\n iconName: 'dolly-flatbed-alt',\n icon: [640, 512, [], \"f475\", \"M208 352h384c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zM416 96h96v96h-96V96zm0 128h160v96H416v-96zM224 96h160v224H224V96zm408 320H128V8c0-4.4-3.6-8-8-8H8C3.6 0 0 3.6 0 8v16c0 4.4 3.6 8 8 8h88v408c0 4.4 3.6 8 8 8h58.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-424 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm288 0c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDollyFlatbedEmpty = {\n prefix: 'fal',\n iconName: 'dolly-flatbed-empty',\n icon: [640, 512, [], \"f476\", \"M632 416H128V8c0-4.4-3.6-8-8-8H8C3.6 0 0 3.6 0 8v16c0 4.4 3.6 8 8 8h88v408c0 4.4 3.6 8 8 8h58.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-408 48c0 8.8-7.2 16-16 16s-16-7.2-16-16 7.2-16 16-16 16 7.2 16 16zm288 0c0 8.8-7.2 16-16 16s-16-7.2-16-16 7.2-16 16-16 16 7.2 16 16z\"]\n};\nvar faDonate = {\n prefix: 'fal',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M224.7 215.7l56.4 16.1c8.8 2.5 14.9 10.6 14.9 19.7 0 11.3-9.2 20.5-20.5 20.5h-36.9c-8.2 0-16.1-2.6-22.6-7.3-3-2.2-7.2-1.5-9.8 1.2l-11.4 11.4c-3.5 3.5-2.9 9.2 1 12.2 12.3 9.4 27.2 14.5 42.9 14.5h1.4v24c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-24h1.4c22.8 0 44.3-13.6 51.7-35.2 10.1-29.6-7.3-59.8-35.1-67.8L231 184.1c-8.8-2.5-14.9-10.6-14.9-19.7 0-11.3 9.2-20.5 20.5-20.5h36.9c8.2 0 16.1 2.6 22.6 7.3 3 2.2 7.2 1.5 9.8-1.2l11.4-11.4c3.5-3.5 2.9-9.2-1-12.2-12.3-9.4-27.2-14.5-42.9-14.5H272V88c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h-3.5c-30.6 0-55.1 26.3-52.2 57.5 2 22.1 19 40.1 40.4 46.2zM480 288h-32c10.3-24.6 16-51.6 16-80C464 93.1 370.9 0 256 0S48 93.1 48 208c0 28.4 5.7 55.4 16 80H32c-17.7 0-32 14.4-32 32v160c0 17.6 14.3 32 32 32h448c17.7 0 32-14.4 32-32V320c0-17.6-14.3-32-32-32zM256 32c97 0 176 79 176 176s-79 176-176 176S80 305 80 208 159 32 256 32zm224 448H32V320h48.9c16.6 25.8 38.6 47.7 64.6 64H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-41.5c26-16.3 48-38.2 64.6-64H480v160z\"]\n};\nvar faDoorClosed = {\n prefix: 'fal',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M400 288c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm232 192H512V32c0-17.67-14.33-32-32-32H160c-17.67 0-32 14.33-32 32v448H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-152 0H160V32h320v448z\"]\n};\nvar faDoorOpen = {\n prefix: 'fal',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M288 288c13.25 0 24-14.33 24-32s-10.75-32-24-32-24 14.33-24 32 10.75 32 24 32zm344 192H512V96c0-17.67-14.33-32-32-32h-96V33.18C384 14.42 369.2 0 352.06 0c-2.57 0-5.19.32-7.83 1.01l-192 49.74C137.99 54.44 128 67.7 128 82.92V480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM352 33.18V480H160l.26-398.27 191.8-49.69-.06 1.14zM480 480h-96V96h96v384z\"]\n};\nvar faDotCircle = {\n prefix: 'fal',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 464c-118.663 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.663 0 216 96.055 216 216 0 118.663-96.055 216-216 216zm0-296c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80zm0 128c-26.467 0-48-21.533-48-48s21.533-48 48-48 48 21.533 48 48-21.533 48-48 48z\"]\n};\nvar faDove = {\n prefix: 'fal',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M368 160.1c0 8.8 7.2 16 16 16s16-7.2 16-16-7.2-16-16-16-16 7.1-16 16zM384 64c-46.5 0-85.3 33.1-94.1 77.1-29.2-36.6-48.9-80.3-56-127.3C231.8.6 215-5.1 206 5.5c-35.3 41.7-53 88.5-58.7 122.3-25.3-24.4-46-53.3-60.4-86-5.5-12.6-23.3-13.1-29.1-.7-16 34-25.3 71.9-25.8 112-.6 42.9 9.8 130.2 110.6 211.8L13.8 397.1C1.5 400.2-3.9 414.3 3 425c19.9 30.7 68.9 82.6 174.8 87 13.4.6 22.7-6.8 25.2-9l63.9-54.8H320c88.4 0 160-71.7 160-160.1V160l32-96H384zm-174.1-9.7c14.1 50.3 41.2 96 78.1 133V200c-41.1-7.4-78.8-24.3-111.3-47.8 3.2-41.8 19.4-75.8 33.2-97.9zM448 154.7v133.5c0 70.6-57.4 128.1-128 128.1h-64.9s-75.2 63.8-76 63.8c-74.6-3.1-115.8-32.4-137.4-56.9l170.8-42.7C164.9 341.8 62.4 276.4 64 153.5c.3-22.7 3.7-44.9 10.3-66.4C156.4 226.2 300 235.9 320 238.2v-78.1c0-35.4 28.7-64.1 64-64.1h83.6L448 154.7z\"]\n};\nvar faDownload = {\n prefix: 'fal',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M452 432c0 11-9 20-20 20s-20-9-20-20 9-20 20-20 20 9 20 20zm-84-20c-11 0-20 9-20 20s9 20 20 20 20-9 20-20-9-20-20-20zm144-48v104c0 24.3-19.7 44-44 44H44c-24.3 0-44-19.7-44-44V364c0-24.3 19.7-44 44-44h99.4L87 263.6c-25.2-25.2-7.3-68.3 28.3-68.3H168V40c0-22.1 17.9-40 40-40h96c22.1 0 40 17.9 40 40v155.3h52.7c35.6 0 53.4 43.1 28.3 68.3L368.6 320H468c24.3 0 44 19.7 44 44zm-261.7 17.7c3.1 3.1 8.2 3.1 11.3 0L402.3 241c5-5 1.5-13.7-5.7-13.7H312V40c0-4.4-3.6-8-8-8h-96c-4.4 0-8 3.6-8 8v187.3h-84.7c-7.1 0-10.7 8.6-5.7 13.7l140.7 140.7zM480 364c0-6.6-5.4-12-12-12H336.6l-52.3 52.3c-15.6 15.6-41 15.6-56.6 0L175.4 352H44c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12V364z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fal',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M433.86 304.31c21.47-18.17 40.59-39.34 55.75-63.8 2.38-3.83 1.01-8.95-2.89-11.21l-13.86-8.03c-3.73-2.16-8.41-.89-10.69 2.77-12.29 19.75-27.49 37.08-44.51 52.2l-77.71-134.59C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66L96.11 273.19c-15.81-14.44-30.21-30.57-41.77-49.14-2.28-3.66-6.96-4.94-10.69-2.77l-13.86 8.03c-3.9 2.26-5.27 7.37-2.89 11.21 14.43 23.29 32.76 43.22 53 60.76L0 439.66l7.02 58.25c1.01 8.35 8.11 14.1 15.88 14.1 2.08 0 4.21-.41 6.29-1.3l53.95-23.04 78.85-136.57c30.37 11.71 62.83 18.33 96.26 18.33 32.07 0 63.27-6.12 92.63-16.82l77.98 135.06 53.95 23.04c2.07.88 4.2 1.3 6.29 1.3 7.77 0 14.88-5.75 15.88-14.1l7.02-58.25-78.14-135.35zm-41.75-8.32c-8.87 5.97-18.11 11.3-27.69 16.04l-73.26-126.89c10.11-3.99 19.19-9.78 27.28-16.76l73.67 127.61zM256 32c35.35 0 64 28.65 64 64s-28.65 64-64 64-64-28.65-64-64 28.65-64 64-64zM60.76 462.42l-24.52 10.47-3.19-26.47 160.52-278.04c8.09 6.98 17.17 12.77 27.28 16.76L60.76 462.42zm197.49-125.01c-27.73 0-54.72-5.11-80.11-14.3l75.81-131.31c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l76.54 132.57c-24.33 8.22-49.96 13.04-76.32 13.04zm217.51 135.48l-24.52-10.47-70.82-122.66c9.54-4.82 18.74-10.2 27.66-16.1l70.87 122.76-3.19 26.47z\"]\n};\nvar faDragon = {\n prefix: 'fal',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M481.01 119.95c14.92.86 27.35-9.89 30.88-24.58L453.47 80c-6.49 27.12 15.51 39.26 27.54 39.95zm54.5 131.8c-29.84-16.98-55.61-31.64-55.61-51.38V192h16.96l28.62 22.03c8.34 6.42 18.74 9.97 29.27 9.97h29.18c21.15 0 40.09-14.17 46.02-34.45l7.4-25.16c5.84-19.8 1.88-41.44-10.62-57.91L569.8 31.59C554.78 11.81 530.98 0 506.14 0H297.16c-19.47 0-33.09 24.04-15.4 41.25l37.49 30.25-32.55 13.42c-16.19 7.94-19.14 32.81 1.13 42.64l48.11 19.25v50.89l-190.3-47.88c-19.18-4.86-39.68 2.83-50.99 19.08L3.76 299.12c-5.03 7.91-5 17.72.03 25.59 1.69 2.62 9.54 13.11 24.99 10.91l115.02-21.8-12.07 17.3c-5.03 7.91-5 17.72.03 25.59 6.7 10.45 17.87 11.86 24.15 11.05l202.87-27.39c8.33 16.71 18.17 32.35 31.17 45.73-130.55 8.75-252.39 36.8-364.13 61.33C10.86 450.7.01 464.1.01 479.31c0 18 14.75 32.64 32.87 32.64l474.01.05c42.65 0 83.14-19.77 108.29-52.89 23.4-30.8 30.49-68.73 19.9-106.8-14.5-52.15-61.68-79-99.57-100.56zM41.72 300.62l79.17-113.41c3.75-5.39 10.59-7.86 17-6.36l84.07 21.02L170 276.3 41.72 300.62zm127.18 33.1l86.23-123.48 80.79 20.5c0 47.9 8.68 72.63 10.6 79L168.9 333.72zM506.89 480H32c230.53-56.77 352.62-62.36 400.47-64.02 15.54-.53 21.22-20.83 8.22-29.34-48.96-32.23-72.76-80.92-72.76-148.83V135.98c0-6.55-3.97-12.42-10.06-14.86l-38.15-15.23 36.71-15.09c5.22-2.16 8.94-6.91 9.75-12.5s-1.41-11.2-5.81-14.75L321.15 32h184.99c14.9 0 29.18 7.08 38.18 18.95l56.92 74.91c6.38 8.38 8.4 19.39 5.44 29.48l-7.4 25.19c-2 6.75-8.31 11.47-15.34 11.47h-29.18c-3.56 0-6.9-1.14-9.75-3.33l-32.96-25.36a16.01 16.01 0 0 0-9.75-3.31h-38.4c-8.84 0-16 7.16-16 16v24.38c0 38.34 34.87 58.19 71.8 79.19 36.18 20.59 73.58 41.89 84.57 81.33 19.36 69.86-41.14 119.1-97.38 119.1z\"]\n};\nvar faDrawCircle = {\n prefix: 'fal',\n iconName: 'draw-circle',\n icon: [512, 512, [], \"f5ed\", \"M512 256c0-33.51-25.84-60.69-58.63-63.46-20.48-63.5-70.41-113.43-133.91-133.91C316.69 25.84 289.51 0 256 0s-60.69 25.84-63.46 58.63c-63.5 20.48-113.43 70.41-133.91 133.91C25.84 195.31 0 222.49 0 256c0 33.51 25.84 60.69 58.63 63.46 20.48 63.5 70.41 113.43 133.91 133.91C195.31 486.16 222.49 512 256 512s60.69-25.84 63.46-58.63c63.5-20.48 113.43-70.41 133.91-133.91C486.16 316.69 512 289.51 512 256zM256 32c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zM32 256c0-17.64 14.36-32 32-32s32 14.36 32 32-14.36 32-32 32-32-14.36-32-32zm224 224c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm58.12-58.47C304.04 399.43 281.88 384 256 384s-48.04 15.43-58.12 37.53c-50.16-17.67-89.73-57.24-107.4-107.4C112.57 304.04 128 281.88 128 256c0-25.88-15.43-48.04-37.53-58.12 17.67-50.17 57.24-89.73 107.4-107.4C207.96 112.57 230.12 128 256 128s48.04-15.43 58.12-37.53c50.16 17.67 89.73 57.24 107.4 107.4C399.43 207.96 384 230.12 384 256c0 25.88 15.43 48.04 37.53 58.12-17.68 50.17-57.25 89.74-107.41 107.41zM448 288c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fal',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-6.3 0-12.26 1.19-18.01 2.89l-32.42-54.02C344.95 289.31 352 273.49 352 256s-7.05-33.31-18.42-44.87L366 157.11c5.75 1.7 11.71 2.89 18.01 2.89 35.35 0 64-28.65 64-64s-28.65-64-64-64c-29.79 0-54.6 20.45-61.74 48H125.74C118.6 52.45 93.79 32 64 32 28.65 32 0 60.65 0 96c0 29.79 20.44 54.6 48 61.74v196.53C20.44 361.4 0 386.21 0 416c0 35.35 28.65 64 64 64 29.79 0 54.6-20.44 61.74-48h196.53c7.14 27.56 31.95 48 61.74 48 35.35 0 64-28.65 64-64-.01-35.35-28.66-64-64.01-64zm-304 2.26V157.74c22.41-5.8 39.93-23.32 45.74-45.74h196.53c2.86 11.04 8.4 20.99 16.16 28.87l-32.42 54.02c-5.75-1.7-11.71-2.89-18.01-2.89-35.35 0-64 28.65-64 64s28.65 64 64 64c6.3 0 12.26-1.19 18.01-2.89l32.42 54.02c-7.76 7.88-13.3 17.83-16.16 28.87H125.74A63.814 63.814 0 0 0 80 354.26zM288 288c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm96-224c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zM32 96c0-17.64 14.36-32 32-32s32 14.36 32 32-14.36 32-32 32-32-14.36-32-32zm32 352c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm320 0c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDrawSquare = {\n prefix: 'fal',\n iconName: 'draw-square',\n icon: [448, 512, [], \"f5ef\", \"M400 354.26V157.74c27.56-7.14 48-31.95 48-61.74 0-35.35-28.65-64-64-64-29.79 0-54.6 20.45-61.74 48H125.74C118.6 52.45 93.79 32 64 32 28.65 32 0 60.65 0 96c0 29.79 20.44 54.6 48 61.74v196.53C20.44 361.4 0 386.21 0 416c0 35.35 28.65 64 64 64 29.79 0 54.6-20.44 61.74-48h196.53c7.14 27.56 31.95 48 61.74 48 35.35 0 64-28.65 64-64-.01-29.79-20.45-54.6-48.01-61.74zM322.26 400H125.74c-5.8-22.41-23.32-39.93-45.74-45.74V157.74c22.41-5.8 39.93-23.32 45.74-45.74h196.53c5.8 22.41 23.32 39.93 45.74 45.74v196.53c-22.42 5.8-39.94 23.32-45.75 45.73zM384 64c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zM32 96c0-17.64 14.36-32 32-32s32 14.36 32 32-14.36 32-32 32-32-14.36-32-32zm32 352c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm320 0c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDreidel = {\n prefix: 'fal',\n iconName: 'dreidel',\n icon: [448, 512, [], \"f792\", \"M438.6 64L416 41.4c-12.5-12.5-32.8-12.5-45.3 0L278.1 134l-60.6-60.6c-6.5-6.5-15.1-9.8-23.6-9.8s-17.1 3.3-23.6 9.8L19.6 224C7 236.5 0 253.5 0 271.3v141.8c0 37 29.9 66.9 66.9 66.9h141.8c17.7 0 34.7-7 47.3-19.6l150.7-150.7c13.1-13.1 13.1-34.2 0-47.3l-60.6-60.6 92.6-92.6c12.4-12.4 12.4-32.7-.1-45.2zM233.4 437.8c-6.6 6.6-15.3 10.2-24.7 10.2H66.9C47.6 448 32 432.4 32 413.1V271.3c0-9.3 3.6-18.1 10.2-24.7l59.4-59.4 191.2 191.2-59.4 59.4zM384 287.1l-68.7 68.7-191.1-191.2L192.9 96c.1-.1.4-.4 1-.4l1 .4L384 285.1c.6.5.6 1.5 0 2zm-60.6-107.9l-22.6-22.6L393.4 64 416 86.6l-92.6 92.6z\"]\n};\nvar faDrone = {\n prefix: 'fal',\n iconName: 'drone',\n icon: [512, 512, [], \"f85f\", \"M302.87,128c6.68,0,12.75-2.57,18.11-6.35a78.8574,78.8574,0,0,1-1-9.65,80,80,0,1,1,80,80,78.64886,78.64886,0,0,1-9.65-1c-3.79,5.36-6.35,11.43-6.35,18.11v13.26a112.703,112.703,0,0,0,15.9099,1.13245c59.63853,0,111.624-48.159,111.624-111.90443,0-59.6385-48.15906-111.62393-111.90445-111.62393-58.38959,0-111.60974,46.99339-111.60974,111.764L288,112a110.99719,110.99719,0,0,0,1.61,16ZM400,431.99994a32,32,0,0,0,0-64c-2.77,0-5.24.91-7.8,1.57l-21.45-21.45A64,64,0,0,1,352,302.87V209.13a63.99991,63.99991,0,0,1,18.75-45.25l21.45-21.45c2.56.66,5,1.57,7.8,1.57a32,32,0,1,0-32-32c0,2.77.91,5.24,1.57,7.8l-21.45,21.45A63.99991,63.99991,0,0,1,302.87,160H209.13a63.99991,63.99991,0,0,1-45.25-18.75L142.43,119.8c.66-2.56,1.57-5.03,1.57-7.8a32,32,0,1,0-32,32c2.8,0,5.24-.91,7.8-1.57l21.45,21.45A63.99991,63.99991,0,0,1,160,209.13v93.74a64,64,0,0,1-18.75,45.24993L119.8,369.57c-2.56-.66-5.03-1.57-7.8-1.57a32,32,0,1,0,32,32c0-2.8-.91-5.24-1.57-7.8l21.45-21.46A63.99973,63.99973,0,0,1,209.13,352h93.74a63.99973,63.99973,0,0,1,45.25,18.74l21.45,21.46c-.66,2.56-1.57,5-1.57,7.8A32,32,0,0,0,400,431.99994ZM320,320H192V192H320Zm192.00593,79.60957c0-58.38963-46.9934-111.60983-111.764-111.60983L400,288a110.99719,110.99719,0,0,0-16,1.61v13.26c0,6.68,2.57,12.75,6.35,18.11a78.84341,78.84341,0,0,1,9.65-1,80,80,0,1,1-80,80,78.66278,78.66278,0,0,1,1-9.65c-5.36-3.78-11.43-6.35-18.11-6.35h-13.28a112.70134,112.70134,0,0,0-1.13248,15.91c0,59.6385,48.159,111.624,111.90439,111.624C460.03838,511.51394,512.00593,463.34218,512.00593,399.60957ZM209.11,383.98c-6.68,0-12.75,2.57-18.11,6.35a78.66278,78.66278,0,0,1,1,9.65,80,80,0,1,1-80-80,78.84341,78.84341,0,0,1,9.65,1c3.78-5.36,6.35-11.43,6.35-18.11V289.61A110.99719,110.99719,0,0,0,112,288l-.24189-.00026c-65.16452,0-111.764,53.56054-111.764,111.60983,0,64.98207,53.23282,111.90437,111.624,111.90437,64.98206,0,111.90439-53.23282,111.90439-111.624A112.70134,112.70134,0,0,0,222.39,383.98ZM112.11012,223.50245A112.703,112.703,0,0,0,128.02,222.37V209.11c0-6.68-2.56-12.75-6.35-18.11a78.64886,78.64886,0,0,1-9.65,1,80,80,0,1,1,80-80,78.8574,78.8574,0,0,1-1,9.65c5.36,3.78,11.43,6.35,18.11,6.35h13.26A110.99719,110.99719,0,0,0,224,112l.00031-.26192c0-65.16448-53.56048-111.764-111.60974-111.764C47.4085-.02591.48612,53.20687.48612,111.598.48612,176.58012,53.71894,223.50245,112.11012,223.50245Z\"]\n};\nvar faDroneAlt = {\n prefix: 'fal',\n iconName: 'drone-alt',\n icon: [640, 512, [], \"f860\", \"M624.21 127.93l-112.21.22V112a16 16 0 0 0-32 0v16.21l-112.3.23a15.75 15.75 0 1 0 .09 31.49L480 159.7v67.39l-95.09-25.93a247.11 247.11 0 0 0-129.82 0L160 227.09v-67.45l112.44-.23a15.74 15.74 0 1 0-.1-31.48l-112.34.22V112a16 16 0 0 0-32 0v16.21l-112.3.23a15.75 15.75 0 1 0 .1 31.49l112.2-.23V288a16 16 0 0 0 16 16h54.51a193.92 193.92 0 0 0-52.22 102.71 8.08 8.08 0 0 0 8 9.29h16.38a7.89 7.89 0 0 0 7.73-6.56 162 162 0 0 1 57.47-96.29l27.84 25.3A52.75 52.75 0 0 0 299.38 352h41.24a52.7 52.7 0 0 0 35.63-13.53l28.29-25.7a162 162 0 0 1 58 96.67 7.9 7.9 0 0 0 7.74 6.56h16.38a8.07 8.07 0 0 0 8-9.29A193.91 193.91 0 0 0 442.42 304H496a16 16 0 0 0 16-16V159.64l112.31-.23a15.74 15.74 0 1 0-.1-31.48zM480 272h-72a16 16 0 0 0-10.75 4.16l-42.53 38.64a21.18 21.18 0 0 1-14.1 5.2h-41.24a21.23 21.23 0 0 1-14.13-5.22l-42.5-38.62A16 16 0 0 0 232 272h-72v-11.73L263.53 232a215.1 215.1 0 0 1 112.94 0L480 260.27z\"]\n};\nvar faDrum = {\n prefix: 'fal',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M414.51 117.78l90-56.22a16 16 0 0 0-16.94-27.13l-115.89 72.41C335.19 99.56 295.14 96 256 96 132.7 96 0 131 0 208v160c0 61.85 114.62 112 256 112s256-50.15 256-112V208c0-42.48-40.52-72.13-97.49-90.22zM96 421.46C55.12 405.34 32 384.74 32 368V265.91c16.53 13 38.55 23.58 64 31.8zm144 26.19c-43.14-1.19-80.93-7-112-15.6V306.43c34.85 8 73.52 12.34 112 13.28zm144-15.6c-31.07 8.55-68.86 14.41-112 15.6V319.71c38.48-.94 77.15-5.3 112-13.28zM480 368c0 16.74-23.12 37.34-64 53.46V297.71c25.45-8.22 47.47-18.79 64-31.8zm-224-80c-123.71 0-224-35.82-224-80s100.29-80 224-80a598.54 598.54 0 0 1 74.44 4.61l-98.91 61.82a16 16 0 0 0 16.94 27.13l129.11-80.7C439.16 155.12 480 179.83 480 208c0 44.18-100.29 80-224 80z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fal',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm0 32c25.68 0 50.43 1.46 73.82 4.09l-15.45 60.08C341.86 145.72 315.67 160 288 160s-53.86-14.27-58.37-31.82l-15.45-60.09C237.57 65.46 262.32 64 288 64zm94.84 185.12c-29.35 4.4-61.3 6.88-94.84 6.88-33.79 0-65.96-2.52-95.49-6.97 20.07-19.65 33.38-45.44 37.12-73.47C245.95 185.92 266.66 192 288 192c21.02 0 41.47-5.87 57.68-15.95 3.64 28.08 17.05 53.74 37.16 73.07zM178.26 73.37l16.97 60.04c12.05 42.66-7.64 86.71-44.73 107.47C79.32 223.84 32 194.02 32 160c0-38.27 59.87-71.21 146.26-86.63zM544 352c0 39.14-99.73 96-256 96S32 391.14 32 352V218.47C79.81 259.73 176.38 288 288 288s208.19-28.27 256-69.54V352zM425.61 240.87c-36.04-18.69-56.55-59.84-46.96-101.16l15.56-66.98C482.52 87.87 544 121.21 544 160c0 34-47.28 63.81-118.39 80.87z\"]\n};\nvar faDrumstick = {\n prefix: 'fal',\n iconName: 'drumstick',\n icon: [512, 512, [], \"f6d6\", \"M471.25 57.59A169.77 169.77 0 0 0 348.47.06c-46.9-1.28-92.87 16.63-126 49.65C195.63 76.34 160 119.94 160 190.56v69.3l-43.34 43.35c-3.13 3.14-9.11 5.32-17.22 2.06A72.53 72.53 0 0 0 0 372.66c0 21.53 15.58 69.06 67.71 71.67 2 39.37 34.35 67.67 71.68 67.67 51.85 0 86.26-52.22 67.39-99.41-1-2.53-3.88-11.28 2.06-17.21l43.3-43.38h70.12c38.87 0 73-10.19 104.34-31.16 46.44-31 77-79.68 84-133.5 6.14-48.13-7.82-94.23-39.35-129.75zm-285 315.14c-13.1 13.08-16.62 32.86-9.16 51.74 23.47 58.7-74.37 78.88-77.4 18.26l-1.45-28.91-28.91-1.45c-50.62-2.54-49-80.3 3.21-80.3a40 40 0 0 1 15 2.89c17.72 7.13 38 4.7 51.81-9.12l26-26a80.2 80.2 0 0 0 46.93 46.87zm292.59-189.44c-5.66 44-31.81 85.46-70 111C382.93 311.6 354.62 320 322.28 320h-81.9A48.24 48.24 0 0 1 192 272v-81.45c0-45.29 16.35-81.73 53-118.15A137.74 137.74 0 0 1 343 32q2.21 0 4.5.06a137.92 137.92 0 0 1 99.81 46.79c25.31 28.49 36.53 65.59 31.53 104.44z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fal',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M471.39 57.58A169.89 169.89 0 0 0 348.54.06C301-1.15 255.67 16.72 222.51 49.7c-26.82 26.63-62.46 70.23-62.46 140.85v69.29l-43.39 43.37c-3.13 3.14-9.11 5.32-17.22 2.06A72.53 72.53 0 0 0 0 372.66c0 21.53 15.58 69.06 67.71 71.67 2 39.37 34.35 67.67 71.68 67.67 51.85 0 86.26-52.22 67.39-99.41-1-2.53-3.88-11.28 2.06-17.21L252.23 352h70.15a189.76 189.76 0 0 0 50.39-6.83 16 16 0 0 0 9.5-23.74A94.12 94.12 0 0 1 368.11 272a96.13 96.13 0 0 1 96-96c8.35 0 17 1.42 27.29 4.49a16 16 0 0 0 20.6-15.36c0-40.48-14.07-77.67-40.61-107.55zM186.23 372.73c-13.1 13.08-16.62 32.86-9.16 51.74 23.47 58.7-74.37 78.88-77.4 18.26l-1.45-28.91-28.91-1.45c-50.62-2.54-49-80.3 3.21-80.3a40 40 0 0 1 15 2.89c17.72 7.13 38 4.7 51.81-9.12l26-26a80.24 80.24 0 0 0 47 46.88zM464.14 144a128.16 128.16 0 0 0-128 128 125.53 125.53 0 0 0 9 46.35 155.14 155.14 0 0 1-22.76 1.65h-81.93a48.24 48.24 0 0 1-48.39-48v-81.44c0-45.29 16.35-81.73 53-118.16a137.79 137.79 0 0 1 98-40.41q2.25 0 4.5.06a138 138 0 0 1 99.87 46.79 127.18 127.18 0 0 1 31 66.13 109 109 0 0 0-14.29-.97z\"]\n};\nvar faDryer = {\n prefix: 'fal',\n iconName: 'dryer',\n icon: [448, 512, [], \"f861\", \"M384-1H64A64 64 0 0 0 0 63v416a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V63a64 64 0 0 0-64-64zm32 480H32V63a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32zM80 95a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm64 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm80 32a160 160 0 1 0 160 160 160 160 0 0 0-160-160zm0 288a128 128 0 1 1 128-128 128.14 128.14 0 0 1-128 128zm-7.11-156.42c0-20.12-10.63-30.75-18.39-38.51-5.18-5.18-8.21-8.4-9.43-13a7.11 7.11 0 0 0-6.82-5.4h-14.51a7.25 7.25 0 0 0-7.06 8.47c2.45 14.79 11.11 23.45 17.71 30 7 7 10.06 10.4 10.06 18.4S185.36 270 178.39 277c-7.77 7.75-18.39 18.38-18.39 38.5s10.62 30.72 18.39 38.47c5.17 5.18 8.21 8.39 9.42 13a7.13 7.13 0 0 0 6.83 5.39h14.5a7.25 7.25 0 0 0 7.07-8.47c-2.46-14.76-11.12-23.42-17.71-30-7-7-10.05-10.39-10.05-18.36s3.08-11.43 10.05-18.4c7.76-7.8 18.39-18.42 18.39-38.55zm71.11 0c0-20.12-10.62-30.75-18.39-38.51-5.18-5.18-8.21-8.4-9.43-13a7.11 7.11 0 0 0-6.82-5.4h-14.51a7.25 7.25 0 0 0-7.06 8.47c2.46 14.79 11.12 23.45 17.71 30 7 7 10.05 10.4 10.05 18.4S256.47 270 249.5 277c-7.76 7.76-18.39 18.39-18.39 38.51s10.63 30.71 18.39 38.49c5.17 5.18 8.21 8.39 9.43 13a7.11 7.11 0 0 0 6.82 5.39h14.51a7.25 7.25 0 0 0 7.06-8.47c-2.46-14.76-11.12-23.42-17.71-30-7-7-10.06-10.39-10.06-18.36s3.09-11.43 10.06-18.4c7.77-7.83 18.39-18.45 18.39-38.58z\"]\n};\nvar faDryerAlt = {\n prefix: 'fal',\n iconName: 'dryer-alt',\n icon: [448, 512, [], \"f862\", \"M384-1H64A64 64 0 0 0 0 63v416a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V63a64 64 0 0 0-64-64zm32 480H32V63a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32zM80 95a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm64 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm80 32a160 160 0 1 0 160 160 160 160 0 0 0-160-160zm0 288a128 128 0 1 1 128-128 128.14 128.14 0 0 1-128 128zm0-224a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 160a64 64 0 0 1-61.73-48H200a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-37.73A63.9 63.9 0 1 1 224 351z\"]\n};\nvar faDuck = {\n prefix: 'fal',\n iconName: 'duck',\n icon: [576, 512, [], \"f6d8\", \"M432 256c70.69 0 144-57.31 144-128h-97.57c-.44-3.21-.56-6.36-1.29-9.61-9.02-40.55-41.61-73.73-82.06-83.21C385.9 33.02 376.83 32 368 32c-61.86 0-112 50.14-112 112v112h-60.73c-25.68 0-49.79-10.07-69.95-25.99-5-3.95-11.13-6.02-17.35-6.02-3.61 0-7.24.7-10.71 2.12C86.77 230.47 80 240.6 80 251.95c0 1.39.37 2.67.41 4.05H32.25C12.87 256-2.72 273.21.4 292.34 17.76 398.77 110.13 480 221.47 480h99.94c68.24 0 128.85-55.86 126.53-124.06-1.01-29.74-13.09-56.53-31.93-76.98V256H432zm46.73-96h59.79c-11.59 32.68-56.4 57.25-91.47 62.8 16.7-16.61 28.14-38.37 31.68-62.8zm-86.27 140.64c14.44 15.68 22.78 35.7 23.49 56.38.75 22.18-7.95 43.83-24.5 60.96-18.44 19.08-43.97 30.02-70.04 30.02h-99.94c-94.97 0-174.05-69.31-189.33-160h52.82c16.21 64.17 73.95 112 143.09 112H248c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-19.96c-60.8 0-110.84-47-115.66-106.59 21.26 17.65 49.09 26.59 82.88 26.59H288V144c0-44.18 35.82-80 80-80s80 35.82 80 80c0 33.83-21.07 62.6-50.75 74.3-12.82 6.12-11.61 5.54-13.25 6.33v66.83l8.46 9.18zM368 128c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faDumbbell = {\n prefix: 'fal',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M632 240h-24v-96c0-26.5-21.5-48-48-48h-32c-5.6 0-11 1.2-16 2.9V80c0-26.5-21.5-48-48-48h-32c-26.5 0-48 21.5-48 48v160H256V80c0-26.5-21.5-48-48-48h-32c-26.5 0-48 21.5-48 48v18.9c-5-1.8-10.4-2.9-16-2.9H80c-26.5 0-48 21.5-48 48v96H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h24v96c0 26.5 21.5 48 48 48h32c5.6 0 11-1.2 16-2.9V432c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V272h128v160c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48v-18.9c5 1.8 10.4 2.9 16 2.9h32c26.5 0 48-21.5 48-48v-96h24c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM112 384H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v224c0 8.8-7.2 16-16 16zm112 48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v352zm256 0c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v352zm96-64c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v224z\"]\n};\nvar faDumpster = {\n prefix: 'fal',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M568 256h-34.7l7.1-64H560c10.4 0 18-12.2 15.5-24.9l-24-120C549.7 38.2 543.3 32 536 32H40c-7.3 0-13.7 6.2-15.5 15.1l-24 120C-2 179.8 5.6 192 16 192h19.5l7.1 64H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h38.2L64 448v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h256v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16l17.8-160H568c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-26.6-96h-78.7l-19.2-96h78.7l19.2 96zm-395.5 0l19.2-96H272v96H145.9zM304 64h106.9l19.2 96H304V64zM53.8 64h78.7l-19.2 96H34.6l19.2-96zM480 448h-32v-32H128v32H96L67.8 192h440.5L480 448z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fal',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M551.1 163.2c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-57 283.4c-4.7.5-9.2 1.4-14.1 1.4s-9.4-.9-14.1-1.4c-31.8-6.4-55.8-34.2-55.8-67.4 0-14 15.4-46.1 44.5-78.3 7.1 7.6 13.6 15.3 19.4 23l24.1 31.9 25.9-30.5c.1-.1.1-.2.2-.2 16.2 22.2 25.5 46.1 25.5 54.1.1 33.2-23.9 61-55.6 67.4zm85.5-46.6c1.4-6.7 2.2-13.7 2.2-20.8 0-23.3-23.6-71.4-56.6-100.8-9.5 8.4-18 17.3-25.6 26.2-12.4-16.4-27.8-33.1-45.2-48.6-44.7 39.9-76.4 91.9-76.4 123.2 0 7.1.8 14.1 2.2 20.8-17.5-21.6-28.4-48.7-28.4-78.4 0-31.6 32.5-93.2 88.1-149.5 16.8 16.7 32.2 34.3 45.3 51.6l24.1 31.9 25.9-30.5c4.9-5.8 9.9-11.4 15.1-16.8 34.3 39.9 57.5 91.4 57.5 113.3.2 29.8-10.7 56.8-28.2 78.4zM128 416v32H96L67.8 192h272.8c7.5-10.7 15.5-21.4 24.3-32H304V64h106.9l8 40c6-5.3 13.6-8 21.1-8 3.5 0 7 .7 10.3 1.9L443.5 64h78.7l14.3 71.3c4.6-2.4 9.5-4.1 14.6-4.1 6.6 0 12.9 2.4 18.5 6.4l-18.1-90.5C549.7 38.2 543.3 32 536 32H40c-7.3 0-13.7 6.2-15.5 15.1l-24 120C-2 179.8 5.6 192 16 192h19.5l7.1 64H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h38.2L64 448v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h176.8c-8.8-9.8-16.7-20.5-23.3-32H128zm37.1-352H272v96H145.9l19.2-96zM34.6 160l19.2-96h78.7l-19.2 96H34.6z\"]\n};\nvar faDungeon = {\n prefix: 'fal',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zM512 296c0-9.08-3.04-17.47-8.16-24.19 5.46-7.31 8.33-16.36 7.98-25.49-1.32-35.19-9.76-69.17-25.09-100.97-4.49-9.32-12.48-16.41-21.94-19.99.86-10.14-2.16-20.28-8.51-28.26-21.34-26.85-47.37-48.83-77.36-65.33a40.004 40.004 0 0 0-19.19-4.93c-3.45 0-6.83.45-10.09 1.31-5.17-8.82-13.55-15.38-23.4-18.2C303.29 3.35 279.65 0 256 0s-47.29 3.35-70.25 9.95c-9.83 2.82-18.22 9.38-23.39 18.2-3.26-.86-6.64-1.31-10.09-1.31-6.69 0-13.33 1.7-19.19 4.92-30 16.5-56.03 38.48-77.37 65.34-6.34 7.98-9.36 18.11-8.5 28.25-9.47 3.59-17.45 10.67-21.94 19.99C9.95 177.15 1.51 211.12.18 246.33c-.35 9.12 2.52 18.17 7.98 25.48A39.772 39.772 0 0 0 0 296v64c0 9 2.99 17.31 8.02 24C2.99 390.69 0 399 0 408v64c0 22.05 17.94 40 40 40h64c22.06 0 40-17.95 40-40v-64c0-9-2.99-17.31-8.02-24 5.03-6.69 8.02-15 8.02-24v-64c0-8.92-2.93-17.16-7.88-23.82a40.01 40.01 0 0 0 8.04-21.96c.71-12.54 3.74-25.12 9.02-37.4 2.66-6.19 3.67-12.68 3.2-18.97 6-2.32 11.44-6.08 15.78-11.05 7.3-8.34 15.78-15.54 25.21-21.41 5.7-3.54 10.24-8.31 13.44-13.78 3.14.77 6.42 1.18 9.77 1.18 3.37 0 6.74-.42 10.01-1.26 9.42-2.41 17.48-3.53 25.39-3.53 7.92 0 15.99 1.12 25.41 3.53 3.28.84 6.65 1.26 10.02 1.26 3.36 0 6.63-.4 9.78-1.18 3.2 5.46 7.74 10.23 13.44 13.77 9.44 5.87 17.92 13.07 25.22 21.41 4.35 4.97 9.79 8.74 15.79 11.05-.48 6.29.54 12.78 3.2 18.97 5.28 12.28 8.31 24.86 9.02 37.39.46 8.26 3.39 15.81 8.04 21.96a39.793 39.793 0 0 0-7.88 23.82v64c0 9 2.99 17.31 8.02 24-5.03 6.69-8.02 15-8.02 24v64c0 22.05 17.94 40 40 40h64c22.06 0 40-17.95 40-40v-64c0-9-2.99-17.31-8.02-24 5.03-6.69 8.02-15 8.02-24V296zM112 472c0 4.42-3.58 8-8 8H40c-4.42 0-8-3.58-8-8v-64c0-4.42 3.58-8 8-8h64c4.42 0 8 3.58 8 8v64zm0-112c0 4.42-3.58 8-8 8H40c-4.42 0-8-3.58-8-8v-64c0-4.42 3.58-8 8-8h64c4.42 0 8 3.58 8 8v64zm11.78-159.82c-6.44 14.99-10.61 31.16-11.57 48.23-.24 4.22-3.51 7.58-7.74 7.58H40.41c-4.57 0-8.42-3.9-8.25-8.47 1.19-31.53 8.97-61.38 21.94-88.3 1.39-2.88 4.32-4.49 7.32-4.49 1.5 0 3.01.4 4.37 1.25l55.04 34.4c3.32 2.08 4.5 6.2 2.95 9.8zm56.7-65.97a143.632 143.632 0 0 0-32.4 27.51c-1.59 1.82-3.81 2.8-6.05 2.8-1.39 0-2.8-.38-4.08-1.18l-55-34.38c-4.07-2.54-5.16-8.21-2.17-11.97a225.31 225.31 0 0 1 67.73-57.21c1.2-.66 2.49-.96 3.77-.96 3.27 0 6.45 1.99 7.72 5.24l23.79 60.57c1.4 3.6-.04 7.55-3.31 9.58zm118.38-22.33c-1.21 3.08-4.24 4.91-7.45 4.91-.7 0-1.4-.08-2.09-.26-11.83-3.02-22.6-4.52-33.33-4.52-10.79 0-21.54 1.52-33.3 4.52-.7.18-1.4.26-2.09.26-3.21 0-6.23-1.83-7.44-4.92l-23.73-60.41c-1.72-4.39.64-9.47 5.17-10.77C214.11 35.09 234.69 32 256 32s41.89 3.09 61.42 8.7c4.53 1.3 6.9 6.38 5.17 10.77l-23.73 60.41zm75.19 51.47c-1.28.8-2.68 1.18-4.08 1.18-2.25 0-4.46-.98-6.05-2.8a144.07 144.07 0 0 0-32.4-27.51c-3.27-2.04-4.71-5.99-3.31-9.57L352 64.08c1.27-3.24 4.46-5.24 7.72-5.24 1.28 0 2.57.31 3.77.96a225.31 225.31 0 0 1 67.73 57.21c2.99 3.76 1.9 9.43-2.17 11.97l-55 34.37zm14.17 36.83c-1.55-3.61-.37-7.72 2.96-9.8l55.04-34.4a8.181 8.181 0 0 1 4.37-1.25c3 0 5.94 1.61 7.32 4.49 12.97 26.91 20.75 56.77 21.94 88.3.17 4.57-3.68 8.47-8.25 8.47h-64.06c-4.23 0-7.5-3.36-7.74-7.58-.97-17.07-5.14-33.23-11.58-48.23zM480 472c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-64c0-4.42 3.58-8 8-8h64c4.42 0 8 3.58 8 8v64zm0-112c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-64c0-4.42 3.58-8 8-8h64c4.42 0 8 3.58 8 8v64zM304 189.36V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEar = {\n prefix: 'fal',\n iconName: 'ear',\n icon: [384, 512, [], \"f5f0\", \"M192 96c-52.94 0-96 43.06-96 96 0 35.3 28.72 64 64 64 17.66 0 32 14.36 32 32s-14.34 32-32 32h-24c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24c35.28 0 64-28.7 64-64s-28.72-64-64-64c-17.66 0-32-14.36-32-32 0-35.3 28.72-64 64-64s64 28.7 64 64v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24c0-52.94-43.06-96-96-96zm0-96C85.96 0 0 85.96 0 192v176c0 79.53 64.47 144 144 144s144-64.47 144-144v-9.9c57.33-33.21 96-95.08 96-166.1C384 85.96 298.04 0 192 0zm79.96 330.41L256 339.66V368c0 61.76-50.24 112-112 112S32 429.76 32 368V192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 56.78-30.67 109.81-80.04 138.41z\"]\n};\nvar faEarMuffs = {\n prefix: 'fal',\n iconName: 'ear-muffs',\n icon: [640, 512, [], \"f795\", \"M640 352c0-15.1-6.1-28.9-16-39 .4-24.1-14.4-45-35.8-53.3-7.2-18.5-24.1-31.6-44.2-34.5V224C544 100.5 443.5 0 320 0S96 100.5 96 224v1.2c-20.2 3-37 16.1-44.2 34.5-21.3 8.4-36.2 29.2-35.8 53.3-9.9 10.1-16 23.9-16 39 0 5.5.8 10.8 2.4 16C.8 373.2 0 378.5 0 384c0 15.1 6.1 28.9 16 39-.4 24.1 14.4 45 35.8 53.3C59.9 497.1 80.2 512 104 512c5.5 0 10.8-.8 16-2.4 5.2 1.6 10.5 2.4 16 2.4 30.9 0 56-25.1 56-56 0-7.7-1.6-15.2-4.5-22 2.2-5.2 8.9-23.1 0-44 2.2-5.2 8.9-23.1 0-44 2.2-5.2 8.9-23.1 0-44 2.9-6.8 4.5-14.3 4.5-22 0-30.9-25.1-56-56-56-2.7 0-5.3.8-8 1.2V224c0-105.9 86.1-192 192-192s192 86.1 192 192v1.2c-2.7-.4-5.3-1.2-8-1.2-30.9 0-56 25.1-56 56 0 7.7 1.6 15.2 4.5 22-2.2 5.2-8.9 23.1 0 44-2.2 5.2-8.9 23.1 0 44-2.2 5.2-8.9 23.1 0 44-2.9 6.8-4.5 14.3-4.5 22 0 30.9 25.1 56 56 56 5.5 0 10.8-.8 16-2.4 5.2 1.6 10.5 2.4 16 2.4 23.7 0 44.1-14.9 52.2-35.8 21.3-8.3 36.2-29.1 35.8-53.3 9.9-10.1 16-23.9 16-39 0-5.5-.8-10.8-2.4-16 1.6-5.1 2.4-10.4 2.4-15.9zm-504-96c13.3 0 24 10.7 24 24 0 9.9-6 18.3-14.5 22 8.5 3.7 14.5 12.1 14.5 22s-6 18.3-14.5 22c8.5 3.7 14.5 12.1 14.5 22s-6 18.3-14.5 22c8.5 3.7 14.5 12.1 14.5 22s-6 18.3-14.5 22c8.5 3.7 14.5 12.1 14.5 22 0 13.3-10.7 24-24 24-6.2 0-11.7-2.5-16-6.4-4.3 3.9-9.8 6.4-16 6.4-13.3 0-24-10.7-24-24 0-4 1.2-7.7 3-11-3.3 1.8-7 3-11 3-13.3 0-24-10.7-24-24 0-6.3 2.6-12 6.6-16.3C42 406.9 32 396.7 32 384c0-6.2 2.5-11.7 6.4-16-3.9-4.3-6.4-9.8-6.4-16 0-12.7 10-22.9 22.6-23.7-4-4.3-6.6-10-6.6-16.3 0-13.3 10.7-24 24-24 4 0 7.7 1.2 11 3-1.8-3.3-3-7-3-11 0-13.3 10.7-24 24-24 6.2 0 11.7 2.5 16 6.4 4.3-3.9 9.8-6.4 16-6.4zm472 128c0 12.7-10 22.9-22.6 23.7 4 4.3 6.6 10 6.6 16.3 0 13.3-10.7 24-24 24-4 0-7.7-1.2-11-3 1.8 3.3 3 7 3 11 0 13.3-10.7 24-24 24-6.2 0-11.7-2.5-16-6.4-4.3 3.9-9.8 6.4-16 6.4-13.3 0-24-10.7-24-24 0-9.9 6-18.3 14.5-22-8.5-3.7-14.5-12.1-14.5-22s6-18.3 14.5-22c-8.5-3.7-14.5-12.1-14.5-22s6-18.3 14.5-22c-8.5-3.7-14.5-12.1-14.5-22s6-18.3 14.5-22c-8.5-3.7-14.5-12.1-14.5-22 0-13.3 10.7-24 24-24 6.2 0 11.7 2.5 16 6.4 4.3-3.9 9.8-6.4 16-6.4 13.3 0 24 10.7 24 24 0 4-1.2 7.7-3 11 3.3-1.8 7-3 11-3 13.3 0 24 10.7 24 24 0 6.3-2.6 12-6.6 16.3 12.6.8 22.6 11 22.6 23.7 0 6.2-2.5 11.7-6.4 16 3.9 4.3 6.4 9.8 6.4 16z\"]\n};\nvar faEclipse = {\n prefix: 'fal',\n iconName: 'eclipse',\n icon: [640, 512, [], \"f749\", \"M256 467.4l-48.4-71.6c-3-4.4-8-7-13.2-7-1 0-2 .1-3 .3l-84.8 16.4 16.4-84.8c1.2-6.3-1.4-12.7-6.8-16.3L44.6 256l71.6-48.4c5.3-3.6 8-10 6.8-16.3l-16.4-84.8 84.8 16.4c6.2 1.1 12.7-1.5 16.3-6.8L256 44.6l35.1 51.9c7.6-7.5 15.9-14.4 24.6-20.7L269.2 7c-3-4.4-7.9-7-13.2-7s-10.3 2.6-13.2 7L187 89.4 89.3 70.6c-5.2-1-10.6.7-14.3 4.4s-5.4 9.1-4.4 14.3L89.4 187 7 242.8c-4.4 3-7 7.9-7 13.2s2.6 10.3 7 13.2L89.4 325l-18.9 97.7c-1 5.2.7 10.6 4.4 14.3s9.2 5.4 14.3 4.4l97.7-18.9 55.8 82.4c3 4.4 7.9 7 13.2 7s10.3-2.6 13.2-7l46.4-68.6c-8.7-6.4-17-13.2-24.6-20.7L256 467.4zm-17.8-289.2c4.4-11.8 9.7-23.1 15.9-33.9-28.5.4-55.9 11.1-77.3 32.5-37.8 37.8-43.5 94-14.5 143.2 7.2 12.2 17.5 22.4 29.7 29.7 20.1 11.9 41.5 17.8 62.3 18.2-6.3-10.8-11.6-22.1-16-34-9.6-2-19.7-5.7-30-11.8-7.5-4.4-14-10.9-18.4-18.4-25.9-43.9-11.1-83.6 9.6-104.3 9.4-9.3 22.8-17.5 38.7-21.2zM448 64c-106 0-192 86-192 192s86 192 192 192 192-86 192-192S554 64 448 64zm0 352c-88.2 0-160-71.8-160-160S359.8 96 448 96s160 71.8 160 160-71.8 160-160 160z\"]\n};\nvar faEclipseAlt = {\n prefix: 'fal',\n iconName: 'eclipse-alt',\n icon: [512, 512, [], \"f74a\", \"M512 256c0-5.3-2.6-10.3-7-13.2L422.5 187l18.9-97.7c1-5.2-.7-10.6-4.4-14.3s-9.1-5.3-14.3-4.4L325 89.4 269.2 7c-3-4.4-7.9-7-13.2-7s-10.3 2.6-13.2 7L187 89.4 89.3 70.6c-5.2-1-10.6.7-14.3 4.4s-5.4 9.1-4.4 14.3L89.4 187 7 242.8c-4.4 3-7 7.9-7 13.2s2.6 10.3 7 13.2L89.4 325l-18.9 97.7c-1 5.2.7 10.6 4.4 14.3s9.1 5.4 14.3 4.4l97.7-18.9 55.8 82.4c3 4.4 7.9 7 13.2 7s10.3-2.6 13.2-7l55.8-82.4 97.7 18.9c5.2 1 10.6-.7 14.3-4.4s5.4-9.1 4.4-14.3L422.6 325l82.4-55.8c4.4-2.9 7-7.9 7-13.2zm-116.1 48.4c-5.3 3.6-8 10-6.8 16.3l16.4 84.8-84.8-16.4c-6.3-1.2-12.7 1.5-16.3 6.8L256 467.4l-48.4-71.6c-3-4.4-8-7-13.2-7-1 0-2 .1-3 .3l-84.8 16.4 16.4-84.8c1.2-6.3-1.4-12.7-6.8-16.3L44.6 256l71.6-48.4c5.3-3.6 8-10 6.8-16.3l-16.4-84.8 84.8 16.4c6.2 1.1 12.7-1.5 16.3-6.8L256 44.6l48.4 71.6c3.6 5.3 10.1 7.9 16.3 6.8l84.8-16.4-16.4 84.8c-1.2 6.3 1.4 12.7 6.8 16.3l71.6 48.4-71.6 48.3zM327 293.1c-1 0-2.9.2-3.9.4-3.7.7-7.5 1.1-11.3 1.1-32.5 0-59-26.6-59-59.2 0-21.2 11.5-41 29.9-51.5 7.6-4.3 11.5-12.6 10.1-21.2-1.4-8.6-7.9-15.2-16.5-16.7-6.7-1.2-13.6-1.9-20.4-1.9C194.2 144 144 194.2 144 256c0 61.8 50.2 112 111.9 112 33.9 0 65.6-15.1 86.9-41.5 5-6.2 6-14.5 2.6-21.7-3.4-7.1-10.6-11.7-18.4-11.7zM255.9 336c-44.1 0-79.9-35.9-79.9-80 0-39.3 28.4-72 65.7-78.7a91.288 91.288 0 0 0-20.9 58.1c0 44.9 32.6 82.4 75.3 89.9-12.1 6.9-25.9 10.7-40.2 10.7z\"]\n};\nvar faEdit = {\n prefix: 'fal',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M417.8 315.5l20-20c3.8-3.8 10.2-1.1 10.2 4.2V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h292.3c5.3 0 8 6.5 4.2 10.2l-20 20c-1.1 1.1-2.7 1.8-4.2 1.8H48c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V319.7c0-1.6.6-3.1 1.8-4.2zm145.9-191.2L251.2 436.8l-99.9 11.1c-13.4 1.5-24.7-9.8-23.2-23.2l11.1-99.9L451.7 12.3c16.4-16.4 43-16.4 59.4 0l52.6 52.6c16.4 16.4 16.4 43 0 59.4zm-93.6 48.4L403.4 106 169.8 339.5l-8.3 75.1 75.1-8.3 233.5-233.6zm71-85.2l-52.6-52.6c-3.8-3.8-10.2-4-14.1 0L426 83.3l66.7 66.7 48.4-48.4c3.9-3.8 3.9-10.2 0-14.1z\"]\n};\nvar faEgg = {\n prefix: 'fal',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0zm0 480c-88.22 0-160-71.78-160-160 0-100.72 82.24-288 160-288s160 187.28 160 288c0 88.22-71.78 160-160 160z\"]\n};\nvar faEggFried = {\n prefix: 'fal',\n iconName: 'egg-fried',\n icon: [512, 512, [], \"f7fc\", \"M224 112.12c-70.56 0-128 57.48-128 128.15s57.41 128.12 128 128.12 128-57.47 128-128.12-57.41-128.15-128-128.15zm0 224.24a96.15 96.15 0 0 1-96-96.09c0-53 43.07-96.12 96-96.12s96 43.13 96 96.12a96.15 96.15 0 0 1-96 96.09zm0-168.18a72.13 72.13 0 0 0-72 72.09 16 16 0 1 0 32 0 40.08 40.08 0 0 1 40-40.06 16 16 0 0 0 0-32zm254.32-17.73c-39.5-40.71-100.73-46.29-144.39-82.24S255.63 0 200.55 0a157.76 157.76 0 0 0-25.16 2.1c-86.78 14-111.71 80-125 157.13-11.1 64.34-54.41 127-50 192.91s52.83 128.45 114.97 150.75c17.64 6.32 33.83 9.11 48.92 9.11 64.66 0 108.94-51.18 155.72-95.56 43.68-41.44 93.4-37.72 140.93-73.89 56.28-42.82 71.71-140.55 17.39-192.1zm1.52 89.31c-1.69 31-16.35 60.6-38.27 77.28-18.12 13.79-37.53 20.88-58.09 28.4-26.8 9.79-57.19 20.9-85.49 47.75-5.47 5.19-10.91 10.47-16.35 15.76-37.59 36.52-73.1 71-117.36 71-12.09 0-24.56-2.37-38.12-7.24C75.24 454.46 35.74 402.85 32.24 350c-2.16-32.48 10.67-66.45 24.25-102.41 10-26.58 20.41-54.06 25.4-82.92C97 77.3 122.78 43 180.48 33.73A126.07 126.07 0 0 1 200.55 32c39.59 0 66.48 22.31 103.7 53.19L313.6 93c23.67 19.49 50 30.66 75.45 41.47s49.5 21 67.25 39.27c22.45 21.26 24.39 50.49 23.54 66.02z\"]\n};\nvar faEject = {\n prefix: 'fal',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M435.322 239.565L259.383 47.558c-19.014-20.743-51.751-20.745-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435zM399.939 288H48.053c-13.866 0-21.169-16.585-11.791-26.816L212.205 69.181c6.323-6.897 17.248-6.918 23.585-.005l175.943 192.012c9.371 10.223 2.076 26.812-11.794 26.812zM448 400v32c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-48-16H48c-8.822 0-16 7.178-16 16v32c0 8.823 7.178 16 16 16h352c8.822 0 16-7.177 16-16v-32c0-8.822-7.178-16-16-16z\"]\n};\nvar faElephant = {\n prefix: 'fal',\n iconName: 'elephant',\n icon: [640, 512, [], \"f6da\", \"M512 31.97h-45.81C460.54 26.16 437.16 0 391.99 0c-38.08 0-62.5 18.23-75.55 31.97H192C85.96 31.97 0 117.93 0 223.98v128.01h32V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-80.01c48.43 24.21 83.07 38.47 160 0V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V287.98h96v32h-32c-17.67 0-32 14.33-32 32v11.27c0 41.84 30.02 80.06 71.64 84.3 47.85 4.88 88.36-32.71 88.36-79.58v-208c0-70.7-57.31-128-128-128zM416 480h-64V348.21l-46.31 23.16c-54.82 27.41-76.47 27.46-131.38 0L128 348.21V480H64V319.99H32v-96.01c0-88.23 71.78-160.01 160-160.01h104.39c-1.1 2.71-2.7 5.19-3.55 8-8.96 29.48-5.42 59.87 9.94 85.47 11.53 19.19 28.91 34.05 49.22 42.53 0 40.15 27.18 73.73 64 84.26V480zm192-112.01c0 26.47-21.53 48-48 48s-48-21.53-48-48v-16h32v16c0 8.83 7.19 16 16 16s16-7.17 16-16V255.98H440c-30.88 0-56-25.12-56-56v-21.32l-19.67-8.21c-28.75-12.01-53.9-46.29-40.87-89.17C332.04 53.02 358.41 32 391.99 32c32.86 0 46.72 17.61 60.7 31.97H512c52.94 0 96 43.07 96 96.01v208.01zm-80-240.02c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faEllipsisH = {\n prefix: 'fal',\n iconName: 'ellipsis-h',\n icon: [320, 512, [], \"f141\", \"M192 256c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm88-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-240 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faEllipsisHAlt = {\n prefix: 'fal',\n iconName: 'ellipsis-h-alt',\n icon: [512, 512, [], \"f39b\", \"M256 184c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm176-112c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM80 184c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"]\n};\nvar faEllipsisV = {\n prefix: 'fal',\n iconName: 'ellipsis-v',\n icon: [64, 512, [], \"f142\", \"M32 224c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM0 136c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm0 240c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32z\"]\n};\nvar faEllipsisVAlt = {\n prefix: 'fal',\n iconName: 'ellipsis-v-alt',\n icon: [192, 512, [], \"f39c\", \"M96 152c39.8 0 72-32.2 72-72S135.8 8 96 8 24 40.2 24 80s32.2 72 72 72zm0-112c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0 64c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"]\n};\nvar faEmptySet = {\n prefix: 'fal',\n iconName: 'empty-set',\n icon: [448, 512, [], \"f656\", \"M445.66 45.65l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-75.12 75.12C314.46 81.15 271.26 64 224 64 117.96 64 32 149.96 32 256c0 47.26 17.15 90.46 45.46 123.91L2.34 455.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l75.12-75.12C133.54 430.85 176.74 448 224 448c106.04 0 192-85.96 192-192 0-47.26-17.15-90.46-45.46-123.91l75.12-75.12a8.015 8.015 0 0 0 0-11.32zM64 256c0-88.22 71.78-160 160-160 38.34 0 73.1 14.12 100.69 36.69l-224 224C78.11 329.1 64 294.34 64 256zm320 0c0 88.22-71.78 160-160 160-38.34 0-73.1-14.12-100.69-36.69l224-224C369.89 182.9 384 217.66 384 256z\"]\n};\nvar faEngineWarning = {\n prefix: 'fal',\n iconName: 'engine-warning',\n icon: [640, 512, [], \"f5f2\", \"M320 32C196.3 32 96 132.3 96 256c0 123.76 100.3 224 224 224s224-100.24 224-224c0-123.7-100.3-224-224-224zm0 416c-105.87 0-192-86.13-192-192S214.13 64 320 64s192 86.13 192 192-86.13 192-192 192zm18.64-320.02h-37.28c-7.9 0-14.08 6.82-13.29 14.69l10.69 149.29c.68 6.83 6.43 12.03 13.29 12.03h15.9c6.87 0 12.61-5.2 13.29-12.03l10.69-149.29c.79-7.86-5.39-14.69-13.29-14.69zM320 328c-13.26 0-24 10.74-24 24 0 13.25 10.74 24 24 24s24-10.75 24-24c0-13.26-10.74-24-24-24zM90.69 69.17l-12.4-10.11c-3.49-2.85-8.75-2.31-11.51 1.25C23.65 116.12 0 185.28 0 256c0 70.74 23.65 139.88 66.75 195.65 2.76 3.57 8.01 4.1 11.51 1.25l12.4-10.11c3.36-2.73 3.84-7.58 1.19-11.01C53.2 381.66 32 319.54 32 256c0-63.53 21.2-125.65 59.88-175.82 2.65-3.43 2.17-8.28-1.19-11.01zm482.53-8.86c-2.76-3.57-8.01-4.1-11.51-1.25l-12.4 10.11c-3.36 2.73-3.83 7.58-1.19 11.01C586.8 130.35 608 192.47 608 256c0 63.54-21.2 125.66-59.85 175.79-2.64 3.43-2.17 8.27 1.19 11.01l12.4 10.11c3.49 2.85 8.75 2.31 11.51-1.25C616.35 395.88 640 326.74 640 256c0-70.72-23.65-139.88-66.78-195.69z\"]\n};\nvar faEnvelope = {\n prefix: 'fal',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM48 96h416c8.8 0 16 7.2 16 16v41.4c-21.9 18.5-53.2 44-150.6 121.3-16.9 13.4-50.2 45.7-73.4 45.3-23.2.4-56.6-31.9-73.4-45.3C85.2 197.4 53.9 171.9 32 153.4V112c0-8.8 7.2-16 16-16zm416 320H48c-8.8 0-16-7.2-16-16V195c22.8 18.7 58.8 47.6 130.7 104.7 20.5 16.4 56.7 52.5 93.3 52.3 36.4.3 72.3-35.5 93.3-52.3 71.9-57.1 107.9-86 130.7-104.7v205c0 8.8-7.2 16-16 16z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fal',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M349.32 52.26C328.278 35.495 292.938 0 256 0c-36.665 0-71.446 34.769-93.31 52.26-34.586 27.455-109.525 87.898-145.097 117.015A47.99 47.99 0 0 0 0 206.416V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V206.413a47.989 47.989 0 0 0-17.597-37.144C458.832 140.157 383.906 79.715 349.32 52.26zM464 480H48c-8.837 0-16-7.163-16-16V206.161c0-4.806 2.155-9.353 5.878-12.392C64.16 172.315 159.658 95.526 182.59 77.32 200.211 63.27 232.317 32 256 32c23.686 0 55.789 31.27 73.41 45.32 22.932 18.207 118.436 95.008 144.714 116.468a15.99 15.99 0 0 1 5.876 12.39V464c0 8.837-7.163 16-16 16zm-8.753-216.312c4.189 5.156 3.393 12.732-1.776 16.905-22.827 18.426-55.135 44.236-104.156 83.148-21.045 16.8-56.871 52.518-93.318 52.258-36.58.264-72.826-35.908-93.318-52.263-49.015-38.908-81.321-64.716-104.149-83.143-5.169-4.173-5.966-11.749-1.776-16.905l5.047-6.212c4.169-5.131 11.704-5.925 16.848-1.772 22.763 18.376 55.014 44.143 103.938 82.978 16.85 13.437 50.201 45.69 73.413 45.315 23.219.371 56.562-31.877 73.413-45.315 48.929-38.839 81.178-64.605 103.938-82.978 5.145-4.153 12.679-3.359 16.848 1.772l5.048 6.212z\"]\n};\nvar faEnvelopeOpenDollar = {\n prefix: 'fal',\n iconName: 'envelope-open-dollar',\n icon: [512, 512, [], \"f657\", \"M494.59 164.52c-1.98-1.63-22.19-17.91-46.59-37.53V96c0-17.67-14.33-32-32-32h-46.47c-4.13-3.31-7.71-6.16-10.2-8.14C337.23 38.19 299.44 0 256 0c-43.21 0-80.64 37.72-103.34 55.86-2.53 2.01-6.1 4.87-10.2 8.14H96c-17.67 0-32 14.33-32 32v30.98c-24.52 19.71-44.75 36.01-46.48 37.43A48.002 48.002 0 0 0 0 201.48V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.51c0-14.31-6.38-27.88-17.41-36.99zM256 32c21.77 0 44.64 16.72 63.14 32H192.9c18.53-15.27 41.42-32 63.1-32zM96 96h320v173.35c-32.33 26-65.3 52.44-86.59 69.34-16.85 13.43-50.19 45.68-73.41 45.31-23.21.38-56.56-31.88-73.41-45.32-21.29-16.9-54.24-43.33-86.59-69.34V96zM32 201.48c0-4.8 2.13-9.31 5.84-12.36 1.24-1.02 11.62-9.38 26.16-21.08v75.55c-11.53-9.28-22.51-18.13-32-25.78v-16.33zM480 464c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V258.91c42.75 34.44 99.31 79.92 130.68 104.82 20.49 16.36 56.74 52.53 93.32 52.26 36.45.26 72.27-35.46 93.31-52.26C380.72 338.8 437.24 293.34 480 258.9V464zm0-246.19c-9.62 7.75-20.27 16.34-32 25.79v-75.54c14.44 11.62 24.8 19.97 26.2 21.12 3.69 3.05 5.8 7.54 5.8 12.33v16.3zm-251.09 22.77l45 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.11c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V328c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-19.97-12.98-37.81-31.58-43.39l-45-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V136c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 19.97 12.98 37.81 31.58 43.39z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fal',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M352 248v-16c0-4.42-3.58-8-8-8H168c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8zm-184-56h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H168c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm326.59-27.48c-1.98-1.63-22.19-17.91-46.59-37.53V96c0-17.67-14.33-32-32-32h-46.47c-4.13-3.31-7.71-6.16-10.2-8.14C337.23 38.19 299.44 0 256 0c-43.21 0-80.64 37.72-103.34 55.86-2.53 2.01-6.1 4.87-10.2 8.14H96c-17.67 0-32 14.33-32 32v30.98c-24.52 19.71-44.75 36.01-46.48 37.43A48.002 48.002 0 0 0 0 201.48V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.51c0-14.31-6.38-27.88-17.41-36.99zM256 32c21.77 0 44.64 16.72 63.14 32H192.9c18.53-15.27 41.42-32 63.1-32zM96 96h320v173.35c-32.33 26-65.3 52.44-86.59 69.34-16.85 13.43-50.19 45.68-73.41 45.31-23.21.38-56.56-31.88-73.41-45.32-21.29-16.9-54.24-43.33-86.59-69.34V96zM32 201.48c0-4.8 2.13-9.31 5.84-12.36 1.24-1.02 11.62-9.38 26.16-21.08v75.55c-11.53-9.28-22.51-18.13-32-25.78v-16.33zM480 464c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V258.91c42.75 34.44 99.31 79.92 130.68 104.82 20.49 16.36 56.74 52.53 93.32 52.26 36.45.26 72.27-35.46 93.31-52.26C380.72 338.8 437.24 293.34 480 258.9V464zm0-246.19c-9.62 7.75-20.27 16.34-32 25.79v-75.54c14.44 11.62 24.8 19.97 26.2 21.12 3.69 3.05 5.8 7.54 5.8 12.33v16.3z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fal',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zm-64-304H96c-17.673 0-32 14.327-32 32v192c0 17.673 14.327 32 32 32h256c17.673 0 32-14.327 32-32V160c0-17.673-14.327-32-32-32zm0 32v33.855c-14.136 11.628-36.566 29.664-82.117 65.821C259.426 268.015 238.748 288 224.256 288l-.256-.002-.256.002c-14.492 0-35.17-19.984-45.628-28.324-45.544-36.152-67.978-54.192-82.117-65.822V160H352zM96 352V235.092c14.109 11.367 33.624 26.948 62.221 49.648 13.777 11.01 37.902 35.26 65.523 35.26l.253-.001.258.001c27.529 0 51.392-23.975 65.541-35.274 28.583-22.689 48.099-38.27 62.203-49.634V352H96z\"]\n};\nvar faEquals = {\n prefix: 'fal',\n iconName: 'equals',\n icon: [384, 512, [], \"f52c\", \"M376 304H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8zm0-144H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z\"]\n};\nvar faEraser = {\n prefix: 'fal',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.94 273.94a48 48 0 0 0 0-67.88l-160-160a48 48 0 0 0-67.88 0l-256 256a48 48 0 0 0 0 67.88l96 96A48 48 0 0 0 144 480h356a12 12 0 0 0 12-12v-8a12 12 0 0 0-12-12H323.88l174.06-174.06zM292.69 68.69a16 16 0 0 1 22.62 0l160 160a16 16 0 0 1 0 22.62L358.63 368 176 185.37zM144 448a15.88 15.88 0 0 1-11.31-4.69l-96-96a16 16 0 0 1 0-22.62L153.37 208 336 390.63l-52.69 52.68A15.88 15.88 0 0 1 272 448z\"]\n};\nvar faEthernet = {\n prefix: 'fal',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16zm-16 224h-64V288h-32v128h-64V288h-32v128h-64V288h-32v128h-64V288H96v128H32V224h64v-64h64V96h192v64h64v64h64v192z\"]\n};\nvar faEuroSign = {\n prefix: 'fal',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M303.625 444.131c-1.543-6.481-8.063-10.445-14.538-8.874-10.014 2.43-25.689 5.304-43.827 5.304-80.726 0-141.733-46.614-160.837-120.561h155.241a12 12 0 0 0 11.784-9.731l1.541-8c1.425-7.402-4.246-14.269-11.784-14.269H77.646c-1.849-20.951-1.849-43.664.616-64h178.657a12 12 0 0 0 11.784-9.731l1.541-8c1.425-7.402-4.246-14.269-11.784-14.269H85.04c20.951-70.25 80.111-120.561 159.604-120.561 14.725 0 28.452 2.194 37.551 4.086 6.282 1.306 12.47-2.581 14.05-8.799l3.93-15.475c1.689-6.652-2.529-13.383-9.262-14.718C280.423 34.452 264.068 32 245.26 32 143.582 32 63.472 100.181 39.439 192H12c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h21.893c-2.466 17.87-1.849 49.827-.617 64H12c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h26.207c21.568 96.749 101.678 160 207.053 160 22.511 0 41.595-3.426 53.081-6.106 6.47-1.51 10.465-7.999 8.926-14.462l-3.642-15.301z\"]\n};\nvar faExchange = {\n prefix: 'fal',\n iconName: 'exchange',\n icon: [512, 512, [], \"f0ec\", \"M508.485 184.485l-92.485 92c-4.687 4.686-12.284 4.686-16.97 0l-7.071-7.07c-4.687-4.686-4.687-12.284 0-16.971L452.893 192H12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h440.905l-60.946-60.444c-4.687-4.686-4.687-12.284 0-16.971l7.07-7.07c4.687-4.686 12.284-4.686 16.971 0l92.485 92c4.687 4.686 4.686 12.284 0 16.97zm-504.97 160l92.485 92c4.687 4.686 12.284 4.686 16.971 0l7.07-7.07c4.687-4.686 4.687-12.284 0-16.971L59.095 352H500c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H59.107l60.934-60.444c4.687-4.686 4.687-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.687-16.97 0l-92.485 92c-4.686 4.686-4.687 12.284 0 16.97z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fal',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M12 192h372v56c0 29.552 36.528 43.072 55.917 21.26l64-72c10.777-12.124 10.777-30.395 0-42.519l-64-72C420.535 60.936 384 74.436 384 104v56H12c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12zm404-88l64 72-64 72V104zm84 216H128v-56c0-29.552-36.528-43.072-55.917-21.26l-64 72c-10.777 12.124-10.777 30.395 0 42.519l64 72C91.465 451.064 128 437.564 128 408v-56h372c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12zM96 408l-64-72 64-72v144z\"]\n};\nvar faExclamation = {\n prefix: 'fal',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M139.315 32c6.889 0 12.364 5.787 11.982 12.666l-14.667 264c-.353 6.359-5.613 11.334-11.982 11.334H67.352c-6.369 0-11.628-4.975-11.982-11.334l-14.667-264C40.321 37.787 45.796 32 52.685 32h86.63M96 352c35.29 0 64 28.71 64 64s-28.71 64-64 64-64-28.71-64-64 28.71-64 64-64M139.315 0h-86.63C27.457 0 7.353 21.246 8.753 46.441l14.667 264c.652 11.728 5.864 22.178 13.854 29.665C14.613 357.682 0 385.168 0 416c0 52.935 43.065 96 96 96s96-43.065 96-96c0-30.832-14.613-58.318-37.274-75.894 7.991-7.487 13.203-17.937 13.854-29.665l14.667-264C184.647 21.251 164.548 0 139.315 0z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fal',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-11.49 120h22.979c6.823 0 12.274 5.682 11.99 12.5l-7 168c-.268 6.428-5.556 11.5-11.99 11.5h-8.979c-6.433 0-11.722-5.073-11.99-11.5l-7-168c-.283-6.818 5.167-12.5 11.99-12.5zM256 340c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28z\"]\n};\nvar faExclamationSquare = {\n prefix: 'fal',\n iconName: 'exclamation-square',\n icon: [448, 512, [], \"f321\", \"M219.5 320h9c6.4 0 11.7-5.1 12-11.5l7-168c.3-6.8-5.2-12.5-12-12.5h-23c-6.8 0-12.3 5.7-12 12.5l7 168c.3 6.4 5.6 11.5 12 11.5zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16zm-192-92c-15.5 0-28 12.5-28 28s12.5 28 28 28 28-12.5 28-28-12.5-28-28-28z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fal',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M270.2 160h35.5c3.4 0 6.1 2.8 6 6.2l-7.5 196c-.1 3.2-2.8 5.8-6 5.8h-20.5c-3.2 0-5.9-2.5-6-5.8l-7.5-196c-.1-3.4 2.6-6.2 6-6.2zM288 388c-15.5 0-28 12.5-28 28s12.5 28 28 28 28-12.5 28-28-12.5-28-28-28zm281.5 52L329.6 24c-18.4-32-64.7-32-83.2 0L6.5 440c-18.4 31.9 4.6 72 41.6 72H528c36.8 0 60-40 41.5-72zM528 480H48c-12.3 0-20-13.3-13.9-24l240-416c6.1-10.6 21.6-10.7 27.7 0l240 416c6.2 10.6-1.5 24-13.8 24z\"]\n};\nvar faExpand = {\n prefix: 'fal',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H32v116c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zM300 32h124c13.3 0 24 10.7 24 24v124c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12V64H300c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12zm148 300v124c0 13.3-10.7 24-24 24H300c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h116V332c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12zM148 480H24c-13.3 0-24-10.7-24-24V332c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v116h116c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fal',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M198.829 275.515l5.656 5.656c4.686 4.686 4.686 12.284 0 16.971L54.627 448H116c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12V364c0-6.627 5.373-12 12-12h8c6.627 0 12 5.373 12 12v61.373l149.858-149.858c4.687-4.687 12.285-4.687 16.971 0zM436 32H332c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h61.373L243.515 213.858c-4.686 4.686-4.686 12.284 0 16.971l5.656 5.656c4.686 4.686 12.284 4.686 16.971 0L416 86.627V148c0 6.627 5.373 12 12 12h8c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12z\"]\n};\nvar faExpandArrows = {\n prefix: 'fal',\n iconName: 'expand-arrows',\n icon: [448, 512, [], \"f31d\", \"M447.7 364l.3 104c0 6.6-5.4 12-12 12l-104-.3c-6.6 0-12-5.4-12-12v-10c0-6.6 5.4-12 12-12l58 .3.7-.7L224 278.6 57.3 445.3l.7.7 58-.3c6.6 0 12 5.4 12 12v10c0 6.6-5.4 12-12 12L12 480c-6.6 0-12-5.4-12-12l.3-104c0-6.6 5.4-12 12-12h10c6.6 0 12 5.4 12 12l-.3 58 .7.7L201.4 256 34.7 89.3l-.7.7.3 58c0 6.6-5.4 12-12 12h-10c-6.6 0-12-5.4-12-12L0 44c0-6.6 5.4-12 12-12l104 .3c6.6 0 12 5.4 12 12v10c0 6.6-5.4 12-12 12L58 66l-.7.7L224 233.4 390.7 66.7l-.7-.7-58 .3c-6.6 0-12-5.4-12-12v-10c0-6.6 5.4-12 12-12l104-.3c6.6 0 12 5.4 12 12l-.3 104c0 6.6-5.4 12-12 12h-10c-6.6 0-12-5.4-12-12l.3-58-.7-.7L246.6 256l166.7 166.7.7-.7-.3-58c0-6.6 5.4-12 12-12h10c6.6 0 12 5.4 12 12z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fal',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M391.7 329.7L356 365.4 246.6 256 356 146.6l35.7 35.7c20.7 20.7 56.3 6 56.3-23.3V65c0-18.2-14.8-33-33-33h-94c-29.3 0-44.1 35.5-23.3 56.3l35.7 35.7L224 233.4 114.6 124l35.7-35.7C171 67.6 156.3 32 127 32H33C14.8 32 0 46.8 0 65v94c0 29.3 35.5 44.1 56.3 23.3L92 146.6 201.4 256 92 365.4l-35.7-35.7C35.6 309 0 323.7 0 353v94c0 18.2 14.8 33 33 33h94c29.3 0 44.1-35.5 23.3-56.3L114.6 388 224 278.6 333.4 388l-35.7 35.7c-20.7 20.7-6 56.3 23.3 56.3h94c18.2 0 33-14.8 33-33v-94c0-29.3-35.6-44.1-56.3-23.3zM321 60.9h94c2.3 0 4.1 1.9 4.1 4.1v94c0 3.7-4.4 5.5-7 2.9l-94-94c-2.6-2.6-.8-7 2.9-7zm-285.1 101c-2.6 2.6-7 .8-7-2.9V65c0-2.3 1.9-4.1 4.1-4.1h94c3.7 0 5.5 4.4 2.9 7l-94 94zM127 451.1H33c-2.3 0-4.1-1.9-4.1-4.1v-94c0-3.7 4.4-5.5 7-2.9l94 94c2.6 2.6.8 7-2.9 7zm288 0h-94c-3.7 0-5.5-4.4-2.9-7l94-94c2.6-2.6 7-.8 7 2.9v94c.1 2.3-1.8 4.1-4.1 4.1z\"]\n};\nvar faExpandWide = {\n prefix: 'fal',\n iconName: 'expand-wide',\n icon: [512, 512, [], \"f320\", \"M0 212V88c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H32v116c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zM364 64h124c13.3 0 24 10.7 24 24v124c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12V96H364c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12zm148 236v124c0 13.3-10.7 24-24 24H364c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h116V300c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12zM148 448H24c-13.3 0-24-10.7-24-24V300c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v116h116c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12z\"]\n};\nvar faExternalLink = {\n prefix: 'fal',\n iconName: 'external-link',\n icon: [512, 512, [], \"f08e\", \"M440,256H424a8,8,0,0,0-8,8V464a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V112A16,16,0,0,1,48,96H248a8,8,0,0,0,8-8V72a8,8,0,0,0-8-8H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V264A8,8,0,0,0,440,256ZM500,0,364,.34a12,12,0,0,0-12,12v10a12,12,0,0,0,12,12L454,34l.7.71L131.51,357.86a12,12,0,0,0,0,17l5.66,5.66a12,12,0,0,0,17,0L477.29,57.34l.71.7-.34,90a12,12,0,0,0,12,12h10a12,12,0,0,0,12-12L512,12A12,12,0,0,0,500,0Z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fal',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M440,256H424a8,8,0,0,0-8,8V464a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V112A16,16,0,0,1,48,96H248a8,8,0,0,0,8-8V72a8,8,0,0,0-8-8H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V264A8,8,0,0,0,440,256ZM480,0h-.06L383.78.17c-28.45,0-42.66,34.54-22.58,54.62l35.28,35.28-265,265a12,12,0,0,0,0,17l8.49,8.49a12,12,0,0,0,17,0l265-265,35.28,35.27c20,20,54.57,6,54.62-22.57L512,32.05A32,32,0,0,0,480,0Zm-.17,128.17-96-96L480,32Z\"]\n};\nvar faExternalLinkSquare = {\n prefix: 'fal',\n iconName: 'external-link-square',\n icon: [448, 512, [], \"f14c\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zM99.515 374.828c-4.686-4.686-4.686-12.284 0-16.971l195.15-195.15-.707-.707-89.958.342c-6.627 0-12-5.373-12-12v-9.999c0-6.628 5.372-12 12-12L340 128c6.627 0 12 5.372 12 12l-.343 136c0 6.627-5.373 12-12 12h-9.999c-6.627 0-12-5.373-12-12l.342-89.958-.707-.707-195.15 195.15c-4.686 4.686-12.284 4.686-16.971 0l-5.657-5.657z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fal',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zm-96-304h-.056l-96.167.167c-28.442.049-42.66 34.539-22.572 54.627l35.272 35.272L98.545 356c-4.686 4.686-4.686 12.284 0 16.97l8.484 8.485c4.687 4.686 12.285 4.686 16.971 0l137.934-137.934 35.272 35.272c20.023 20.023 54.578 5.98 54.627-22.572l.167-96.166c.03-17.702-14.325-32.055-32-32.055zm-.167 128.167l-96-96L320 160l-.167 96.167z\"]\n};\nvar faEye = {\n prefix: 'fal',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M288 288a64 64 0 0 0 0-128c-1 0-1.88.24-2.85.29a47.5 47.5 0 0 1-60.86 60.86c0 1-.29 1.88-.29 2.85a64 64 0 0 0 64 64zm284.52-46.6C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 96a128 128 0 1 1-128 128A128.14 128.14 0 0 1 288 96zm0 320c-107.36 0-205.46-61.31-256-160a294.78 294.78 0 0 1 129.78-129.33C140.91 153.69 128 187.17 128 224a160 160 0 0 0 320 0c0-36.83-12.91-70.31-33.78-97.33A294.78 294.78 0 0 1 544 256c-50.53 98.69-148.64 160-256 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fal',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M483.61 26.62c-35.51-35.65-92.84-35.33-128.04 0l-82.63 82.94-17-17.06c-9.37-9.41-24.57-9.41-33.95 0l-40.98 41.14c-9.37 9.41-9.38 24.67 0 34.08l16.98 17.05-147.3 149.84a64.38 64.38 0 0 0-18.76 45.44v33.74l-27 39.79c-7.98 12.7-6.13 29.25 4.44 39.86l9.11 9.14c10.57 10.61 27.06 12.46 39.71 4.46l39.65-27.1h33.62a63.91 63.91 0 0 0 45.27-18.82l149.31-147.85L343 330.31c9.38 9.41 24.58 9.41 33.95 0l40.98-41.14c9.38-9.41 9.37-24.67 0-34.08l-16.95-17.02 82.63-82.94c29.67-29.77 45.24-83.1 0-128.51zM154.09 440.41c-6.05 6.07-14.08 7.41-22.63 7.41H88.59l-47.47 32.05-9.11-9.14 31.94-47.65v-43.03c0-8.58 3.33-16.65 9.38-22.72l147.3-149.85 82.77 83.08-149.31 149.85zm306.89-307.99L355.71 238.07l33.93 34.06-29.67 29.78L209.3 150.67l29.67-29.77 33.97 34.1L378.21 49.34c22.82-22.91 59.95-22.91 82.77 0 39.39 39.53 6.91 76.14 0 83.08z\"]\n};\nvar faEyeEvil = {\n prefix: 'fal',\n iconName: 'eye-evil',\n icon: [640, 512, [], \"f6db\", \"M627.03 239.08L514.87 208.7c-4.74-6.5-10.02-13.27-15.92-20.25 1.37-2.11 55.26-88.1 55.26-88.1 8.9-14.26-6.04-31.37-22.45-25.42l-119.65 43.32c-9.73-4.86-20.03-9.01-30.84-12.44l-44.39-95.07C333.54 3.58 326.77 0 320 0s-13.54 3.58-16.88 10.73l-44.39 95.07c-10.81 3.43-21.11 7.58-30.84 12.44C98.03 71.23 106.35 73.72 101.5 73.72c-13.37 0-23.41 14.32-15.72 26.63 0 0 53.89 86 55.26 88.1-5.9 6.98-11.18 13.75-15.92 20.25L12.97 239.08c-17.29 4.68-17.29 29.15 0 33.84l112.16 30.38c4.72 6.48 9.98 13.22 15.86 20.18-1.37 2.13-55.2 88.17-55.2 88.17-8.93 14.31 6.07 31.35 22.45 25.43l119.65-43.32c9.73 4.86 20.04 9.01 30.85 12.44l44.39 95.07c3.33 7.15 10.1 10.73 16.87 10.73s13.54-3.58 16.88-10.73l44.39-95.07c10.81-3.43 21.11-7.58 30.85-12.44l119.65 43.32c16.42 5.95 31.35-11.16 22.45-25.43 0 0-53.83-86.04-55.2-88.17 5.88-6.96 11.13-13.7 15.86-20.18l112.16-30.38c17.28-4.69 17.28-29.15-.01-33.84zm-131.39 36.27c-14.98 20.55-12.65 17.51-36.32 45.52l45.78 72.51-95-34.39c-24.77 12.38-24.11 12.13-51.89 20.95L320 461.78l-38.21-81.84c-27.76-8.81-27.08-8.56-51.89-20.95l-95 34.39 45.78-72.51c-23.7-28.04-21.34-24.96-36.32-45.52L72.91 256l71.45-19.35c14.93-20.48 12.55-17.39 36.49-45.72l-45.95-72.32 95 34.4c24.69-12.33 24-12.1 51.88-20.96L320 50.22l38.21 81.84c27.82 8.84 27.08 8.57 51.88 20.96l95-34.4-45.95 72.32c23.84 28.21 21.47 25.12 36.49 45.72L567.09 256l-71.45 19.35zM320 213.33c-32.82 0-62.7-8.79-86.45-23.09C222.48 206.77 216 226.62 216 248c0 57.44 46.56 104 104 104s104-46.56 104-104c0-21.38-6.48-41.23-17.55-57.75-23.75 14.29-53.63 23.08-86.45 23.08zM320 320c-39.7 0-72-32.3-72-72 0-5.03.52-10 1.54-14.85 12.42 4.53 25.52 7.48 38.91 9.5-.08.94-.45 1.71-.45 2.69 0 28.45 32 42.67 32 42.67s32-14.22 32-42.67c0-.97-.38-1.75-.45-2.69 13.39-2.01 26.49-4.97 38.91-9.5C391.48 238 392 242.97 392 248c0 39.7-32.3 72-72 72z\"]\n};\nvar faEyeSlash = {\n prefix: 'fal',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M637 485.25L23 1.75A8 8 0 0 0 11.76 3l-10 12.51A8 8 0 0 0 3 26.75l614 483.5a8 8 0 0 0 11.25-1.25l10-12.51a8 8 0 0 0-1.25-11.24zM320 96a128.14 128.14 0 0 1 128 128c0 21.62-5.9 41.69-15.4 59.57l25.45 20C471.65 280.09 480 253.14 480 224c0-36.83-12.91-70.31-33.78-97.33A294.88 294.88 0 0 1 576.05 256a299.73 299.73 0 0 1-67.77 87.16l25.32 19.94c28.47-26.28 52.87-57.26 70.93-92.51a32.35 32.35 0 0 0 0-29.19C550.3 135.59 442.94 64 320 64a311.23 311.23 0 0 0-130.12 28.43l45.77 36C258.24 108.52 287.56 96 320 96zm60.86 146.83A63.15 63.15 0 0 0 320 160c-1 0-1.89.24-2.85.29a45.11 45.11 0 0 1-.24 32.19zm-217.62-49.16A154.29 154.29 0 0 0 160 224a159.39 159.39 0 0 0 226.27 145.29L356.69 346c-11.7 3.53-23.85 6-36.68 6A128.15 128.15 0 0 1 192 224c0-2.44.59-4.72.72-7.12zM320 416c-107.36 0-205.47-61.31-256-160 17.43-34 41.09-62.72 68.31-86.72l-25.86-20.37c-28.48 26.28-52.87 57.25-70.93 92.5a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448a311.25 311.25 0 0 0 130.12-28.43l-29.25-23C389.06 408.84 355.15 416 320 416z\"]\n};\nvar faFan = {\n prefix: 'fal',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M346.54 120a238.17 238.17 0 0 0-53.94 6l9.24-91.74A30.93 30.93 0 0 0 294 10.41 31.73 31.73 0 0 0 270.51 0a31.94 31.94 0 0 0-4 .25C183 10.72 120 81.75 120 165.47a238.24 238.24 0 0 0 6 53.94l-91.74-9.25-.8-.08-2.35-.08a31 31 0 0 0-23.19 10.52 31.76 31.76 0 0 0-7.67 25C10.72 329 81.75 392 165.46 392a238.11 238.11 0 0 0 53.94-6l-9.24 91.74a30.92 30.92 0 0 0 7.84 23.85 31.78 31.78 0 0 0 27.5 10.16C329 501.28 392 430.25 392 346.53a238.15 238.15 0 0 0-6-53.93l91.74 9.24.8.08 2.33.08a31 31 0 0 0 23.19-10.51 31.79 31.79 0 0 0 7.67-25C501.28 183 430.25 120 346.54 120zm19 138.37l-25.33-2.55 8.69 23.93c7.37 20.25 11.1 42.76 11.1 66.78 0 67.62-50.94 125-118 134.43l11.63-115.41 2.55-25.33-23.93 8.69C212 356.27 189.49 360 165.46 360 97.85 360 40.47 309.06 31 242l115.42 11.63 25.33 2.55-8.69-23.93C155.73 212 152 189.49 152 165.47c0-67.42 50.64-124.66 117.9-133.39l-11.53 114.37-2.55 25.33 23.93-8.68c20.25-7.37 42.76-11.1 66.79-11.1 67.61 0 125 50.94 134.43 118zM256 224a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]\n};\nvar faFanTable = {\n prefix: 'fal',\n iconName: 'fan-table',\n icon: [448, 512, [], \"e004\", \"M224,209.42A14.58,14.58,0,1,0,238.58,224,14.58,14.58,0,0,0,224,209.42ZM448,224C448,100.29,347.71,0,224,0S0,100.29,0,224C0,342.31,91.79,439,208,447.19V480H88a24,24,0,0,0-24,24,8,8,0,0,0,8,8H376a8,8,0,0,0,8-8,24,24,0,0,0-24-24H240V447.19C356.21,439,448,342.31,448,224ZM224,413.54c-104.51,0-189.54-85-189.54-189.54S119.49,34.46,224,34.46s189.54,85,189.54,189.54S328.51,413.54,224,413.54ZM383.21,243.33a101.68,101.68,0,0,0-140.28-94.15L222,93.23c-8-21.36-34.11-32.76-56-20.11a101.76,101.76,0,0,0-37.24,139,99.86,99.86,0,0,0,25.93,29.45l-38.1,46.28a39,39,0,0,0,10.69,58.59,101.54,101.54,0,0,0,50.64,13.61h0c28.88,0,66.61-13.37,88.27-50.9A99.43,99.43,0,0,0,278.68,272c12.35,2,31.56,5.23,59.13,9.83C358.83,285.33,383.21,269.94,383.21,243.33Zm-39.65,6.94c-1.62,0-76.85-12.91-78.95-12.91-.12,0-.05,0-.19,0-10,0-17.43,8.59-17,18.47a68.27,68.27,0,0,1-9,37.3c-19.49,33.76-54.1,34.9-59.81,34.9a69.57,69.57,0,0,1-35.48-9.38,7,7,0,0,1-1.91-10.49l49-59.48c7.82-9.5,2.77-21.62-5.83-26.06a68.35,68.35,0,0,1-28-26.54,69.75,69.75,0,0,1,25.53-95.27A7,7,0,0,1,192,104.45l27,72a16.94,16.94,0,0,0,25.2,8,69.67,69.67,0,0,1,107,58.9C351.21,247,348.63,250.27,343.56,250.27Z\"]\n};\nvar faFarm = {\n prefix: 'fal',\n iconName: 'farm',\n icon: [576, 512, [], \"f864\", \"M154.71 192l16-32H32v-43.28c0-41.84 30-80 71.64-84.29A80.09 80.09 0 0 1 192 112v6.56a63.81 63.81 0 0 1 28.7-26.95c-11-49-51.24-88.76-102.68-91.45A112 112 0 0 0 0 112v384a16 16 0 0 0 16 16h112v-32H32V192zM408 224h-80a8 8 0 0 0-8 8v80a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-80a8 8 0 0 0-8-8zm-24 64h-32v-32h32zm188.62-41.78l-55.49-111a32.05 32.05 0 0 0-15.62-14.93L381 66.76a32 32 0 0 0-26 0l-120.51 53.56c-6.69 3-13.47 10.62-15.62 14.93l-55.49 111a32.08 32.08 0 0 0-3.38 14.29V496a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-80h96v80a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16V260.54a32.08 32.08 0 0 0-3.38-14.32zM544 480h-96v-80a16 16 0 0 0-16-16H304a16 16 0 0 0-16 16v80h-96V260.54l55.49-111L368 96l120.51 53.56 55.49 111z\"]\n};\nvar faFastBackward = {\n prefix: 'fal',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M12 447h8c6.6 0 12-5.4 12-12V277.3c.9 1 1.9 2 3 2.9l200.5 159.4c20.6 17.2 52.5 2.8 52.5-24.6V297.2l171.5 142.4c20.6 17.2 52.5 2.8 52.5-24.6V95c0-27.4-31.9-41.8-52.5-24.6L288 213.9V95.1c0-27.4-31.9-41.8-52.5-24.6L35 231c-1.1.9-2.1 1.9-3 2.9V75c0-6.6-5.4-12-12-12h-8C5.4 63 0 68.4 0 75v360c0 6.6 5.4 12 12 12zm280.5-191.4l.2-.1.2-.1L480 95v320L292.7 255.8l-.1-.1-.1-.1zM61 255.2l194.8-160 .1-.1.1-.1v320l-.1-.1-.1-.1L61 256v-.8z\"]\n};\nvar faFastForward = {\n prefix: 'fal',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M500 63h-8c-6.6 0-12 5.4-12 12v157.7c-.9-1-1.9-2-3-2.9L276.5 70.4C255.9 53.3 224 67.6 224 95v117.8L52.5 70.4C31.9 53.3 0 67.6 0 95v320c0 27.4 31.9 41.8 52.5 24.6L224 296.2V415c0 27.4 31.9 41.8 52.5 24.6L477 279c1.1-.9 2.1-1.9 3-2.9V435c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V75c0-6.6-5.4-12-12-12zM219.5 254.4l-.2.1-.2.1L32 415V95l187.3 159.2.1.1.1.1zm231.5.5l-194.8 160-.1.1h-.1V95l.1.1.1.1L451 254v.9z\"]\n};\nvar faFaucet = {\n prefix: 'fal',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M368,240H307.71A127.34,127.34,0,0,0,224,193.23V178.75l-16-1.69-16,1.69v14.48A127.34,127.34,0,0,0,108.29,240H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H125.31C142,243.43,172.56,224,208,224s66.05,19.43,82.69,48H368A112.14,112.14,0,0,1,480,384v32H384V384a16,16,0,0,0-16-16H290.69c-16.64,28.57-47.25,48-82.69,48S142,396.57,125.31,368H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H108.29a127.56,127.56,0,0,0,199.42,0H352v16a32,32,0,0,0,32,32h96a32,32,0,0,0,32-32V384C512,304.6,447.4,240,368,240ZM65.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.8L224,109.43V72a8,8,0,0,0-8-8H200a8,8,0,0,0-8,8v37.43L65.59,96.09c-9.42-1-17.59,6.81-17.59,16.8v30.22C48,153.1,56.17,160.91,65.59,159.91Z\"]\n};\nvar faFaucetDrip = {\n prefix: 'fal',\n iconName: 'faucet-drip',\n icon: [512, 512, [], \"e006\", \"M65.59,95.91,208,80.88l142.41,15c9.42,1,17.59-6.81,17.59-16.8V48.89c0-10-8.17-17.8-17.59-16.8L224,45.43V8a8,8,0,0,0-8-8H200a8,8,0,0,0-8,8V45.43L65.59,32.09C56.17,31.09,48,38.9,48,48.89V79.11C48,89.1,56.17,96.91,65.59,95.91ZM368,176H307.71A127.34,127.34,0,0,0,224,129.23V114.75l-16-1.69-16,1.69v14.48A127.34,127.34,0,0,0,108.29,176H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H125.31C142,179.43,172.56,160,208,160s66.05,19.43,82.69,48H368A112.14,112.14,0,0,1,480,320v32H384V320a16,16,0,0,0-16-16H290.69c-16.64,28.57-47.25,48-82.69,48S142,332.57,125.31,304H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H108.29a127.56,127.56,0,0,0,199.42,0H352v16a32,32,0,0,0,32,32h96a32,32,0,0,0,32-32V320C512,240.6,447.4,176,368,176Zm32,304a32,32,0,0,0,64,0c0-17.67-32-64-32-64S400,462.33,400,480Z\"]\n};\nvar faFax = {\n prefix: 'fal',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M392 304h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0 128h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zM80 128H48a48 48 0 0 0-48 48v288a48 48 0 0 0 48 48h32a48 48 0 0 0 48-48V176a48 48 0 0 0-48-48zm16 336a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V176a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm296-96h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-128 64h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-64h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm216-205.06v-53.69a32 32 0 0 0-9.38-22.63L393.38 9.38A32 32 0 0 0 370.75 0H208a48 48 0 0 0-48 48v416a48 48 0 0 0 48 48h256a48 48 0 0 0 48-48V208a47.87 47.87 0 0 0-32-45.06zM384 45.25L434.75 96H384zM192 48a16 16 0 0 1 16-16h144v64a32 32 0 0 0 32 32h64v64H192zm288 416a16 16 0 0 1-16 16H208a16 16 0 0 1-16-16V224h288zm-152-32h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-64h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-64h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-64 0h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\"]\n};\nvar faFeather = {\n prefix: 'fal',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.11 44.89C438.25 16.03 401.61 0 361.61 0c-46.7 0-97.96 21.85-146.76 70.65l-85.74 85.74c-79.32 79.32-71.83 210.7-53.54 257.4L4.69 484.66A15.962 15.962 0 0 0 0 495.98C0 504.52 6.87 512 16.02 512c4.1 0 8.2-1.56 11.32-4.69l70.93-70.93c17.2 6.76 45.79 12.08 79.23 12.08 57.18 0 128.03-15.48 178.11-65.56l85.74-85.74c90.6-90.61 88.31-189.72 25.76-252.27zM151.76 179.04L237.5 93.3c40.08-40.08 83-61.27 124.11-61.27 30.97 0 59.62 12.28 82.85 35.51 42.32 42.32 45.75 100.1 13.13 156.69H310.42l37.24-37.24c6.26-6.26 6.26-16.39 0-22.65s-16.39-6.26-22.65 0L101.19 388.16c-9.9-43.33-13.3-145.26 50.57-209.12zm25.74 237.38c-23.3 0-40.97-2.79-53.49-5.79l58.75-58.75 158.19.37-7.99 7.99c-48.88 48.88-118.38 56.18-155.46 56.18zm195.38-96.09H214.32l64.07-64.07h156.34c-5.11 6.12-61.85 64.07-61.85 64.07z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fal',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M71.46 287.61c-4.86 42.01-7.27 84.27-7.38 126.56l-.03 11.16-59.36 59.36A15.922 15.922 0 0 0 0 496c0 9.14 7.47 16 16 16 4.09 0 8.19-1.56 11.31-4.69l59.36-59.36 11.16-.03c42.29-.12 84.55-2.53 126.56-7.38C473.8 415.13 508.44 51.72 512 0 460.28 3.56 96.87 38.2 71.46 287.61zm31.83 3.24C122.75 99.86 374.98 48.66 476.23 35.77 470.56 80.23 457.47 153.8 428.4 224H310.62l36.69-36.69c6.25-6.25 6.25-16.38 0-22.62s-16.38-6.25-22.62 0L96.74 392.64c.75-34.17 2.68-68.26 6.55-101.79zM214.62 320l64-64h135.11c-11.37 22.73-24.86 44.31-40.38 64H214.62zm6.1 88.75c-33.16 3.83-67.2 5.76-101.36 6.51L182.62 352h161.44c-32.76 30.25-73.12 51.63-123.34 56.75z\"]\n};\nvar faFemale = {\n prefix: 'fal',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M254.648 340.891l-39.909-164.276a48.18 48.18 0 0 0-16.794-26.583 47.458 47.458 0 0 0-4.554-3.208C207.438 131.225 216 110.594 216 88c0-48.523-39.477-88-88-88S40 39.477 40 88c0 22.594 8.562 43.225 22.609 58.824a47.405 47.405 0 0 0-4.554 3.208 48.184 48.184 0 0 0-16.794 26.583L1.352 340.891C-5.868 370.559 16.716 400 48.047 400H61v59c0 29.224 23.776 53 53 53h28c29.224 0 53-23.776 53-53v-59h12.952c31.329 0 53.917-29.436 46.696-59.109zM128 32c30.928 0 56 25.072 56 56s-25.072 56-56 56-56-25.072-56-56 25.072-56 56-56zm80 336h-45v91c0 11.598-9.402 21-21 21h-28c-11.598 0-21-9.402-21-21v-91H48c-10.259 0-17.877-9.539-15.602-19.546l40-164.454A16 16 0 0 1 88 171.546h12.351a88.015 88.015 0 0 0 55.299 0H168A16 16 0 0 1 183.602 184l40 164.454C225.876 358.458 218.262 368 208 368z\"]\n};\nvar faFieldHockey = {\n prefix: 'fal',\n iconName: 'field-hockey',\n icon: [640, 512, [], \"f44c\", \"M619.5 117.2L563.8 173 496 105.2l84.6-84.7c7.6-7.6 2.2-20.5-8.5-20.5h-11.3c-3.2 0-6.2 1.3-8.5 3.5L214.4 341.8c-29.4 29.5-75.5-14.8-45.2-45.2 31.2-31.2 31.2-81.9 0-113.1-31.2-31.2-81.7-31.3-113 0C19.9 219.7 0 267.9 0 319.2c0 106.5 86.1 191.9 191.8 191.9 89.4 0 134-54.5 164.1-84.7 12.3 50.4 58.4 87.7 113 85.5 57.9-2.3 104.8-49.3 107.2-107.3 2.2-54.6-35-100.8-85.4-113.1l145.9-146c2.2-2.3 3.5-5.3 3.5-8.5v-11.3c-.1-10.7-13-16.1-20.6-8.5zM191.8 479.1C103 479.1 32 407.3 32 319.2c0-42.8 16.6-82.9 46.8-113.2 18.7-18.8 49-18.8 67.8 0 18.7 18.7 18.7 49.2 0 67.9-24.9 24.9-24.9 65.5.1 90.6 25 24.9 65.5 24.9 90.3-.1l236.4-236.7 67.8 67.9-93.9 94.1c-48 7.4-85.7 45.2-93.1 93.2-50.1 50.2-84.5 96.2-162.4 96.2zM544.1 400c0 44.1-35.8 80-79.9 80s-79.9-35.9-79.9-80 35.8-80 79.9-80 79.9 35.9 79.9 80z\"]\n};\nvar faFighterJet = {\n prefix: 'fal',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M526.785 195.932l-102.96-11.267L382.163 168H367.31L283.183 63.609C304.102 62.027 320 55.759 320 48c0-9-21.383-16-47.189-16H144v32h16v120h-1.63l-64-72H36.462L8 140.11v67.647l-8 .988v94.511l8 .988v67.647L36.462 400H94.37l64-72H160v120h-16v32h128.811c25.806 0 47.189-7 47.189-16 0-7.759-15.898-14.027-36.817-15.609L367.31 344h14.853l41.663-16.665 102.96-11.267C598.984 300.222 640 293.159 640 256c0-37.458-41.863-44.407-113.215-60.068zm-5.185 88.512L416 296l-40 16h-24L242.4 448H192V296h-48l-64 72H49.6l-9.6-9.481V304h8v-16h41.6v-5.926L32 274.963v-37.926l57.6-7.111V224H48v-16h-8v-54.519L49.6 144H80l64 72h48V64h50.4L352 200h24l40 16 105.6 11.556C608 246.519 608 251.185 608 256s0 9.481-86.4 28.444z\"]\n};\nvar faFile = {\n prefix: 'fal',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16z\"]\n};\nvar faFileAlt = {\n prefix: 'fal',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zm-48-244v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm0 64v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm0 64v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12z\"]\n};\nvar faFileArchive = {\n prefix: 'fal',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M128 96v32h32V96zm65.9 169.6c-1.1-5.6-6-9.6-11.8-9.6H160v-32h-32v32l-19.4 97.2c-6.5 32.5 18.3 62.8 51.4 62.8s57.9-30.3 51.4-62.8zm-33.6 124.5c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zM128 160v32h32v-32zm64-96h-32v32h32zm177.9 33.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 32.5c2.8.7 5.4 2.1 7.4 4.2l83.9 83.9c2 2 3.5 4.6 4.2 7.4H256zM352 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h79.7v32h32V32H224v104c0 13.3 10.7 24 24 24h104zM192 192h-32v32h32zm0-64h-32v32h32z\"]\n};\nvar faFileAudio = {\n prefix: 'fal',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zm-77.6-66.6c38.5-26 61.6-69.3 61.6-115.7 0-24.7-6.5-48.9-18.9-70.1-12-20.6-29.1-37.8-49.6-50-7.1-4.2-16.3-1.9-20.6 5.2-4.2 7.1-1.9 16.3 5.2 20.6 33.1 19.7 53.7 55.8 53.7 94.3 0 36.5-18.1 70.4-48.3 90.9-6.9 4.6-8.7 14-4 20.8 2.9 4.3 7.6 6.6 12.4 6.6 3.1 0 6-.8 8.5-2.6zm-26.6-38.3c26-17.3 41.5-46.2 41.5-77.4 0-32.9-17.7-63.7-46.2-80.3-7.2-4.2-16.3-1.7-20.5 5.4-4.2 7.2-1.7 16.3 5.4 20.5 19.3 11.2 31.3 32 31.3 54.3 0 21.1-10.5 40.7-28.1 52.4-6.9 4.6-8.8 13.9-4.2 20.8 2.9 4.4 7.7 6.7 12.5 6.7 2.8.1 5.7-.7 8.3-2.4zm-27-38.2c13.7-8.5 21.8-23.1 21.8-39.2 0-17-9.3-32.5-24.2-40.6-7.3-3.9-16.4-1.2-20.3 6.1-3.9 7.3-1.2 16.4 6.1 20.3 5.2 2.8 8.5 8.3 8.5 14.2 0 5.6-2.9 10.8-7.6 13.7-7 4.4-9.2 13.6-4.8 20.7 2.8 4.6 7.7 7.1 12.8 7.1 2.5 0 5.2-.7 7.7-2.3zM138 266.7v74.7L112 322H94v-36h18l26-19.3m17.9-50.7c-2.9 0-6 1.1-8.4 3.5L104 256H76c-6.6 0-12 5.4-12 12v72c0 6.6 5.4 12 12 12h28l43.5 36.5c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V228c0-7.2-5.9-12-12.1-12z\"]\n};\nvar faFileCertificate = {\n prefix: 'fal',\n iconName: 'file-certificate',\n icon: [512, 512, [], \"f5f3\", \"M497.9 97.98L414.02 14.1c-9-9-21.19-14.1-33.89-14.1H176c-26.5.1-47.99 21.6-47.99 48.09V165.7c-5.97 0-11.94-1.68-24.13-5.03-1.7-.46-3.36-.66-4.96-.66-5.56 0-10.43 2.5-13.66 5.79-17.95 18.26-17.07 17.77-41.7 24.5-6.7 1.81-11.97 7.21-13.78 14.07-6.47 24.67-6.09 24.16-24.02 42.32-4.95 5.04-6.9 12.48-5.08 19.43 6.56 24.38 6.52 24.39 0 48.76-1.82 6.95.12 14.4 5.08 19.45 18 18.15 17.58 17.79 24.02 42.29 1.8 6.88 7.08 12.27 13.78 14.1 1.8.48 2.92.8 4.46 1.21V496c0 5.55 2.87 10.69 7.59 13.61 4.66 2.91 10.59 3.16 15.56.7l56.84-28.42 56.84 28.42c2.25 1.12 4.72 1.69 7.16 1.69h272c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM384.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zM33.28 316.68c5.7-22.3 5.7-30.23.01-52.39 15.65-16.2 19.56-22.98 25.63-45.06 21.57-6.13 28.06-9.92 43.88-25.69 9.8 2.62 16.82 4.15 25.21 4.15 8.28 0 15.25-1.49 25.19-4.16 15.56 15.51 22.49 19.58 43.86 25.68 5.98 21.95 9.71 28.63 25.65 45.07-5.77 22.45-5.76 30 0 52.4-15.62 16.17-19.55 22.96-25.61 44.96-14.63 3.92-24 7.36-37.25 19.36-9.94-4.53-20.78-6.89-31.85-6.89s-21.9 2.36-31.85 6.9c-13.18-11.88-22.56-15.34-37.23-19.33-5.97-21.89-9.72-28.57-25.64-45zm101.89 133.01c-4.5-2.25-9.81-2.25-14.31 0l-40.84 20.42V409.9c.12.12.19.17.31.29 3.75 3.82 8.68 5.79 13.64 5.79 3.5 0 7.02-.98 10.16-2.97 7.25-4.59 15.56-6.88 23.87-6.88s16.62 2.29 23.87 6.86c3.16 2.02 6.68 3.01 10.17 3.01 4.96 0 9.87-1.99 13.63-5.79.13-.13.21-.18.34-.32v60.22l-40.84-20.42zm344.84 14.32c0 8.8-7.2 16-16 16h-256V391.9c1.54-.4 2.65-.71 4.44-1.19 6.7-1.82 11.97-7.22 13.77-14.08 6.47-24.68 6.09-24.16 24.03-42.32 4.95-5.04 6.9-12.49 5.07-19.44-6.53-24.33-6.55-24.34 0-48.76 1.83-6.95-.12-14.4-5.07-19.45-18-18.15-17.58-17.79-24.03-42.29-1.8-6.87-7.07-12.27-13.75-14.09-24.23-6.57-23.89-6.23-41.72-24.52-2.94-2.97-6.78-4.52-10.74-5.16V48.09c0-8.8 7.2-16.09 16-16.09h176.03v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01z\"]\n};\nvar faFileChartLine = {\n prefix: 'fal',\n iconName: 'file-chart-line',\n icon: [384, 512, [], \"f659\", \"M136 320h-16c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8zm64-96h-16c-4.4 0-8 3.6-8 8v192c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm40 72v128c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8zM369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01z\"]\n};\nvar faFileChartPie = {\n prefix: 'fal',\n iconName: 'file-chart-pie',\n icon: [384, 512, [], \"f65a\", \"M369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01zM192 192v128h127.99c.01 0 0-.01 0-.02-.01-70.68-57.29-127.97-127.97-127.98H192zm32 37.49c27.22 9.66 48.85 31.28 58.5 58.51H224v-58.51zM176 416c-44.12 0-80-35.89-80-80 0-38.63 27.52-70.95 64-78.38v-32c-54.13 7.85-96 54.11-96 110.38 0 61.75 50.25 112 112 112 56.27 0 102.54-41.87 110.38-96h-32c-7.43 36.47-39.74 64-78.38 64z\"]\n};\nvar faFileCheck = {\n prefix: 'fal',\n iconName: 'file-check',\n icon: [384, 512, [], \"f316\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zm-22.627 22.628a15.89 15.89 0 0 1 4.195 7.431H256V32.491a15.88 15.88 0 0 1 7.431 4.195l83.883 83.883zM336 480H48c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16h176v104c0 13.255 10.745 24 24 24h104v304c0 8.837-7.163 16-16 16zm-34.467-210.949l-134.791 133.71c-4.7 4.663-12.288 4.642-16.963-.046l-67.358-67.552c-4.683-4.697-4.672-12.301.024-16.985l8.505-8.48c4.697-4.683 12.301-4.672 16.984.024l50.442 50.587 117.782-116.837c4.709-4.671 12.313-4.641 16.985.068l8.458 8.527c4.672 4.709 4.641 12.313-.068 16.984z\"]\n};\nvar faFileCode = {\n prefix: 'fal',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zm-22.627 22.628a15.89 15.89 0 0 1 4.195 7.431H256V32.491a15.88 15.88 0 0 1 7.431 4.195l83.883 83.883zM336 480H48c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16h176v104c0 13.255 10.745 24 24 24h104v304c0 8.837-7.163 16-16 16zm-161.471-67.404l-25.928-7.527a5.1 5.1 0 0 1-3.476-6.32l58.027-199.869a5.1 5.1 0 0 1 6.32-3.476l25.927 7.527a5.1 5.1 0 0 1 3.476 6.32L180.849 409.12a5.1 5.1 0 0 1-6.32 3.476zm-48.446-47.674l18.492-19.724a5.101 5.101 0 0 0-.351-7.317L105.725 304l38.498-33.881a5.1 5.1 0 0 0 .351-7.317l-18.492-19.724a5.1 5.1 0 0 0-7.209-.233L57.61 300.279a5.1 5.1 0 0 0 0 7.441l61.263 57.434a5.1 5.1 0 0 0 7.21-.232zm139.043.232l61.262-57.434a5.1 5.1 0 0 0 0-7.441l-61.262-57.434a5.1 5.1 0 0 0-7.209.233l-18.492 19.724a5.101 5.101 0 0 0 .351 7.317L278.275 304l-38.499 33.881a5.1 5.1 0 0 0-.351 7.317l18.492 19.724a5.1 5.1 0 0 0 7.209.232z\"]\n};\nvar faFileContract = {\n prefix: 'fal',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M196.66 363.33l-13.88-41.62c-3.28-9.81-12.44-16.41-22.78-16.41s-19.5 6.59-22.78 16.41L119 376.36c-1.5 4.58-5.78 7.64-10.59 7.64H96c-8.84 0-16 7.16-16 16s7.16 16 16 16h12.41c18.62 0 35.09-11.88 40.97-29.53L160 354.58l16.81 50.48a15.994 15.994 0 0 0 14.06 10.89c.38.03.75.05 1.12.05 6.03 0 11.59-3.41 14.31-8.86l7.66-15.33c2.78-5.59 7.94-6.19 10.03-6.19s7.25.59 10.19 6.53c7.38 14.7 22.19 23.84 38.62 23.84H288c8.84 0 16-7.16 16-16s-7.16-16-16-16h-15.19c-4.28 0-8.12-2.38-10.16-6.5-11.96-23.85-46.24-30.33-65.99-14.16zM72 96h112c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm120 56v-16c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h112c4.42 0 8-3.58 8-8zm177.9-54.02L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01z\"]\n};\nvar faFileCsv = {\n prefix: 'fal',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01zM120 256h-8c-26.51 0-48 21.49-48 48v32c0 26.51 21.49 48 48 48h8c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-8c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h8c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm112 0c-4.42 0-8 3.58-8 8v20.8c0 35.48 12.88 68.89 36.28 94.09 3.02 3.25 7.27 5.11 11.72 5.11s8.7-1.86 11.72-5.11c23.41-25.2 36.28-58.61 36.28-94.09V264c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v20.8c0 20.27-5.7 40.17-16 56.88-10.3-16.7-16-36.61-16-56.88V264c0-4.42-3.58-8-8-8h-16zm-52.55 42.47c-1.38-1.19-2.12-2.55-2.12-3.84 0-3.12 4.45-6.62 10.41-6.62H200c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-12.27c-23.39 0-42.41 17.33-42.41 38.62 0 10.66 4.86 20.92 13.33 28.14l21.89 18.77c1.38 1.19 2.12 2.55 2.12 3.84 0 3.12-4.45 6.62-10.41 6.62H160c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h12.27c23.39 0 42.41-17.33 42.41-38.62 0-10.66-4.86-20.92-13.33-28.14l-21.9-18.77z\"]\n};\nvar faFileDownload = {\n prefix: 'fal',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01zM208 216c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v88.02h-52.66c-11 0-20.59 6.41-25 16.72-4.5 10.52-2.38 22.62 5.44 30.81l68.12 71.78c5.34 5.59 12.47 8.69 20.09 8.69s14.75-3.09 20.09-8.7l68.12-71.75c7.81-8.2 9.94-20.31 5.44-30.83-4.41-10.31-14-16.72-25-16.72H208V216zm42.84 120.02l-58.84 62-58.84-62h117.68z\"]\n};\nvar faFileEdit = {\n prefix: 'fal',\n iconName: 'file-edit',\n icon: [384, 512, [], \"f31c\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zM219.2 247.2l29.6 29.6c1.8 1.8 1.8 4.6 0 6.4L136.4 395.6l-30.1 4.3c-5.9.8-11-4.2-10.2-10.2l4.3-30.1 112.4-112.4c1.8-1.8 4.6-1.8 6.4 0zm64.4 1.2l-16.4 16.4c-1.8 1.8-4.6 1.8-6.4 0l-29.6-29.6c-1.8-1.8-1.8-4.6 0-6.4l16.4-16.4c5.9-5.9 15.4-5.9 21.2 0l14.8 14.8c5.9 5.8 5.9 15.3 0 21.2z\"]\n};\nvar faFileExcel = {\n prefix: 'fal',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zM211.7 308l50.5-81.8c4.8-8-.9-18.2-10.3-18.2h-4.1c-4.1 0-7.9 2.1-10.1 5.5-31 48.5-36.4 53.5-45.7 74.5-17.2-32.2-8.4-16-45.8-74.5-2.2-3.4-6-5.5-10.1-5.5H132c-9.4 0-15.1 10.3-10.2 18.2L173 308l-59.1 89.5c-5.1 8 .6 18.5 10.1 18.5h3.5c4.1 0 7.9-2.1 10.1-5.5 37.2-58 45.3-62.5 54.4-82.5 31.5 56.7 44.3 67.2 54.4 82.6 2.2 3.4 6 5.4 10 5.4h3.6c9.5 0 15.2-10.4 10.1-18.4L211.7 308z\"]\n};\nvar faFileExclamation = {\n prefix: 'fal',\n iconName: 'file-exclamation',\n icon: [384, 512, [], \"f31a\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zM180.7 192h22.6c6.9 0 12.4 5.8 12 12.7l-6.7 120c-.4 6.4-5.6 11.3-12 11.3h-9.3c-6.4 0-11.6-5-12-11.3l-6.7-120c-.3-6.9 5.2-12.7 12.1-12.7zM220 384c0 15.5-12.5 28-28 28s-28-12.5-28-28 12.5-28 28-28 28 12.5 28 28z\"]\n};\nvar faFileExport = {\n prefix: 'fal',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M567.31 283.89l-71.78-68.16c-8.28-7.8-20.41-9.88-30.84-5.38-10.31 4.42-16.69 13.98-16.69 24.97V288h-64V131.97c0-12.7-5.1-25-14.1-33.99L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V352h-31.99v112.01c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v128H168c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h280v52.67c0 10.98 6.38 20.55 16.69 24.97 14.93 6.45 26.88-1.61 30.88-5.39l71.72-68.12c5.62-5.33 8.72-12.48 8.72-20.12s-3.1-14.81-8.7-20.12zM256.03 128.07V32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48zM480 362.88V245.12L542 304l-62 58.88z\"]\n};\nvar faFileImage = {\n prefix: 'fal',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M159 336l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0l-39 39L63 448h256V304l-55.5-55.5c-4.7-4.7-12.3-4.7-17 0L159 336zm96-50.7l32 32V416H95.1l.3-67.2 15.6-15.6 48 48c20.3-20.3 77.7-77.6 96-95.9zM127 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm0-96c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm242.9-62.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5zM352 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304z\"]\n};\nvar faFileImport = {\n prefix: 'fal',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M497.9 97.98L414.02 14.1c-9-9-21.2-14.1-33.89-14.1H175.99C149.5.1 128 21.6 128 48.09V288H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h248v52.67c0 10.98 6.38 20.55 16.69 24.97 14.93 6.45 26.88-1.61 30.88-5.39l71.72-68.12c5.62-5.33 8.72-12.48 8.72-20.12s-3.09-14.8-8.69-20.11l-71.78-68.16c-8.28-7.8-20.41-9.88-30.84-5.38-10.31 4.42-16.69 13.98-16.69 24.97V288H160V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01c0 8.8-7.2 16-16 16H175.99c-8.8 0-16-7.2-16-16V352H128v112.01c0 26.49 21.5 47.99 47.99 47.99h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM288 245.12L350 304l-62 58.88V245.12zm96.03-117.05V32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48z\"]\n};\nvar faFileInvoice = {\n prefix: 'fal',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M312 416h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h80c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM64 240v96c0 8.84 8.19 16 18.29 16h219.43c10.1 0 18.29-7.16 18.29-16v-96c0-8.84-8.19-16-18.29-16H82.29C72.19 224 64 231.16 64 240zm32 16h192v64H96v-64zM72 96h112c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm0 64h112c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm297.9-62.02L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fal',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M219.09 327.42l-45-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V232c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24.12c-23.62.63-42.67 20.55-42.67 45.07 0 19.97 12.98 37.81 31.58 43.39l45 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.11c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V440c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24.12c23.62-.63 42.67-20.54 42.67-45.07 0-19.97-12.98-37.81-31.58-43.39zM72 96h112c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm120 56v-16c0-4.42-3.58-8-8-8H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h112c4.42 0 8-3.58 8-8zm177.9-54.02L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01z\"]\n};\nvar faFileMedical = {\n prefix: 'fal',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M224 232c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h-56c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h56v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h56c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-56v-56zM369.9 98L286 14.1C277 5.1 264.8 0 252.1 0H48C21.5.1 0 21.6 0 48.1V464c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V132c0-12.7-5.1-25-14.1-34zM256 32.6c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9c2.1 2.1 3.5 4.6 4.2 7.4H256V32.6zM352 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48.1C32 39.3 39.2 32 48 32h176v104.1c0 13.3 10.7 23.9 24 23.9h104v304z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fal',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M433.9 98L350 14.1C341 5.1 328.8 0 316.1 0h-204c-26.5.1-48 21.6-48 48.1V288H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h126.1l34.7 69.5c2.9 5.9 11.4 5.9 14.3 0L240 275.8l22.1 44.2H352c8.8 0 16-7.2 16-16s-7.2-16-16-16h-70.1l-34.7-69.5c-2.9-5.9-11.4-5.9-14.3 0L176 332.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H96V48.1c0-8.8 7.3-16.1 16.1-16.1h176v104.1c0 13.3 10.7 23.9 24 23.9h104v304c0 8.8-7.2 16-16 16h-288c-8.8 0-16.1-7.2-16.1-16V352H64.1v112c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V132c0-12.7-5.1-25-14.1-34zM320 128.1V32.6c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9c2.1 2.1 3.5 4.6 4.2 7.4H320z\"]\n};\nvar faFileMinus = {\n prefix: 'fal',\n iconName: 'file-minus',\n icon: [384, 512, [], \"f318\", \"M369.9,97.9,286,14A48,48,0,0,0,252.1-.1H48A48.16,48.16,0,0,0,0,48V464a48,48,0,0,0,48,48H336a48,48,0,0,0,48-48V131.9A48.23,48.23,0,0,0,369.9,97.9Zm-22.6,22.7a15.73,15.73,0,0,1,4.2,7.4H256V32.5a15.73,15.73,0,0,1,7.4,4.2ZM336,480H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H224V136a23.94,23.94,0,0,0,24,24H352V464A16,16,0,0,1,336,480ZM288,300v8a12,12,0,0,1-12,12H108a12,12,0,0,1-12-12v-8a12,12,0,0,1,12-12H276A12,12,0,0,1,288,300Z\"]\n};\nvar faFileMusic = {\n prefix: 'fal',\n iconName: 'file-music',\n icon: [384, 512, [], \"f8b6\", \"M369.91 98L286 14.09A48 48 0 0 0 252.09 0H48A48.15 48.15 0 0 0 0 48.08V464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V132a48.22 48.22 0 0 0-14.09-34zM256 32.59a15.63 15.63 0 0 1 7.41 4.2l83.9 83.88a15.63 15.63 0 0 1 4.19 7.4H256zM352 464a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V48.08a16 16 0 0 1 16-16h176v104a23.93 23.93 0 0 0 24 24h104zM128 271.2v98.69a69.34 69.34 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.32 48-32V291.11l96-37.51v84.29a69.34 69.34 0 0 0-16-1.95c-26.5 0-48 14.32-48 32s21.5 32 48 32 48-14.33 48-32V224a16 16 0 0 0-20.81-15.24l-128 47.24A16 16 0 0 0 128 271.2z\"]\n};\nvar faFilePdf = {\n prefix: 'fal',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zm-22-171.2c-13.5-13.3-55-9.2-73.7-6.7-21.2-12.8-35.2-30.4-45.1-56.6 4.3-18 12-47.2 6.4-64.9-4.4-28.1-39.7-24.7-44.6-6.8-5 18.3-.3 44.4 8.4 77.8-11.9 28.4-29.7 66.9-42.1 88.6-20.8 10.7-54.1 29.3-58.8 52.4-3.5 16.8 22.9 39.4 53.1 6.4 9.1-9.9 19.3-24.8 31.3-45.5 26.7-8.8 56.1-19.8 82-24 21.9 12 47.6 19.9 64.6 19.9 27.7.1 28.9-30.2 18.5-40.6zm-229.2 89c5.9-15.9 28.6-34.4 35.5-40.8-22.1 35.3-35.5 41.5-35.5 40.8zM180 175.5c8.7 0 7.8 37.5 2.1 47.6-5.2-16.3-5-47.6-2.1-47.6zm-28.4 159.3c11.3-19.8 21-43.2 28.8-63.7 9.7 17.7 22.1 31.7 35.1 41.5-24.3 4.7-45.4 15.1-63.9 22.2zm153.4-5.9s-5.8 7-43.5-9.1c41-3 47.7 6.4 43.5 9.1z\"]\n};\nvar faFilePlus = {\n prefix: 'fal',\n iconName: 'file-plus',\n icon: [384, 512, [], \"f319\", \"M369.9,97.9,286,14A48,48,0,0,0,252.1-.1H48A48.16,48.16,0,0,0,0,48V464a48,48,0,0,0,48,48H336a48,48,0,0,0,48-48V131.9A48.23,48.23,0,0,0,369.9,97.9Zm-22.6,22.7a15.73,15.73,0,0,1,4.2,7.4H256V32.5a15.73,15.73,0,0,1,7.4,4.2ZM336,480H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H224V136a23.94,23.94,0,0,0,24,24H352V464A16,16,0,0,1,336,480ZM288,300v8a12,12,0,0,1-12,12H208v68a12,12,0,0,1-12,12h-8a12,12,0,0,1-12-12V320H108a12,12,0,0,1-12-12v-8a12,12,0,0,1,12-12h68V220a12,12,0,0,1,12-12h8a12,12,0,0,1,12,12v68h68A12,12,0,0,1,288,300Z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fal',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zM204.3 208H140c-6.6 0-12 5.4-12 12v184c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-60.4h44.3c38.7 0 67.7-27.3 67.7-69 0-38.6-23.8-66.6-67.7-66.6zm26 97.7c-7.5 7.6-17.8 11.4-31 11.4H160V233h39.7c12.9 0 23.1 3.7 30.6 11.1 15.3 15.1 15 46.5 0 61.6z\"]\n};\nvar faFilePrescription = {\n prefix: 'fal',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M369.9 98L286 14.1C277 5.1 264.8 0 252.1 0H48C21.5.1 0 21.6 0 48.1V464c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V132c0-12.7-5.1-25-14.1-34zM256 32.6c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9c2.1 2.1 3.5 4.6 4.2 7.4H256zM352 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48.1C32 39.3 39.2 32 48 32h176v104.1c0 13.3 10.7 23.9 24 23.9h104zM192.7 298c18.5-9.1 31.3-28 31.3-50 0-30.9-25.1-56-56-56h-64c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-40h25.4l48 48-39 39c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l39-39 39 39c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-39-39 39-39c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-39 39zM168 272h-40v-48h40c13.2 0 24 10.8 24 24s-10.8 24-24 24z\"]\n};\nvar faFileSearch = {\n prefix: 'fal',\n iconName: 'file-search',\n icon: [640, 512, [], \"f865\", \"M605.65 487.05l-88.89-88.88c16.86-21.68 27.31-48.58 27.31-78.17a128 128 0 1 0-128 128c29.55 0 56.43-10.42 78.1-27.24l88.9 88.89a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0-.05-11.29zM416.05 416a96 96 0 1 1 96-96 96.12 96.12 0 0 1-96 96zM368 480H80a16 16 0 0 1-16-16V48.09a16 16 0 0 1 16-16h176v104a23.93 23.93 0 0 0 24 24l136-.09v-28a48.23 48.23 0 0 0-14.1-34L318 14.1A48 48 0 0 0 284.08 0H80a48.16 48.16 0 0 0-48 48.09V464a48 48 0 0 0 48 48h288a47.87 47.87 0 0 0 45.15-32.29 159.9 159.9 0 0 1-33.92-4.36A15.91 15.91 0 0 1 368 480zM288 32.59a15.73 15.73 0 0 1 7.4 4.2l83.9 83.89a15.75 15.75 0 0 1 4.2 7.39H288z\"]\n};\nvar faFileSignature = {\n prefix: 'fal',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M560.83 135.96l-24.79-24.79c-20.23-20.24-53-20.26-73.26 0L384 189.72v-57.75c0-12.7-5.1-25-14.1-33.99L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99v-80.54c6.29-4.68 12.62-9.35 18.18-14.95l158.64-159.3c9.79-9.78 15.17-22.79 15.17-36.63s-5.38-26.84-15.16-36.63zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v61.53l-48.51 48.24c-30.14 29.96-47.42 71.51-47.47 114-3.93-.29-7.47-2.42-9.36-6.27-11.97-23.86-46.25-30.34-66-14.17l-13.88-41.62c-3.28-9.81-12.44-16.41-22.78-16.41s-19.5 6.59-22.78 16.41L103 376.36c-1.5 4.58-5.78 7.64-10.59 7.64H80c-8.84 0-16 7.16-16 16s7.16 16 16 16h12.41c18.62 0 35.09-11.88 40.97-29.53L144 354.58l16.81 50.48c4.54 13.51 23.14 14.83 29.5 2.08l7.66-15.33c4.01-8.07 15.8-8.59 20.22.34C225.44 406.61 239.9 415.7 256 416h32c22.05-.01 43.95-4.9 64.01-13.6v61.61zm27.48-118.05A129.012 129.012 0 0 1 288 384v-.03c0-34.35 13.7-67.29 38.06-91.51l120.55-119.87 52.8 52.8-119.92 120.57zM538.2 186.6l-21.19 21.19-52.8-52.8 21.2-21.19c7.73-7.73 20.27-7.74 28.01 0l24.79 24.79c7.72 7.73 7.72 20.27-.01 28.01z\"]\n};\nvar faFileSpreadsheet = {\n prefix: 'fal',\n iconName: 'file-spreadsheet',\n icon: [384, 512, [], \"f65b\", \"M369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01zM64 208v224c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16zm224 208h-80v-48h80v48zm0-80h-80v-48h80v48zM96 224h192v32H96v-32zm0 64h80v48H96v-48zm0 80h80v48H96v-48z\"]\n};\nvar faFileTimes = {\n prefix: 'fal',\n iconName: 'file-times',\n icon: [384, 512, [], \"f317\", \"M369.9,97.9,286,14A48,48,0,0,0,252.1-.1H48A48.16,48.16,0,0,0,0,48V464a48,48,0,0,0,48,48H336a48,48,0,0,0,48-48V131.9A48.23,48.23,0,0,0,369.9,97.9Zm-22.6,22.7a15.73,15.73,0,0,1,4.2,7.4H256V32.5a15.73,15.73,0,0,1,7.4,4.2ZM336,480H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H224V136a23.94,23.94,0,0,0,24,24H352V464A16,16,0,0,1,336,480ZM262.71,369.05l-5.66,5.66a12,12,0,0,1-17,0L192,326.63l-48.08,48.08a12,12,0,0,1-17,0l-5.66-5.66a12,12,0,0,1,0-17L169.37,304l-48.08-48.08a12,12,0,0,1,0-17l5.66-5.66a12,12,0,0,1,17,0L192,281.37l48.08-48.08a12,12,0,0,1,17,0l5.66,5.66a12,12,0,0,1,0,17L214.63,304l48.08,48.08A12,12,0,0,1,262.71,369.05Z\"]\n};\nvar faFileUpload = {\n prefix: 'fal',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zm95.98 431.42c0 8.8-7.2 16-16 16H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01zm-180.1-247.32l-68.12 71.75c-7.81 8.2-9.94 20.31-5.44 30.83 4.41 10.31 14 16.72 25 16.72H176V424c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88.02h52.66c11 0 20.59-6.41 25-16.72 4.5-10.52 2.38-22.62-5.44-30.81l-68.12-71.78c-10.69-11.19-29.51-11.2-40.19.02zm-38.75 87.29l58.84-62 58.84 62H133.16z\"]\n};\nvar faFileUser = {\n prefix: 'fal',\n iconName: 'file-user',\n icon: [384, 512, [], \"f65c\", \"M369.9 97.98L286.02 14.1c-9-9-21.2-14.1-33.89-14.1H47.99C21.5.1 0 21.6 0 48.09v415.92C0 490.5 21.5 512 47.99 512h288.02c26.49 0 47.99-21.5 47.99-47.99V131.97c0-12.69-5.1-24.99-14.1-33.99zM256.03 32.59c2.8.7 5.3 2.1 7.4 4.2l83.88 83.88c2.1 2.1 3.5 4.6 4.2 7.4h-95.48V32.59zM272 480.01H112v-31.15c0-18.38 13.05-32.86 33.25-32.86 12.45 0 20.8 6.99 46.75 6.99 25.5 0 34.56-6.99 46.75-6.99 20.16 0 33.25 14.43 33.25 32.86v31.15zm80.01-16c0 8.8-7.2 16-16 16H304v-31.15c0-13.88-4.21-26.77-11.41-37.48-12.08-17.94-32.67-27.38-53.84-27.38-19.46 0-24.36 6.99-46.75 6.99-22.41 0-27.26-6.99-46.75-6.99-21.17 0-41.76 9.44-53.83 27.38-7.21 10.7-11.42 23.6-11.42 37.48v31.15H47.99c-8.8 0-16-7.2-16-16V48.09c0-8.8 7.2-16.09 16-16.09h176.04v104.07c0 13.3 10.7 23.93 24 23.93h103.98v304.01zM112 288c0 44.18 35.82 80 80 80s80-35.82 80-80c0-44.19-35.82-80-80-80s-80 35.81-80 80zm128 0c0 26.47-21.53 48-48 48s-48-21.53-48-48 21.53-48 48-48 48 21.53 48 48z\"]\n};\nvar faFileVideo = {\n prefix: 'fal',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M224 280.593C224 267.01 212.989 256 199.407 256H88.593C75.011 256 64 267.01 64 280.593v110.815C64 404.99 75.011 416 88.593 416h110.814C212.989 416 224 404.99 224 391.407V381l27.971 27.971a23.998 23.998 0 0 0 16.97 7.029H296c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-27.059a24.003 24.003 0 0 0-16.97 7.029L224 291v-10.407zM192 384H96v-96h96v96zm80.255-96H288v96h-15.745L224 342.826v-13.652L272.255 288zm97.686-190.059l-83.883-83.882A47.996 47.996 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 32.491a15.888 15.888 0 0 1 7.432 4.195l83.882 83.882a15.882 15.882 0 0 1 4.195 7.431H256V32.491zM352 464c0 8.837-7.164 16-16 16H48c-8.836 0-16-7.163-16-16V48c0-8.837 7.164-16 16-16h176v104c0 13.255 10.745 24 24 24h104v304z\"]\n};\nvar faFileWord = {\n prefix: 'fal',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zm-22.6 22.7c2.1 2.1 3.5 4.6 4.2 7.4H256V32.5c2.8.7 5.3 2.1 7.4 4.2l83.9 83.9zM336 480H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h176v104c0 13.3 10.7 24 24 24h104v304c0 8.8-7.2 16-16 16zm-53.6-246.5c-6.8 32.8-32.5 139.7-33.4 150.3-5.8-29.1-.7 1.6-41.8-150.9-1.4-5.2-6.2-8.9-11.6-8.9h-6.4c-5.4 0-10.2 3.6-11.6 8.9-38.3 142.3-37.4 140.6-39.4 154.7-4.1-23.9 2.1-2.9-34.4-154.4-1.3-5.4-6.1-9.2-11.7-9.2h-7.2c-7.8 0-13.5 7.3-11.6 14.9 9.5 38 34.5 137.4 42.2 168 1.3 5.3 6.1 9.1 11.6 9.1h17c5.4 0 10.2-3.7 11.6-8.9 34.2-127.7 33.5-123.4 36.7-142.9 6.5 31.1.2 7 36.7 142.9 1.4 5.2 6.2 8.9 11.6 8.9h14c5.5 0 13.7-3.7 15.1-9l42.8-168c1.9-7.6-3.8-15-11.6-15h-6.8c-5.7 0-10.6 4-11.8 9.5z\"]\n};\nvar faFilesMedical = {\n prefix: 'fal',\n iconName: 'files-medical',\n icon: [448, 512, [], \"f7fd\", \"M433.94 65.94l-51.88-51.88A48 48 0 0 0 348.12 0H176a48 48 0 0 0-48 48v48H48a48 48 0 0 0-48 48v320a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48v-48h80a48 48 0 0 0 48-48V99.88a48 48 0 0 0-14.06-33.94zM352 32.49a15.88 15.88 0 0 1 7.43 4.2l51.88 51.88a16 16 0 0 1 4.2 7.43H352zM288 464a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V144a16 16 0 0 1 16-16h80v240a48 48 0 0 0 48 48h112zm128-96a16 16 0 0 1-16 16H176a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h144v72a24.07 24.07 0 0 0 24 24h72zM314.67 182.67A6.67 6.67 0 0 0 308 176h-40a6.67 6.67 0 0 0-6.67 6.67v46.66h-46.66A6.67 6.67 0 0 0 208 236v40a6.67 6.67 0 0 0 6.67 6.67h46.66v46.66A6.67 6.67 0 0 0 268 336h40a6.67 6.67 0 0 0 6.67-6.67v-46.66h46.66A6.67 6.67 0 0 0 368 276v-40a6.67 6.67 0 0 0-6.67-6.67h-46.66z\"]\n};\nvar faFill = {\n prefix: 'fal',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-92.85 92.85L56.97 2.35c-3.12-3.12-8.19-3.12-11.31 0L34.34 13.66c-3.12 3.12-3.12 8.19 0 11.31l99.88 99.87-106.1 106.1c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.49 12.49-32.75 0-45.25zm-244.2 244.2C246.34 473.34 230.27 480 213.18 480s-33.16-6.66-45.24-18.74l-117.2-117.2c-6.88-6.88-11.77-15.14-14.91-24.06h363.85L258.43 461.26zM431.68 288H33.06c2.2-12.96 8.2-24.94 17.69-34.43l106.09-106.11 87.85 87.85c6.25 6.25 16.38 6.25 22.62 0 6.25-6.25 6.25-16.38 0-22.62l-87.85-87.85L272.29 32h.02L480 239.68 431.68 288z\"]\n};\nvar faFillDrip = {\n prefix: 'fal',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm0 160c-17.64 0-32-14.36-32-31.96.26-9.78 13.57-37.67 32.01-68.73 18.43 31.04 31.73 58.91 31.99 68.69 0 17.64-14.36 32-32 32zm-9.37-262.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-92.85 92.85L56.97 2.35c-3.12-3.12-8.19-3.12-11.31 0L34.34 13.66c-3.12 3.12-3.12 8.19 0 11.31l99.88 99.88-106.1 106.1c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.76.01-45.26zm-244.2 244.2C246.34 473.34 230.27 480 213.18 480s-33.16-6.66-45.24-18.74l-117.2-117.2c-6.88-6.88-11.77-15.14-14.91-24.06h363.85L258.43 461.26zM431.68 288H33.06c2.2-12.96 8.2-24.94 17.69-34.43l106.09-106.11 87.85 87.85c6.25 6.25 16.38 6.25 22.62 0 6.25-6.25 6.25-16.38 0-22.62l-87.85-87.85L272.29 32h.02L480 239.68 431.68 288z\"]\n};\nvar faFilm = {\n prefix: 'fal',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm288 224c0 6.6-5.4 12-12 12H140c-6.6 0-12-5.4-12-12V284c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v120zm0-176c0 6.6-5.4 12-12 12H140c-6.6 0-12-5.4-12-12V108c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v120zm96 144c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilmAlt = {\n prefix: 'fal',\n iconName: 'film-alt',\n icon: [512, 512, [], \"f3a0\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm288 224c0 6.6-5.4 12-12 12H140c-6.6 0-12-5.4-12-12V108c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v296zm96-32c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilmCanister = {\n prefix: 'fal',\n iconName: 'film-canister',\n icon: [576, 512, [], \"f8b7\", \"M544 96H320V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-88V16a16 16 0 0 0-16-16H112a16 16 0 0 0-16 16v16H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v416H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-24v-32h160a32 32 0 0 0 32-32v-64a32 32 0 0 1 32-32 32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zM288 480H64V64h224zm256-192a64.07 64.07 0 0 0-64 64v64H320V128h224zm-64-80h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zM368 384h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0-176h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16z\"]\n};\nvar faFilter = {\n prefix: 'fal',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M479.968 0H32.038C3.613 0-10.729 34.487 9.41 54.627L192 237.255V424a31.996 31.996 0 0 0 10.928 24.082l64 55.983c20.438 17.883 53.072 3.68 53.072-24.082V237.255L502.595 54.627C522.695 34.528 508.45 0 479.968 0zM288 224v256l-64-56V224L32 32h448L288 224z\"]\n};\nvar faFingerprint = {\n prefix: 'fal',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256 169.92c-28.28.41-52.84 9.62-71.37 28.17-18 18-27.69 41.94-27.28 67.44.78 50.23-3.91 100.5-14 149.39-1.81 8.66 3.78 17.12 12.41 18.91 8.5 1.66 17.09-3.77 18.91-12.44 10.56-51.17 15.5-103.78 14.69-156.35-.25-16.77 6.09-32.5 17.91-44.31 18.66-18.66 42.27-18.8 48.75-18.8 37.12.55 66.41 30.19 66.97 66.06.78 50.37-2.97 100.86-11.12 150.06-1.44 8.72 4.44 16.95 13.16 18.39.91.16 1.78.22 2.66.22 7.69 0 14.47-5.55 15.75-13.39 8.47-51.08 12.34-103.48 11.56-155.79-.87-53-44.81-96.76-99-97.56zm-.09 86.09c-8.84.14-15.87 7.41-15.75 16.25 1.12 73.39-8.22 144.99-27.78 215.07l-1.22 4.33c-1.85 6.63 1.74 20.34 15.41 20.34 7 0 13.41-4.61 15.41-11.66l1.22-4.37c20.41-73.08 30.16-147.74 28.97-224.21-.14-8.84-8.23-15.9-16.26-15.75zM112.66 149.79c-25.19 30.98-38.72 70.11-38.09 110.15.62 39.56-2.62 79.14-9.59 117.61-1.56 8.7 4.19 17.03 12.91 18.61.97.17 1.91.25 2.87.25 7.56 0 14.31-5.42 15.72-13.14 7.34-40.53 10.72-82.18 10.09-123.82-.53-33.01 10.19-63.95 30.91-89.47 5.59-6.86 4.53-16.94-2.31-22.51-6.85-5.55-16.91-4.57-22.51 2.32zm399.22 103.03c-.25-16.5-2.19-33.03-5.75-49.14-1.91-8.61-10.34-14-19.06-12.17-8.62 1.91-14.09 10.44-12.19 19.08 3.09 14 4.78 28.39 5 42.73.12 7.66.16 15.31.09 22.97-.06 8.83 7.03 16.05 15.87 16.12h.12c8.78 0 15.94-7.08 16-15.87.07-7.91.04-15.81-.08-23.72zM252.6.05C182.63-1.29 118.32 24.88 70.32 72.91 24.04 119.22-.87 180.76.16 246.2c.12 7.55.06 15.09-.16 22.62-.25 8.83 6.72 16.2 15.56 16.45H16c8.62 0 15.75-6.87 16-15.55.22-8 .28-16.02.16-24.03-.9-56.69 20.69-110.04 60.78-150.16 41.78-41.84 98.9-64.37 159.15-63.48 74.69 1.09 144.87 38.23 187.75 99.32 5.12 7.23 15.12 8.97 22.28 3.91 7.25-5.08 9-15.05 3.91-22.28C417.28 43.52 337.5 1.3 252.6.05zm1.28 84.93a182.36 182.36 0 0 0-45.19 4.91c-8.59 2.03-13.91 10.66-11.87 19.26 2.03 8.58 10.75 13.87 19.25 11.86 12.12-2.86 25.09-4.25 37.31-4.03 82.78 1.22 151.12 67.56 152.37 147.89.62 39.65-1.34 79.59-5.81 118.7-1 8.78 5.31 16.7 14.09 17.7.62.08 1.22.11 1.84.11 8 0 14.94-6.02 15.87-14.19 4.62-40.47 6.62-81.79 6-122.82-1.49-97.44-83.99-177.92-183.86-179.39z\"]\n};\nvar faFire = {\n prefix: 'fal',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 24.01c0-23.8-31.16-33.11-44.15-13.04C76.55 158.25 200 238.73 200 288c0 22.06-17.94 40-40 40s-40-17.94-40-40V182.13c0-19.39-21.85-30.76-37.73-19.68C30.75 198.38 0 257.28 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-192.85-168-295.99zM192 480c-88.22 0-160-71.78-160-160 0-46.94 20.68-97.75 56-128v96c0 39.7 32.3 72 72 72s72-32.3 72-72c0-65.11-112-128-45.41-248C208 160 352 175.3 352 320c0 88.22-71.78 160-160 160z\"]\n};\nvar faFireAlt = {\n prefix: 'fal',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M448 281.6c0-53.27-51.98-163.13-124.44-230.4-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512c.53 0 1.04-.08 1.58-.08.32 0 .6.08.92.08 1.88 0 3.71-.35 5.58-.42C352.02 507.17 448 406.04 448 281.6zm-416 0c0-50.22 47.51-147.44 136.05-237.09 27.38 27.45 52.44 56.6 73.39 85.47l24.41 33.62 26.27-32.19a573.83 573.83 0 0 1 30.99-34.95C379.72 159.83 416 245.74 416 281.6c0 54.69-21.53 104.28-56.28 140.21 12.51-35.29 10.88-75.92-8.03-112.02a357.34 357.34 0 0 0-10.83-19.19l-22.63-37.4-28.82 32.87-25.86 29.5c-24.93-31.78-59.31-75.5-63.7-80.54l-24.65-28.39-24.08 28.87C108.16 287 80 324.21 80 370.41c0 19.02 3.62 36.66 9.77 52.79C54.17 387.17 32 337.03 32 281.6zm193.54 198.32C162.86 479.49 112 437.87 112 370.41c0-33.78 21.27-63.55 63.69-114.41 6.06 6.98 86.48 109.68 86.48 109.68l51.3-58.52a334.43 334.43 0 0 1 9.87 17.48c23.92 45.66 13.83 104.1-29.26 134.24-17.62 12.33-39.14 19.71-62.37 20.73-2.06.07-4.09.29-6.17.31z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fal',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M429.627 32.177l-160 24C254.178 58.494 256 74.414 256 80h-61.396C212.106 43.162 185.315 0 144 0c-43.131 0-69.629 46.603-48.775 83.504-42.891 9.634-75.08 39.064-94.077 86.554-3.282 8.205.708 17.517 8.913 20.798 8.21 3.282 17.518-.713 20.798-8.913C62.582 102.637 120.434 112 176 112v33.353c-45.574 7.763-80 48.123-80 95.853V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-47.566-34.599-87.046-80-94.665V112h48c0 4.893-2.181 21.452 13.627 23.823l160 24C439.275 161.264 448 153.803 448 144V48c0-9.775-8.695-17.269-18.373-15.823zM256 240v240H128V241.205c0-35.694 28.49-64.944 63.501-65.203L192 176c35.29 0 64 28.71 64 64zM144 32c13.234 0 24 10.766 24 24s-10.766 24-24 24-24-10.766-24-24 10.766-24 24-24zm272 93.421l-128-19.2V85.779l128-19.2v58.842z\"]\n};\nvar faFireSmoke = {\n prefix: 'fal',\n iconName: 'fire-smoke',\n icon: [576, 512, [], \"f74b\", \"M464 288c-25.5 0-50 8.9-69.8 24.8C370.8 277.7 331.1 256 288 256s-82.8 21.7-106.2 56.8C162 296.9 137.5 288 112 288 50.2 288 0 338.2 0 400s50.2 112 112 112h352c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 192H112c-44.1 0-80-35.9-80-80s35.9-80 80-80c23.5 0 45.8 10.7 61.2 29.2l16.5 19.9 10.4-23.7C215.6 310.6 250 288 288 288s72.4 22.6 87.8 57.4l10.4 23.7 16.5-19.9c15.4-18.6 37.8-29.2 61.2-29.2 44.1 0 80 35.9 80 80s-35.8 80-79.9 80zm-63.1-209.2c1.7-.8 3.4-1.4 5.1-2.2 7.3-28.9 4.4-60.7-9.7-88.4-3.2-6.3-6.8-13-10.8-19.7L320 192s-78.1-81.4-84.7-89.3c-46.3 57.4-69.5 91-69.5 129.1 0 13.5 2.3 25.8 5.6 37.4 1.2.6 2.5 1 3.7 1.6 7.5-7.4 15.8-13.8 24.6-19.6-1.1-6.1-1.8-12.4-1.8-19.4 0-21.7 12.4-44.3 39.6-80 21 22.1 48.2 50.5 59.5 62.3l16.1 16.7 20.9-10.1 37.6-18.1c6.4 16 7.9 32.8 5.6 48.7 8.4 5.8 16.4 12.2 23.7 19.5zM112 256c6.3 0 12.4.5 18.6 1.3-1.3-8.2-2.6-16.4-2.6-25 0-39.9 41.2-117.9 111.4-187.8 15.3 16.9 28.8 35.2 42 53.1 4.4 6 8.7 11.9 13.1 17.6l24.1 31.9 25.9-30.5c7.3-8.6 17.4-19.3 28.3-30 46 50.8 75.3 117.6 75.3 145.6 0 8.6-1.2 16.8-2.6 25 6.1-.8 12.3-1.3 18.6-1.3 4.8 0 9.4 1 14.1 1.4 1.1-8.2 1.9-16.6 1.9-25.1 0-43.9-44.6-134.6-106.7-190.1C355.5 58.2 334.2 79.2 320 96c-23.4-31-47.2-66.7-80-96C155.8 75.2 96 173.2 96 232.3c0 8.5.8 16.9 1.9 25.1 4.7-.4 9.3-1.4 14.1-1.4z\"]\n};\nvar faFireplace = {\n prefix: 'fal',\n iconName: 'fireplace',\n icon: [640, 512, [], \"f79a\", \"M624 0H16C7.2 0 0 7.2 0 16v96c0 8.8 7.2 16 16 16h16v352c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V358.9c0-83.6 61.1-158.2 144.3-166.1 5.3-.5 10.5-.8 15.7-.8 88.4 0 160 71.6 160 160v128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V128h16c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm-48 480h-64V352c0-105.9-86.1-192-192-192-6.2 0-12.4.3-18.8.9-97.1 9.3-173.2 96.2-173.2 198V480H64V128h512v352zm32-384H32V32h576v64zM342.3 311.6c-14-18.8-31.4-37.8-51.1-55.6-50.5 45.6-86.4 105-86.4 140.8 0 63.6 51.6 115.2 115.2 115.2s115.2-51.6 115.2-115.2c0-26.6-26.7-81.6-64-115.2-10.7 9.6-20.4 19.8-28.9 30zM320 480c-45.9 0-83.2-37.3-83.2-83.2 0-19.6 20.4-58.9 54.5-96 9.3 9.8 17.8 19.9 25.3 29.9l24.2 32.4 26-30.9 3.6-4.2c20.5 26.9 32.8 57.4 32.8 68.8 0 45.9-37.3 83.2-83.2 83.2z\"]\n};\nvar faFirstAid = {\n prefix: 'fal',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M200 288h56v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h56c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-56v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h-56c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM96 448H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h48v384zm352 0H128V64h320v384zm96-16c0 8.8-7.2 16-16 16h-48V64h48c8.8 0 16 7.2 16 16v352z\"]\n};\nvar faFish = {\n prefix: 'fal',\n iconName: 'fish',\n icon: [640, 512, [], \"f578\", \"M363.44 80c-99.96 0-187.27 60.25-235.86 111.79l-97.04-72.66c-3.65-2.73-7.78-3.94-11.8-3.94-10.85 0-20.87 8.78-18.36 20.06L27.27 256 .39 376.74c-2.51 11.28 7.52 20.06 18.36 20.06 4.02 0 8.15-1.21 11.8-3.94l97.04-72.66C176.17 371.75 263.48 432 363.44 432 516.18 432 640 291.2 640 256c0-35.2-123.82-176-276.56-176zm0 320c-86.02 0-166.21-52.56-212.57-101.74l-19.6-20.79-22.87 17.12-68.33 51.17 18.43-82.8 1.55-6.95-1.55-6.95-18.43-82.8 68.33 51.17 22.87 17.12 19.6-20.79C197.23 164.56 277.42 112 363.44 112 489 112 595.86 223.33 607.5 256 595.86 288.67 489 400 363.44 400zM448 232c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faFishCooked = {\n prefix: 'fal',\n iconName: 'fish-cooked',\n icon: [640, 512, [], \"f7fe\", \"M363.44 64c-100 0-187.26 65.72-235.85 122l-97-85.67C17.08 89.28-3 101 .4 117.89L27.27 256 .39 394.12C-3 411 17.06 422.72 30.54 411.71l97-85.65C176.17 382.28 263.48 448 363.44 448 516.18 448 640 294.4 640 256S516.18 64 363.44 64zm0 352c-85.4 0-165.33-57.27-211.65-110.87l-20.35-23.55c-31.19 25.48-12.24 8.88-92.08 81.61C61.12 249.3 58.13 264.82 59.93 256c-1.8-8.81 1.2 6.73-20.56-107.19 80 72.85 61 56.21 92.08 81.62l20.35-23.55C198.12 153.28 278 96 363.44 96c128.19 0 236.08 126.49 244.35 160-8.27 33.51-116.16 160-244.35 160zm-21.78-250.35l-11.31-11.31a8 8 0 0 0-11.32 0L234.35 239a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L341.66 177a8 8 0 0 0 0-11.35zm112 16l-11.31-11.31a8 8 0 0 0-11.32 0L282.35 319a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L453.66 193a8 8 0 0 0 0-11.35zm36.69 68.69a8 8 0 0 0-11.32 0L394.35 335a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.31 0L501.66 273a8 8 0 0 0 0-11.32z\"]\n};\nvar faFistRaised = {\n prefix: 'fal',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M350.82 167.94c.46-2.63 1.18-5.18 1.18-7.94V80c0-26.51-21.49-48-48-48h-16c-6.32 0-12.32 1.29-17.85 3.52C264.62 15.12 246.12 0 224 0h-16c-22.12 0-40.62 15.12-46.15 35.52C156.32 33.29 150.32 32 144 32h-16c-22.12 0-40.62 15.12-46.15 35.52C76.32 65.29 70.32 64 64 64H48C21.49 64 0 85.49 0 112v186.98c0 38.17 15.16 74.78 42.15 101.77L64 422.62V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-94.63l-31.22-31.23A111.97 111.97 0 0 1 32 298.98v-45.93c5.03 1.79 10.36 2.95 16 2.95h16c12.34 0 23.49-4.81 32-12.48 8.51 7.68 19.66 12.48 32 12.48h16c13.16 0 25.09-5.34 33.77-13.95.24.3 9.34 14.63 30.62 23.65-19.67 15.79-33.92 35.74-57.27 70.77a7.992 7.992 0 0 0 2.22 11.09l13.31 8.88a7.992 7.992 0 0 0 11.09-2.22l6.31-9.47c31.91-47.87 51.56-70.29 96.12-72.56 4.25-.22 7.82-3.67 7.82-7.93V248c0-4.42-3.58-8-8-8h-40.67c-26.16 0-47.36-21.21-47.36-47.36v-.74c0-8.78 7.12-15.9 15.9-15.9H288c35.35 0 64 28.65 64 64v88.32c0 25.41-10.09 49.77-28.06 67.74L288 432v72c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-58.75l26.51-26.51c24-24 37.49-56.56 37.49-90.51V240c0-28.87-13.01-54.46-33.18-72.06zM80 208c0 8.84-7.16 16-16 16H48c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v96zm80 0c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16V80c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v128zm80-64h-32.03c-5.58 0-10.92 1.1-15.97 2.85V48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v96zm80 5.88c-10.05-3.57-20.72-5.88-32-5.88h-16V80c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v69.88z\"]\n};\nvar faFlag = {\n prefix: 'fal',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M344.348 74.667C287.742 74.667 242.446 40 172.522 40c-28.487 0-53.675 5.322-76.965 14.449C99.553 24.713 75.808-1.127 46.071.038 21.532.999 1.433 20.75.076 45.271-1.146 67.34 12.553 86.382 32 93.258V500c0 6.627 5.373 12 12 12h8c6.627 0 12-5.373 12-12V378.398c31.423-14.539 72.066-29.064 135.652-29.064 56.606 0 101.902 34.667 171.826 34.667 51.31 0 91.933-17.238 130.008-42.953 6.589-4.45 10.514-11.909 10.514-19.86V59.521c0-17.549-18.206-29.152-34.122-21.76-36.78 17.084-86.263 36.906-133.53 36.906zM48 28c11.028 0 20 8.972 20 20s-8.972 20-20 20-20-8.972-20-20 8.972-20 20-20zm432 289.333C456.883 334.03 415.452 352 371.478 352c-63.615 0-108.247-34.667-171.826-34.667-46.016 0-102.279 10.186-135.652 26V106.667C87.117 89.971 128.548 72 172.522 72c63.615 0 108.247 34.667 171.826 34.667 45.92 0 102.217-18.813 135.652-34.667v245.333z\"]\n};\nvar faFlagAlt = {\n prefix: 'fal',\n iconName: 'flag-alt',\n icon: [512, 512, [], \"f74c\", \"M472.5 0c-7 0-14.3 1.5-21.2 4.6-50.5 22.7-87.8 30.3-119.1 30.3C266.1 34.9 227.7.4 151.4.4 119.8.4 81.2 6.9 32 23.6V16c0-8.8-7.2-16-16-16S0 7.2 0 16v488c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V403.6c44.2-15.8 81.6-22 114.5-22 81.2 0 137.8 34.4 219.1 34.4 35.3 0 75.1-6.5 123.7-25 14-5.4 22.8-17.9 22.8-31.2V33.4C512 13 493.4 0 472.5 0zm-107 384c-75.6 0-133-34.4-219.1-34.4-36.7 0-74.4 6.5-114.5 19.8V57.2c46-16.7 85.3-24.8 119.4-24.8 69.5 0 108.4 34.5 180.8 34.5 39.8 0 81.8-10.5 132.1-33.1 9.4-4.2 15.7-.5 15.7 5.6v320.1c-.8 2.5-58.8 24.5-114.4 24.5z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fal',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M464 96.3c-22.5 8.9-49.7 17.4-76.8 22.2v72.6c26.8-4.4 51.7-13.8 76.8-23.7zm0 212.5v-71.1c-16.8 10.6-46.8 21.5-76.8 25.5v72c30.7-3.2 58.6-14.9 76.8-26.4zM80 186.3c16.2-10.2 46.9-20.7 76.8-25V88.8C126.1 92 98.2 103.7 80 115.2zm0 133.5c23.1-7.7 50.3-13.1 76.8-16v-71.7c-26 2.7-52 8.4-76.8 16.6zm230.4-63.1c-25.1-6.9-49.6-16.6-76.8-22.2v69.7c27.7 4.7 52 14 76.8 21.4v-68.9c27.5 7.6 49.7 10.1 76.8 6.5v-72.1c-24.4 4-48.6 3.6-76.8-2.5zM477.9 37.8c-36.8 17.1-86.3 36.9-133.5 36.9-56.7 0-102-34.7-171.9-34.7-28.5 0-53.7 5.3-77 14.4C99.6 24.7 75.8-1.1 46.1 0 21.5 1 1.4 20.8.1 45.3c-1.2 22.1 12.5 41.1 31.9 48V500c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V378.4c31.4-14.5 72.1-29.1 135.7-29.1 56.6 0 101.9 34.7 171.8 34.7 51.3 0 91.9-17.2 130-43 6.6-4.5 10.5-11.9 10.5-19.9V59.5c0-17.5-18.2-29.1-34.1-21.7zM48 68c-11 0-20-9-20-20s9-20 20-20 20 9 20 20-9 20-20 20zm432 249.3C456.9 334 415.5 352 371.5 352c-63.6 0-108.2-34.7-171.8-34.7-46 0-102.3 10.2-135.7 26V106.7C87.1 90 128.5 72 172.5 72c63.6 0 108.2 34.7 171.8 34.7 45.9 0 102.2-18.8 135.7-34.7zM310.4 119.7c-27.7-4.7-52.3-14.2-76.8-21.4v67.9c25.3 6.7 49.6 16.4 76.8 22.4zm-153.6 41.5v70.9c34.2-3.6 56.2-1.7 76.8 2.5v-68.4c-29.7-7.8-51.3-8.7-76.8-5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fal',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M472.5 0c-7 0-14.3 1.5-21.2 4.6-50.5 22.7-87.8 30.3-119.1 30.3C266.1 34.9 227.7.4 151.4.4 119.8.4 81.2 6.9 32 23.6V16c0-8.8-7.2-16-16-16S0 7.2 0 16v488c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V403.6c44.2-15.8 81.6-22 114.5-22 81.2 0 137.8 34.4 219.1 34.4 35.3 0 75.1-6.5 123.7-25 14-5.4 22.8-17.9 22.8-31.2V33.4C512 13 493.4 0 472.5 0zM256 54.3c58.3 17.5 113.9 21.8 208.3-20.5 9.4-4.2 15.7-.5 15.7 5.6v52.4c-98.8 41.7-153.2 28.3-224 16.1V54.3zm0 86c34.5 6.1 64.2 12 98.8 12 35.2 0 75.8-7 125.2-26.3v61.6c-103.5 33.4-162.8 18.4-224 4v-51.3zM32 57.2c46-16.7 85.3-24.8 119.4-24.8 27.7 0 50.5 5.5 72.6 12.1v140c-51.1-10.4-108.6-14.8-192 10.4V57.2zm0 171.1c100.6-32.4 159.1-19.2 220.4-4.7 57.5 13.6 120.2 30 227.7-2.4v54.5c-100.5 32.4-159 19.2-220.4 4.7-61-14.4-124.5-28.6-227.7 2.5v-54.6zM365.5 384c-75.6 0-133-34.4-219.1-34.4-36.7 0-74.4 6.5-114.5 19.8v-53.1c100.6-32.4 159-19.2 220.3-4.7 58.8 13.8 120.5 29.9 227.7-2.4v50.3c-.8 2.5-58.8 24.5-114.4 24.5zM96 64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm72 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-72 24c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm72 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faFlame = {\n prefix: 'fal',\n iconName: 'flame',\n icon: [384, 512, [], \"f6df\", \"M192 0C79.7 101.33 0 220.92 0 300.55 0 425.05 78.95 512 192 512s192-86.95 192-211.45C384 220.6 303.78 100.86 192 0zm0 480c-95.7 0-160-72.12-160-179.45 0-63.08 63.42-164.08 160-256.83 96.58 92.76 160 193.76 160 256.83C352 407.88 287.7 480 192 480zm60.1-267.1c-26.52-22.66-51.57-44.08-51.57-77.63 0-4.54-3.77-6.25-5.38-6.78-.96-.3-2.05-.49-3.2-.49-2.57 0-5.39.95-7.38 3.67C111.36 231.23 224 224 224 296c0 30.93-25.07 56-56 56s-56-25.07-56-56v-40c0-2.05-.78-4.1-2.34-5.66S106.05 248 104 248s-4.09.78-5.66 2.34C89.84 258.6 64 285.98 64 330.11c0 65 57.42 117.89 128 117.89s128-52.89 128-117.89c0-59.17-34.52-88.67-67.9-117.21zM192 416c-45.26 0-83.29-28.16-93.38-65.93C114.74 370.71 139.85 384 168 384c48.52 0 88-39.48 88-88 0-20.66-6.08-36.85-14.51-50.01 26.69 23.29 46.51 44.58 46.51 84.12 0 47.36-43.06 85.89-96 85.89z\"]\n};\nvar faFlashlight = {\n prefix: 'fal',\n iconName: 'flashlight',\n icon: [640, 512, [], \"f8b8\", \"M288 208h-32a48 48 0 0 0 0 96h32a48 48 0 0 0 0-96zm0 64h-32a16 16 0 0 1 0-32h32a16 16 0 0 1 0 32zM608 96h-32c-59 0-116.52 17-166.59 48H64a64 64 0 0 0-64 64v96a64 64 0 0 0 64 64h345.42C459.48 399 517 416 576 416h32a32 32 0 0 0 32-32V128a32 32 0 0 0-32-32zm-96 280.49a289.65 289.65 0 0 1-85.74-35.7l-7.74-4.79H64a32 32 0 0 1-32-32v-96a32 32 0 0 1 32-32h354.52l7.73-4.79a289.7 289.7 0 0 1 85.75-35.7zm96 7.51h-32a275.75 275.75 0 0 1-32-1.88V129.88a275.75 275.75 0 0 1 32-1.88h32z\"]\n};\nvar faFlask = {\n prefix: 'fal',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M434.9 410.7L288 218.6V32h26c3.3 0 6-2.7 6-6V6c0-3.3-2.7-6-6-6H134c-3.3 0-6 2.7-6 6v20c0 3.3 2.7 6 6 6h26v186.6L13.1 410.7C-18.6 452.2 11 512 63.1 512h321.8c52.2 0 81.7-59.8 50-101.3zm-50 69.3H63.1c-25.7 0-40.3-29.4-24.6-49.8l150.2-196.5c2.1-2.8 3.3-6.2 3.3-9.7V32h64v192c0 3.5 1.2 6.9 3.3 9.7l150.2 196.5c15.6 20.4 1.2 49.8-24.6 49.8z\"]\n};\nvar faFlaskPoison = {\n prefix: 'fal',\n iconName: 'flask-poison',\n icon: [416, 512, [], \"f6e0\", \"M288 159.99V32h24c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24v127.99C52.85 191.35 0 265.48 0 352c0 53.79 20.43 102.79 53.94 139.7 11.95 13.17 29.21 20.3 47 20.3h214.04c18.06 0 35.49-7.44 47.58-20.85 12.92-14.34 53.24-61.93 53.14-139.15h.3c0-86.52-52.85-160.65-128-192.01zm50.79 309.73c-5.89 6.53-14.56 10.28-23.81 10.28H100.94c-9.15 0-17.65-3.57-23.3-9.8C48.21 437.77 32 395.8 32 352c0-71.25 42.52-135.02 108.32-162.47l19.68-8.21V32h96v149.31l19.68 8.21c62.56 26.1 104.07 85.02 108.01 151.99l.01 10.53c.07 55.99-24.38 94.91-44.91 117.68zM176 304c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm64 0c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm-32-80c-70.69 0-128 42.98-128 96 0 30.19 18.89 56.78 48 74.3V432c0 8.84 7.16 16 16 16h128c8.84 0 16-7.16 16-16v-37.7c29.11-17.53 48-44.12 48-74.3 0-53.02-57.31-96-128-96zm63.49 142.89L256 376.22V416h-96v-39.78l-15.49-9.33C123.85 354.45 112 337.36 112 320c0-34.69 43.96-64 96-64s96 29.31 96 64c0 17.36-11.85 34.45-32.51 46.89z\"]\n};\nvar faFlaskPotion = {\n prefix: 'fal',\n iconName: 'flask-potion',\n icon: [416, 512, [], \"f6e1\", \"M416 352c0-86.52-52.85-160.65-128-192.01V32h24c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24v127.99C52.85 191.35 0 265.48 0 352c0 53.79 20.43 102.79 53.94 139.7 11.95 13.17 29.21 20.3 47 20.3h214.04c18.06 0 35.49-7.44 47.58-20.85 12.92-14.34 53.24-61.93 53.14-139.15h.3zM140.32 189.53l19.68-8.21V32h96v149.32l19.68 8.21C336.49 214.9 377.11 271.36 382.97 336h-51.35c-28.66 0-57.41-7.59-83.09-21.97-61.81-34.56-135.62-34.56-197.44 0l-16.6 9.29c9.73-59.28 49.03-110.1 105.83-133.79zm198.47 280.19c-5.89 6.53-14.56 10.28-23.81 10.28H100.94c-9.15 0-17.65-3.57-23.3-9.8-27.4-30.19-42.74-68.76-44.81-109.27l33.89-18.96c52.09-29.11 114.22-29.08 166.19 0C263.38 359 297.5 368 331.62 368h50.99c-3.45 37.65-18.35 73.46-43.82 101.72z\"]\n};\nvar faFlower = {\n prefix: 'fal',\n iconName: 'flower',\n icon: [512, 512, [], \"f7ff\", \"M461.5 256c30.7-26.8 50.5-65.8 50.5-109.7C512 65.5 446.5 0 365.7 0 321.8 0 282.8 19.8 256 50.5 229.2 19.8 190.2 0 146.3 0 65.5 0 0 65.5 0 146.3c0 43.9 19.8 82.9 50.5 109.7C19.8 282.8 0 321.8 0 365.7 0 446.5 65.5 512 146.3 512c43.9 0 82.9-19.8 109.7-50.5 26.8 30.7 65.8 50.5 109.7 50.5 80.8 0 146.3-65.5 146.3-146.3 0-43.9-19.8-82.9-50.5-109.7zm-95.8 224c-32.9 0-63.3-14-85.6-39.5L256 412.9l-24.1 27.6C209.6 466 179.2 480 146.3 480 83.3 480 32 428.7 32 365.7c0-32.9 14-63.3 39.5-85.6L99.1 256l-27.6-24.1C46 209.6 32 179.2 32 146.3 32 83.3 83.3 32 146.3 32c32.9 0 63.3 14 85.6 39.5L256 99.1l24.1-27.6C302.4 46 332.8 32 365.7 32c63 0 114.3 51.3 114.3 114.3 0 32.9-14 63.3-39.5 85.6L412.9 256l27.6 24.1c25.5 22.3 39.5 52.7 39.5 85.6 0 63-51.3 114.3-114.3 114.3zM256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faFlowerDaffodil = {\n prefix: 'fal',\n iconName: 'flower-daffodil',\n icon: [512, 512, [], \"f800\", \"M288 144a32 32 0 1 0-32 32 32 32 0 0 0 32-32zm207.87 144H448.6A224 224 0 0 0 272 374v-96.54A85.76 85.76 0 0 0 312.87 288 87.22 87.22 0 0 0 400 200.89 85.82 85.82 0 0 0 378.62 144 85.82 85.82 0 0 0 400 87.11 87.22 87.22 0 0 0 312.87 0 85.8 85.8 0 0 0 256 21.36 85.8 85.8 0 0 0 199.13 0 87.22 87.22 0 0 0 112 87.11 85.82 85.82 0 0 0 133.38 144 85.82 85.82 0 0 0 112 200.89 87.22 87.22 0 0 0 199.13 288 85.64 85.64 0 0 0 240 277.46V374a224 224 0 0 0-176.6-86H16.13c-9.19 0-17 9-16.06 19.65C10.06 422.15 106.43 512 223.83 512h64.34c117.4 0 213.77-89.85 223.76-204.35.92-10.65-6.87-19.65-16.06-19.65zM240 480h-16.17c-93.89 0-174.52-69.14-189.94-160H63.4a192.45 192.45 0 0 1 165 93.35C242 436.09 240 454.05 240 480zm16-263.61l-12.84 17.22a54.58 54.58 0 0 1-44 22.39A55.17 55.17 0 0 1 144 200.89a54.59 54.59 0 0 1 22.41-44.06L183.63 144l-17.22-12.83A54.59 54.59 0 0 1 144 87.11 55.17 55.17 0 0 1 199.13 32a54.58 54.58 0 0 1 44 22.39L256 71.61l12.84-17.22a54.58 54.58 0 0 1 44-22.39A55.17 55.17 0 0 1 368 87.11a54.59 54.59 0 0 1-22.41 44.06L328.37 144l17.22 12.83A54.59 54.59 0 0 1 368 200.89 55.17 55.17 0 0 1 312.87 256a54.58 54.58 0 0 1-44-22.39zM288 480h-16c0-26-2-43.9 11.63-66.65A192.45 192.45 0 0 1 448.6 320h29.51C462.69 410.86 382.05 480 288 480z\"]\n};\nvar faFlowerTulip = {\n prefix: 'fal',\n iconName: 'flower-tulip',\n icon: [512, 512, [], \"f801\", \"M495.87 288H448.6A224 224 0 0 0 272 374v-86a144 144 0 0 0 144-144V16a16 16 0 0 0-25.45-12.88l-73.91 53.64-48.35-51a16 16 0 0 0-24.58 0l-48.35 51-73.91-53.64A16 16 0 0 0 96 16v128a144 144 0 0 0 144 144v86a224 224 0 0 0-176.6-86H16.13c-9.19 0-17 9-16.06 19.65C10.06 422.15 106.43 512 223.83 512h64.34c117.4 0 213.77-89.85 223.76-204.35.92-10.65-6.87-19.65-16.06-19.65zM128 144V47.41l71.28 51.73L256 39.3l56.72 59.84L384 47.41V144a112 112 0 0 1-112 112h-32a112 112 0 0 1-112-112zm112 336h-16.17c-93.89 0-174.52-69.14-189.94-160H63.4a192.45 192.45 0 0 1 165 93.35C242 436.09 240 454.05 240 480zm48 0h-16c0-26-2-43.9 11.63-66.65A192.45 192.45 0 0 1 448.6 320h29.51C462.69 410.86 382.05 480 288 480z\"]\n};\nvar faFlushed = {\n prefix: 'fal',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm96-328c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 168H184c-8.8 0-16 7.2-16 16s7.2 16 16 16h128c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"]\n};\nvar faFlute = {\n prefix: 'fal',\n iconName: 'flute',\n icon: [640, 512, [], \"f8b9\", \"M512 280a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm-192 0a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm96 0a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm192-120H32a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM112 320H32V192h80zm496 0H144V192h464z\"]\n};\nvar faFluxCapacitor = {\n prefix: 'fal',\n iconName: 'flux-capacitor',\n icon: [448, 512, [], \"f8ba\", \"M448,112V400a80.15451,80.15451,0,0,1-80,80H80A80.15451,80.15451,0,0,1,0,400V112A80.15451,80.15451,0,0,1,80,32H368A80.15451,80.15451,0,0,1,448,112Zm-32,0a48.0927,48.0927,0,0,0-48-48H80a48.0927,48.0927,0,0,0-48,48V400a48.0927,48.0927,0,0,0,48,48H368a48.0927,48.0927,0,0,0,48-48Zm-32,64a80.034,80.034,0,0,1-80,80,92.12951,92.12951,0,0,1-11.18751-1l45.125-45.0625c7.625-7.73438,13.78126-22.8125,13.78126-33.65625a48.01238,48.01238,0,0,0-48-48c-10.84375,0-25.90626,6.17187-33.65626,13.78125L224,188.125l-46.06251-46.10938c-7.75-7.60937-22.81249-13.78124-33.65624-13.78124a48.01238,48.01238,0,0,0-48,48c0,10.84374,6.15625,25.9375,13.78125,33.67187L155.1875,255A92.12916,92.12916,0,0,1,144,256a80,80,0,1,1,80-80,80,80,0,0,1,160,0ZM208,336V262.625l-75.3125-75.3125a18.38329,18.38329,0,0,1-4.375-11.01562,15.97086,15.97086,0,0,1,16-16,18.49292,18.49292,0,0,1,11,4.39062L224,233.375l68.68749-68.6875a18.49294,18.49294,0,0,1,11-4.39062,15.97086,15.97086,0,0,1,16,16,18.38323,18.38323,0,0,1-4.375,11.01562L240,262.625V336a16,16,0,0,1-32,0Zm96,0a80.00157,80.00157,0,1,1-129.93751-62L176,275.875V336a48,48,0,0,0,96,0V275.875L273.93749,274A79.34533,79.34533,0,0,1,304,336Z\"]\n};\nvar faFog = {\n prefix: 'fal',\n iconName: 'fog',\n icon: [640, 512, [], \"f74e\", \"M168 320h304c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7C475.8 67.4 437.9 32 392 32c-17.8 0-34.8 5.3-49.2 15.2C320.3 17.7 285.5 0 248 0c-66.2 0-120 53.8-120 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104zm-18.7-173.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L351 82.1C361.9 70.4 376.4 64 392 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72s-32.3 72-72 72H168c-39.7 0-72-32.3-72-72 0-32.4 21.9-60.8 53.3-69.3zM216 480H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm416 0H296c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-56-72v-16c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8z\"]\n};\nvar faFolder = {\n prefix: 'fal',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M194.74 96l54.63 54.63c6 6 14.14 9.37 22.63 9.37h192c8.84 0 16 7.16 16 16v224c0 8.84-7.16 16-16 16H48c-8.84 0-16-7.16-16-16V112c0-8.84 7.16-16 16-16h146.74M48 64C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48z\"]\n};\nvar faFolderDownload = {\n prefix: 'fal',\n iconName: 'folder-download',\n icon: [512, 512, [], \"e053\", \"M464,128H272L217.37,73.37A32,32,0,0,0,194.74,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM314.85,288,256,350l-58.84-62ZM480,400a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V112A16,16,0,0,1,48,96H194.74L240,141.27V256H187.35a26.94,26.94,0,0,0-25,16.72,28.38,28.38,0,0,0,5.44,30.81l68.12,71.78c10.69,11.19,29.51,11.2,40.19,0l68.12-71.75a28.43,28.43,0,0,0,5.44-30.83,26.94,26.94,0,0,0-25-16.72H272V160H464a16,16,0,0,1,16,16Z\"]\n};\nvar faFolderMinus = {\n prefix: 'fal',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M344 272H168c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM194.74 96l54.63 54.63c6 6 14.14 9.37 22.63 9.37h192c8.84 0 16 7.16 16 16v224c0 8.84-7.16 16-16 16H48c-8.84 0-16-7.16-16-16V112c0-8.84 7.16-16 16-16h146.74M48 64C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48z\"]\n};\nvar faFolderOpen = {\n prefix: 'fal',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M527.95 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h385.057c28.068 0 54.135-14.733 68.599-38.84l67.453-112.464C588.24 264.812 565.285 224 527.95 224zM48 96h146.745l64 64H432c8.837 0 16 7.163 16 16v48H171.177c-28.068 0-54.135 14.733-68.599 38.84L32 380.47V112c0-8.837 7.163-16 16-16zm493.695 184.232l-67.479 112.464A47.997 47.997 0 0 1 433.057 416H44.823l82.017-136.696A48 48 0 0 1 168 256h359.975c12.437 0 20.119 13.568 13.72 24.232z\"]\n};\nvar faFolderPlus = {\n prefix: 'fal',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L217.37,73.37A32,32,0,0,0,194.74,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128Zm16,272a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V112A16,16,0,0,1,48,96H194.74l54.63,54.63A32,32,0,0,0,272,160H464a16,16,0,0,1,16,16ZM339.5,272h-68V204a12,12,0,0,0-12-12h-8a12,12,0,0,0-12,12v68h-68a12,12,0,0,0-12,12v8a12,12,0,0,0,12,12h68v68a12,12,0,0,0,12,12h8a12,12,0,0,0,12-12V304h68a12,12,0,0,0,12-12v-8A12,12,0,0,0,339.5,272Z\"]\n};\nvar faFolderTimes = {\n prefix: 'fal',\n iconName: 'folder-times',\n icon: [512, 512, [], \"f65f\", \"M329.54 225.77l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0L256 265.37l-50.91-50.91c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l50.9 50.92-50.91 50.91c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l50.92-50.9 50.91 50.91c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L278.63 288l50.91-50.91a8.015 8.015 0 0 0 0-11.32zM194.74 96l54.63 54.63c6 6 14.14 9.37 22.63 9.37h192c8.84 0 16 7.16 16 16v224c0 8.84-7.16 16-16 16H48c-8.84 0-16-7.16-16-16V112c0-8.84 7.16-16 16-16h146.74M48 64C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48z\"]\n};\nvar faFolderTree = {\n prefix: 'fal',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M288 224h224a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32H400L368 0h-80a32 32 0 0 0-32 32v64H64V8a8 8 0 0 0-8-8H40a8 8 0 0 0-8 8v392a16 16 0 0 0 16 16h208v64a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32H400l-32-32h-80a32 32 0 0 0-32 32v64H64V128h192v64a32 32 0 0 0 32 32zm0 96h66.74l32 32H512v128H288zm0-288h66.74l32 32H512v128H288z\"]\n};\nvar faFolderUpload = {\n prefix: 'fal',\n iconName: 'folder-upload',\n icon: [512, 512, [], \"e054\", \"M464,128H272L217.37,73.37A32,32,0,0,0,194.74,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128Zm16,272a16,16,0,0,1-16,16H272V319.7h52.66a26.94,26.94,0,0,0,25-16.72,28.38,28.38,0,0,0-5.44-30.81l-68.12-71.78c-10.69-11.19-29.51-11.2-40.19,0l-68.12,71.75A28.43,28.43,0,0,0,162.34,303a26.94,26.94,0,0,0,25,16.72H240V416H48a16,16,0,0,1-16-16V112A16,16,0,0,1,48,96H194.74l54.63,54.63A32,32,0,0,0,272,160H464a16,16,0,0,1,16,16ZM197.15,287.7l58.84-62,58.84,62Z\"]\n};\nvar faFolders = {\n prefix: 'fal',\n iconName: 'folders',\n icon: [640, 512, [], \"f660\", \"M592 64H400L345.37 9.37c-6-6-14.14-9.37-22.63-9.37H176c-26.51 0-48 21.49-48 48v80H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48v-80h80c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zM480 464c0 8.84-7.16 16-16 16H48c-8.84 0-16-7.16-16-16V176c0-8.84 7.16-16 16-16h80v176c0 26.51 21.49 48 48 48h304v80zm128-128c0 8.84-7.16 16-16 16H176c-8.84 0-16-7.16-16-16V48c0-8.84 7.16-16 16-16h146.74l54.63 54.63c6 6 14.14 9.37 22.63 9.37h192c8.84 0 16 7.16 16 16v224z\"]\n};\nvar faFont = {\n prefix: 'fal',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M424 448h-36.6L247.13 42.77A16 16 0 0 0 232 32h-16a16 16 0 0 0-15.12 10.77L60.6 448H24a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H94.48l44.3-128h170.44l44.31 128H312a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM149.86 288L224 73.8 298.14 288z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fal',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFontCase = {\n prefix: 'fal',\n iconName: 'font-case',\n icon: [640, 512, [], \"f866\", \"M632 160h-16a8 8 0 0 0-8 8v36.14C584.54 177.3 550.45 160 512 160a128 128 0 0 0-128 128v32a128 128 0 0 0 128 128c38.45 0 72.54-17.3 96-44.14V440a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8zm-24 160a96 96 0 0 1-192 0v-32a96 96 0 0 1 192 0zM200.57 73.86A16 16 0 0 0 185.79 64h-19.58a16 16 0 0 0-14.77 9.86L.57 436.93A8 8 0 0 0 8 448h17.29a8 8 0 0 0 7.39-4.93L83.82 320h184.37l51.13 123.07a8 8 0 0 0 7.39 4.93h17.34a8 8 0 0 0 7.39-11.07zM97.11 288L176 98.16 254.89 288z\"]\n};\nvar faFootballBall = {\n prefix: 'fal',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M344.2 182.5l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.7 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.4-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.3c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.3 3 3.3 8 .2 11.2zm57.3 227.2C263.6 547.9 75.7 495.3 51.9 488.9c-18.2-4.9-32.4-19.1-37.2-37.3-17.1-64.7-42.9-226.4 79.8-349.3C232.4-35.9 420.3 16.7 444.1 23.1c18.2 4.9 32.4 19.1 37.2 37.3 17.1 64.7 42.9 226.4-79.8 349.3zM435.9 54c-20.3-5.4-50.8-11.4-86.3-13.2l113.9 113.9c-1.6-35.7-7.7-66.1-13-86.1-1.9-7.1-7.5-12.7-14.6-14.6zM60.1 458c20.3 5.4 50.8 11.4 86.3 13.2L32.6 357.3c1.6 35.7 7.7 66.1 13 86.1 1.8 7.1 7.4 12.7 14.5 14.6zm402.7-258.8L304.6 41.1c-74.2 5.3-137.2 33.3-187.5 83.7-58.4 58.5-79.3 127.3-83.9 187.9l158.1 158.1c74.2-5.3 137.2-33.3 187.5-83.7 58.5-58.4 79.4-127.2 84-187.9z\"]\n};\nvar faFootballHelmet = {\n prefix: 'fal',\n iconName: 'football-helmet',\n icon: [512, 512, [], \"f44f\", \"M480 320H355.5l-15.2-76 136.8-17.8c9-1.2 15.6-9.8 13.9-18.7C468.4 93.8 368.3 8 248 8 114.9 8 18.2 109.5 2.6 219.9-7.6 292 13.3 361.2 53.7 412.1c3.1 3.9 7.8 6.1 12.8 6.1H120l85.7 42.9c9.3 4.7 19.4 6.9 29.3 6.9 46.5 0 78.1-49.2 60.9-92.1l-9.5-23.9h42.9l9.5 49.4c9.5 47.4 48 83.2 95.9 89.2 44 5.5 42.5 5.4 45.3 5.4 22.5 0 32-19.7 32-32V352c0-17.7-14.3-32-32-32zm-206.4 0l-10.3-25.7c-17.9-44.9 45.1-46.2 45.2-46.2l14.4 71.9h-49.3zm11.2-101.1c-41.4 5.4-66.7 48.4-51.2 87.2l32.6 83.7c5 12.5 2.1 26.7-7.4 36.2-12.8 12.8-29.3 11-38.8 6.3-88.6-44.3-82.9-43.6-92.5-48.4H74.1c-33.9-45.8-48-102.2-39.9-159.6C47.5 130.6 131.2 40 248 40c96.8 0 181.4 64.9 207.5 156.7l-170.7 22.2zM480 464l-41.3-5.2c-25.9-3.2-48-18.7-60.1-40.7H480V464zm0-80H368.3l-6.4-32H480v32zm-304-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24z\"]\n};\nvar faForklift = {\n prefix: 'fal',\n iconName: 'forklift',\n icon: [640, 512, [], \"f47a\", \"M416 368.4v-99.2c0-8.7-1.8-17.2-5.2-25.2L332.5 61.1C324.9 43.4 307.6 32 288.3 32H144c-26.5 0-48 21.5-48 48v112H48c-26.5 0-48 21.5-48 48v192c0 44.2 35.8 80 80 80 38.7 0 71-27.5 78.4-64h131.2c7.4 36.5 39.7 64 78.4 64 44.2 0 80-35.8 80-80 0-26.1-12.7-49-32-63.6zM128 80c0-8.8 7.2-16 16-16h144.3c6.4 0 12.2 3.8 14.7 9.7l78.4 182.8c1.7 4 2.6 8.2 2.6 12.6V288H247.7c-11.4 0-22.5-4.1-31.2-11.5L128 200.6V80zM80 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm209.6-64H158.4c-7.4-36.5-39.7-64-78.4-64-18.1 0-34.6 6.2-48 16.4V240c0-8.8 7.2-16 16-16h58.1l89.5 76.7c14.5 12.4 33 19.3 52 19.3H384v33.6c-5.2-1.1-10.5-1.6-16-1.6-38.7 0-71 27.5-78.4 64zm78.4 64c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm264-64H512V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v432c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faForward = {\n prefix: 'fal',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M244.5 230.9L52.5 71.4C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160.5c15.3-12.9 15.3-36.5 0-49.2zM224 255.4L32 416V96l192 159.4zm276.5-24.5l-192-159.4C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160.5c15.3-12.9 15.3-36.5 0-49.2zM480 255.4L288 416V96l192 159.4z\"]\n};\nvar faFragile = {\n prefix: 'fal',\n iconName: 'fragile',\n icon: [288, 512, [], \"f4bb\", \"M213.9 480H160V350.3c76.7-8.7 134.6-77.6 127.4-157.6l-16-178.1C270.7 6.3 263.9 0 255.7 0H32.3c-8.2 0-15 6.3-15.7 14.6L.6 192.7c-7.2 80 50.7 148.9 127.4 157.6V480H74.1c-24.5 0-33.2 32-20 32h179.8c13.1 0 4.5-32-20-32zM32.5 195.5L47.1 32h71.8L154 90.5c-82.7 49.6-60.8 36.5-86.3 51.8 27.1 21 12.5 9.7 113.5 87.9 3.3 2.5 8 2.3 11-.7 3.3-3.2 3.3-8.5 0-11.8l-70.5-70.6c72.1-43.3 58.3-35 76.2-45.7L156.3 32h84.6l14.6 163.5C260.6 252.7 218.8 320 144 320S27.3 252.9 32.5 195.5z\"]\n};\nvar faFrenchFries = {\n prefix: 'fal',\n iconName: 'french-fries',\n icon: [512, 512, [], \"f803\", \"M437.29 88.14a31.71 31.71 0 0 0-30.47-6.76l-9.9 3 2.58-14.77a32 32 0 0 0-40.69-36.19l-34.25 10.21A31.61 31.61 0 0 0 304 63.17V48a31.86 31.86 0 0 0-17.69-28.63l-32-16A32 32 0 0 0 208 32v15.72l-4-21.56a32 32 0 0 0-50.81-19.62l-28.47 21.59a31.65 31.65 0 0 0-12.16 31.39L117.32 85l-12.14-3.63a32 32 0 0 0-40.68 36.16L84 228.87a31.5 31.5 0 0 0-9 7.13 32 32 0 0 0-6.28 27l49.78 224a32 32 0 0 0 31.23 25h212.54a32 32 0 0 0 31.24-25.06l49.78-224A30 30 0 0 0 428 228.87l19.5-111.31a31.75 31.75 0 0 0-10.21-29.42zm-46.53 31.44L416 112l-20.19 115.52A31.68 31.68 0 0 0 380 243.81c-3.19 7.73-8.38 14.83-14.73 21.39zm-57-45.3L368 64l-39.44 225.6a163.15 163.15 0 0 1-24.56 8.32v-53.67zM272 48v255.17c-5.28.41-10.57.84-16 .84s-10.72-.43-16-.84V32zm-99.47-16L208 221.71v76.21a169.52 169.52 0 0 1-19.49-6.24L144 53.64zm-71.94 64.71L96 112l27.94 8.36 28 149.89c-9-7.85-16-16.7-20-26.47a31.68 31.68 0 0 0-15.82-16.31L95.93 112zM362.27 480H149.73L100 256c19.44 47.11 83.53 80 156.05 80s136.62-32.88 156.05-80z\"]\n};\nvar faFrog = {\n prefix: 'fal',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 120c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm186.67 328h-67.48L384.31 332.27l161.98-91.6A58.16 58.16 0 0 0 576 189.94c0-21.39-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.27-98.99-41.27C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.89 29.08 480 64 480h309.33c5.89 0 10.67-4.78 10.67-10.67 0-11.78-9.55-21.33-21.33-21.33h-62.66l34.46-45.92a103.734 103.734 0 0 0 17.49-56.06L472.81 480h92.52c5.89 0 10.67-4.78 10.67-10.67 0-11.78-9.55-21.33-21.33-21.33zM346.84 313.08c-6.21-19.81-18.03-38-35.61-51.5-37.91-29.12-91.51-26.62-129.75 2.07l-31.07 23.31c-7.06 5.3-8.5 15.33-3.22 22.41 5.31 7.08 15.34 8.45 22.41 3.19l32.57-24.44c23.53-17.65 55.72-21.33 81.24-6.71 37 21.2 47.35 68.58 24.96 102.19L260.03 448H64c-17.59 0-31.95-13.96-32-31.12-.45-149.77 111.53-273.36 260.48-287.48l24.1-2.29 4.36-23.81C325.1 80.53 344.9 64 368 64c23.07 0 42.87 16.5 47.06 39.24l3.46 18.71 18.08 5.9c.56.18 56.15 18.43 93.54 38.92 8.55 4.68 13.86 13.56 13.86 23.17 0 9.45-5.12 18.2-13.37 22.82L346.84 313.08z\"]\n};\nvar faFrostyHead = {\n prefix: 'fal',\n iconName: 'frosty-head',\n icon: [384, 512, [], \"f79b\", \"M376 224h-56V32c0-17.7-14.3-32-32-32H96C78.3 0 64 14.3 64 32v192H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h37.5C27 284 16 317.5 16 353.7c0 62.8 32.8 117.5 82 148.8 10.7 6.8 23.6 9.5 36.2 9.5h21.6c-4.4-6.3-11.8-17-20.8-32h-.7c-5.5 0-13.2-.8-19-4.5C73.1 448.7 48 403.2 48 353.7c0-37.9 14.9-72 38.8-97.7h211.7c17.6 19.5 30.2 43.7 35.1 70.4 10.3 57.1-12.6 112.9-59.7 145.7-7.4 5.1-15.9 7.8-24.8 7.8-9 15-16.5 25.7-20.8 32h20.8c15.4 0 30.5-4.8 43.1-13.6 53.9-37.6 86.1-104.1 72.8-177.7-4.3-23.6-13.9-45.3-26.9-64.7H376c4.4 0 8-3.6 8-8v-16c0-4.3-3.6-7.9-8-7.9zm-88 0H96v-64h192v64zm0-96H96V32h192v96zm-42.7 277.3c0-29.4-23.9-53.3-53.3-53.3s-53.3 23.9-53.3 53.3c0 27.6 39.2 82.3 53.3 102.8 14.2-20.5 53.3-75.2 53.3-102.8zM192 384c11.8 0 21.3 9.6 21.3 21.3 0 6.7-9.7 26-21.3 45.2-11.6-19.1-21.3-38.5-21.3-45.2 0-11.7 9.5-21.3 21.3-21.3zm64-32c11.8 0 21.3-9.6 21.3-21.3 0-11.8-9.6-21.3-21.3-21.3-11.8 0-21.3 9.6-21.3 21.3 0 11.7 9.5 21.3 21.3 21.3zm-106.7-21.3c0-11.8-9.6-21.3-21.3-21.3-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3 11.8 0 21.3-9.6 21.3-21.3z\"]\n};\nvar faFrown = {\n prefix: 'fal',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm0-152c-44.4 0-86.2 19.6-114.8 53.8-5.7 6.8-4.8 16.9 2 22.5 6.8 5.7 16.9 4.8 22.5-2 22.4-26.8 55.3-42.2 90.2-42.2s67.8 15.4 90.2 42.2c5.3 6.4 15.4 8 22.5 2 6.8-5.7 7.7-15.8 2-22.5C334.2 339.6 292.4 320 248 320zm-80-80c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faFrownOpen = {\n prefix: 'fal',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm-80-232c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-39.7 0-102.6 23.7-111.5 74.5-1.9 10.9 2 22.2 10.3 29.5 8.2 7.3 19.9 9.9 30.6 6.6 29.3-9 56.4-14.6 70.6-14.6s41.3 5.6 70.6 14.6c7.7 2.4 20.1 2.6 30.6-6.6 8.2-7.3 12.2-18.6 10.3-29.5-8.9-50.8-71.8-74.5-111.5-74.5zm0 64c-17.7 0-46.9 5.8-80 16 5.2-29.7 50.1-48 80-48s74.8 18.3 80 48c-33.1-10.2-62.3-16-80-16z\"]\n};\nvar faFunction = {\n prefix: 'fal',\n iconName: 'function',\n icon: [640, 512, [], \"f661\", \"M308.8 106.6l-12.7-9.1c-3.6-2.6-8.6-1.8-11.2 1.8-39.9 56.9-61 122-61 188.7s21.1 131.8 61 188.7c2.5 3.6 7.6 4.4 11.2 1.8l12.7-9.1c3.4-2.5 4.2-7.2 1.7-10.6-36.2-51.6-55.2-110.5-55.2-170.8s19.1-119.1 55.2-170.8c2.5-3.4 1.8-8.1-1.7-10.6zM224 40c0-4.4-3.6-8-8-8h-56c-44.2 0-80 35.8-80 80v80H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h72v144c0 26.5-21.5 48-48 48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h24c44.2 0 80-35.8 80-80V224h72c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-72v-80c0-26.5 21.5-48 48-48h56c4.4 0 8-3.6 8-8zm355 59.3c-2.5-3.6-7.6-4.4-11.2-1.8l-12.7 9.1c-3.4 2.5-4.2 7.2-1.7 10.6 36.2 51.6 55.2 110.5 55.2 170.8s-19.1 119.1-55.2 170.8c-2.4 3.5-1.7 8.2 1.7 10.6l12.7 9.1c3.6 2.6 8.7 1.8 11.2-1.8 39.9-56.9 61-122 61-188.7s-21.1-131.8-61-188.7zm-69.3 122.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-55 55-55-55c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l55 55-55 55c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l55-55 55 55c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-55-55 55-55c3.1-3.1 3.1-8.1 0-11.3z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fal',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M464.02 160c-4.7 0-9.32.34-13.93.7L568.06 46.09C585.02 29.13 573.01 0 548.97 0H27.03C3.05 0-9.05 29.1 7.94 46.09L224 256v182c0 8.81 4.3 17.07 11.52 22.12l74 46.98c4.82 3.37 10.15 4.9 15.36 4.9 13.99 0 27.12-11.03 27.12-27.02v-13.22c30.43 25.12 69.46 40.21 112.02 40.21 97.34 0 175.98-78.78 175.98-175.98C640 238.64 561.22 160 464.02 160zM320 474l-63.74-38.25-.26-.22V242.47L39.35 32h497.29l-150.7 146.41c-58.01 28.78-97.9 88.42-97.9 157.56 0 37.65 11.88 72.42 31.96 101.01V474zm144.02 5.96c-79.39 0-143.98-64.59-143.98-143.98S384.63 192 464.02 192 608 256.59 608 335.98s-64.59 143.98-143.98 143.98zm27.11-152.54l-45-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V240c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 19.97 12.98 37.81 31.58 43.39l45 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19H450.8c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V432c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-19.97-12.98-37.81-31.58-43.39z\"]\n};\nvar faFutbol = {\n prefix: 'fal',\n iconName: 'futbol',\n icon: [496, 512, [], \"f1e3\", \"M483.7 179.4C449.7 74.6 352.5 8 248.1 8 81.2 8-40 171.4 12.3 332.6 46.3 437.4 143.7 504 248 504c166.9 0 288-163.4 235.7-324.6zm-43 173.7l-94.3 11.6-17.8-24.9 33.7-104.1 28.9-9 69.6 65c-3.6 21.1-10.3 41.8-20.1 61.4zM35.6 291.5l69.4-64.9 28.9 9 33.9 103.7-18.1 25.2-94.2-11.6c-13-26-17.2-45.2-19.9-61.4zm196.5-180.7v32.9L146.2 206l-31.5-9.8-18-93.9c15.3-15.1 32.8-27.8 52-37.8l83.4 46.3zm149.4 85.4L350 206l-85.9-62.3v-32.9l83.6-46.4c19.1 10 36.7 22.7 52 37.9l-18.2 93.9zm-215.4 35l82-59.5 82.1 59.6-31.1 96H197.5l-31.4-96.1zm297.7 19.5L412.7 203l13.3-68.3c34.5 50.8 37.3 97.2 37.8 116zM309.2 49.2l-61.1 33.9-61-33.8c71.5-21.2 122-.1 122.1-.1zM70.3 134.1L83.5 203l-51.1 47.5c.8-31.8 8.7-63.4 23.6-92.6 4.2-8.3 9.1-16.2 14.3-23.8zm7.5 254l68.7 8.4 29.2 62.7c-38.8-13.8-72.7-38.5-97.9-71.1zm137.9 81.3l-40.1-86 17.4-24.2h110.2l17.3 24.2-40.1 86c-22.7 3.5-42.4 3.4-64.7 0zm104.8-10.2l29.2-62.7 69-8.5c-25 32.6-58.8 57.1-98.2 71.2z\"]\n};\nvar faGalaxy = {\n prefix: 'fal',\n iconName: 'galaxy',\n icon: [512, 512, [], \"e008\", \"M255.99959,192.00854a63.9983,63.9983,0,1,0,63.99865,63.9983A64.07181,64.07181,0,0,0,255.99959,192.00854Zm0,95.99744a31.99915,31.99915,0,1,1,31.99932-31.99914A31.99832,31.99832,0,0,1,255.99959,288.006Zm250.46349-21.09319-.03125-.01562C489.18219,193.74287,428.121,134.74445,354.59127,120.073a206.301,206.301,0,0,0-40.28627-4.02919,196.07944,196.07944,0,0,0-20.55621,1.07614A106.75469,106.75469,0,0,1,344.56023,71.293C374.41507,58.54141,383.58285.01953,313.95735,0a204.93571,204.93571,0,0,0-47.083,5.5604c-73.12347,17.29641-132.12223,78.326-146.80942,151.87094a202.428,202.428,0,0,0-2.84369,60.87338A106.56506,106.56506,0,0,1,71.28471,167.478C56.4569,132.69372,4.77439,140.39274,1.00494,178.19641a201.27566,201.27566,0,0,0,4.5624,66.92009C22.817,318.2708,83.8782,377.26922,157.4079,391.94071a204.38064,204.38064,0,0,0,40.18276,4.035,197.5223,197.5223,0,0,0,20.65972-1.082,106.75465,106.75465,0,0,1-50.81144,45.8269C137.61535,453.45859,128.43781,512,198.0008,512a205.81012,205.81012,0,0,0,47.124-5.54673c73.12347-17.29641,132.12223-78.326,146.80942-151.87094a202.428,202.428,0,0,0,2.84369-60.87338,106.56506,106.56506,0,0,1,45.93654,50.82677c14.904,34.96391,66.524,26.93483,70.27978-10.71846A201.96274,201.96274,0,0,0,506.46308,266.91279Zm-27.31,63.72877c-.4414,4.40418-6.95689,6.13656-9.01739,1.31247a138.94319,138.94319,0,0,0-59.73312-66.17011c-22.59719-12.64224-50.163,5.48618-47.44823,31.27651a170.17135,170.17135,0,0,1-2.40034,51.25449c-12.279,61.4925-61.62761,112.5302-122.75133,126.98879a169.93235,169.93235,0,0,1-56.40506,3.85732,4.69412,4.69412,0,0,1-1.36912-9.02124,139.25291,139.25291,0,0,0,66.11385-59.56091c11.97436-21.29631-3.44524-47.68427-27.88613-47.68427-4.89443,0-24.96237,3.59951-54.58675-2.33588C102.15516,348.28562,51.1367,298.94124,36.70341,237.73584a169.4596,169.4596,0,0,1-3.85735-56.36568c.4375-4.37293,6.95884-6.13851,9.01739-1.31051a138.952,138.952,0,0,0,59.73313,66.1701C124.1,258.81731,151.7713,240.849,149.0448,214.95129a170.17168,170.17168,0,0,1,2.40034-51.25449C167.1245,85.17937,242.46667,23.808,330.60349,32.85069a4.69617,4.69617,0,0,1,1.36716,9.02319,139.24308,139.24308,0,0,0-66.11385,59.56091c-11.97436,21.29631,3.44524,47.68427,27.88614,47.68427,4.7831,0,24.79635-3.58584,54.58674,2.33393C428.58386,167.46428,487.97128,243.86849,479.15311,330.64156Z\"]\n};\nvar faGameBoard = {\n prefix: 'fal',\n iconName: 'game-board',\n icon: [512, 512, [], \"f867\", \"M256 160h-96v96h96zm-32 64h-32v-32h32zm224 32v-96h-96v96zm-64-64h32v32h-32zM352 64h-96v96h96zm-32 64h-32V96h32zM160 256H64v96h96zm-32 64H96v-32h32zm32 128h96v-96h-96zm32-64h32v32h-32zm256 64v-96h-96v96zm-64-64h32v32h-32zm-128-32h96v-96h-96zm32-64h32v32h-32zM480 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm0 480H32V32h448zM64 64v96h96V64zm64 64H96V96h32z\"]\n};\nvar faGameBoardAlt = {\n prefix: 'fal',\n iconName: 'game-board-alt',\n icon: [512, 512, [], \"f868\", \"M480 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm0 480H32V32h448zm-32-32V256H256v192zM288 288h128v128H288zM256 64H64v192h192zm-32 160H96V96h128z\"]\n};\nvar faGameConsoleHandheld = {\n prefix: 'fal',\n iconName: 'game-console-handheld',\n icon: [384, 512, [], \"f8bb\", \"M232 336a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm40-24a24 24 0 1 0 24-24 24 24 0 0 0-24 24zM352 0H32A32 32 0 0 0 0 32v448a32 32 0 0 0 32 32h256a96 96 0 0 0 96-96V32a32 32 0 0 0-32-32zm0 416a64.07 64.07 0 0 1-64 64H32V32h320zM112 224h144a32 32 0 0 0 32-32V80a16 16 0 0 0-16-16H112a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16zm16-128h128v96H128zM72 352h24v24a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-24h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-24v-24a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\"]\n};\nvar faGamepad = {\n prefix: 'fal',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM480 384a127 127 0 0 1-91.37-38.4l-9.43-9.6H260.8l-9.41 9.6A127 127 0 0 1 160 384c-70.57 0-128-57.42-128-128s57.43-128 128-128h320c70.61 0 128 57.42 128 128s-57.43 128-128 128zM222.18 236.36h-42.54v-42.54a9.86 9.86 0 0 0-9.82-9.82h-19.64a9.86 9.86 0 0 0-9.82 9.82v42.54H97.82a9.86 9.86 0 0 0-9.82 9.82v19.64a9.86 9.86 0 0 0 9.82 9.82h42.54v42.54a9.86 9.86 0 0 0 9.82 9.82h19.64a9.86 9.86 0 0 0 9.82-9.82v-42.54h42.54a9.86 9.86 0 0 0 9.82-9.82v-19.64a9.86 9.86 0 0 0-9.82-9.82zM448 256a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm64-64a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]\n};\nvar faGamepadAlt = {\n prefix: 'fal',\n iconName: 'gamepad-alt',\n icon: [640, 512, [], \"f8bc\", \"M638.59 368.22l-33.37-211.59c-8.86-50.26-48.4-90.77-100.66-103.13h-.07a803.14 803.14 0 0 0-369 0C83.17 65.86 43.64 106.36 34.78 156.63L1.41 368.22C-8.9 426.73 38.8 480 101.51 480c49.67 0 93.77-30.07 109.48-74.64l7.52-21.36h203l7.49 21.36C444.72 449.93 488.82 480 538.49 480c62.71 0 110.41-53.27 100.1-111.78zm-45.11 54.88c-13.28 15.82-33.33 24.9-55 24.9-36.2 0-68.07-21.41-79.29-53.27l-7.53-21.36-7.52-21.37H195.86l-7.53 21.37-7.53 21.36C169.58 426.59 137.71 448 101.51 448c-21.66 0-41.71-9.08-55-24.9A59.93 59.93 0 0 1 33 373.2l33.28-211c6.66-37.7 36.72-68.14 76.53-77.57a771.07 771.07 0 0 1 354.38 0c39.84 9.42 69.87 39.86 76.42 77l33.47 212.15c3.11 17.64-1.72 35.16-13.6 49.32zm-339.3-218.74h-42.54v-42.54a9.86 9.86 0 0 0-9.82-9.82h-19.64a9.86 9.86 0 0 0-9.82 9.82v42.54h-42.54a9.86 9.86 0 0 0-9.82 9.82v19.64a9.86 9.86 0 0 0 9.82 9.82h42.54v42.54a9.86 9.86 0 0 0 9.82 9.82h19.64a9.86 9.86 0 0 0 9.82-9.82v-42.54h42.54a9.86 9.86 0 0 0 9.82-9.82v-19.64a9.86 9.86 0 0 0-9.82-9.82zM416 224a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm64-64a32 32 0 1 0 32 32 32 32 0 0 0-32-32z\"]\n};\nvar faGarage = {\n prefix: 'fal',\n iconName: 'garage',\n icon: [640, 512, [], \"e009\", \"M368,416H272a16,16,0,0,0,0,32h96a16,16,0,0,0,0-32ZM610.59,118.33,338.59,3.75a48,48,0,0,0-37.18,0l-272,114.58A47.84,47.84,0,0,0,0,162.53V504a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V162.53a16,16,0,0,1,9.81-14.79l272-114.6a15.75,15.75,0,0,1,12.38,0l272,114.6A15.91,15.91,0,0,1,608,162.53V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V162.53A47.84,47.84,0,0,0,610.59,118.33ZM512,192H128a32,32,0,0,0-32,32V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V352H512V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V224A32,32,0,0,0,512,192Zm0,128H128V224H512Z\"]\n};\nvar faGarageCar = {\n prefix: 'fal',\n iconName: 'garage-car',\n icon: [640, 512, [], \"e00a\", \"M240,384a16,16,0,1,0,16,16A16,16,0,0,0,240,384Zm160,0a16,16,0,1,0,16,16A16,16,0,0,0,400,384ZM610.59,118.33,338.59,3.75a48,48,0,0,0-37.18,0l-272,114.58A47.84,47.84,0,0,0,0,162.53V504a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V162.53a16,16,0,0,1,9.81-14.79l272-114.6a15.75,15.75,0,0,1,12.38,0l272,114.6A15.91,15.91,0,0,1,608,162.53V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V162.53A47.84,47.84,0,0,0,610.59,118.33ZM512,192H128a32,32,0,0,0-32,32V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V224H512V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V224A32,32,0,0,0,512,192ZM443.92,337.69l-9.42-37.75A58,58,0,0,0,378.22,256H261.78A58,58,0,0,0,205.5,300l-9.42,37.73A47.88,47.88,0,0,0,160,384v48a32,32,0,0,0,32,32v32a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V464H400v32a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V464a32,32,0,0,0,32-32V384A47.88,47.88,0,0,0,443.92,337.69Zm-207.36-30A26,26,0,0,1,261.78,288H378.22a26,26,0,0,1,25.22,19.69L410.51,336h-181ZM448,432H192V384a16,16,0,0,1,16-16H432a16,16,0,0,1,16,16Z\"]\n};\nvar faGarageOpen = {\n prefix: 'fal',\n iconName: 'garage-open',\n icon: [640, 512, [], \"e00b\", \"M610.59,118.33,338.59,3.75a48,48,0,0,0-37.18,0l-272,114.58A47.84,47.84,0,0,0,0,162.53V504a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V162.53a16,16,0,0,1,9.81-14.79l272-114.6a15.75,15.75,0,0,1,12.38,0l272,114.6A15.91,15.91,0,0,1,608,162.53V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V162.53A47.84,47.84,0,0,0,610.59,118.33ZM512,192H128a32,32,0,0,0-32,32V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V288H512V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V224A32,32,0,0,0,512,192Zm0,64H128V224H512Zm-68.08,81.67L439.51,320h-33l4,16h-181l4-16h-33l-4.41,17.67A47.88,47.88,0,0,0,160,384v48a32,32,0,0,0,32,32v32a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V464H400v32a16,16,0,0,0,16,16h16a16,16,0,0,0,16-16V464a32,32,0,0,0,32-32V384A47.88,47.88,0,0,0,443.92,337.69ZM448,432H192V384a16,16,0,0,1,16-16H432a16,16,0,0,1,16,16ZM240,384a16,16,0,1,0,16,16A16,16,0,0,0,240,384Zm160,0a16,16,0,1,0,16,16A16,16,0,0,0,400,384Z\"]\n};\nvar faGasPump = {\n prefix: 'fal',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M502.6 120L409 26.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3L416 78.6V160c0 26.5 21.5 48 48 48h16v174.2c0 15.9-10.9 30.8-26.6 33.4-20 3.3-37.4-12.1-37.4-31.6v-48c0-44.2-35.8-80-80-80h-16V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v416H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-24V288h16c26.5 0 48 21.5 48 48v44.4c0 31.9 21.7 61.5 53.2 66.7 40.1 6.6 74.8-24.3 74.8-63.1V142.6c0-8.5-3.4-16.6-9.4-22.6zM480 176h-16c-8.8 0-16-7.2-16-16v-49.4l32 32V176zM288 480H64V224h224v256zm0-288H64V64c0-17.6 14.4-32 32-32h160c17.6 0 32 14.4 32 32v128z\"]\n};\nvar faGasPumpSlash = {\n prefix: 'fal',\n iconName: 'gas-pump-slash',\n icon: [640, 512, [], \"f5f4\", \"M480 78.6V160c0 26.5 21.5 48 48 48h16v163.3l30.7 24.2c.7-3.8 1.3-7.5 1.3-11.5V142.6c0-8.5-3.4-16.6-9.4-22.6L473 26.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3zm32 32l32 32V176h-16c-8.8 0-16-7.2-16-16zm125 374.6L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM408 480h-24V367.5l-32-25.2V480H128V165.9l-32-25.2V480H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM160 32h160c17.6 0 32 14.4 32 32v156.1l32 25.2V64c0-35.3-28.6-64-64-64H160c-21.8 0-41 10.9-52.5 27.5l25.6 20.2C138.7 38.5 148.4 32 160 32z\"]\n};\nvar faGavel = {\n prefix: 'fal',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M500.892 186.561l-20.633-20.643c-12.912-12.912-32.416-14.337-46.732-5.448L351.53 78.474c8.888-14.315 7.465-33.82-5.448-46.731L325.44 11.108c-14.808-14.808-38.781-14.813-53.592 0L158.315 124.633c-14.774 14.775-14.774 38.815 0 53.591l20.643 20.644c12.659 12.657 32.118 14.473 46.725 5.439l29.692 29.692-58.803 58.803-8.082-8.082c-16.933-16.934-44.484-16.932-61.417 0L12.699 399.073c-16.932 16.933-16.932 44.484 0 61.417l38.81 38.811c16.931 16.932 44.482 16.933 61.417 0L227.28 384.927c16.932-16.933 16.932-44.484 0-61.417l-8.081-8.081 58.803-58.803 29.692 29.692c-9.031 14.607-7.218 34.067 5.44 46.725l20.643 20.643c14.776 14.776 38.815 14.776 53.591 0l113.525-113.533c14.808-14.809 14.811-38.781-.001-53.592zM204.653 362.3L90.3 476.652c-4.456 4.458-11.707 4.457-16.163 0v.001l-38.79-38.79c-4.456-4.456-4.456-11.707 0-16.163L149.7 307.348c4.456-4.457 11.706-4.458 16.162-.001l38.79 38.79c4.456 4.456 4.456 11.707.001 16.163zm273.62-144.776L364.74 331.058a5.896 5.896 0 0 1-8.337 0l-20.643-20.643a5.902 5.902 0 0 1-.001-8.336l16.478-16.474-125.842-125.841-16.474 16.475a5.902 5.902 0 0 1-8.336.001l-20.643-20.643a5.903 5.903 0 0 1 0-8.337L294.476 33.727a5.896 5.896 0 0 1 8.337 0l20.643 20.644a5.893 5.893 0 0 1-.001 8.336l-16.472 16.475L432.82 205.019l16.477-16.473a5.893 5.893 0 0 1 8.335 0l20.643 20.643v.001a5.893 5.893 0 0 1-.002 8.334z\"]\n};\nvar faGem = {\n prefix: 'fal',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M463.7 0H112.3c-4.2 0-8.1 2.2-10.3 5.8L1.7 168.6c-2.7 4.4-2.2 10.1 1.2 14l276 325.2c4.8 5.6 13.4 5.6 18.2 0l276-325.2c3.4-3.9 3.8-9.6 1.2-14L474 5.8c-2.2-3.6-6.1-5.8-10.3-5.8zm-13.6 36l74.3 124h-83L384.6 36h65.5zM345 36l56.8 124H174.1L231 36h114zm-219.1 0h65.5l-56.8 124h-83l74.3-124zM61.2 192h73L216 384 61.2 192zm112 0h229.5L288 455.8 173.2 192zM360 384l81.8-192h73L360 384z\"]\n};\nvar faGenderless = {\n prefix: 'fal',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 144c61.9 0 112 50 112 112 0 61.9-50 112-112 112-61.9 0-112-50-112-112 0-61.9 50-112 112-112m0-32C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fal',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M192 0c-1.96 0-3.93.03-5.91.09C81.01 3.24 0 94.92 0 200.05v263.92C0 473.61 7.89 480 16.12 480c3.93 0 7.94-1.46 11.2-4.72l24.92-18.53c2.86-2.12 6.21-3.16 9.54-3.16 4.43 0 8.82 1.83 11.97 5.38l42.95 48.35c3.12 3.12 7.22 4.69 11.31 4.69s8.19-1.56 11.31-4.69l40.72-45.85c3.18-3.58 7.57-5.38 11.96-5.38s8.78 1.79 11.96 5.38l40.72 45.85c3.12 3.12 7.22 4.69 11.31 4.69s8.19-1.56 11.31-4.69l42.95-48.35a15.994 15.994 0 0 1 21.51-2.22l24.92 18.53c3.26 3.26 7.27 4.72 11.2 4.72 8.22 0 16.12-6.39 16.12-16.03V192C384 85.96 298.04 0 192 0zm160 431.92l-1.13-.84c-8.34-6.21-18.24-9.48-28.64-9.48-13.71 0-26.79 5.88-35.89 16.12L256 471.87l-28.11-31.65c-9.1-10.25-22.18-16.12-35.89-16.12s-26.79 5.88-35.89 16.12L128 471.87l-30.34-34.15a48.017 48.017 0 0 0-35.89-16.12c-10.39 0-20.29 3.28-28.63 9.48l-1.14.84V200.05C32 110 101.56 34.64 187.05 32.08L192 32c88.22 0 160 71.78 160 160v239.92zM128 160c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm128 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faGift = {\n prefix: 'fal',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M464 144h-39.3c9.5-13.4 15.3-29.9 15.3-48 0-44.1-33.4-80-74.5-80-42.3 0-66.8 25.4-109.5 95.8C213.3 41.4 188.8 16 146.5 16 105.4 16 72 51.9 72 96c0 18.1 5.8 34.6 15.3 48H48c-26.5 0-48 21.5-48 48v96c0 8.8 7.2 16 16 16h16v144c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304h16c8.8 0 16-7.2 16-16v-96c0-26.5-21.5-48-48-48zm-187.8-3.6c49.5-83.3 66-92.4 89.3-92.4 23.4 0 42.5 21.5 42.5 48s-19.1 48-42.5 48H274l2.2-3.6zM146.5 48c23.4 0 39.8 9.1 89.3 92.4l2.1 3.6h-91.5c-23.4 0-42.5-21.5-42.5-48 .1-26.5 19.2-48 42.6-48zM192 464H80c-8.8 0-16-7.2-16-16V304h128v160zm0-192H32v-80c0-8.8 7.2-16 16-16h144v96zm96 192h-64V176h64v288zm160-16c0 8.8-7.2 16-16 16H320V304h128v144zm32-176H320v-96h144c8.8 0 16 7.2 16 16v80z\"]\n};\nvar faGiftCard = {\n prefix: 'fal',\n iconName: 'gift-card',\n icon: [576, 512, [], \"f663\", \"M528 128h-71.3c9.5-13.4 15.3-29.9 15.3-48 0-44.1-33.4-80-74.5-80-42.3 0-66.8 25.4-109.5 95.8C245.3 25.4 220.8 0 178.5 0 137.4 0 104 35.9 104 80c0 18.1 5.8 34.6 15.3 48H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-219.8-3.6c49.5-83.3 66-92.4 89.3-92.4 23.4 0 42.5 21.5 42.5 48s-19.1 48-42.5 48H306l2.2-3.6zM178.5 32c23.4 0 39.8 9.1 89.3 92.4l2.1 3.6h-91.5c-23.4 0-42.5-21.5-42.5-48 .1-26.5 19.2-48 42.6-48zM544 464c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16v-32h512v32zm0-64H32v-64h512v64zm0-96H32V176c0-8.84 7.16-16 16-16h201.38l-79.03 79.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L288 166.62l95.03 95.03c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L326.62 160H528c8.84 0 16 7.16 16 16v128z\"]\n};\nvar faGifts = {\n prefix: 'fal',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M608 224h-27.3c7.1-10 11.3-21.5 11.3-33.9 0-30.5-25.3-62.1-67.8-62.1-42.9 0-74.6 34.8-92.2 62.2-17.7-27.4-49.3-62.2-92.2-62.2-7.2 0-13.6 1.2-19.8 2.8V128c0-17.7-14.3-32-32-32h-70.4l43.1-30.8c3.6-2.6 4.4-7.6 1.9-11.2l-9.3-13c-2.6-3.6-7.6-4.4-11.2-1.9l-53.1 38 22.8-60.7c1.6-4.1-.5-8.7-4.7-10.3l-15-5.6c-4.1-1.6-8.8.5-10.3 4.7L160 63.3 138.2 5.2C136.6 1.1 132-1 127.9.5l-15 5.6c-4.1 1.6-6.2 6.2-4.7 10.3L131 77.1 78 39.2c-3.6-2.6-8.6-1.7-11.2 1.9l-9.3 13c-2.6 3.6-1.7 8.6 1.9 11.2l43 30.7H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-268.2-64c37.6 0 66 45.9 74.7 64H357c-21.9 0-34.4-6.2-41.1-11.4-7.8-6-11.9-13.8-11.9-22.5 0-14.8 13.4-30.1 35.8-30.1zM224 256v224H32V128h256v22c-10.3 11.4-16 25.8-16 40.1 0 12.4 4.1 23.9 11.3 33.9H256c-17.7 0-32 14.3-32 32zm192 224H256v-96h160v96zm0-128H256v-96h160v96zm108.2-192c22.4 0 35.8 15.3 35.8 30.1 0 8.7-4.1 16.5-11.9 22.5-6.7 5.2-19.2 11.4-41.1 11.4h-57.5c8.7-18.1 37.1-64 74.7-64zM608 480H448v-96h160v96zm0-128H448v-96h160v96z\"]\n};\nvar faGingerbreadMan = {\n prefix: 'fal',\n iconName: 'gingerbread-man',\n icon: [448, 512, [], \"f79d\", \"M224 336c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM192 88c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm32 184c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm32-120c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm192 152c0-44.1-35.9-80-80-80h-39.6c10.3-23.1 12.6-49.4 5.8-75.6-9.9-38.8-41.4-70.4-80-80.5C244.2 1.3 234.1 0 224 0c-30.5 0-59.1 11.9-80.6 33.4C121.9 54.9 110 83.5 110 114c0 16 3.4 31.7 9.8 46H80c-44.1 0-80 35.9-80 80s35.9 80 80 80h27.9l-58 61.6c-27.8 34.2-22.6 84.7 11.6 112.5C75.8 505.6 93.7 512 112 512c24.2 0 46.9-10.8 62.1-29.6l49.9-51.6 49.9 51.6c15.2 18.8 37.9 29.6 62.1 29.6 18.3 0 36.2-6.4 50.4-17.9 34.2-27.8 39.4-78.3 11.6-112.5L340 320h28c44.1 0 80-35.9 80-80zm-143.4 87.1l68.6 74.6c16.7 20.6 13.6 50.8-7 67.5-8.9 7.2-19.6 10.8-30.2 10.8-14 0-27.8-6.1-37.3-17.7l-49.9-51.6c-6.4-7.9-15.6-11.8-24.8-11.8s-18.4 3.9-24.8 11.8l-49.9 51.6C139.8 474 126 480 112 480c-10.6 0-21.3-3.5-30.2-10.8-20.6-16.7-23.7-46.9-7-67.5l68.6-74.6c12.7-15.7 1.6-39.1-18.6-39.1H80c-26.5 0-48-21.5-48-48s21.5-48 48-48h81.6c9.3 0 14.2-11.5 7.3-17.7C152.4 159.4 142 138 142 114c0-45.3 36.7-82 82-82 7.2 0 14.6.9 22.1 2.9 27.6 7.2 50.1 29.8 57.1 57.5 8.3 32.5-2.7 62.7-24 81.9-6.9 6.3-2.2 17.8 7.2 17.8H368c26.5 0 48 21.5 48 48s-21.5 48-48 48h-44.7c-20.2-.1-31.4 23.3-18.7 39z\"]\n};\nvar faGlass = {\n prefix: 'fal',\n iconName: 'glass',\n icon: [384, 512, [], \"f804\", \"M352 0H32A32 32 0 0 0 .06 34l32 448A32 32 0 0 0 64 512h256a32 32 0 0 0 31.94-30l32-448A32 32 0 0 0 352 0zm0 32l-9.15 128H41.14L32 32zM64 479.72L43.43 192h297.14L320 480z\"]\n};\nvar faGlassChampagne = {\n prefix: 'fal',\n iconName: 'glass-champagne',\n icon: [256, 512, [], \"f79e\", \"M255 212.3L228 27.4C225.7 11.7 212.2 0 196.3 0H59.7C43.8 0 30.3 11.7 28 27.4L1 212.3c-9 68.8 41.9 129.5 111 138V480H58.7C43.9 480 32 491.9 32 506.7c0 2.9 2.4 5.3 5.3 5.3h181.3c3 0 5.3-2.4 5.3-5.3 0-14.7-11.9-26.7-26.7-26.7H144V350.3c69-8.4 120-69.2 111-138zM196.3 32l14 96H45.7l14-96h136.6zM32.7 216.9L41 160h174l8.2 56.5c3.4 25.7-4.3 50.8-21.8 70.7-18.2 20.8-45 32.8-73.4 32.8s-55.2-12-73.5-32.8c-17.4-19.9-25.1-45-21.8-70.3z\"]\n};\nvar faGlassCheers = {\n prefix: 'fal',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M605.4 437l-35 13-46-123.4c57-32.2 79.5-103.5 46.8-160.1L484.3 16c-5.9-10.2-16.6-16-27.7-16-4.1 0-8.2.8-12.2 2.4l-120.6 50c-1.4.6-6.1.6-7.5 0l-120.6-50c-4-1.7-8.1-2.4-12.2-2.4-11.1 0-21.9 5.8-27.7 16l-87 150.5c-32.7 56.6-10.2 127.9 46.8 160.1L69.6 450l-35-13c-13.8-5.1-29.1 1.9-34.3 15.7-1 2.8.4 5.8 3.1 6.9l139.9 52.2c2.8 1 5.8-.4 6.9-3.1 5.1-13.8-1.9-29.2-15.7-34.3l-35-13L145.1 339c71.1 18.7 129.8-25.6 144.6-80.7L320 145.8 350.1 258c14.9 55.4 73.8 99.4 144.6 80.7l45.6 122.4-35 13c-13.8 5.1-20.8 20.5-15.7 34.3 1 2.8 4.1 4.2 6.9 3.1l139.9-52.2c2.8-1 4.2-4.1 3.1-6.9-5-13.6-20.3-20.6-34.1-15.4zM259 249.8c-15.8 58.8-77.9 71-117.7 54.5-48.6-20.1-70.6-77-44.7-121.8l25.5-44.2 150.2 62.2-13.3 49.3zm21.6-80.5l-142.4-59L183.4 32 304 82l-23.4 87.3zM336 82l120.6-50 45.2 78.3-142.4 59L336 82zm45 167.8l-13.2-49.3L518 138.3l25.5 44.2c25.9 44.9 3.9 101.7-44.7 121.8C458 321.2 396.4 307 381 249.8z\"]\n};\nvar faGlassCitrus = {\n prefix: 'fal',\n iconName: 'glass-citrus',\n icon: [512, 512, [], \"f869\", \"M368 0c-62.61 0-115.35 40.2-135.18 96h34.37c18-37.73 56.21-64 100.81-64a112 112 0 0 1 112 112c0 59.54-46.6 107.76-105.25 111.32l-3.22 32.32C449.39 285.73 512 222.32 512 144A144 144 0 0 0 368 0zm-48 128H32A32 32 0 0 0 .16 163.18l32 320A32 32 0 0 0 64 512h224a32 32 0 0 0 31.84-28.82l32-320A32 32 0 0 0 320 128zm-32 352H64L44.8 288h262.4zm22.4-224H41.6L32 160h288z\"]\n};\nvar faGlassMartini = {\n prefix: 'fal',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L240 287.64V480h-53.33c-14.73 0-26.67 11.94-26.67 26.67 0 2.95 2.39 5.33 5.33 5.33h181.33c2.95 0 5.33-2.39 5.33-5.33 0-14.73-11.94-26.67-26.67-26.67H272V287.64L502.05 57.6zM256.06 258.33L32.58 34.97c-.51-.51-.82-.82-.38-1.89.44-1.08.88-1.08 1.6-1.08h444.4c.72 0 1.16 0 1.6 1.07.45 1.07.14 1.38-.38 1.89L418.39 96 256.06 258.33z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fal',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L240 287.64V480h-53.33c-14.73 0-26.67 11.94-26.67 26.67 0 2.95 2.39 5.33 5.33 5.33h181.33c2.95 0 5.33-2.39 5.33-5.33 0-14.73-11.94-26.67-26.67-26.67H272V287.64L502.05 57.6zM32.2 33.07c.44-1.07.88-1.07 1.6-1.07h444.4c.72 0 1.16 0 1.6 1.07.45 1.07.14 1.38-.38 1.89L418.39 96H93.61L32.58 34.97c-.52-.51-.82-.82-.38-1.9zm223.86 225.26L125.61 128H386.4L256.06 258.33z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fal',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-55.6 388.5c-2.2 15.7-15.9 27.5-31.7 27.5h-273c-15.8 0-29.4-11.8-31.7-27.9L67.2 288H445l-20.6 132.5zM450 256H62.2L32 64h448l-30 192z\"]\n};\nvar faGlassWhiskeyRocks = {\n prefix: 'fal',\n iconName: 'glass-whiskey-rocks',\n icon: [512, 512, [], \"f7a1\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-55.6 388.5c-2.2 15.7-15.9 27.5-31.7 27.5h-273c-15.8 0-29.4-11.8-31.7-27.9L67.2 288H96v48c0 26.5 21.5 48 48 48h96c14 0 26.5-6.2 35.3-15.9l10.8 10.8c9.1 9.1 21.1 14.1 33.9 14.1 12.8 0 24.9-5 33.9-14.1l57-57c9.4-9.4 14-21.7 14-33.9H445l-20.6 132.5zM251.7 299.3c-6.2-6.2-6.2-16.4 0-22.6l57-57c3.1-3.1 7.2-4.7 11.3-4.7 4.1 0 8.2 1.6 11.3 4.7l57 57c6.2 6.2 6.2 16.4 0 22.6l-57 57c-3.1 3.1-7.2 4.7-11.3 4.7-4.1 0-8.2-1.6-11.3-4.7l-57-57zm-22.6-45.2c-18.7 18.7-18.7 49.2 0 67.9l23.5 23.5c-2.9 3.9-7.3 6.6-12.6 6.6h-96c-8.8 0-16-7.2-16-16v-96c0-8.8 7.2-16 16-16h96c5.2 0 9.7 2.7 12.6 6.6l-23.5 23.4zM450 256h-37.8c-.5-.6-.7-1.4-1.3-1.9l-57-57c-9-9.1-21.1-14.1-33.9-14.1-12.8 0-24.9 5-33.9 14.1l-10.8 10.8C266.5 198.2 254 192 240 192h-96c-26.5 0-48 21.5-48 48v16H62.2L32 64h448l-30 192z\"]\n};\nvar faGlasses = {\n prefix: 'fal',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.21 280.58l-45.49-188c-5.38-21.55-19.62-40.05-39.09-50.73-19.47-10.66-42.66-12.8-63.81-5.77l-22.85 7.62c-4.19 1.4-6.46 5.93-5.06 10.12L402.97 69c1.4 4.19 5.93 6.46 10.12 5.06l21.79-7.27c10.1-3.37 21.16-3.95 31.23-.48 16.15 5.56 27.57 18.12 31.51 33.84l40.61 171.44c-22.35-7.63-53.24-15.06-89.57-15.06-37.34 0-80.26 8-125 31.48h-71.31c-44.74-23.48-87.66-31.49-125-31.48-36.33 0-67.22 7.44-89.58 15.07l40.57-171.24c3.36-13.44 11.99-24.44 24.29-30.9 12.24-6.43 26.88-6.51 39.99-2.14l20.28 6.77c4.19 1.4 8.72-.87 10.12-5.06l5.06-15.18c1.4-4.19-.87-8.72-5.06-10.12l-22.85-7.61c-21.09-7.06-44.31-4.95-63.81 5.75-19.45 10.68-33.7 29.18-39.11 50.91L1.8 280.58C.6 285.51 0 290.56 0 295.64v73.64C0 430.43 50.14 480 112 480h36.08c58.61 0 107.3-44.67 111.69-102.44l4.37-57.56h47.72l4.37 57.56C320.61 435.34 369.31 480 427.92 480H464c61.86 0 112-49.57 112-110.72v-73.65c0-5.07-.6-10.12-1.79-15.05zm-346.35 94.56C224.76 416 189.72 448 148.08 448H112c-44.11 0-80-35.31-80-78.72v-61.3c18.79-7.97 53.21-19.46 95.37-19.46 36.35 0 71.64 8.44 105.16 25.13l-4.67 61.49zM544 369.28c0 43.41-35.89 78.72-80 78.72h-36.08c-41.63 0-76.68-32-79.78-72.86l-4.67-61.49c33.53-16.68 68.83-25.13 105.19-25.13 42.16 0 76.56 11.49 95.34 19.46v61.3z\"]\n};\nvar faGlassesAlt = {\n prefix: 'fal',\n iconName: 'glasses-alt',\n icon: [576, 512, [], \"f5f5\", \"M572.39 302.63L528.75 92.78c-5.41-21.73-19.66-40.23-39.12-50.92-19.5-10.7-42.72-12.81-63.81-5.75l-22.85 7.61c-4.19 1.4-6.46 5.93-5.06 10.12l5.06 15.18c1.4 4.19 5.93 6.46 10.12 5.06l20.28-6.77c13.11-4.37 27.75-4.29 39.99 2.14 12.3 6.46 20.94 17.46 24.29 30.9l30.45 140.84C504.32 220.78 473.79 208 440 208c-66.89 0-122.21 48.38-133.58 112h-36.84C258.21 256.38 202.89 208 136 208c-33.79 0-64.32 12.78-88.1 33.18l30.45-140.84c3.36-13.44 11.99-24.44 24.29-30.9 12.24-6.43 26.88-6.51 39.99-2.14l20.28 6.77c4.19 1.4 8.72-.87 10.12-5.06l5.06-15.18c1.4-4.19-.87-8.72-5.06-10.12l-22.85-7.61c-21.09-7.06-44.31-4.95-63.81 5.75-19.46 10.7-33.71 29.2-39.12 50.93L3.61 302.63A172.5 172.5 0 0 0 0 336v8c0 75.11 60.89 136 136 136 72.37 0 130.97-56.69 135.19-128h33.61c4.22 71.31 62.82 128 135.19 128 75.11 0 136-60.89 136-136v-8c-.1-11.21-1.32-22.39-3.6-33.37zM136 448c-57.35 0-104-46.65-104-104s46.65-104 104-104 104 46.65 104 104-46.65 104-104 104zm304 0c-57.35 0-104-46.65-104-104s46.65-104 104-104 104 46.65 104 104-46.65 104-104 104z\"]\n};\nvar faGlobe = {\n prefix: 'fal',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm193.2 152h-82.5c-9-44.4-24.1-82.2-43.2-109.1 55 18.2 100.2 57.9 125.7 109.1zM336 256c0 22.9-1.6 44.2-4.3 64H164.3c-2.7-19.8-4.3-41.1-4.3-64s1.6-44.2 4.3-64h167.4c2.7 19.8 4.3 41.1 4.3 64zM248 40c26.9 0 61.4 44.1 78.1 120H169.9C186.6 84.1 221.1 40 248 40zm-67.5 10.9c-19 26.8-34.2 64.6-43.2 109.1H54.8c25.5-51.2 70.7-90.9 125.7-109.1zM32 256c0-22.3 3.4-43.8 9.7-64h90.5c-2.6 20.5-4.2 41.8-4.2 64s1.5 43.5 4.2 64H41.7c-6.3-20.2-9.7-41.7-9.7-64zm22.8 96h82.5c9 44.4 24.1 82.2 43.2 109.1-55-18.2-100.2-57.9-125.7-109.1zM248 472c-26.9 0-61.4-44.1-78.1-120h156.2c-16.7 75.9-51.2 120-78.1 120zm67.5-10.9c19-26.8 34.2-64.6 43.2-109.1h82.5c-25.5 51.2-70.7 90.9-125.7 109.1zM363.8 320c2.6-20.5 4.2-41.8 4.2-64s-1.5-43.5-4.2-64h90.5c6.3 20.2 9.7 41.7 9.7 64s-3.4 43.8-9.7 64h-90.5z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fal',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.04 8 0 119.03 0 256s111.04 248 248 248 248-111.03 248-248S384.96 8 248 8zm193.21 152H423.5c-17.38 0-31.5 14.12-31.5 31.5l.28 6.47-12.62 6.69c-2.66.48-8.41.66-15.09.97-32.31 1.52-46.88 2.67-52.91 14.61l-4 10.12 18.44 27.61A31.427 31.427 0 0 0 352.29 272l7.72-.5.09 11.02-18.81 25.09a31.937 31.937 0 0 0-5.66 12.97l-4.19 22.56c-10.38 9.5-19.62 20.3-27.47 32.08l-13.03 19.53c-4.66 6.98-16.53 6.33-20.28-1.28a62.926 62.926 0 0 1-6.66-28.09V335.5c0-17.38-14.12-31.5-31.5-31.5h-25.88c-10.31 0-20-4.02-27.31-11.31-7.28-7.3-11.31-17-11.31-27.31v-14.06c0-12.09 5.78-23.66 15.44-30.91l27.62-20.69c10.94-8.27 27.72-10.42 41.31-3.64l14.72 7.36c7.5 3.73 16.03 4.38 24.06 1.7l47.31-15.77a31.466 31.466 0 0 0 21.53-29.88c0-17.38-14.12-31.5-31.5-31.5l-9.72.16-6.94-6.94c-5.94-5.94-13.84-9.22-22.25-9.22l-89.58.51-.38-3.92 14.44-3.61c7.66-1.91 14.25-6.56 18.56-13.06L240.28 80h24.22c17.38 0 31.5-14.12 31.5-31.5v-2.94C359.74 60.1 412.7 102.86 441.21 160zM248 472c-119.1 0-216-96.9-216-216S128.9 40 248 40c5.54 0 10.96.42 16.39.83l.11 7.17h-24.22c-10.53 0-20.34 5.25-26.19 14.02l-7.78 11.92-14.47 3.61C177.81 81.08 168 93.64 168 108.09v4.41c0 17.38 14.12 31.5 31.5 31.5l89.72-.16 6.94 6.94c5.94 5.95 13.84 9.22 22.25 9.22l9.94-.97-46.94 15.78-14.72-7.36c-22.34-11.17-53.38-9.5-74.84 6.67l-27.59 20.69c-17.7 13.27-28.26 34.39-28.26 56.5v14.06c0 18.86 7.34 36.59 20.69 49.94S187.75 336 206.62 336l25.38-.5v29.88c0 14.69 3.47 29.38 10.03 42.42 7.44 14.92 22.44 24.2 39.12 24.2 14.66 0 28.25-7.28 36.41-19.48l13.03-19.55c6.44-9.64 14-18.47 22.41-26.17 5.09-4.62 8.47-10.66 9.75-17.45l4.22-22.62 18.75-25c4.06-5.42 6.28-12.12 6.28-18.89V271.5c0-17.38-14.12-31.5-31.5-31.5l-7.78.2-1.22-1.83c5.38-.34 10.81-.61 14.53-.78 15.88-.73 20.66-1.05 25.16-3.3l15.41-7.7c10.75-5.38 17.41-16.17 17.41-28.17l-.5-6.42h30.81c6.29 20.23 9.69 41.73 9.69 64C464 375.1 367.1 472 248 472z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fal',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm215.72 253.45l-42.82-10.71c-1.97-.5-3.66-1.67-4.75-3.33l-17.97-26.97a8.05 8.05 0 0 1 0-8.88l19.59-29.39c.78-1.16 1.81-2.09 3.06-2.7l23.97-11.99C457.03 194.53 464 224.44 464 256c0 1.84-.23 3.62-.28 5.45zM32 256c0-11.92 1.22-23.53 3.09-34.93 7.16 10.6 14.52 21.46 19.91 29.36 5.88 8.67 12.81 16.61 21.38 24.34 10.72 9.69 22.56 17.83 35.16 24.16 13.81 6.97 34.06 17.95 48.28 25.83 5.03 2.8 8.19 8.16 8.19 13.97v32.02c0 12.81 5 24.88 14.06 33.94 12.66 12.66 18.91 31.67 17.94 39.94v21.81C103.95 444.53 32 358.59 32 256zm199.92 215.19l-.08-24.44c2.5-18.58-9.44-46.98-27.16-64.69-2.97-2.98-4.69-7.11-4.69-11.31v-32.02c0-17.47-9.47-33.55-24.72-41.97-14.5-8.03-35.19-19.27-49.34-26.41-10.06-5.05-19.53-11.56-28.94-20.05a100.36 100.36 0 0 1-15.56-17.89c-9.66-14.19-25.54-37.72-35.4-52.35 25.98-68.87 85.98-121.14 159.56-135.85L257.38 96l-15.03 15.03c-9.03 9.03-9.34 23.53-.94 32.94l-5.72.03c-6.25 0-12.19 2.41-16.72 6.8l-9.91 9.64c-7.56 7.3-9.47 18.53-4.75 27.95l4 7.98c-6.94-2.75-14.78-3.12-22.03-.66l-31.19 10.39A27.893 27.893 0 0 0 136 232.6c0 10.66 5.91 20.23 15.44 25l11.09 5.55c10.72 5.36 22.62 8.38 34.62 8.8 2.38 2.3 6.25 7.56 8.69 10.89 5.91 8.08 11.5 15.72 19 19.47l3.38 1.69h70.53c4.22 0 8.34 1.7 11.31 4.69l13.69 13.69a14.66 14.66 0 0 1 4.25 10.27c0 8.05-3.28 15.92-9.06 21.66l-11.34 11.33a39.93 39.93 0 0 0-10.25 17.88l-1.12 4.41c-.94 3.69-1.84 7.38-3.19 11l-26.78 72.17c-6.03.51-12.09.92-18.25.92-5.44-.02-10.76-.44-16.09-.83zm70.82-6.49L323 410.09c1.78-4.7 3.03-9.53 4.25-14.36l1.03-4.05c.34-1.31 1.06-2.55 4.09-5.58l9.19-9.16c11.72-11.64 18.44-27.8 18.44-44.31 0-12.25-4.97-24.23-13.62-32.89l-13.69-13.69c-8.94-8.94-21.31-14.06-33.94-14.06h-60.94c-1.91-2.23-4.34-5.59-6.16-8.06C223.44 252.72 214.12 240 200 240c-8 0-16-1.89-23.16-5.47l-2.34-1.17 21.91-7.3 9.28 8.06c4.38 3.78 9.94 5.88 15.72 5.88h5.66c8.38 0 16-4.25 20.41-11.39 4.41-7.12 4.81-15.86 1.06-23.34l-12.97-25.95 3.38-3.31h5.75c6.41 0 12.44-2.5 16.97-7.03l8-8c9.03-9.03 9.34-23.53.94-32.94l9.41-9.41c6.03-6.05 9.38-14.08 9.38-22.62s-3.34-16.58-9.38-22.62l-33.31-33.31c.44 0 .87-.07 1.31-.07 76.13 0 143.04 39.68 181.52 99.35l-22.98 11.49a39.974 39.974 0 0 0-15.38 13.58l-19.59 29.39c-9 13.48-9 30.89 0 44.38l17.97 26.97c5.53 8.28 13.88 14.17 23.59 16.61l47.38 11.84c-14.72 83.15-77.04 149.87-157.79 171.08z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fal',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.04 8 0 119.03 0 256s111.04 248 248 248 248-111.03 248-248S384.96 8 248 8zm0 32c18.88 0 37.09 2.68 54.55 7.25l-51.93 43.78c-7.12 4.72-11.19 12.94-10.69 21.44.53 8.53 5.62 16.19 13.25 20.02l10.81 5.41v64.19c-1.75-.55-3.56-.88-5.44-.94-7.12 0-14.47 3.56-18.25 9.91L222.62 240c-8.53 0-16.59 3.33-22.62 9.38l-5.66 5.66c-4.53 4.53-7.03 10.56-7.03 16.97s2.5 12.44 7.03 16.97l5.66 5.66V304h-22.12l-22.59-45.23a23.997 23.997 0 0 0-17.66-12.95c-7.38-1.23-15.38 1.28-20.78 6.72L97.38 272H32.81c-.39-5.3-.81-10.6-.81-16 0-119.1 96.9-216 216-216zM37.56 304h59.81c8.53 0 16.59-3.33 22.62-9.38l11.62-11.61 17.62 35.31c5.47 10.91 16.44 17.67 28.62 17.67H200c17.66 0 32-14.36 32-32v-9.38c0-8.34-3.34-16.53-9.22-22.47l.16-.16c11.19 0 21.72-5.97 27.44-15.53l10.84-18.06c3.16 1.03 6.75 1.59 10.78 1.59 13.22 0 24-10.77 24-24v-78.11c0-12.16-6.72-23.09-17.56-28.56l59.07-49.67C412.01 93.76 464 168.84 464 256c0 22.71-3.57 44.58-10.09 65.16-1.32-1.77-2.38-3.7-3.96-5.29l-4.88-4.88V308c0-19.85-16.15-36-36-36H403c-5.5 0-10.79 1.27-15.55 3.57a40.04 40.04 0 0 0-16.56-3.57H358.8c-8.37 0-16.39 2.57-23.21 7.42l-23.72 16.9-38.25 15.14c-15.28 6.11-25.14 20.69-25.14 37.14v10.21c0 10.68 4.16 20.73 11.71 28.28L272.11 399c9.06 9.06 21.12 14.06 33.94 14.06h10.34c3.92 0 7.84-.48 11.64-1.43l18.39-4.6 10.91 10.91c5.38 5.38 11.89 9.13 18.93 11.45C340.34 456.03 296.06 472 248 472c-102.59 0-188.53-71.95-210.44-168zM409 399.49c-.87.14-1.68.51-2.57.51h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.78 26.78 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a8.05 8.05 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.17 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v18.75A216.64 216.64 0 0 1 409 399.49z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fal',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M184 119.2c0-7-5.7-12.7-12.7-12.7h-.1c-3.4 0-6.6 1.3-8.9 3.7l-28.5 28.5c-2.4 2.4-3.7 5.6-3.7 8.9v.1c0 7 5.7 12.7 12.7 12.7h18c3.4 0 6.6-1.3 8.9-3.7l10.5-10.5c2.4-2.4 3.7-5.6 3.7-8.9v-18.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48 458.4V432c0-26.5-21.5-48-48-48h-20.2c-3.9 0-13.1-3.1-16.2-5.4l-22.2-16.7c-3.4-2.5-5.4-6.6-5.4-10.8v-23.9c0-4.7 2.5-9.1 6.5-11.6l42.9-25.7c2.1-1.3 4.5-1.9 6.9-1.9h31.2c3.2 0 6.3 1.2 8.8 3.2l52.2 44.8h30.2l17.3 17.3c9.5 9.5 22.1 14.7 35.5 14.7h16.8c-29.9 49.1-78.7 85.3-136.3 98.4zM448.5 336h-32.9c-4.8 0-9.5-1.9-12.9-5.3l-17.3-17.3c-6-6-14.1-9.4-22.6-9.4h-18.3l-43.2-37.1c-8.2-7.1-18.7-10.9-29.6-10.9h-31.2c-8.2 0-16.3 2.2-23.4 6.5l-42.9 25.7c-13.7 8.2-22.1 23-22.1 39v23.9c0 14.3 6.7 27.8 18.2 36.4l22.2 16.7c8.6 6.5 24.6 11.8 35.4 11.8h20.2c8.8 0 16 7.2 16 16v39.2c-5.3.4-10.6.8-16 .8-119.1 0-216-96.9-216-216 0-118.9 96.5-215.6 215.3-216L232 51.1c-10.2 7.7-16 19.2-16 31.4v23.2c0 6.4 3.1 17 5.9 22.3-.8 2.1-21.1 15-24.6 18.5-8.6 8.6-13.3 20-13.3 32.1V195c0 25 20.4 45.4 45.4 45.4h25.3c11 0 21.2-3.9 29.2-10.6 3.9 1.4 8.2 2.1 12.6 2.1h13.4c25.6 0 32.2-20.2 36.1-21.5 5.1 9.1 13.5 16.2 23.5 19.5-4.3 14.2-.9 30.3 10.1 41.6l18.2 19.1c8.7 8.9 20.6 13.9 32.7 13.9h27.7c-2.4 10.8-5.7 21.3-9.7 31.5zm-17.8-63.6c-3.6 0-7.1-1.5-9.6-4L402.6 249a9.93 9.93 0 0 1 .1-14c12.6-12.6 10.5-8.6 10.5-17.8 0-2.5-1-4.9-2.8-6.7l-7.9-7.9c-1.8-1.8-4.2-2.8-6.7-2.8h-13.4c-8.5 0-12.6-10.3-6.7-16.2l7.9-7.3c1.8-1.8 4.2-2.8 6.7-2.8h8.3c5.2 0 9.5-4.2 9.5-9.5v-10.2c0-5.2-4.2-9.5-9.5-9.5h-28.2c-7.4 0-13.4 6-13.4 13.4v5.6c0 5.8-3.7 10.9-9.2 12.7l-26.5 8.8c-4.3 1.4-4.6 5-4.6 8.2 0 3.7-3 6.7-6.7 6.7h-13.4c-3.7 0-6.7-3-6.7-6.7 0-8.4-12.5-8.6-15.3-3-9 12.4-11.5 18.2-19.9 18.2h-25.3c-7.4 0-13.4-6-13.4-13.4v-16.4c0-3.6 1.4-7 3.9-9.5 19.5-14 29.6-17.6 29.6-31.5 0-2.9 1.8-5.5 4.6-6.4l33.6-11.2c1.4-.5 2.7-1.2 3.7-2.3L313.9 95c5-5 3.5-14.9-6.7-14.9h-17.4L276.4 99v6.7c0 3.7-3 6.7-6.7 6.7h-15c-3.7 0-6.7-3-6.7-6.7V82.5c0-2.1 1-4.1 2.7-5.4l44-31.9C391.4 66.7 464 153 464 256c0 5.5-.4 11-.8 16.4h-32.5z\"]\n};\nvar faGlobeSnow = {\n prefix: 'fal',\n iconName: 'globe-snow',\n icon: [448, 512, [], \"f7a3\", \"M224 96c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-112 80c0-8.8-7.2-16-16-16s-16 7.2-16 16 7.2 16 16 16 16-7.2 16-16zm208-16c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm43.3 239c51.5-41 84.7-104 84.7-175C448 100.3 347.7 0 224 0S0 100.3 0 224c0 71 33.2 134 84.7 175l-46.3 61.8C22.6 481.9 37.6 512 64 512h320c26.4 0 41.4-30.1 25.6-51.2L363.3 399zM32 224c0-105.9 86.1-192 192-192s192 86.1 192 192c0 66.7-34.3 125.6-86.1 160H240v-32h80c12.3 0 23.5-7 28.8-18.1 5.3-11.1 3.8-24.2-3.8-33.8l-19.7-24.6c1.3-1.7 2.4-3.5 3.3-5.4 5.3-11 3.9-24.2-3.7-33.8L249.1 140c-6.1-7.7-15.3-12.2-25.1-12.2s-19.1 4.5-25.1 12.2l-76 96.3c-7.6 9.6-9 22.8-3.6 33.8.9 1.9 2.1 3.7 3.3 5.4L103 300c-7.7 9.6-9.2 22.8-3.8 33.8C104.5 345 115.7 352 128 352h80v32h-89.9C66.3 349.6 32 290.7 32 224zm116 32.1l76-96.3 75.9 96.2h-31l51.1 64h-80v-88c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v88h-80l51.1-64-31.1.1zM64 480l48-64h224l48 64H64z\"]\n};\nvar faGlobeStand = {\n prefix: 'fal',\n iconName: 'globe-stand',\n icon: [448, 512, [], \"f5f6\", \"M360.21 480H240.14v-50.41c50.37-6.61 99.04-29.15 137.79-67.89 87.21-87.16 92.85-224.41 17.84-318.61l18.14-18.12a7.985 7.985 0 0 0 0-11.31L402.58 2.34a8.015 8.015 0 0 0-11.32 0l-39.45 39.43c1.14 1.09 2.36 2.04 3.48 3.15 39.31 39.29 60.96 91.52 60.96 147.08s-21.65 107.79-60.96 147.08C315.98 378.36 263.71 400 208.12 400s-107.86-21.64-147.17-60.92c-1.11-1.11-2.07-2.34-3.15-3.47L2.35 391.03a7.985 7.985 0 0 0 0 11.31l11.32 11.31a8.015 8.015 0 0 0 11.32 0l34.14-34.12c43.54 34.62 96.26 51.83 149 51.97V480H88.04c-13.26 0-24.01 10.74-24.01 24 0 4.42 3.58 8 8 8h304.19c4.42 0 8-3.58 8-8 .01-13.26-10.74-24-24.01-24zM208.12 368c45.07 0 90.14-17.18 124.53-51.55 68.77-68.73 68.77-180.17 0-248.9C298.26 33.18 253.19 16 208.12 16S117.98 33.18 83.59 67.55c-68.77 68.73-68.77 180.17 0 248.9C117.98 350.82 163.05 368 208.12 368zM106.23 90.18C133.45 62.98 169.63 48 208.12 48s74.67 14.98 101.89 42.18c27.21 27.2 42.2 63.36 42.2 101.82 0 38.46-14.99 74.62-42.2 101.82-27.22 27.2-63.4 42.18-101.89 42.18s-74.67-14.98-101.89-42.18c-27.21-27.2-42.2-63.36-42.2-101.82 0-38.46 14.99-74.62 42.2-101.82z\"]\n};\nvar faGolfBall = {\n prefix: 'fal',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M416 208C416 91.7 320.5-2.3 203.7 0 91.6 2.3.9 94.2 0 206.3-.5 273.5 31 333 80 371.4V416c0 26.5 21.5 48 48 48 7.3 0 32-4 32 16v26c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6v-26c0-26.5-21.5-48-48-48-7.3 0-32 4-32-16v-16h192v16c0 20-24.6 16-32 16-26.5 0-48 21.5-48 48v26c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6v-26c0-20 24.6-16 32-16 26.5 0 48-21.5 48-48v-44.6c48.6-38 80-96.9 80-163.4zm-384 0c0-97 79-176 176-176s176 79 176 176c0 71-42.4 132.2-103.1 160H135.1C74.4 340.2 32 279 32 208zm240 14.9c0 18.3-14.8 33.1-33.1 33.1-14.4 0-26.3-9.3-30.9-22.1 26.3 9.4 51.5-15.2 41.9-41.9 12.8 4.6 22.1 16.5 22.1 30.9zm80 16c0 18.3-14.8 33.1-33.1 33.1-14.4 0-26.3-9.3-30.9-22.1 26.3 9.4 51.5-15.2 41.9-41.9 12.8 4.6 22.1 16.5 22.1 30.9zm-64 64c0 18.3-14.8 33.1-33.1 33.1-14.4 0-26.3-9.3-30.9-22.1 26.3 9.4 51.5-15.2 41.9-41.9 12.8 4.6 22.1 16.5 22.1 30.9z\"]\n};\nvar faGolfClub = {\n prefix: 'fal',\n iconName: 'golf-club',\n icon: [640, 512, [], \"f451\", \"M633.2 6.4l-10.8-5.2c-6-2.9-13.1-.4-16 5.6L473 280.7C44 200.2 72.8 205.1 63.9 205.1c-34.5 0-63.9 28-63.9 64V448c0 35.3 28.7 64 64 64h299.1c24.6 0 47-14.1 57.7-36.3l218-453.3c2.9-5.9.4-13.1-5.6-16zm-183.9 323L393.5 444c-10.7 22-33.1 36-57.5 36H64c-17.7 0-32-14.3-32-32v-16h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H32v-64h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H32v-34.9c0-17.7 14.3-32 31.9-32 4.5 0-19.7-4.3 374 69.6 10.4 1.9 16.1 13.2 11.4 22.7z\"]\n};\nvar faGopuram = {\n prefix: 'fal',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M277.3 416h-42.7c-23.6 0-42.7 19.1-42.7 42.7V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-45.3c0-5.9 4.8-10.7 10.7-10.7h42.7c5.9 0 10.7 4.8 10.7 10.7V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-45.3c0-23.6-19.1-42.7-42.7-42.7zM496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v136c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384h64v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384h256v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384h64v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V368c0-8.8-7.2-16-16-16zM128 64h256v64H128zm133.3 128h-10.7c-5.9 0-10.7 4.8-10.7 10.7V224h-48v-64h128v64h-48v-21.3c.1-5.9-4.7-10.7-10.6-10.7zM128 352H64v-96h64zm32-128H96v-64h64zm112 128h-32v-26.7c0-3 2.4-5.3 5.3-5.3h21.3c3 0 5.3 2.4 5.3 5.3V352zm80 0h-48v-26.7c0-20.6-16.8-37.3-37.3-37.3h-21.3c-20.6 0-37.3 16.8-37.3 37.3V352h-48v-96h192v96zm0-128v-64h64v64zm96 128h-64v-96h64z\"]\n};\nvar faGraduationCap = {\n prefix: 'fal',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M612.16 153.99l-265-85.68c-17.81-5.75-36.5-5.75-54.31 0l-265 85.68C10.94 159.46 0 174.38 0 192s10.94 32.54 27.84 38.01l29.71 9.6c-3.3 6.18-5.74 12.83-7.33 19.8C39.53 264.59 32 275.32 32 288c0 12.73 7.57 23.52 18.33 28.67L32.28 428.53C30.67 438.52 36.19 448 43.62 448h40.75c7.43 0 12.96-9.48 11.34-19.47L77.67 316.67C88.43 311.52 96 300.73 96 288c0-10.6-5.49-19.54-13.43-25.37 1.49-4.66 3.8-8.86 6.57-12.81l53.47 17.29L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.61-116.89L612.16 230c16.9-5.46 27.84-20.38 27.84-38s-10.94-32.54-27.84-38.01zM479.48 381.86C468.72 393.19 414.04 416 320 416c-94.04 0-148.72-22.81-159.48-34.14l13.09-104.73 119.24 38.55c2.6.84 25.72 9.23 54.31 0l119.24-38.55 13.08 104.73zm122.8-182.28l-265 85.68c-11.31 3.66-23.25 3.66-34.56 0l-175.67-56.8 195.89-36.74c8.69-1.62 14.41-9.98 12.78-18.67-1.62-8.7-10.16-14.39-18.66-12.77l-203.78 38.2c-12.4 2.32-23.51 7.65-33.08 14.83l-42.49-13.74c-7.85-2.55-7.46-12.74 0-15.15l265-85.68c15.1-4.88 27.84-2.17 34.56 0l265 85.68c7.39 2.39 7.91 12.6.01 15.16z\"]\n};\nvar faGramophone = {\n prefix: 'fal',\n iconName: 'gramophone',\n icon: [384, 512, [], \"f8bd\", \"M45.51 314.12a32 32 0 0 0 36.57.28c59.69-40.87 119.58-66.14 178-75 1.45-.18 75.92-10.49 75.92 40.6a40 40 0 0 1-40 40H192a32 32 0 0 0-32 32h130.41c36.73 0 70.27-25.2 76.48-61.4 7.82-45.66-10.28-55.79-88.76-118.51C232 135.21 192.72 83.42 161.45 18.17A32 32 0 0 0 132.61 0a29.52 29.52 0 0 0-3 .14 32 32 0 0 0-28 23.58l-68.59 256a32 32 0 0 0 12.49 34.4zM132.57 32C166 101.63 208.2 157.17 258.15 197.09l11.32 9c-4.58.4-9.32 1-14.18 1.7C192.06 217.4 127.7 244.38 64 288zM376 480h-24v-64a32 32 0 0 0-32-32H64a32 32 0 0 0-32 32v64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-56 0H64v-64h256z\"]\n};\nvar faGreaterThan = {\n prefix: 'fal',\n iconName: 'greater-than',\n icon: [320, 512, [], \"f531\", \"M320 250.17c0-3.02-1.7-5.78-4.4-7.14L25.87 96.85c-3.95-1.98-8.76-.37-10.73 3.58L.84 129.05a8.006 8.006 0 0 0 3.58 10.73L236.87 256 4.42 372.22C.47 374.19-1.13 379 .84 382.95l14.29 28.62c1.97 3.95 6.78 5.56 10.73 3.58l289.71-144.92a8.007 8.007 0 0 0 4.42-7.15v-12.91z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fal',\n iconName: 'greater-than-equal',\n icon: [384, 512, [], \"f532\", \"M32.84 318.95l14.29 28.62a7.986 7.986 0 0 0 10.73 3.58l289.71-144.92a7.996 7.996 0 0 0 4.42-7.15v-12.91c0-3.02-1.7-5.78-4.4-7.14L57.87 32.85c-3.95-1.98-8.76-.37-10.73 3.58l-14.3 28.62a8.006 8.006 0 0 0 3.58 10.73L268.87 192 36.42 308.22a8.006 8.006 0 0 0-3.58 10.73zM376 432H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z\"]\n};\nvar faGrimace = {\n prefix: 'fal',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm-80-232c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 32H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"]\n};\nvar faGrin = {\n prefix: 'fal',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm123.1-151.2C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-5.3-1.7-11.1-.5-15.3 3.1-4.2 3.7-6.2 9.2-5.3 14.8 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c.9-5.5-1.1-11.1-5.3-14.8-4.3-3.7-10.2-4.9-15.5-3.1zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400zm-80-160c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faGrinAlt = {\n prefix: 'fal',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm-63.7-216c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm160 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm26.8 64.8C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-5.3-1.7-11.2-.5-15.3 3.1-4.2 3.7-6.2 9.2-5.3 14.8 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c.9-5.5-1.1-11.1-5.3-14.8-4.3-3.7-10.2-4.9-15.5-3.1zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400z\"]\n};\nvar faGrinBeam = {\n prefix: 'fal',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M117.7 247.7c3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm93.4 73.1C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-5.3-1.7-11.1-.5-15.3 3.1-4.2 3.7-6.2 9.2-5.3 14.8 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c.9-5.5-1.1-11.1-5.3-14.8-4.3-3.7-10.2-4.9-15.5-3.1zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400zm0-392C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fal',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M277.7 247.7c3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm-160 0c3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm253.4 73.1C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-5.3-1.7-11.1-.5-15.3 3.1-4.2 3.7-6.2 9.2-5.3 14.8 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c.9-5.5-1.1-11.1-5.3-14.8-4.3-3.7-10.2-4.9-15.5-3.1zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400zm256-282.7c0-27.2-28-72.9-51.4-106.4C448.8 5.4 440.4 0 432 0c-8.4 0-16.8 5.4-20.6 10.8-8.4 12-17.3 25.5-25.3 39.2-39.5-26.5-87-42-138.1-42C111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-29.6-5.5-57.9-15-84.3 14.1-13.6 23-32.9 23-54.4zM248 472c-119.1 0-216-96.9-216-216S128.9 40 248 40c45.7 0 88 14.4 123 38.7-6.6 14.5-11 28-11 38.6 0 41.2 32.3 74.7 72 74.7 7.4 0 14.3-1.5 21-3.6 7 21.3 11 44 11 67.6 0 119.1-96.9 216-216 216zm184-312c-22.1 0-40-19.2-40-42.7 0-12.9 15.5-43.8 40-79.9 24.5 36.2 40 67 40 79.9 0 23.5-17.9 42.7-40 42.7z\"]\n};\nvar faGrinHearts = {\n prefix: 'fal',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm123.1-151.2C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-11.6-3.7-22.6 6.3-20.7 17.9 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c1.9-11.6-9-21.6-20.7-17.9zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400zm-61.8-128.8c14.3 3.7 27.2-5.5 30.5-17.6l20.5-73.9c4.1-14.7 1.7-30.4-6.5-43.2-8.2-12.8-21.6-21.5-36.8-23.9-25.2-4.1-49.4 10.7-59.3 34-25.2-3-50.2 11-59.1 34.3-5.5 14.4-4.7 30.3 2.3 43.8 6.9 13.5 19.4 23.4 34.2 27.2l74.2 19.3zm-80.7-78.8c5.2-13.8 20.4-15.5 28.5-13.4l22.8 5.9 6.2-22.7c3.3-11.9 14.7-19.7 25.9-18 13.1 2.1 20.9 14.6 17.5 27l-18.7 67.3-67.6-17.5c-12.1-3.1-19.4-15.9-14.6-28.6zM420.4 181c-8.9-23.3-34.1-37.3-59-34.3-9.9-23.3-34.7-38.2-59.3-34-15.2 2.4-28.6 11.1-36.8 23.9-8.2 12.8-10.6 28.5-6.5 43.2l20.4 73.8c3.4 12.3 16.5 21.3 30.5 17.6l74.2-19.2a53.47 53.47 0 0 0 34.2-27.2c6.9-13.5 7.8-29.5 2.3-43.8zm-44.5 40l-67.7 17.5-18.7-67.3c-3.4-12.3 4.4-24.9 17.5-27 13.7-2.2 23.4 9 25.8 17.9l6.2 22.7 23-5.8c12-3.1 24.5 2.8 28.5 13.4 4.8 12.7-2.5 25.5-14.6 28.6z\"]\n};\nvar faGrinSquint = {\n prefix: 'fal',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zM118.9 263.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.5-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.9-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48zm9.3 54.5C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-5.3-1.7-11.2-.5-15.3 3.1-4.2 3.7-6.2 9.2-5.3 14.8 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c.9-5.5-1.1-11.1-5.3-14.8-4.3-3.7-10.2-4.9-15.5-3.1zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fal',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M402 206.1c-5.6.4-10.5 3.7-13.1 8.6-14.6 28.3-42.4 63.9-76.3 97.8-33.9 34-69.6 61.8-97.8 76.3-5 2.5-8.3 7.5-8.7 13.1-.4 5.6 2.2 10.9 6.7 14.2 14.3 10.2 32.1 14.7 51 14.7 41 0 87.4-21 116.7-50.4 42.9-42.8 68-122.2 35.7-167.7-3.3-4.5-9-7.1-14.2-6.6zm-44.2 151.7c-24.8 24.7-64.9 43.1-98.2 41.1 24.1-16.5 50.4-38.6 75.5-63.8 25.1-25.1 47.3-51.4 63.8-75.5 1.8 32.2-16.3 73.5-41.1 98.2zM207.9 236.2c-3-3-7.3-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9 8.6.4 11.9-6.2 12.6-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.7-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm243.6-86.5c28.1-28.2 27.7-74.3-.9-102.9-29.2-29.2-75.3-28.3-102.9-.8-4.5 4.5-8.5 10.9-12.1 18.5C338.2 18.9 297.2 8 256 8 192.5 8 129 32.2 80.6 80.6c-79.9 79.9-93 200.4-41 294.6-8 3.8-14.4 7.8-18.7 12.2-28.1 28.2-27.7 74.3.9 102.9 28.5 28.5 74.5 29.2 102.9.8 4.5-4.5 8.5-10.9 12.1-18.5 37 20.5 78 31.4 119.2 31.4 63.5 0 127-24.2 175.4-72.6 79.9-79.9 93-200.3 41-294.6 8-3.8 14.4-7.9 18.8-12.2zM410 43.5c7.4-7.4 17.4-11.5 28-11.5h.4c11 .1 21.3 4.5 29.2 12.4 16.1 16.1 16.5 42 .9 57.6-6.6 6.6-32.3 16.8-83.3 24.8 8-51 18.2-76.7 24.8-83.3zm-308 425c-15.7 15.7-41.5 15.3-57.6-.8s-16.5-42-.9-57.6c6.6-6.6 32.3-16.8 83.3-24.8-8 50.8-18.2 76.6-24.8 83.2zm306.8-59.8C368 449.5 313.7 472 256 472c-38.8 0-75.8-10.8-108.4-29.9 5.4-19.7 9.4-41.6 12.2-60.9 1.2-8-1.5-15.9-7.2-21.7-5.8-5.8-13.7-8.4-21.7-7.3-23.8 3.4-43.9 7.5-60.6 12-48.1-82.7-37.7-190.3 33-261C144 62.4 198.3 40 256 40c38.8 0 75.8 10.8 108.4 29.9-5.4 19.7-9.4 41.6-12.2 60.9-1.2 8 1.5 15.9 7.2 21.7 4.9 4.9 11.3 7.5 18 7.5 1.2 0 2.4-.1 3.7-.3 23.8-3.4 43.9-7.5 60.6-12 48.2 82.6 37.8 190.3-32.9 261z\"]\n};\nvar faGrinStars = {\n prefix: 'fal',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm123.1-151.2C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-11.6-3.7-22.6 6.3-20.7 17.9 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c1.9-11.6-9-21.6-20.7-17.9zM248 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C325 383.7 283 400 248 400zm162.1-252l-35.3-5.1-15.8-32.1c-9.5-18.8-36.3-18.9-45.9 0l-15.8 32.1-35.5 5.1c-5.4.8-10 3.6-13.8 7.4-3.8-3.8-8.4-6.6-13.9-7.4l-35.3-5.1-15.8-32.1c-9.5-18.8-36.3-18.9-45.9 0l-15.8 32.1-35.5 5.1c-20.2 3-29.6 28.2-14.1 43.7l25.7 24.9-6.1 35.6c-3.4 21.4 19.2 36.3 36.9 26.5l31.8-16.5 31.5 16.3c18.5 10.2 40.6-5.2 37.2-26.6l-6.1-35.4L248 192l25.4 24.6-6.1 35.6c-3.4 21.4 19.2 36.3 36.9 26.5l31.8-16.5 31.5 16.3c18.5 10.2 40.6-5.2 37.2-26.6l-6.1-35.4 25.9-25.1c14.9-14.9 6.3-40.3-14.4-43.4zm-221.9 57.5l6.7 38.9-34.9-18.2-34.9 18.1 6.7-38.9-28.5-27.7 39.2-5.6 17.5-35.5 17.5 35.5 39.2 5.6-28.5 27.8zm176 0l6.7 38.9-34.9-18.2-34.9 18.1 6.7-38.9-28.5-27.7 39.2-5.6 17.5-35.5 17.5 35.5 39.2 5.6-28.5 27.8z\"]\n};\nvar faGrinTears = {\n prefix: 'fal',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M349.7 247.7c3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm93.4 73.1C412.9 330.5 368 336 320 336s-92.9-5.5-123.1-15.2c-5.3-1.7-11.1-.5-15.3 3.1-4.2 3.7-6.3 9.2-5.3 14.8 9.3 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c.9-5.5-1.1-11.1-5.3-14.8-4.3-3.7-10.1-4.9-15.5-3.1zM320 400c-35 0-77-16.3-98.5-40.3 57.5 10.8 139.6 10.8 197.1 0C397 383.7 355 400 320 400zM189.7 247.7c3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm429.5 11.7c-9.2-9.2-26.8-17.2-52.4-23.9C556.3 108.1 450 8 320 8S83.7 108.1 73.2 235.4c-25.6 6.7-43.2 14.7-52.4 23.9-28.1 28.2-27.7 74.3.9 102.9 11.8 11.8 44.2 32.9 82.7 14.7 42.5 75.5 122.7 127 215.5 127s173.1-51.5 215.5-127c38.4 18.1 70.8-2.8 82.7-14.7 28.8-28.5 29.2-74.7 1.1-102.8zM102 340.5c-15.5 15.5-41.4 15.5-57.7-.9-16.1-16.1-16.5-42-.9-57.6 6.6-6.6 32.3-16.8 83.3-24.8-7.9 51-18.1 76.7-24.7 83.3zM320 472c-82.6 0-154.1-46.9-190.4-115.2 15.6-22.2 25-67.5 30.1-103.6 1.2-8-1.5-15.9-7.2-21.7-5.8-5.8-13.7-8.4-21.7-7.3-8.7 1.3-16.8 2.6-24.6 4C119.9 122.3 210.3 40 320 40s200.1 82.3 213.8 188.3c-7.8-1.4-15.9-2.8-24.6-4-7.9-1.1-15.9 1.5-21.7 7.3-5.8 5.8-8.4 13.6-7.2 21.7 5.2 36.1 14.5 81.4 30.1 103.6C474.1 425.1 402.6 472 320 472zm275.7-132.4c-16.4 16.5-42.3 16.2-57.6.8-6.6-6.6-16.8-32.3-24.8-83.3 51 8 76.7 18.2 83.3 24.8 15.6 15.8 15.2 41.6-.9 57.7z\"]\n};\nvar faGrinTongue = {\n prefix: 'fal',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM248 8C111 8 0 119 0 256c0 121.1 86.8 221.8 201.6 243.5 13.8 7.7 29.5 12.5 46.4 12.5s32.6-4.8 46.4-12.5C409.2 477.8 496 377.1 496 256 496 119 385 8 248 8zm64 408c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-31c18.9-9.5 22.7-12.2 32-12.2h.3c9.8.1 18.2 7 20.4 16.6l2.7 11.6c2.1 9.2 15.2 9.2 17.3 0l2.7-11.6c2.2-9.6 10.6-16.5 20.4-16.6h.3c9.2 0 12.9 2.7 32 12.2v32zm24.6 36.8c4.7-11.3 7.4-23.7 7.4-36.8v-13.6c24.7-16.1 43.4-38 47.8-63.8 2-11.6-9-21.6-20.7-17.9C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-11.6-3.7-22.6 6.3-20.7 17.9 4.3 25.8 23 47.6 47.8 63.8V416c0 13 2.7 25.4 7.4 36.8C84.4 418.9 32 343.5 32 256c0-119.1 96.9-216 216-216s216 96.9 216 216c0 87.5-52.4 162.9-127.4 196.8zM328 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fal',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M248 8C111 8 0 119 0 256c0 121.1 86.8 221.8 201.6 243.5 13.8 7.7 29.5 12.5 46.4 12.5s32.6-4.8 46.4-12.5C409.2 477.8 496 377.1 496 256 496 119 385 8 248 8zm64 408c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-31c18.9-9.5 22.7-12.2 32-12.2h.3c9.8.1 18.2 7 20.4 16.6l2.7 11.6c2.1 9.2 15.2 9.2 17.3 0l2.7-11.6c2.2-9.6 10.6-16.5 20.4-16.6h.3c9.2 0 12.9 2.7 32 12.2v32zm24.6 36.8c4.7-11.3 7.4-23.7 7.4-36.8v-13.6c24.7-16.1 43.4-38 47.8-63.8 2-11.6-9-21.6-20.7-17.9C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-11.6-3.7-22.6 6.3-20.7 17.9 4.3 25.8 23 47.6 47.8 63.8V416c0 13 2.7 25.4 7.4 36.8C84.4 418.9 32 343.5 32 256c0-119.1 96.9-216 216-216s216 96.9 216 216c0 87.5-52.4 162.9-127.4 196.8zm40.5-300.6c-3.8-4.4-10.2-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fal',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M248 8C111 8 0 119 0 256c0 121.1 86.8 221.8 201.6 243.5 13.8 7.7 29.5 12.5 46.4 12.5s32.6-4.8 46.4-12.5C409.2 477.8 496 377.1 496 256 496 119 385 8 248 8zm64 408c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-31c18.9-9.5 22.7-12.2 32-12.2h.3c9.8.1 18.2 7 20.4 16.6l2.7 11.6c2.1 9.2 15.2 9.2 17.3 0l2.7-11.6c2.2-9.6 10.6-16.5 20.4-16.6h.3c9.2 0 12.9 2.7 32 12.2v32zm24.6 36.8c4.7-11.3 7.4-23.7 7.4-36.8v-13.6c24.7-16.1 43.4-38 47.8-63.8 2-11.6-9-21.6-20.7-17.9C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-11.6-3.7-22.6 6.3-20.7 17.9 4.3 25.8 23 47.6 47.8 63.8V416c0 13 2.7 25.4 7.4 36.8C84.4 418.9 32 343.5 32 256c0-119.1 96.9-216 216-216s216 96.9 216 216c0 87.5-52.4 162.9-127.4 196.8zM344 128c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm-192-76c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm192 4c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24z\"]\n};\nvar faGrinWink = {\n prefix: 'fal',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm152.7 400.7c-19.8 19.8-43 35.4-68.7 46.3-26.6 11.3-54.9 17-84.1 17s-57.5-5.7-84.1-17c-25.7-10.9-48.8-26.5-68.7-46.3s-35.4-43-46.3-68.7c-11.3-26.6-17-54.9-17-84.1s5.7-57.5 17-84.1c10.9-25.7 26.5-48.8 46.3-68.7s43-35.4 68.7-46.3c26.6-11.3 54.9-17 84.1-17s57.5 5.7 84.1 17c25.7 10.9 48.8 26.5 68.7 46.3s35.4 43 46.3 68.7c11.3 26.6 17 54.9 17 84.1s-5.7 57.5-17 84.1c-10.8 25.8-26.4 48.9-46.3 68.7zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm120-7l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-4-25.2-34.2-42.1-59.9-42.1S272 197 268 222.2c-1.6 11.1 11.6 18.2 20 10.8zm88.1 87c-1.6 0-3.3.3-4.9.8C340.9 330.5 296 336 248 336s-92.9-5.5-123.1-15.2c-1.7-.5-3.3-.8-4.9-.8-9.4 0-17.4 8.6-15.7 18.7 9.2 55 83.2 93.3 143.8 93.3s134.5-38.3 143.8-93.3c1.6-10.2-6.4-18.7-15.8-18.7zm-53.5 58.6C300.4 392 272.5 400 248 400s-52.4-8-74.6-21.4c-9.4-5.7-17.3-12.1-23.5-18.8 28.6 5.3 62.7 8.2 98 8.2 35.4 0 69.4-2.9 98-8.2-6 6.7-13.9 13.1-23.3 18.8z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fal',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M424 96h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96h-64v-64h64v64zM264 96h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96h-64v-64h64v64zM104 96H24c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96H32v-64h64v64zm328 96h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96h-64v-64h64v64zm-152-96h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96h-64v-64h64v64zm-152-96H24c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96H32v-64h64v64z\"]\n};\nvar faGripLines = {\n prefix: 'fal',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M440 192H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0 96H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fal',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M192 472V40c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v432c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8zm-96 0V40c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v432c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8z\"]\n};\nvar faGripVertical = {\n prefix: 'fal',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M104 32H24C10.78 32 0 42.77 0 56v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24V56c0-13.23-10.78-24-24-24zm-8 96H32V64h64v64zm8 64H24c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96H32v-64h64v64zm8 64H24c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96H32v-64h64v64zM296 32h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24V56c0-13.23-10.78-24-24-24zm-8 96h-64V64h64v64zm8 64h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96h-64v-64h64v64zm8 64h-80c-13.22 0-24 10.77-24 24v80c0 13.23 10.78 24 24 24h80c13.22 0 24-10.77 24-24v-80c0-13.23-10.78-24-24-24zm-8 96h-64v-64h64v64z\"]\n};\nvar faGuitar = {\n prefix: 'fal',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M160 288a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM501.78 42.49l-32.27-32.27a34.91 34.91 0 0 0-49.36 0l-50.52 50.53a38.46 38.46 0 0 0-9.29 15L339 139.87c-.39.31-1 .18-1.31.54L291.09 187c-13.79-11.17-29.47-19.89-46.72-23.91a115.75 115.75 0 0 0-26.1-3.07c-24.17 0-46.86 8.19-63.76 25.1a82.52 82.52 0 0 0-20.24 33.47c-6 18.56-23.2 32.69-42.15 34.46-23.69 2.27-45.72 11.45-62.59 28.44C-16.1 327-7.9 409 47.57 464.45 78.9 495.77 118.66 512 155.53 512c28.45 0 55.17-9.65 75-29.48 17-16.88 26.17-38.9 28.45-62.7 1.76-18.86 15.89-36.14 34.43-42.15a82.72 82.72 0 0 0 33.47-20.24c22.87-22.89 29.73-56.36 22-89.76-4-17.26-12.67-33-23.83-46.75l46.56-46.57c.36-.36.24-.91.54-1.3l64.06-21.36a38.6 38.6 0 0 0 15.05-9.3l50.52-50.53a34.92 34.92 0 0 0 0-49.37zM304.25 334.8a50.44 50.44 0 0 1-20.73 12.42c-30.79 10-53.46 38-56.4 69.54-1.17 12.11-5.43 29.41-19.23 43.13-16.61 16.62-37.64 20.11-52.36 20.11-30 0-61.07-13.92-85.32-38.18S32 386.37 32 356.39c0-14.69 3.51-35.67 20.22-52.34 13.64-13.72 30.88-18 42.89-19.13 31.64-3 59.61-25.65 69.61-56.52a50.32 50.32 0 0 1 12.42-20.65c13-13 29.53-15.72 41.13-15.72a83.63 83.63 0 0 1 18.85 2.23c10.31 2.4 20.86 7.82 31.11 15.6l-52.71 52.72a12 12 0 0 0 0 17l17 17a12 12 0 0 0 17 0l52.71-52.72c7.76 10.23 13.16 20.76 15.55 31.06 5.47 23.93.56 45.77-13.53 59.88zm174.9-265.57l-50.52 50.52a6.45 6.45 0 0 1-2.53 1.58L373 139l17.7-53.12a6.61 6.61 0 0 1 1.57-2.53l50.52-50.53a2.81 2.81 0 0 1 2.05-.85 2.85 2.85 0 0 1 2.06.85l32.26 32.27a2.92 2.92 0 0 1-.01 4.14z\"]\n};\nvar faGuitarElectric = {\n prefix: 'fal',\n iconName: 'guitar-electric',\n icon: [512, 512, [], \"f8be\", \"M129 330.35a8 8 0 0 0-11.31 0l-11.31 11.31a8 8 0 0 0 0 11.31L159 405.66a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32zm64-64a8 8 0 0 0-11.31 0l-11.31 11.32a8 8 0 0 0 0 11.31L223 341.66a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32zM511.21 39.57a48.14 48.14 0 0 0-37.8-38.26A58.42 58.42 0 0 0 462.57 0c-14.8 0-27.14 10.61-95.83 54.94a32.15 32.15 0 0 0-14.74 27v44.59l-83.23 83.17a12.46 12.46 0 0 1-1.77-12.78l15.9-34.17a41.31 41.31 0 0 0-66.67-46.65L181 151.34a95.94 95.94 0 0 0-22.42 35.47 47.67 47.67 0 0 1-24.74 27.11l-70.29 32.57c-31 12.38-54.45 40.37-61.43 74.36a102.65 102.65 0 0 0 28 93.48l67.51 67.5A102.9 102.9 0 0 0 266 447.28l32.05-69.15a47.69 47.69 0 0 1 27.12-24.74A96 96 0 0 0 360.65 331l19.84-19.83a42.28 42.28 0 0 0 0-59.82A40.82 40.82 0 0 0 350.94 239a44.65 44.65 0 0 0-13.21 2l-21.8 6.95a13.07 13.07 0 0 1-4 .65c-4.75 0-7.94-2.89-9.58-4.54L451.72 94.63A47.44 47.44 0 0 0 464 96.42a48.05 48.05 0 0 0 47.21-56.85zm-199.28 241a45.34 45.34 0 0 0 13.72-2.16l21.8-6.95a12.94 12.94 0 0 1 3.49-.46 8.85 8.85 0 0 1 6.92 3 10.12 10.12 0 0 1 3 7.28 10.27 10.27 0 0 1-3 7.28L338 308.34a64 64 0 0 1-23.57 14.9A79.89 79.89 0 0 0 269 364.67l-32 69.15-.36.78-.32.79a70.89 70.89 0 0 1-116 23.81l-67.53-67.5a70.73 70.73 0 0 1-19.32-64.41c4.73-23.08 20.8-42.65 41.93-51.08l.81-.32.78-.37L147.31 243a79.84 79.84 0 0 0 41.44-45.42 63.85 63.85 0 0 1 14.9-23.58l35.25-35.24a9.28 9.28 0 0 1 13.17 0 9.47 9.47 0 0 1 1.86 10.52L238 183.42a44.48 44.48 0 0 0 5.16 45.51l36.53 37.7c11.53 11.5 23.89 13.91 32.24 13.91zm164.35-221.9A16 16 0 0 1 464 64.42a17.52 17.52 0 0 1-4.07-.71L442.12 59 384 117.08l.07-35.25C398.37 72.61 457.78 33.71 463 32a35.26 35.26 0 0 1 4.45.73 16.14 16.14 0 0 1 12.27 12.44 15.92 15.92 0 0 1-3.44 13.5z\"]\n};\nvar faGuitars = {\n prefix: 'fal',\n iconName: 'guitars',\n icon: [512, 512, [], \"f8bf\", \"M80 320a48 48 0 1 0 48-48 48 48 0 0 0-48 48zm64 0a16 16 0 1 1-16-16 16 16 0 0 1 16 16zm264 16h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm96.67 50.93l-30.3-50.64c-7.5-20.46-11.6-29.58-2.24-49.27a81.26 81.26 0 0 0 7.87-34.81v-31.87a20.76 20.76 0 0 0-20.77-20.77 20.77 20.77 0 0 0-18.47 11.25l-11.95 23.12c-6 11.67-12.13 19.87-24.81 22.06h-12V89.38a47.32 47.32 0 0 0 9.94-7.38 48 48 0 0 0-60.59-73.95 58.88 58.88 0 0 0-8.59 6.74c-10.46 10.47-11.68 26.69-28.91 106.61a32.1 32.1 0 0 0 8.63 29.48L344 182.41V256h-12c-12.72-3.5-18.48-14-23.15-26.85l-14.67-40.22A19.64 19.64 0 0 0 275.72 176 19.69 19.69 0 0 0 256 195.68v56.62a81.19 81.19 0 0 0 7.83 34.81c9.35 19.68 5.42 28.81-2.1 49.26L231.36 387c-25.38 59.16 18 125 82.33 125h108.47c64.41-.07 107.84-65.91 82.51-125.07zM335.13 128.14c3.58-16.61 18.07-86.13 20.57-91a35.47 35.47 0 0 1 3.66-2.62 16 16 0 0 1 20 24.82 17.79 17.79 0 0 1-3.38 2.38L360 71v82.17zM470.37 454a56.87 56.87 0 0 1-48.18 26h-108.5A57.62 57.62 0 0 1 260 401.44l29.14-48.62 1.55-2.58 1-2.83.72-2c7.75-21 15.07-40.88.26-72.06a49.46 49.46 0 0 1-4-12.42c6.81 10.4 17.56 21.15 34.74 25.88l4.17 1.15h79.07l2.7-.47a59.52 59.52 0 0 0 36.41-21.07 50.41 50.41 0 0 1-2.63 6.83c-14.75 31-7.49 50.7.18 71.53l.92 2.49 1 2.82 1.54 2.59L476 401.31a56.74 56.74 0 0 1-5.63 52.69zM408 400.12h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM128 480c-26.82 0-51.76-8.35-70.24-23.5C41.13 442.87 32 425.29 32 406.89c-.05-16.47 7.82-29.49 14.4-37.45 19.06-23 22.58-56.66 8.73-83.8a42.07 42.07 0 0 1-4.9-19.64c0-15.45 8.29-27 15.24-33.95A72.47 72.47 0 0 1 78.33 222c6.67-4.15 15.33-6.79 25.67-8.43V224a16 16 0 0 0 16 16h16a16 16 0 0 0 16-16v-10.47c10.34 1.64 19 4.28 25.67 8.43a72.47 72.47 0 0 1 12.86 10.12c6.95 7 15.25 18.5 15.24 33.95a42.07 42.07 0 0 1-4.9 19.61c-13.08 25.65-10.16 56.83 6.23 79.62l19.39-32.35c-2.89-10.73-2.31-22.54 2.87-32.67a79.15 79.15 0 0 0 2.8-7.43c-5-12.95-8.16-26.66-8.16-40.52v-29.61a91.15 91.15 0 0 0-10.86-13.22 103.66 103.66 0 0 0-18.58-14.67c-12.84-8-27.55-12-42.58-13.83v-54.22l16.62-33.23a29.12 29.12 0 0 0 3.07-13v-54.1A26.41 26.41 0 0 0 145.28 0h-34.56A26.41 26.41 0 0 0 84.3 26.41v54.08a29.12 29.12 0 0 0 3.07 13L104 126.74V181c-15 1.84-29.74 5.84-42.58 13.83a103.66 103.66 0 0 0-18.58 14.67c-15.39 15.39-24.62 35-24.61 56.58a74.36 74.36 0 0 0 8.41 34.2c8 15.65 6 35.59-4.88 48.78C8.11 365.55-.07 385.43 0 407c-.07 58 57.34 105 128 105 31.64 0 60.25-9.78 82.61-25.39a121.63 121.63 0 0 1-13.27-29.5C179 471.82 154.42 480 128 480zm11.7-448v48.49l-11.64 22.79-.05-.11v.11l-11.7-22.79V32z\"]\n};\nvar faHSquare = {\n prefix: 'fal',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zm-80-292v232c0 6.627-5.373 12-12 12h-8c-6.627 0-12-5.373-12-12V272H144v100c0 6.627-5.373 12-12 12h-8c-6.627 0-12-5.373-12-12V140c0-6.627 5.373-12 12-12h8c6.627 0 12 5.373 12 12v100h160V140c0-6.627 5.373-12 12-12h8c6.627 0 12 5.373 12 12z\"]\n};\nvar faH1 = {\n prefix: 'fal',\n iconName: 'h1',\n icon: [576, 512, [], \"f313\", \"M312 96H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v112H80V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v256H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H80V272h160v112h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-40V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm256 288h-70.34V112a16 16 0 0 0-16-16h-16a16 16 0 0 0-11.31 4.69L412 143a8 8 0 0 0 0 11.31l11.31 11.31a8 8 0 0 0 11.32 0l31-31V384H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faH2 = {\n prefix: 'fal',\n iconName: 'h2',\n icon: [576, 512, [], \"f314\", \"M312 96H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v112H80V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v256H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H80V272h160v112h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-40V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm240 288H406.07c3.84-78.76 159.24-94.63 159.24-198.94 0-50-36.93-89.06-97.75-89.06-38.5 0-73 20.77-91.81 48.46A11.83 11.83 0 0 0 379 161l7.15 4.75a12.1 12.1 0 0 0 16.35-2.84c14.5-19 37.72-33.76 63.28-33.76 37.31 0 63.37 23.72 63.37 57.7 0 82.34-161.12 97-161.12 207.31 0 4.22.19 7.81.5 11.18a12 12 0 0 0 12 10.69H552a8 8 0 0 0 8-8V392a8 8 0 0 0-8-8z\"]\n};\nvar faH3 = {\n prefix: 'fal',\n iconName: 'h3',\n icon: [576, 512, [], \"f315\", \"M476.8 223.64l90.74-101.26a11.69 11.69 0 0 0 3-7.81v-6.71A12.1 12.1 0 0 0 558.26 96H391a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h130.37c-3.27 3.13-7.65 7.56-12.42 12.95l-76.32 86.44a11.68 11.68 0 0 0-2 12.26l2.75 6.42a12.24 12.24 0 0 0 11.32 7.31h15.11c42.44 0 78.76 22.91 78.78 64.29a62.89 62.89 0 0 1-20.54 46c-36.94 33.66-92 18.39-124.16-9.63a12.52 12.52 0 0 0-17.76 1.49l-6.44 7.9a11.56 11.56 0 0 0 1.34 16.1c22.64 20 59 36.46 96.44 36.46C527.74 416 575 372.42 575 316.71c.1-57.3-44.9-88.62-98.2-93.07zM311 96H199a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v112H79V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v256H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H79V272h160v112h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-40V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faH4 = {\n prefix: 'fal',\n iconName: 'h4',\n icon: [576, 512, [], \"f86a\", \"M312 96H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v112H80V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h40v256H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H80V272h160v112h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-40V128h40a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm256 144h-24V104a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v136H384V104a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v152a16 16 0 0 0 16 16h144v136a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V272h24a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faHamburger = {\n prefix: 'fal',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M384 208a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-176-64a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm96 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm-176 64a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm384 112a63.84 63.84 0 0 0-30.17-54.1c13.54-20.94 18.48-52.94 6.35-79.07C448 100.27 359.55 32.13 256 32c-103.54.13-192 68.26-232.18 154.82-12.45 26.81-9.11 59.87 3.66 80.75a63.51 63.51 0 0 0-6.14 99.79C18.25 372.28 16 377.76 16 384v32a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-32c0-6.24-2.25-11.72-5.34-16.64A63.64 63.64 0 0 0 512 320zM52.85 200.3C90.66 118.9 172.3 64.13 256 64c83.72.13 165.37 54.9 203.16 136.31 5.79 12.47 5.24 29.54-1.41 43.48-.14.28-.27.56-.41.83a21.07 21.07 0 0 1-18.9 11.38H70.1c-6.12 0-12.24-2.39-16-7.22a16.5 16.5 0 0 1-2.49-4.4c-5.25-13.87-4.76-31.18 1.24-44.08zM464 416a32 32 0 0 1-32 32H80a32 32 0 0 1-32-32v-32h416zm-16-64H64a32 32 0 0 1 0-64h384a32 32 0 0 1 0 64z\"]\n};\nvar faHammer = {\n prefix: 'fal',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M573.65 200.92l-11.34-11.31c-3.13-3.12-8.21-3.12-11.34 0l-17.01 16.97-52.98-52.86c5.64-21.31.36-44.9-16.39-61.61l-45.36-45.25C387.92 15.62 346.88 0 305.84 0c-41.04 0-82.09 15.62-113.4 46.86l68.66 68.5c-4.42 16.71-1.88 34.7 7.4 49.8L21.47 395.26c-27.95 26.04-28.71 70.01-1.67 96.99C33.02 505.44 50.32 512 67.59 512c18.05 0 36.09-7.17 49.42-21.42l233.13-249.14c12.84 5.06 26.84 6.3 40.12 2.8l52.98 52.86-17.01 16.97a7.985 7.985 0 0 0 0 11.31l11.34 11.31c3.13 3.12 8.21 3.12 11.34 0l124.74-124.45a7.997 7.997 0 0 0 0-11.32zM93.57 468.74C86.78 476 77.55 480 67.59 480c-9.48 0-18.4-3.69-25.11-10.38-6.87-6.86-10.57-15.97-10.4-25.67.17-9.7 4.17-18.68 11.28-25.3l246.37-229.47 33.85 33.77L93.57 468.74zm372.35-194.28l-52.98-52.85-13.04-13.01-17.83 4.7c-11.3 2.98-22.84-.03-30.87-8.04l-51.03-50.91c-8.03-8.01-11.04-19.53-8.06-30.8l4.71-17.79-13.04-13.01-43.14-43.05c19.54-11.54 41.9-17.7 65.2-17.7 34.27 0 66.48 13.32 90.72 37.49l45.36 45.26c8.03 8.01 11.04 19.53 8.06 30.8l-4.71 17.79 13.04 13.01 52.98 52.86-45.37 45.25z\"]\n};\nvar faHammerWar = {\n prefix: 'fal',\n iconName: 'hammer-war',\n icon: [384, 512, [], \"f6e4\", \"M352.07 32c-1.75 0-3.53.14-5.33.44L240 50.23V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v34.23L37.26 32.44c-1.79-.3-3.58-.44-5.33-.44C14.64 32 0 46.05 0 64.01v191.98C0 273.95 14.64 288 31.94 288c1.75 0 3.53-.14 5.33-.44L144 269.77V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V269.77l106.74 17.79c1.79.3 3.57.44 5.33.44 17.3 0 31.94-14.05 31.94-32.01V64.01C384 46.05 369.36 32 352.07 32zM176 32h32v23.57l-16 2.67-16-2.67V32zm32 448h-32V264.43l16-2.67 16 2.67V480zm144-224.01L197.26 230.2l-5.26-.88-5.26.88L32 255.99V64.01L186.74 89.8l5.26.88 5.26-.88L352 64.01v191.98z\"]\n};\nvar faHamsa = {\n prefix: 'fal',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M256 328c-13.25 0-24 10.74-24 24s10.75 24 24 24 24-10.74 24-24-10.75-24-24-24zm195.95-104H416V96c0-35.29-28.71-64-64-64-13.16 0-25.41 3.99-35.6 10.84C307.65 17.91 283.88 0 256 0s-51.65 17.91-60.4 42.84A63.603 63.603 0 0 0 160 32c-35.29 0-64 28.71-64 64v128H60.06C18.96 224 .05 261.31 0 288c-.03 15.18 5.04 30.12 14.79 42.06L104.6 440.1c37.33 45.7 92.52 71.9 151.41 71.9s114.08-26.21 151.4-71.89l89.8-110.04c9.74-11.94 14.81-26.88 14.79-42.07-.05-26.76-19.31-64-60.05-64zm20.48 85.83L385.05 416.9c-24.74 30.29-58.67 52.64-97.07 60.03-60.8 11.71-120.68-10.67-158.59-57.07l-89.8-110.03c-7.6-9.31-9.65-22.89-5.19-34.58C38.81 263.56 48.9 256 60.06 256H128V97.95c0-15.96 10.8-30.84 26.53-33.49C174.52 61.1 192 76.61 192 96v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V65.95c0-15.96 10.8-30.84 26.53-33.49C270.52 29.1 288 44.61 288 64v152c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V97.95c0-15.96 10.8-30.84 26.53-33.49C366.52 61.1 384 76.61 384 96v160h67.95c11.16 0 21.25 7.56 25.67 19.25 4.46 11.69 2.41 25.27-5.19 34.58zM256 272c-18.79 0-57.96 1.82-112.12 69.86-4.59 5.77-4.59 14.51 0 20.27C198.07 430.22 237.24 432 256 432c18.79 0 57.96-1.82 112.12-69.87 4.59-5.77 4.59-14.51 0-20.27C313.93 273.78 274.76 272 256 272zm0 128c-44.18 0-80-48-80-48s35.82-48 80-48 80 48 80 48-35.82 48-80 48z\"]\n};\nvar faHandHeart = {\n prefix: 'fal',\n iconName: 'hand-heart',\n icon: [448, 512, [], \"f4bc\", \"M392 112c-8.6 0-16.7 1.9-24 5.4V88c0-30.9-25.1-56-56-56-9.7 0-18.8 2.5-26.7 6.8C278 16.3 256.9 0 232 0s-46 16.3-53.3 38.8c-7.9-4.3-17-6.8-26.7-6.8-30.9 0-56 25.1-56 56v152.8c-11.5-11.8-42.1-27.7-72.1-6.7-25.3 17.7-31.5 52.7-13.8 78l113.7 171.3c11.9 17.9 31.8 28.6 53.3 28.6h180.6c30.4 0 56.8-21.6 62.8-51.4l20.6-103.2c4.5-22.7 6.8-45.9 6.8-69V168c.1-30.9-25-56-55.9-56zm24 176.3c0 21.1-2.1 42.1-6.2 62.8l-20.6 103.2c-3 15-16.1 25.7-31.4 25.7H177.2c-10.7 0-20.7-5.4-26.7-14.3L36.3 293.8c-7.6-10.9-5-25.8 5.9-33.4 15.8-11.1 30 1 33.4 5.9l37.8 54.4c4.5 6.4 14.6 3.3 14.6-4.6V88c0-13.3 10.7-24 24-24s24 10.7 24 24v160c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V56c0-13.3 10.7-24 24-24s24 10.7 24 24v192c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V88c0-13.3 10.7-24 24-24s24 10.7 24 24v160c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-80c0-13.3 10.7-24 24-24s24 10.7 24 24v120.3zM333.3 299c-6.1-4.9-16.6-11-30.3-11-13.1 0-29.2 5.6-47 23.1-17.8-17.5-33.9-23.1-47-23.1-13.7 0-24.3 6.1-30.3 11-23.6 19.1-24.8 53.5-3.7 74.2l72.6 71.3c4.7 4.6 12.3 4.6 17 0l72.6-71.3c20.9-20.7 19.7-55.1-3.9-74.2zm-18.7 51.4L256 408l-58.6-57.6c-12-11.8-2.1-30.4 11.6-30.4 6.7 0 15.5 5 24.6 13.9L256 356l22.4-22.1c9.1-9 17.9-13.9 24.6-13.9 13.7 0 23.6 18.6 11.6 30.4z\"]\n};\nvar faHandHolding = {\n prefix: 'fal',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M558.3 333.6c-9.6-8.6-22.1-13.4-35.2-13.4-12.5 0-24.8 4.3-34.6 12.2l-61.6 49.3c-1.9 1.5-4.2 2.3-6.7 2.3h-41.6c4.6-9.6 6.5-20.7 4.8-32.3-4-27.9-29.6-47.7-57.8-47.7H181.3c-20.8 0-41 6.7-57.6 19.2L85.3 352H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l46.9-35.2c11.1-8.3 24.6-12.8 38.4-12.8H328c13.3 0 24 10.7 24 24s-10.7 24-24 24h-88c-8.8 0-16 7.2-16 16s7.2 16 16 16h180.2c9.7 0 19.1-3.3 26.7-9.3l61.6-49.2c4.2-3.4 9.5-5.2 14.6-5.2 5 0 9.9 1.7 13.8 5.2 10.1 9.1 9.3 24.5-.9 32.6l-100.8 80.7c-7.6 6.1-17 9.3-26.7 9.3H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h400.5c17 0 33.4-5.8 46.6-16.4L556 415c12.2-9.8 19.5-24.4 20-40s-6-30.8-17.7-41.4z\"]\n};\nvar faHandHoldingBox = {\n prefix: 'fal',\n iconName: 'hand-holding-box',\n icon: [576, 512, [], \"f47b\", \"M112 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zM256 32h64v76.2l-32-16-32 16V32zm-128 0h96v128l64-32 64 32V32h96v192H128V32zm430.3 301.6c-9.6-8.6-22.1-13.4-35.2-13.4-12.5 0-24.8 4.3-34.6 12.2l-61.6 49.3c-1.9 1.5-4.2 2.3-6.7 2.3h-41.6c4.6-9.6 6.5-20.7 4.8-32.3-4-27.9-29.6-47.7-57.8-47.7H181.3c-20.8 0-41 6.7-57.6 19.2L85.3 352H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l46.9-35.2c11.1-8.3 24.6-12.8 38.4-12.8H328c13.3 0 24 10.7 24 24s-10.7 24-24 24h-88c-8.8 0-16 7.2-16 16s7.2 16 16 16h180.2c9.7 0 19.1-3.3 26.7-9.3l61.6-49.2c4.2-3.4 9.5-5.2 14.6-5.2 5 0 9.9 1.7 13.8 5.2 10.1 9.1 9.3 24.5-.9 32.6l-100.8 80.7c-7.6 6.1-17 9.3-26.7 9.3H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h400.5c17 0 33.4-5.8 46.6-16.4L556 415c12.2-9.8 19.5-24.4 20-40s-6-30.8-17.7-41.4z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fal',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M558.3 333.6c-19.7-17.7-49.4-17.6-69.9-1.2l-61.6 49.3c-1.9 1.5-4.2 2.3-6.7 2.3h-41.6c4.6-9.6 6.5-20.7 4.8-32.3-4-27.9-29.6-47.7-57.8-47.7H181.3c-20.8 0-41 6.7-57.6 19.2L85.3 352H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l46.9-35.2c11.1-8.3 24.6-12.8 38.4-12.8H328c13.3 0 24 10.7 24 24s-10.7 24-24 24h-88c-8.8 0-16 7.2-16 16s7.2 16 16 16h180.2c9.7 0 19.1-3.3 26.7-9.3l61.6-49.2c7.7-6.1 20-7.6 28.4 0 10.1 9.1 9.3 24.5-.9 32.6l-100.8 80.7c-7.6 6.1-17 9.3-26.7 9.3H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h400.5c17 0 33.4-5.8 46.6-16.4L556 415c12.2-9.8 19.5-24.4 20-40s-6-30.8-17.7-41.4zm-283-83.1c7 7.4 18.4 7.4 25.5 0l108.9-114.1c31.6-33.2 29.8-88.1-5.6-118.7-35.3-30.6-81.4-17-104.9 7.7L288 37l-11.1-11.6c-23-24.1-69.3-38.6-104.9-7.7-35.3 30.6-37.2 85.6-5.6 118.7l108.9 114.1zM192.4 41.9c20.8-18 48.2-8.7 61.9 5.7L288 82.9l33.7-35.3c13.5-14.1 41-23.7 61.9-5.7 23.8 20.6 20.2 54.5 3.4 72.1l-99 103.8L189 114c-16.7-17.4-20.3-51.5 3.4-72.1z\"]\n};\nvar faHandHoldingMagic = {\n prefix: 'fal',\n iconName: 'hand-holding-magic',\n icon: [576, 512, [], \"f6e5\", \"M558.3 333.65c-9.58-8.65-22.09-13.41-35.23-13.41-12.51 0-24.81 4.32-34.62 12.17l-61.57 49.25a10.68 10.68 0 0 1-6.66 2.34h-41.63c4.56-9.58 6.48-20.66 4.81-32.27-4.02-27.93-29.62-47.73-57.83-47.73H181.33c-20.77 0-40.98 6.74-57.6 19.2L85.33 352H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h88l46.93-35.2a63.99 63.99 0 0 1 38.4-12.8H328c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24h-88c-8.84 0-16 7.16-16 16s7.16 16 16 16h180.22c9.69 0 19.09-3.3 26.65-9.35l61.56-49.25c4.22-3.38 9.46-5.16 14.63-5.16 4.99 0 9.91 1.66 13.78 5.16 10.05 9.08 9.26 24.51-.87 32.59l-100.83 80.66a42.656 42.656 0 0 1-26.65 9.35H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h400.51c16.95 0 33.4-5.77 46.63-16.36l100.83-80.67c12.23-9.76 19.52-24.36 20-40.03s-5.96-30.72-17.67-41.29zM208 224h72c39.69 0 72-32.3 72-72s-32.31-72-72-72h-15.31C233 80 204.81 98.78 192 126.61c17.72-7.86 41.88-14.61 72.69-14.61H280c22.06 0 40 17.94 40 40s-17.94 40-40 40h-72c-27.47 0-48-25.34-48-48V80c0-26.47 21.53-48 48-48h160c26.47 0 48 21.53 48 48v69.23c0 36.12-16.63 72.41-46.84 102.2L348.31 272c57.09-14.78 99.25-64.27 99.69-121.33V80c0-44.11-35.88-80-80-80H208c-44.13 0-80 35.89-80 80v64c0 42.61 37.38 80 80 80z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fal',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M160,192h48v48a16,16,0,0,0,16,16h96a16,16,0,0,0,16-16V192h48a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H336V16A16,16,0,0,0,320,0H224a16,16,0,0,0-16,16V64H160a16,16,0,0,0-16,16v96A16,16,0,0,0,160,192Zm16-96h64V32h64V96h64v64H304v64H240V160H176ZM558.27,333.5a52.68,52.68,0,0,0-35.2-13.39,55.26,55.26,0,0,0-34.59,12.2l-61.59,49.3a10.72,10.72,0,0,1-6.71,2.3h-41.6a55.68,55.68,0,0,0,4.81-32.3c-4-27.91-29.61-47.7-57.81-47.7H181.29a95.61,95.61,0,0,0-57.59,19.2l-38.41,28.8H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H96l46.9-35.21a64.21,64.21,0,0,1,38.39-12.79H328a24,24,0,0,1,0,48H240a16,16,0,0,0,0,32H420.18a43.14,43.14,0,0,0,26.71-9.3l61.59-49.2a23.44,23.44,0,0,1,14.59-5.21,20.51,20.51,0,0,1,13.81,5.21A21.25,21.25,0,0,1,536,390L435.18,470.7a42.47,42.47,0,0,1-26.7,9.3H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H408.48a74.34,74.34,0,0,0,46.59-16.39L556,414.91a53.39,53.39,0,0,0,2.3-81.41Z\"]\n};\nvar faHandHoldingSeedling = {\n prefix: 'fal',\n iconName: 'hand-holding-seedling',\n icon: [576, 512, [], \"f4bf\", \"M248.9 192H272v56c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56h23.1C411.4 192 480 113 480 16V0h-55.1C364.9 0 313 40.1 288 98.1 263 40.1 211.1 0 151.1 0H96v16c0 97 68.6 176 152.9 176zm176-160h22.4c-6.7 71.9-58 128-120.1 128h-22.4c6.6-71.9 58-128 120.1-128zm-273.8 0c62.1 0 113.4 56.1 120.1 128h-22.4c-62.1 0-113.4-56.1-120.1-128h22.4zm407.2 301.6c-9.6-8.6-22.1-13.4-35.2-13.4-12.5 0-24.8 4.3-34.6 12.2l-61.6 49.3c-1.9 1.5-4.2 2.3-6.7 2.3h-41.6c4.6-9.6 6.5-20.7 4.8-32.3-4-27.9-29.6-47.7-57.8-47.7H181.3c-20.8 0-41 6.7-57.6 19.2L85.3 352H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l46.9-35.2c11.1-8.3 24.6-12.8 38.4-12.8H328c13.3 0 24 10.7 24 24s-10.7 24-24 24h-88c-8.8 0-16 7.2-16 16s7.2 16 16 16h180.2c9.7 0 19.1-3.3 26.7-9.3l61.6-49.2c4.2-3.4 9.5-5.2 14.6-5.2 5 0 9.9 1.7 13.8 5.2 10.1 9.1 9.3 24.5-.9 32.6l-100.8 80.7c-7.6 6.1-17 9.3-26.7 9.3H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h400.5c17 0 33.4-5.8 46.6-16.4L556 415c12.2-9.8 19.5-24.4 20-40s-6-30.8-17.7-41.4z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fal',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M256.7 135.7l56.4 16.1c8.8 2.5 14.9 10.6 14.9 19.7 0 11.3-9.2 20.5-20.5 20.5h-36.9c-8.2 0-16.1-2.6-22.6-7.3-3-2.2-7.2-1.5-9.8 1.2l-11.4 11.4c-3.5 3.5-2.9 9.2 1 12.2 12.3 9.4 27.2 14.5 42.9 14.5h1.4v24c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-24h1.4c22.8 0 44.3-13.6 51.7-35.2 10.1-29.6-7.3-59.8-35.1-67.8L263 104.1c-8.8-2.5-14.9-10.6-14.9-19.7 0-11.3 9.2-20.5 20.5-20.5h36.9c8.2 0 16.1 2.6 22.6 7.3 3 2.2 7.2 1.5 9.8-1.2l11.4-11.4c3.5-3.5 2.9-9.2-1-12.2C336 37.1 321.1 32 305.4 32H304V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h-3.5c-30.6 0-55.1 26.3-52.2 57.5 2 22.1 19 40.1 40.4 46.2zm301.6 197.9c-19.7-17.7-49.4-17.6-69.9-1.2l-61.6 49.3c-1.9 1.5-4.2 2.3-6.7 2.3h-41.6c4.6-9.6 6.5-20.7 4.8-32.3-4-27.9-29.6-47.7-57.8-47.7H181.3c-20.8 0-41 6.7-57.6 19.2L85.3 352H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l46.9-35.2c11.1-8.3 24.6-12.8 38.4-12.8H328c13.3 0 24 10.7 24 24s-10.7 24-24 24h-88c-8.8 0-16 7.2-16 16s7.2 16 16 16h180.2c9.7 0 19.1-3.3 26.7-9.3l61.6-49.2c7.7-6.1 20-7.6 28.4 0 10.1 9.1 9.3 24.5-.9 32.6l-100.8 80.7c-7.6 6.1-17 9.3-26.7 9.3H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h400.5c17 0 33.4-5.8 46.6-16.4L556 415c12.2-9.8 19.5-24.4 20-40s-6-30.8-17.7-41.4z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fal',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M558.3 333.6c-9.6-8.6-22.1-13.4-35.2-13.4-12.5 0-24.8 4.3-34.6 12.2l-61.6 49.3c-1.9 1.5-4.2 2.3-6.7 2.3h-41.6c4.6-9.6 6.5-20.7 4.8-32.3-4-27.9-29.6-47.7-57.8-47.7H181.3c-20.8 0-41 6.7-57.6 19.2L85.3 352H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88l46.9-35.2c11.1-8.3 24.6-12.8 38.4-12.8H328c13.3 0 24 10.7 24 24s-10.7 24-24 24h-88c-8.8 0-16 7.2-16 16s7.2 16 16 16h180.2c9.7 0 19.1-3.3 26.7-9.3l61.6-49.2c4.2-3.4 9.5-5.2 14.6-5.2 5 0 9.9 1.7 13.8 5.2 10.1 9.1 9.3 24.5-.9 32.6l-100.8 80.7c-7.6 6.1-17 9.3-26.7 9.3H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h400.5c17 0 33.4-5.8 46.6-16.4L556 415c12.2-9.8 19.5-24.4 20-40s-6-30.8-17.7-41.4zM288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-3.2-4.3-8-6.4-12.8-6.4s-9.6 2.1-12.8 6.4C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm0-213c44.1 61.4 64 103.5 64 119 0 34.2-28.7 62-64 62s-64-27.8-64-62c0-15.5 19.9-57.6 64-119z\"]\n};\nvar faHandLizard = {\n prefix: 'fal',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M558.232 297.931L406.298 61.41C394.468 42.994 374.338 32 352.45 32H48C21.532 32 0 53.532 0 80v8c0 39.701 32.299 72 72 72h216.103l-23.189 58.93a7.954 7.954 0 0 1-7.444 5.07H144c-44.112 0-80 35.888-80 80 0 26.468 21.532 48 48 48h125.848a31.98 31.98 0 0 1 16.822 4.778l93.536 57.799a7.948 7.948 0 0 1 3.794 6.805V480h224V358.463c0-21.506-6.144-42.439-17.768-60.532zM544 448H384v-26.618c0-13.966-7.093-26.687-18.973-34.027l-93.537-57.799A63.96 63.96 0 0 0 237.847 320H112c-8.822 0-16-7.178-16-16 0-26.468 21.532-48 48-48h113.469c16.551 0 31.161-9.952 37.222-25.353l25.34-64.394c7.227-18.362-6.334-38.254-26.055-38.254H72c-22.056 0-40-17.944-40-40v-8c0-8.822 7.178-16 16-16h304.45c10.943 0 21.009 5.497 26.924 14.705l151.935 236.521A79.854 79.854 0 0 1 544 358.463V448z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fal',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.94 312.94a63.91 63.91 0 0 0-48.47-62L415.94 247c0-26.64-17.73-44.92-39.23-48.91-30.84-5.73-31.43-6.11-37.6-6.11a50.84 50.84 0 0 0-19.11 3.74V64a64 64 0 0 0-127.94-.57c0 .21-.09.36-.09.57v131.72a50.84 50.84 0 0 0-19.15-3.72c-6.39 0-8.41.67-30.53 5.09A57.76 57.76 0 0 0 96 253.57v14.65l-28.63 14.31A63.66 63.66 0 0 0 32 339.78v63A63.58 63.58 0 0 0 50.75 448l26.5 26.51a127.15 127.15 0 0 0 90.5 37.49H352a128 128 0 0 0 128-128.08zM352 480H167.76a96 96 0 0 1-67.88-28.12l-26.51-26.51A32 32 0 0 1 64 402.74v-63a32 32 0 0 1 17.69-28.63L96 304v32a16 16 0 0 0 32 0v-82.43a25.64 25.64 0 0 1 20.62-25.11c19.45-3.89 21.11-4.46 24.21-4.46A19.21 19.21 0 0 1 192 243.21 12.79 12.79 0 0 0 204.77 256h6.41A12.79 12.79 0 0 0 224 243.21V65.37c0-16.71 12.22-31.64 28.86-33.22A32 32 0 0 1 288 64v179.21A12.79 12.79 0 0 0 300.75 256h6.41A12.79 12.79 0 0 0 320 243.21 19.21 19.21 0 0 1 339.11 224c2.88 0 3.31.29 31.69 5.56a16.06 16.06 0 0 1 13.14 15.74V272l39.76 9.94a32 32 0 0 1 24.24 31l.06 71A96 96 0 0 1 352 480z\"]\n};\nvar faHandPaper = {\n prefix: 'fal',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M369.4 119.1V96.3c0-42.8-42.8-72.8-82.3-56.5-19.8-54.2-94.4-52.2-112.5.8-38.4-15.8-81.8 12.8-81.8 55.9v145.7c-20.3-13.7-47.6-13.9-68.4 1.5-26.6 19.6-32.4 57.1-13.1 83.9l125 174.4c4.5 6.3 11.8 10 19.5 10H388c11.2 0 20.9-7.7 23.4-18.6l31.4-135.6c3.4-14.8 5.2-30 5.2-45.3V176.2c0-41.5-40.6-70.1-78.6-57.1zM416 312.5c0 12.8-1.5 25.6-4.4 38l-30 129.4H159.9l-122.6-171c-9-12.6-6.3-30.4 6.1-39.5 12.3-9.1 29.6-6.4 38.6 6.2l28.3 39.4c4.5 6.3 14.5 3.1 14.5-4.7V96.5c0-38 55.4-36.9 55.4.7V256c0 4.4 3.6 8 8 8h7.1c4.4 0 8-3.6 8-8V60.2c0-38 55.4-36.9 55.4.7v195c0 4.4 3.6 8 8 8h7.1c4.4 0 8-3.6 8-8V95.6c0-38 55.4-36.9 55.4.7V256c0 4.4 3.6 8 8 8h7.1c4.4 0 8-3.6 8-8v-79c0-37.6 55.4-38.8 55.4-.7v136.2z\"]\n};\nvar faHandPeace = {\n prefix: 'fal',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M363.642 201.124c-13.07-27.616-44.381-40.855-72.775-31.297V67.5c0-37.22-29.991-67.5-66.855-67.5s-66.855 30.28-66.855 67.5L160 176l-30.852-89.568C115.645 51.546 76.664 34.523 42.319 48.22 8.02 61.896-8.796 100.93 4.609 135.568L65.068 291.78c-29.161 23.68-49.333 51.547-28.683 88.228l57.139 101.5C104.112 500.316 124.007 512 145.445 512h214.273c13.464 0 26.679-4.662 37.21-13.128 10.455-8.405 17.889-20.266 20.933-33.4l28.57-123.25A60.856 60.856 0 0 0 448 328.5V256c0-43.874-45.136-72.88-84.358-54.876zM71.039 328.153l27.757-22.54a8.002 8.002 0 0 0 2.418-9.098L34.453 124.019C17.447 80.08 82.438 54.403 99.305 97.981l62.274 160.906a8 8 0 0 0 7.461 5.112h12.117a8 8 0 0 0 8-8V67.5c0-46.929 69.709-47.021 69.709 0V256a8 8 0 0 0 8 8h7.143a8 8 0 0 0 8-8v-29c0-37.351 55.425-37.41 55.425 0v29a8 8 0 0 0 8 8h7.143a8 8 0 0 0 8-8c0-37.35 55.424-37.41 55.424 0v72.5c0 2.186-.25 4.371-.742 6.496l-28.57 123.25C383.72 471.055 372.629 480 359.719 480H145.445c-9.898 0-19.108-5.437-24.035-14.189l-57.14-101.5c-6.863-12.192-4.016-27.398 6.769-36.158z\"]\n};\nvar faHandPointDown = {\n prefix: 'fal',\n iconName: 'hand-point-down',\n icon: [448, 512, [], \"f0a7\", \"M185.6 512c38.484 0 70.4-32.063 70.4-70.4v-56.817c.351-.009.703-.02 1.054-.033 14.187-.536 27.727-4.655 39.582-11.885 23.339 4.644 48.386-2.335 65.494-16.635 49.786 1.625 85.87-29.026 85.87-88.631v-23.236c0-54.11-34.281-90.452-42.038-125.102C412.139 113.428 416 105.167 416 96V32c0-17.673-14.327-32-32-32H160c-17.673 0-32 14.327-32 32v64c0 11.62 6.194 21.792 15.459 27.397-10.075 18.05-49.384 49.858-67.144 60.919C53.853 198.2 0 207.454 0 256c0 41.313 29.922 73.6 70.4 73.6 17.79 0 32.611-4.354 44.8-9.791V441.6c0 37.63 32.239 70.4 70.4 70.4zM384 32v64H160V32h224zM185.6 480c-20.4 0-38.4-18.3-38.4-38.4V268.8c-18.9 0-38.4 28.8-76.8 28.8C48 297.6 32 280 32 256s35.686-28.704 61.2-44.5c23.443-14.595 72.556-53.665 83.262-83.5h198.677C384.733 167.68 416 200.026 416 244.364V267.6c0 44.208-24.215 62.317-66.9 55.201-8.728 15.94-37.068 26.347-58.5 14.1-19.882 21.125-50.597 19.404-66.6 5.4V441.6c0 20.7-17.7 38.4-38.4 38.4zM332 64c0-11.046 8.954-20 20-20s20 8.954 20 20-8.954 20-20 20-20-8.954-20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fal',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M0 217.6C0 256.084 32.063 288 70.4 288h56.817c.009.351.02.703.033 1.054.536 14.187 4.655 27.727 11.885 39.582-4.644 23.339 2.335 48.386 16.635 65.494-1.625 49.786 29.026 85.87 88.631 85.87h23.236c54.11 0 90.452-34.281 125.102-42.038C398.572 444.139 406.833 448 416 448h64c17.673 0 32-14.327 32-32V192c0-17.673-14.327-32-32-32h-64c-11.62 0-21.792 6.194-27.397 15.459-18.051-10.075-49.858-49.384-60.919-67.144C313.8 85.853 304.546 32 256 32c-41.313 0-73.6 29.922-73.6 70.4 0 17.79 4.354 32.611 9.791 44.8H70.4C32.77 147.2 0 179.439 0 217.6zM480 416h-64V192h64v224zM32 217.6c0-20.4 18.3-38.4 38.4-38.4h172.8c0-18.9-28.8-38.4-28.8-76.8C214.4 80 232 64 256 64s28.704 35.686 44.5 61.2c14.595 23.443 53.665 72.556 83.5 83.262v198.677C344.32 416.733 311.974 448 267.636 448H244.4c-44.208 0-62.317-24.215-55.201-66.9-15.94-8.728-26.347-37.068-14.1-58.5-21.125-19.882-19.404-50.597-5.4-66.6H70.4C49.7 256 32 238.3 32 217.6zM448 364c11.046 0 20 8.954 20 20s-8.954 20-20 20-20-8.954-20-20 8.954-20 20-20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fal',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M441.6 147.2H319.809c5.437-12.189 9.791-27.01 9.791-44.8 0-40.478-32.286-70.4-73.6-70.4-48.546 0-57.8 53.853-71.683 76.315-11.062 17.761-42.869 57.069-60.919 67.144C117.792 166.194 107.62 160 96 160H32c-17.673 0-32 14.327-32 32v224c0 17.673 14.327 32 32 32h64c9.167 0 17.428-3.861 23.262-10.038C153.911 445.719 190.254 480 244.364 480H267.6c59.606 0 90.256-36.084 88.631-85.87 14.3-17.108 21.279-42.155 16.635-65.494 7.229-11.856 11.348-25.395 11.885-39.582.013-.351.024-.703.033-1.054H441.6c38.337 0 70.4-31.916 70.4-70.4 0-38.161-32.77-70.4-70.4-70.4zM32 192h64v224H32V192zm409.6 64h-99.301c14.004 16.003 15.726 46.718-5.4 66.6 12.247 21.431 1.841 49.771-14.1 58.5 7.116 42.685-10.993 66.9-55.201 66.9h-23.236c-44.337 0-76.684-31.267-116.364-40.861V208.462c29.835-10.706 68.904-59.818 83.5-83.262C227.296 99.686 232 64 256 64s41.6 16 41.6 38.4c0 38.4-28.8 57.9-28.8 76.8h172.8c20.1 0 38.4 18 38.4 38.4 0 20.7-17.7 38.4-38.4 38.4zM84 384c0 11.046-8.954 20-20 20s-20-8.954-20-20 8.954-20 20-20 20 8.954 20 20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fal',\n iconName: 'hand-point-up',\n icon: [448, 512, [], \"f0a6\", \"M115.2 70.4v121.792c-12.189-5.437-27.01-9.791-44.8-9.791C29.922 182.4 0 214.687 0 256c0 48.546 53.853 57.8 76.315 71.683 17.761 11.062 57.069 42.869 67.144 60.919C134.194 394.208 128 404.38 128 416v64c0 17.673 14.327 32 32 32h224c17.673 0 32-14.327 32-32v-64c0-9.167-3.861-17.428-10.038-23.262C413.719 358.089 448 321.746 448 267.636V244.4c0-59.606-36.084-90.256-85.87-88.631-17.108-14.3-42.155-21.279-65.494-16.635-11.856-7.229-25.395-11.348-39.582-11.885a92.713 92.713 0 0 0-1.054-.033V70.4C256 32.063 224.084 0 185.6 0c-38.161 0-70.4 32.77-70.4 70.4zM160 480v-64h224v64H160zm64-409.6v99.301c16.003-14.004 46.718-15.726 66.6 5.4 21.431-12.247 49.771-1.841 58.5 14.1 42.685-7.116 66.9 10.993 66.9 55.201v23.236c0 44.337-31.267 76.684-40.861 116.364H176.462c-10.706-29.835-59.818-68.904-83.262-83.5C67.686 284.704 32 280 32 256s16-41.6 38.4-41.6c38.4 0 57.9 28.8 76.8 28.8V70.4c0-20.1 18-38.4 38.4-38.4 20.7 0 38.4 17.7 38.4 38.4zM352 428c11.046 0 20 8.954 20 20s-8.954 20-20 20-20-8.954-20-20 8.954-20 20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fal',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M360.543 188.156c-17.46-28.491-54.291-37.063-82.138-19.693-15.965-20.831-42.672-28.278-66.119-20.385V60.25c0-33.222-26.788-60.25-59.714-60.25S92.857 27.028 92.857 60.25v181.902c-20.338-13.673-47.578-13.89-68.389 1.472-26.556 19.605-32.368 57.08-13.132 83.926l114.271 159.5C136.803 502.673 154.893 512 174 512h185.714c27.714 0 51.832-19.294 58.145-46.528l28.571-123.25a60.769 60.769 0 0 0 1.57-13.723v-87c0-45.365-48.011-74.312-87.457-53.343zM82.097 275.588l28.258 39.439a7.999 7.999 0 1 0 14.503-4.659V60.25c0-37.35 55.428-37.41 55.428 0V241.5a8 8 0 0 0 8 8h7.144a8 8 0 0 0 8-8v-36.25c0-37.35 55.429-37.41 55.429 0v36.25a8 8 0 0 0 8 8H274a8 8 0 0 0 8-8v-21.75c0-37.351 55.429-37.408 55.429 0v21.75a8 8 0 0 0 8 8h7.143a8 8 0 0 0 8-8c0-37.35 55.429-37.41 55.429 0v87c0 2.186-.25 4.371-.742 6.496l-28.573 123.251C383.717 471.055 372.626 480 359.715 480H174c-8.813 0-17.181-4.332-22.381-11.588l-114.283-159.5c-22.213-31.004 23.801-62.575 44.761-33.324zM180.285 401v-87a8 8 0 0 1 8-8h7.144a8 8 0 0 1 8 8v87a8 8 0 0 1-8 8h-7.144a8 8 0 0 1-8-8zm78.572 0v-87a8 8 0 0 1 8-8H274a8 8 0 0 1 8 8v87a8 8 0 0 1-8 8h-7.143a8 8 0 0 1-8-8zm78.572 0v-87a8 8 0 0 1 8-8h7.143a8 8 0 0 1 8 8v87a8 8 0 0 1-8 8h-7.143a8 8 0 0 1-8-8z\"]\n};\nvar faHandReceiving = {\n prefix: 'fal',\n iconName: 'hand-receiving',\n icon: [640, 512, [], \"f47c\", \"M439.2 105.6L342.9 9.3C336.7 3.1 328.6 0 320.5 0s-16.2 3.1-22.4 9.3l-96.4 96.4c-12.3 12.3-12.3 32.4 0 44.7l96.4 96.4c6.2 6.2 14.3 9.3 22.4 9.3s16.2-3.1 22.4-9.3l96.4-96.4c12.3-12.4 12.3-32.4-.1-44.8zM320.5 224.4L224.1 128l96.3-96.4 96.4 96.4-96.3 96.4zM220 248.8c-14-19.2-49.1-31.4-74.5-3.9-15.6 16.8-15.9 42.8-2.5 61.3l28.6 39.3c6.5 8.9-6.5 19.1-13.6 10.7l-62-73.3V145.8c0-26-21.2-49.3-47.2-49.7C21.9 95.6 0 117.2 0 144v170.4c0 10.9 3.7 21.5 10.5 30l107 133.7c5.4 6.8 8.9 17.5 10.1 27 .5 4 4 6.9 8 6.9h16c4.8 0 8.5-3.9 8-8.7-1.6-16-7.5-33.3-17.1-45.2l-107-133.7c-2.3-2.8-3.5-6.4-3.5-10V144c0-21 32-21.6 32 .7v149.7l64.6 77.5c36.9 44.2 96.8-2.7 70.8-42.4-.2-.3-.4-.5-.5-.8l-30.6-42.2c-4.7-6.5-4.2-16.7 3.5-22.3 7-5.1 17.1-3.8 22.4 3.5l42.4 58.4c12.7 16.9 19.5 37.4 19.5 58v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-120c0-27.7-9-54.6-25.6-76.8L220 248.8zM640 144c0-26.8-21.9-48.4-48.8-48-26 .4-47.2 23.7-47.2 49.7v137.1l-62 73.3c-7.1 8.4-20.1-1.7-13.6-10.7l28.6-39.3c13.4-18.5 13.1-44.6-2.5-61.3-25.5-27.4-60.6-15.3-74.5 3.9l-42.4 58.4C361 329.3 352 356.3 352 384v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384c0-20.6 6.8-41.1 19.5-58l42.4-58.4c5.3-7.3 15.3-8.7 22.4-3.5 7.8 5.6 8.3 15.8 3.5 22.3l-30.6 42.2c-.2.3-.4.5-.5.8-26.1 39.7 33.9 86.7 70.8 42.4l64.6-77.5V144.6c0-22.3 32-21.7 32-.7v170.4c0 3.6-1.2 7.2-3.5 10L497.6 458c-9.5 11.9-15.5 29.2-17.1 45.2-.5 4.8 3.2 8.7 8 8.7h16c4 0 7.5-2.9 8-6.9 1.2-9.6 4.6-20.2 10.1-27l107-133.7c6.8-8.5 10.5-19.1 10.5-30L640 144z\"]\n};\nvar faHandRock = {\n prefix: 'fal',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M412.055 83.099C394.09 42.33 342.756 30.157 308.44 57.07c-28.257-34.829-80.888-32.701-106.878 2.23C157.639 26.987 94.25 58.222 94.25 113.143v10.078C50.599 104.318 0 135.857 0 184.571v59.326c0 31.379 13.628 61.31 37.389 82.119l101.2 88.626C147.059 422.06 145 429.788 145 456c0 13.255 10.745 24 24 24h261c13.255 0 24-10.745 24-24 0-24.785-1.14-33.765 4.887-47.867l44.364-103.808c5.805-13.583 8.749-27.948 8.749-42.694V142.42c0-51.69-55.549-83.525-99.945-59.321zM159.67 390.568l-101.2-88.626C41.648 287.21 32 266.054 32 243.897v-59.326c0-19.525 16.327-35.242 36.112-34.852 19.237.316 34.888 16.267 34.888 35.557v42.946c0 2.306.995 4.5 2.729 6.019l7.25 6.349a8 8 0 0 0 13.271-6.018V113.143c0-45.246 71-47.412 71 .706v27.865a8 8 0 0 0 8 8h7.25a8 8 0 0 0 8-8V98.857c0-45.23 71-47.429 71 .705v42.151a8 8 0 0 0 8 8h7.25a8 8 0 0 0 8-8V109.57c0-46.004 71-46.504 71 .705v31.438a8 8 0 0 0 8 8H401a8 8 0 0 0 8-8c0-45.242 71-47.428 71 .706V261.63a76.236 76.236 0 0 1-6.174 30.119l-44.365 103.808C420.883 415.63 422 429.933 422 448H177c0-19.081 2.866-39.746-17.33-57.432z\"]\n};\nvar faHandScissors = {\n prefix: 'fal',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M256 480h72.5c4.615 0 9.232-.528 13.722-1.569l123.25-28.57c13.133-3.044 24.995-10.478 33.4-20.933 8.466-10.531 13.128-23.746 13.128-37.21V177.445c0-21.438-11.684-41.333-30.492-51.92l-101.5-57.139c-36.681-20.651-64.548-.478-88.228 28.683l-156.211-60.46c-34.639-13.405-73.672 3.411-87.35 37.709-13.696 34.345 3.326 73.326 38.212 86.829L176 192l-108.5-2.843c-37.22 0-67.5 29.991-67.5 66.855s30.28 66.854 67.5 66.854h102.327c-9.558 28.393 3.681 59.705 31.297 72.775C183.12 434.864 212.126 480 256 480zM364.311 96.271l101.5 57.14c8.753 4.927 14.189 14.137 14.189 24.035v214.272c0 12.91-8.945 24.001-21.754 26.97l-123.25 28.57a28.843 28.843 0 0 1-6.496.742H256c-37.41 0-37.35-55.424 0-55.424a8 8 0 0 0 8-8v-7.143a8 8 0 0 0-8-8h-29c-37.41 0-37.351-55.425 0-55.425h29a8 8 0 0 0 8-8v-7.143a8 8 0 0 0-8-8H67.5c-47.021 0-46.929-69.709 0-69.709H256a8 8 0 0 0 8-8V201.04a8 8 0 0 0-5.112-7.461L97.981 131.305c-43.579-16.867-17.902-81.857 26.037-64.852l172.497 66.761a8.002 8.002 0 0 0 9.098-2.418l22.54-27.757c8.76-10.785 23.966-13.632 36.158-6.768z\"]\n};\nvar faHandSparkles = {\n prefix: 'fal',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M307.58,288a4,4,0,0,0-7.15,0L288,317.79l-29.79,12.42a4,4,0,0,0,0,7.15L288,349.78l12.42,29.78a4,4,0,0,0,7.15,0L320,349.78l29.79-12.42a4,4,0,0,0,0-7.15L320,317.79ZM106.66,168.46l.09-.05,49.55-20.66a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,65.48a6.65,6.65,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,135.82a7.29,7.29,0,0,0-3.68,6H0a7.32,7.32,0,0,0,3.68,6l49.57,20.67.07,0L74,218.08a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM640,429.78a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L566,353.48a6.65,6.65,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,423.82a7.29,7.29,0,0,0-3.68,6h0a7.32,7.32,0,0,0,3.68,6l49.57,20.67.07,0L554,506.08a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.32,7.32,0,0,0,3.68-6h0ZM453.89,480H273.3a32.3,32.3,0,0,1-26.71-14.3L132.39,293.8a23.92,23.92,0,0,1,5.91-33.39c15.79-11.11,30,1,33.39,5.89l37.81,54.4a8,8,0,0,0,14.59-4.61V88a24,24,0,1,1,48,0V248a8,8,0,0,0,8,8H292.3a35.81,35.81,0,0,1,7.78-1.66c2.26-1.41,4-3.49,4-6.34V56a24,24,0,0,1,48,0V248a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V88a24,24,0,0,1,48,0V248a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V168a24,24,0,0,1,48,0V288.3a321.9,321.9,0,0,1-6.2,62.79l-6.27,31.42,9.25-3.86,15.63-37.49.41-1,.47-.95a38.75,38.75,0,0,1,16.93-16.7c1.1-11.35,1.69-22.75,1.69-34.12V168a55.89,55.89,0,0,0-55.91-56,55.24,55.24,0,0,0-24,5.41V88a56,56,0,0,0-82.7-49.2,56,56,0,0,0-106.59,0A56,56,0,0,0,192.09,88V240.8C180.59,229,150,213.09,120,234.09a56.09,56.09,0,0,0-13.81,78l113.7,171.32A63.88,63.88,0,0,0,273.19,512H453.8a64.21,64.21,0,0,0,54.9-31.16l-30.47-12.7A31.57,31.57,0,0,1,453.89,480Z\"]\n};\nvar faHandSpock = {\n prefix: 'fal',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M503.03886,115.67818a59.82954,59.82954,0,0,0-37.35993-27.03135,60.44007,60.44007,0,0,0-33.70576,1.64649c.08593-26.49815-16.33728-50.40449-41.75234-58.467C344.205,17.23249,317.34857,55.80686,312.964,77.139L291.47649,181.89913,256.33524,45.22479A60.245,60.245,0,1,0,139.64431,75.24248l3.74205,14.55279a60.14487,60.14487,0,0,0-75.66708,74.55888C108.98335,303.634,106.626,295.65543,107.02249,297.05192l-5.49394-5.1719a60.24146,60.24146,0,1,0-82.5633,87.74643l98.14084,92.36363A146.6781,146.6781,0,0,0,217.99879,512H333.41632a117.845,117.845,0,0,0,115.02693-90.85386L510.33546,161.2096A59.83169,59.83169,0,0,0,503.03886,115.67818Zm-23.83309,38.11928L417.31356,413.73205a85.95272,85.95272,0,0,1-83.89724,66.26783H217.99879A114.79622,114.79622,0,0,1,139.035,448.68726l-98.1428-92.36754c-27.206-25.59385,11.5191-66.8108,38.70753-41.13688l54.91005,51.67989c5.43534,5.12111,13.48191.70313,13.48191-5.8262a264.52145,264.52145,0,0,0-10.90584-75.19559L98.40367,155.274c-10.67929-36.08607,43.56086-51.87129,54.18156-16.045L186.25584,252.8662c5.78884,19.57234,34.942,11.08012,29.96762-8.28909L170.63728,67.27956c-9.36683-36.45913,45.39283-50.30683,54.70693-14.086l50.834,197.70778c4.60725,17.91218,30.28988,17.14264,33.98115-.83985L344.30654,83.58235c7.46066-36.2931,63.11286-26.49619,54.994,13.0899L368.63375,246.17282c-3.83775,18.7364,24.45807,25.40634,28.98133,6.4219l26.63963-111.88129C433.07469,103.768,487.79334,117.813,479.20577,153.79746Z\"]\n};\nvar faHands = {\n prefix: 'fal',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M220 248.8c-14-19.2-49.1-31.4-74.5-3.9-15.6 16.8-15.9 42.8-2.5 61.3l28.6 39.3c6.5 8.9-6.5 19.1-13.6 10.7l-62-73.3V145.8c0-26-21.2-49.3-47.2-49.7C21.9 95.6 0 117.2 0 144v170.4c0 10.9 3.7 21.5 10.5 30l107 133.7c5.4 6.8 8.9 17.5 10.1 27 .5 4 4 6.9 8 6.9h16c4.8 0 8.5-3.9 8-8.7-1.6-16-7.5-33.3-17.1-45.2l-107-133.7c-2.3-2.8-3.5-6.4-3.5-10V144c0-21 32-21.6 32 .7v149.7l64.6 77.5c36.9 44.2 96.8-2.7 70.8-42.4-.2-.3-.4-.5-.5-.8l-30.6-42.2c-4.7-6.5-4.2-16.7 3.5-22.3 7-5.1 17.1-3.8 22.4 3.5l42.4 58.4c12.7 16.9 19.5 37.4 19.5 58v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-120c0-27.7-9-54.6-25.6-76.8L220 248.8zM640 144c0-26.8-21.9-48.4-48.8-48-26 .4-47.2 23.7-47.2 49.7v137.1l-62 73.3c-7.1 8.4-20.1-1.7-13.6-10.7l28.6-39.3c13.4-18.5 13.1-44.6-2.5-61.3-25.5-27.4-60.6-15.3-74.5 3.9l-42.4 58.4C361 329.3 352 356.3 352 384v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384c0-20.6 6.8-41.1 19.5-58l42.4-58.4c5.3-7.3 15.3-8.7 22.4-3.5 7.8 5.6 8.3 15.8 3.5 22.3l-30.6 42.2c-.2.3-.4.5-.5.8-26.1 39.7 33.9 86.7 70.8 42.4l64.6-77.5V144.6c0-22.3 32-21.7 32-.7v170.4c0 3.6-1.2 7.2-3.5 10L497.6 458c-9.5 11.9-15.5 29.2-17.1 45.2-.5 4.8 3.2 8.7 8 8.7h16c4 0 7.5-2.9 8-6.9 1.2-9.6 4.6-20.2 10.1-27l107-133.7c6.8-8.5 10.5-19.1 10.5-30L640 144z\"]\n};\nvar faHandsHeart = {\n prefix: 'fal',\n iconName: 'hands-heart',\n icon: [640, 512, [], \"f4c3\", \"M436 17.6C421.6 5.1 405.4 0 389.6 0 366.8 0 345 10.7 331 25.3L320 37l-11.1-11.6C295.2 11 273.3 0 250.2 0c-15.7 0-31.8 5.1-46.3 17.6-35.3 30.6-37.2 85.6-5.6 118.7l108.9 114.1c7 7.4 18.4 7.4 25.5 0l108.9-114.1c31.6-33.1 29.8-88.1-5.6-118.7zm-17 96.5l-99 103.8-99-103.8c-16.7-17.5-20.4-51.6 3.4-72.1 8.2-7.1 17.3-9.9 26.3-9.9 13.9 0 27.3 6.9 35.6 15.6L320 82.9l33.7-35.3C361.9 39 375.4 32 389.3 32c8.9 0 18.1 2.8 26.2 9.9 23.9 20.7 20.2 54.6 3.5 72.2zM220 248.8c-14-19.2-49.1-31.4-74.5-3.9-15.6 16.8-15.9 42.8-2.5 61.3l28.6 39.3c6.5 8.9-6.5 19.1-13.6 10.7l-62-73.3V145.8c0-26-21.2-49.3-47.2-49.7C21.9 95.6 0 117.2 0 144v170.4c0 10.9 3.7 21.5 10.5 30l107 133.7c5.4 6.8 8.9 17.5 10.1 27 .5 4 4 6.9 8 6.9h16c4.8 0 8.5-3.9 8-8.7-1.6-16-7.5-33.3-17.1-45.2l-107-133.7c-2.3-2.8-3.5-6.4-3.5-10V144c0-21 32-21.6 32 .7v149.7l64.6 77.5c36.9 44.2 96.8-2.7 70.8-42.4-.2-.3-.4-.5-.5-.8l-30.6-42.2c-4.7-6.5-4.2-16.7 3.5-22.3 7-5.1 17.1-3.8 22.4 3.5l42.4 58.4c12.7 16.9 19.5 37.4 19.5 58v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-120c0-27.7-9-54.6-25.6-76.8L220 248.8zM640 144c0-26.8-21.9-48.4-48.8-48-26 .4-47.2 23.7-47.2 49.7v137.1l-62 73.3c-7.1 8.4-20.1-1.7-13.6-10.7l28.6-39.3c13.4-18.5 13.1-44.6-2.5-61.3-25.5-27.4-60.6-15.3-74.5 3.9l-42.4 58.4C361 329.3 352 356.3 352 384v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384c0-20.6 6.8-41.1 19.5-58l42.4-58.4c5.3-7.3 15.3-8.7 22.4-3.5 7.8 5.6 8.3 15.8 3.5 22.3l-30.6 42.2c-.2.3-.4.5-.5.8-26.1 39.7 33.9 86.7 70.8 42.4l64.6-77.5V144.6c0-22.3 32-21.7 32-.7v170.4c0 3.6-1.2 7.2-3.5 10L497.6 458c-9.5 11.9-15.5 29.2-17.1 45.2-.5 4.8 3.2 8.7 8 8.7h16c4 0 7.5-2.9 8-6.9 1.2-9.6 4.6-20.2 10.1-27l107-133.7c6.8-8.5 10.5-19.1 10.5-30L640 144z\"]\n};\nvar faHandsHelping = {\n prefix: 'fal',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M638.9 209.7l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-108 63V240c0-26.5-21.5-48-48-48H320v62.2c0 16-10.9 30.8-26.6 33.3-20 3.3-37.4-12.2-37.4-31.6v-94.3c0-13.8 7.1-26.6 18.8-33.9l33.4-20.9c11.4-7.1 24.6-10.9 38.1-10.9h103.2l118.5-67c3.8-2.2 5.2-7.1 3-10.9l-8-14c-2.2-3.8-7.1-5.2-10.9-3l-111 63h-94.7c-19.5 0-38.6 5.5-55.1 15.8l-33.5 20.9c-17.5 11-28.7 28.6-32.2 48.5l-62.5 37c-21.6 13-35.1 36.7-35.1 61.9v38.6L4 357.1c-3.8 2.2-5.2 7.1-3 10.9l8 13.9c2.2 3.8 7.1 5.2 10.9 3L160 305.3v-57.2c0-14 7.5-27.2 19.4-34.4l44.6-26.4v65.9c0 33.4 24.3 63.3 57.6 66.5 38.1 3.7 70.4-26.3 70.4-63.7v-32h112c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-24v36c0 19.8-16 35.8-35.8 35.8h-16.1v16c0 22.2-18 40.2-40.2 40.2H238.5l-115.6 67.3c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.8c2.2 3.8 7.1 5.1 10.9 2.9L247.1 448h100.8c34.8 0 64-24.8 70.8-57.7 30.4-6.7 53.3-33.9 53.3-66.3v-4.7c13.6-2.3 24.6-10.6 31.8-21.7l132.2-77c3.8-2.2 5.1-7.1 2.9-10.9z\"]\n};\nvar faHandsUsd = {\n prefix: 'fal',\n iconName: 'hands-usd',\n icon: [640, 512, [], \"f4c5\", \"M640 144c0-26.8-21.9-48.4-48.8-48-26 .4-47.2 23.7-47.2 49.7v137.1l-62 73.3c-7.1 8.4-20.1-1.7-13.6-10.7l28.6-39.3c13.4-18.5 13.1-44.6-2.5-61.3-25.5-27.4-60.6-15.3-74.5 3.9l-42.4 58.4C361 329.3 352 356.3 352 384v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V384c0-20.6 6.8-41.1 19.5-58l42.4-58.4c5.3-7.3 15.3-8.7 22.4-3.5 7.8 5.6 8.3 15.8 3.5 22.3l-30.6 42.2c-.2.3-.4.5-.5.8-26.1 39.7 33.9 86.7 70.8 42.4l64.6-77.5V144.6c0-22.3 32-21.7 32-.7v170.4c0 3.6-1.2 7.2-3.5 10L497.6 458c-9.5 11.9-15.5 29.2-17.1 45.2-.5 4.8 3.2 8.7 8 8.7h16c4 0 7.5-2.9 8-6.9 1.2-9.6 4.6-20.2 10.1-27l107-133.7c6.8-8.5 10.5-19.1 10.5-30L640 144zM220 248.8c-14-19.2-49.1-31.4-74.5-3.9-15.6 16.8-15.9 42.8-2.5 61.3l28.6 39.3c6.5 8.9-6.5 19.1-13.6 10.7l-62-73.3V145.8c0-26-21.2-49.3-47.2-49.7C21.9 95.6 0 117.2 0 144v170.4c0 10.9 3.7 21.5 10.5 30l107 133.7c5.4 6.8 8.9 17.5 10.1 27 .5 4 4 6.9 8 6.9h16c4.8 0 8.5-3.9 8-8.7-1.6-16-7.5-33.3-17.1-45.2l-107-133.7c-2.3-2.8-3.5-6.4-3.5-10V144c0-21 32-21.6 32 .7v149.7l64.6 77.5c36.9 44.2 96.8-2.7 70.8-42.4-.2-.3-.4-.5-.5-.8l-30.6-42.2c-4.7-6.5-4.2-16.7 3.5-22.3 7-5.1 17.1-3.8 22.4 3.5l42.4 58.4c12.7 16.9 19.5 37.4 19.5 58v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-120c0-27.7-9-54.6-25.6-76.8L220 248.8zm169.1-60c10.1-29.6-7.3-59.8-35.1-67.8l-59.1-16.9c-8.8-2.5-14.9-10.6-14.9-19.7 0-11.3 9.2-20.5 20.5-20.5h36.9c8.2 0 16.1 2.6 22.6 7.3 3 2.2 7.2 1.5 9.8-1.2l11.4-11.4c3.5-3.5 2.9-9.2-1-12.2C368 37.1 353.1 32 337.4 32H336V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h-3.5c-30.6 0-55.1 26.3-52.2 57.5 2.1 22.2 19.1 40.1 40.5 46.2l56.4 16.1c8.8 2.5 14.9 10.6 14.9 19.7 0 11.3-9.2 20.5-20.5 20.5h-36.9c-8.2 0-16.1-2.6-22.6-7.3-3-2.2-7.2-1.5-9.8 1.2l-11.4 11.4c-3.5 3.5-2.9 9.2 1 12.2 12.3 9.4 27.2 14.5 42.9 14.5h1.4v24c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-24h1.4c22.6 0 44.1-13.6 51.5-35.2z\"]\n};\nvar faHandsWash = {\n prefix: 'fal',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M416,160a64,64,0,1,0,64-64A64.06,64.06,0,0,0,416,160Zm96,0a32,32,0,1,1-32-32A32,32,0,0,1,512,160ZM432,96a48,48,0,1,0-48-48A48.05,48.05,0,0,0,432,96Zm0-64a16,16,0,1,1-16,16A16,16,0,0,1,432,32Zm83.22,268a53.5,53.5,0,0,0-.2-19.25C510.26,256,488,238,462.21,238H375.94a53.21,53.21,0,0,0-8.3-31.58l2.45-7.75,13.44-42.54a53,53,0,0,0-43.24-68.47,53.12,53.12,0,0,0-45-43.57A53.08,53.08,0,0,0,249,.35,52.23,52.23,0,0,0,243,0h0a53.09,53.09,0,0,0-37.38,15.82,53.62,53.62,0,0,0-18.49-5.64,52.05,52.05,0,0,0-6-.35c-22.85,0-43.71,15.55-50.75,37.82l-26,82.26A53.15,53.15,0,0,0,86,126.48c-29.54,0-53.64,23.53-54,52.46V278c.53,33.33,13.29,64.23,34,88.73A79.87,79.87,0,0,0,112,512c24.09,0,45.47-10.93,60.15-27.84C194.78,501.28,222.42,512,253,512H435a53,53,0,0,0,52.26-61.86,53.09,53.09,0,0,0,28-56,52.84,52.84,0,0,0,0-94.1ZM333,119.14a19.44,19.44,0,0,1,2.27.13A21,21,0,0,1,353,146.49l-12.24,38.74a51.92,51.92,0,0,0-33.22-.94l-11.67,3.6,16.84-53.3C315.56,125.64,323.76,119.14,333,119.14ZM64,278V179.36c.15-11.63,10.17-20.88,21.71-20.88h.08a21,21,0,0,1,20.88,21.13l1.82,43.79L161,57.29c2.83-9,11-15.46,20.23-15.46a21.4,21.4,0,0,1,2.26.13,21,21,0,0,1,17.8,27.22L167.52,176a7,7,0,0,0,13.35,4.22L222.8,47.46c2.83-9,11-15.46,20.23-15.46a19.32,19.32,0,0,1,2.27.13,21,21,0,0,1,17.79,27.22L225.14,179.92a7,7,0,0,0,13.35,4.22L267.77,91c2.82-9,11-15.45,20.23-15.45a19.15,19.15,0,0,1,2.26.13,21,21,0,0,1,17.79,27.22l-28.43,90L213.1,213.45C154.75,232.9,116,286.47,116,347v5.43c-1.35-.06-2.63-.4-4-.4a79.54,79.54,0,0,0-15.3,1.55A107.58,107.58,0,0,1,64,278Zm48,202a48,48,0,1,1,48-48A48,48,0,0,1,112,480ZM491,368H351a7,7,0,0,0,0,14H462.21c10.16,0,19.47,6.86,21.39,16.84A21,21,0,0,1,463,424H351a7,7,0,0,0,0,14h83.21c10.16,0,19.47,6.86,21.39,16.84A21,21,0,0,1,435,480H253a103.56,103.56,0,0,1-65.27-23.41A79,79,0,0,0,192,432c0-31.1-18-57.81-44-71V347a108.4,108.4,0,0,1,74.54-103l94.25-29.09A21.43,21.43,0,0,1,323,214a21,21,0,0,1,6.24,41.06L288,270H462.21c10.16,0,19.47,6.86,21.39,16.84A21,21,0,0,1,463,312H351a7,7,0,0,0,0,14H490.21c10.16,0,19.47,6.86,21.39,16.84A21,21,0,0,1,491,368Z\"]\n};\nvar faHandshake = {\n prefix: 'fal',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M16 319.8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16c0 8.9 7.2 16 16 16zM632 128l-113.5.2-51.2-49.9c-9.1-9.1-21.1-14.1-33.9-14.1h-101c-10.4 0-20.1 3.9-28.3 10-8.4-6.5-18.7-10.3-29.3-10.3h-69.5c-12.7 0-24.9 5.1-33.9 14.1l-50 50H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v191.9H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56c17.6 0 31.8-14.2 31.9-31.7h33.2l81.5 78c29.8 24.1 71.8 23.4 101-.2l7.2 6.2c9.6 7.8 21.3 11.9 33.5 11.9 16 0 31.1-7 41.4-19.6l21.9-26.9c16.4 8.9 42.9 9 60-12l9.5-11.7c6.2-7.6 9.6-16.6 10.5-25.7h48.6c.1 17.5 14.4 31.7 31.9 31.7h56c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-56V160.2l56-.2c4.4 0 8-3.6 8-8v-16c-.1-4.5-3.7-8-8.1-8zM460.2 357.6l-9.5 11.7c-5.4 6.6-15.4 8.1-22.5 2.3l-17.8-14.4-41.5 51c-7.5 9.3-21 10.2-29.4 3.4l-30.6-26.1-10.4 12.8c-16.7 20.5-47 23.7-66.6 7.9L142 320.1H96V159.9h38.6l59.3-59.3c3-3 7.1-4.7 11.3-4.7h69.5c.9 2.2.3.7 1.1 2.9l-59 54.2c-28.2 25.9-29.6 69.2-4.2 96.9 14.3 15.6 58.6 39.3 96.9 4.2l22.8-20.9 125.6 101.9c6.8 5.6 7.8 15.7 2.3 22.5zm83.8-37.5h-57.2c-2.5-3.5-5.3-6.9-8.8-9.8l-121.9-99 28.4-26.1c6.5-6 7-16.1 1-22.6s-16.1-6.9-22.6-1l-75.1 68.8c-14.4 13.1-38.6 12-51.7-2.2-13.6-14.8-12.7-38 2.2-51.7l83.1-76.2c3-2.7 6.8-4.2 10.8-4.2h101c4.3 0 8.3 1.7 11.4 4.8l60.7 59.1H544v160.1zm80-32.2c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16c0-8.9-7.2-16-16-16z\"]\n};\nvar faHandshakeAlt = {\n prefix: 'fal',\n iconName: 'handshake-alt',\n icon: [640, 512, [], \"f4c6\", \"M238.4 176.6l83.1-76.2c3-2.7 6.8-4.2 10.8-4.2h101c4.3 0 8.3 1.7 11.4 4.8l60.7 59.1H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H518.5l-51.2-49.9c-9.1-9.1-21.1-14.1-33.9-14.1h-101c-10.4 0-20.1 3.9-28.3 10-8.4-6.5-18.7-10.3-29.3-10.3h-69.5c-12.7 0-24.9 5.1-34 14.1L121.4 128H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h126.6l59.3-59.3c3-3 7.1-4.7 11.3-4.7h69.5c.9 2.2.3.7 1.1 2.9l-59 54.1c-28.2 25.9-29.6 69.2-4.2 96.9 14.3 15.6 58.6 39.3 96.9 4.2l22.8-20.9 125.6 101.9c6.8 5.5 7.9 15.7 2.3 22.5l-9.5 11.7c-5.4 6.6-15.4 8.1-22.5 2.3l-17.8-14.4-41.5 51c-7.5 9.3-21 10.2-29.4 3.4l-30.6-26.1-10.4 12.8c-16.7 20.5-47 23.7-66.6 7.9L142 320.1H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h121.2l81.5 78c29.8 24.1 71.8 23.4 101-.2l7.2 6.2c9.6 7.8 21.3 11.9 33.5 11.9 16 0 31.1-7 41.4-19.6l21.9-26.9c16.4 8.9 42.9 9 60-12l9.5-11.7c6.2-7.6 9.6-16.6 10.5-25.7H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H486.8c-2.5-3.5-5.3-6.9-8.8-9.8l-121.9-99 28.4-26.1c6.5-6 7-16.1 1-22.6s-16.1-6.9-22.6-1l-75.1 68.8c-14.4 13.1-38.6 12-51.7-2.2-13.5-14.7-12.6-37.9 2.3-51.6z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fal',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M385.5,162.59a16.07,16.07,0,0,0-22.59-1l-27.47,25.17,25.5,20.08L384.5,185.2A16,16,0,0,0,385.5,162.59ZM368.91,408.2a21.14,21.14,0,0,1-29.41,3.39L308.91,385.5,298.5,398.3c-16.7,20.5-47,23.7-66.59,7.9L142,320.09H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H129.2l81.5,78a80.23,80.23,0,0,0,101-.18l7.21,6.18a53.33,53.33,0,0,0,74.89-7.68l16.29-20-25.2-19.84ZM632,320.09H504.76l40.63,32H632a8,8,0,0,0,8-8v-16A8,8,0,0,0,632,320.09ZM8,160H94.65L54,128H8a8,8,0,0,0-8,8v16A8,8,0,0,0,8,160Zm624-31.91H518.5L467.3,78.2a47.55,47.55,0,0,0-33.89-14.11h-101c-10.41,0-20.11,3.91-28.32,10A48.06,48.06,0,0,0,274.8,63.8H205.3a47.57,47.57,0,0,0-20.13,4.63l35,27.57H274.7c.89,2.2.3.7,1.1,2.91l-24,22L277.27,141l44.23-40.55a16,16,0,0,1,10.8-4.21h101a16,16,0,0,1,11.4,4.8l60.71,59.09H632a8,8,0,0,0,8-8v-16A8,8,0,0,0,632,128.09ZM23,1.8A7.88,7.88,0,0,0,11.77,3l-10,12.5A7.94,7.94,0,0,0,3,26.71L617,510.23A8,8,0,0,0,628.2,509l10-12.5a7.86,7.86,0,0,0-1.21-11.2Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fal',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M16,319.89a16,16,0,1,0-16-16A16.05,16.05,0,0,0,16,319.89Zm369.44-157.2a16.07,16.07,0,0,0-22.59-1l-27.36,25.07L361,206.85l23.45-21.55A16,16,0,0,0,385.44,162.69ZM368.85,408.3a21.15,21.15,0,0,1-29.4,3.39l-30.59-26.1-10.4,12.8c-16.7,20.5-47,23.7-66.59,7.91L142,320.19H96V161L54.22,128.09H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H64V352H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H64a31.89,31.89,0,0,0,31.9-31.7h33.18l81.49,78a80.23,80.23,0,0,0,101-.21l7.2,6.21a53.36,53.36,0,0,0,74.9-7.71l16.45-20.22-25.18-19.82ZM623.91,288a16,16,0,1,0,16,16A16,16,0,0,0,623.91,288ZM640,136.09a8.09,8.09,0,0,0-8.09-8l-113.49.21L467.23,78.39A47.58,47.58,0,0,0,433.34,64.3h-101c-10.41,0-20.11,3.89-28.31,10A48.09,48.09,0,0,0,274.76,64H205.27a47.62,47.62,0,0,0-19.92,4.52L220.24,96h54.42c.89,2.19.3.69,1.1,2.89l-23.93,22,25.39,20,44.14-40.48a16.06,16.06,0,0,1,10.79-4.2h101A15.9,15.9,0,0,1,444.53,101l60.69,59.09h38.7v160.1h-39l81,63.81H632a8,8,0,0,0,8-8V360a8,8,0,0,0-8-8H576V160.3l56-.21a8,8,0,0,0,8-8ZM23.07,1.8A7.87,7.87,0,0,0,11.87,3l-10,12.5a7.93,7.93,0,0,0,1.2,11.2L617,510.23A7.94,7.94,0,0,0,628.2,509l10-12.5a7.86,7.86,0,0,0-1.21-11.2Z\"]\n};\nvar faHanukiah = {\n prefix: 'fal',\n iconName: 'hanukiah',\n icon: [624, 512, [], \"f6e6\", \"M232 128c13.25 0 24-11.94 24-26.67S232 48 232 48s-24 38.61-24 53.33S218.75 128 232 128zm160 0c13.25 0 24-11.94 24-26.67S392 48 392 48s-24 38.61-24 53.33S378.75 128 392 128zm-8 32c-4.42 0-8 3.58-8 8v136h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v136h32V168c0-4.42-3.58-8-8-8h-16zm8-32c13.25 0 24-11.94 24-26.67S456 48 456 48s-24 38.61-24 53.33S442.75 128 456 128zm64 0c13.25 0 24-11.94 24-26.67S520 48 520 48s-24 38.61-24 53.33S506.75 128 520 128zm-8 32c-4.42 0-8 3.58-8 8v136h32V168c0-4.42-3.58-8-8-8h-16zM312 80c13.25 0 24-11.94 24-26.67S312 0 312 0s-24 38.61-24 53.33S298.75 80 312 80zm-88 80c-4.42 0-8 3.58-8 8v136h32V168c0-4.42-3.58-8-8-8h-16zm384 0h-16c-4.42 0-8 3.58-8 8v136c0 26.51-21.49 48-48 48H328V120c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v232H88c-26.51 0-48-21.49-48-48V168c0-4.42-3.58-8-8-8H16c-4.42 0-8 3.58-8 8v136c0 44.18 35.82 80 80 80h208v96H96c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h432c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H328v-96h208c44.18 0 80-35.82 80-80V168c0-4.42-3.58-8-8-8zM48 101.33C48 86.61 24 48 24 48S0 86.61 0 101.33 10.75 128 24 128s24-11.94 24-26.67zM600 48s-24 38.61-24 53.33S586.75 128 600 128s24-11.94 24-26.67S600 48 600 48zM96 160c-4.42 0-8 3.58-8 8v136h32V168c0-4.42-3.58-8-8-8H96zm8-32c13.25 0 24-11.94 24-26.67S104 48 104 48s-24 38.61-24 53.33S90.75 128 104 128zm64 0c13.25 0 24-11.94 24-26.67S168 48 168 48s-24 38.61-24 53.33S154.75 128 168 128zm-8 32c-4.42 0-8 3.58-8 8v136h32V168c0-4.42-3.58-8-8-8h-16z\"]\n};\nvar faHardHat = {\n prefix: 'fal',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 352v-32c0-101.34-67.66-186.11-160-213.75V96a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32v10.25C99.66 133.89 32 218.66 32 320v32a32 32 0 0 0-32 32v32a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-32a32 32 0 0 0-32-32zM64 320c0-78.76 48.24-145.4 116.28-174.88l26 104.07A9 9 0 0 0 224 247V96h64v151a9 9 0 0 0 17.7 2.18l26-104.07C399.76 174.6 448 241.24 448 320v32H64zm416 96H32v-32h448z\"]\n};\nvar faHashtag = {\n prefix: 'fal',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M446.381 182.109l1.429-8c1.313-7.355-4.342-14.109-11.813-14.109h-98.601l20.338-113.891C359.047 38.754 353.392 32 345.92 32h-8.127a12 12 0 0 0-11.813 9.891L304.89 160H177.396l20.338-113.891C199.047 38.754 193.392 32 185.92 32h-8.127a12 12 0 0 0-11.813 9.891L144.89 160H42.003a12 12 0 0 0-11.813 9.891l-1.429 8C27.448 185.246 33.103 192 40.575 192h98.6l-22.857 128H13.432a12 12 0 0 0-11.813 9.891l-1.429 8C-1.123 345.246 4.532 352 12.003 352h98.601L90.266 465.891C88.953 473.246 94.608 480 102.08 480h8.127a12 12 0 0 0 11.813-9.891L143.11 352h127.494l-20.338 113.891C248.953 473.246 254.608 480 262.08 480h8.127a12 12 0 0 0 11.813-9.891L303.11 352h102.886a12 12 0 0 0 11.813-9.891l1.429-8c1.313-7.355-4.342-14.109-11.813-14.109h-98.601l22.857-128h102.886a12 12 0 0 0 11.814-9.891zM276.318 320H148.825l22.857-128h127.494l-22.858 128z\"]\n};\nvar faHatChef = {\n prefix: 'fal',\n iconName: 'hat-chef',\n icon: [512, 512, [], \"f86b\", \"M416 32a95.17 95.17 0 0 0-57.73 19.74C334.93 20.5 298 0 256 0s-78.93 20.5-102.27 51.74A95.56 95.56 0 0 0 0 128c0 41.74 64 224 64 224v128a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V352s64-182.26 64-224a96 96 0 0 0-96-96zm0 448H96v-96h320zm0-128h-44.09L384 201.25a8 8 0 0 0-7.33-8.61l-16-1.28h-.65a8 8 0 0 0-8 7.37L339.8 352h-68.46V200a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v152H172.2l-12.27-153.3a8 8 0 0 0-8-7.37h-.65l-16 1.28a8 8 0 0 0-7.33 8.61L140.09 352H96S32 150.7 32 128a64.07 64.07 0 0 1 64-64 63.22 63.22 0 0 1 38.39 13.24l25.68 19.48 19.3-25.83C197.83 46.18 225.77 32 256 32s58.17 14.18 76.63 38.89l19.3 25.83 25.68-19.48A63.22 63.22 0 0 1 416 64a64.07 64.07 0 0 1 64 64c0 22.7-64 224-64 224z\"]\n};\nvar faHatCowboy = {\n prefix: 'fal',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M626.38 258.52a26.15 26.15 0 0 0-10.93-2.36 25.84 25.84 0 0 0-20.38 9.61c-.37.48-23.28 30.85-85.94 55.42C498.86 250.73 465.52 64 400.33 64c-15.56 0-29.44 7.41-41.11 17.45a59.08 59.08 0 0 1-78.43 0C269.12 71.41 255.24 64 239.68 64c-65.31 0-98.58 187-108.78 257.18-62.08-24.34-85.16-54.38-86-55.38a25.39 25.39 0 0 0-20.3-9.8 26.35 26.35 0 0 0-10.78 2.29C2.73 263.22-2.62 274.85 1.26 285.5 2 287.44 75.36 480 320 480s318-192.56 318.75-194.5c3.85-10.56-1.47-21.98-12.37-26.98zM239.68 96c5.95 0 12.76 3.27 20.25 9.71a91.05 91.05 0 0 0 120.15 0c7.49-6.44 14.3-9.71 20.25-9.71 13.92 0 43.34 53.8 65.29 160.79-38 10-85.38 17.15-145.61 17.15s-107.58-7.19-145.62-17.17C196.34 149.79 225.76 96 239.68 96zm-71.24 192.45c40.25 10.29 89.68 17.49 151.57 17.49 61.62 0 111.26-7.15 151.57-17.43 2.39 13.77 4.7 28 6.78 43.28C438.49 343.47 386.64 352 320 352s-118.48-8.55-158.36-20.24c2.1-15.25 4.36-29.54 6.8-43.31zM320 448c-150.92 0-229.54-78.79-264.78-130.23C96.68 347 177.31 384 320 384s223.72-37.53 264.91-66.48C549.66 369.09 471 448 320 448z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fal',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M638.22 392.71c-19.22-89.6-78.13-152.45-150.7-165.52l-19.12-110a64 64 0 0 0-63-53.2c-9.36 0 3.23-2.11-204.55 42a64 64 0 0 0-50.35 55.78l-7.19 67.15C75 245.51 20.17 306.91 1.76 392.74c-4.41 20.76-.44 42.45 10.9 59.49C24.44 469.88 42.38 480 61.88 480h516.25c19.47 0 37.41-10.12 49.19-27.75 11.37-17.04 15.34-38.75 10.9-59.54zM182.31 165.17a31.92 31.92 0 0 1 25.17-27.89l191.19-40.55c19.37-4.1 35.36 9.43 38.2 26L465.62 288H316.29l-29.5-25.42c-49-39.23-95.31-38.59-110.83-38.14zM61.88 448c-20.64 0-33.66-25.81-28.88-48.55C51.45 313.65 110.66 256 180.38 256c30.76 0 60.63 10.91 85.52 30.82C445.63 441.68 429.43 431.65 453.76 448zm323.38-100.57L353.43 320h117.75l19.53 112.31c-32.94-15.81-57.71-43.76-105.45-84.88zM578.13 448c-5.41 0-29.46.33-53-4.38l-31.7-182.3c54.43 15.26 98.13 66.69 113.45 138.1 5.69 26.35-11 48.58-28.75 48.58z\"]\n};\nvar faHatSanta = {\n prefix: 'fal',\n iconName: 'hat-santa',\n icon: [640, 512, [], \"f7a7\", \"M627.2 189.5c-.9-12.3-6.1-24.2-15.3-33.4-9-9-20.7-14.4-33.3-15.3-9.3-8.1-21.5-12.8-34.5-12.8s-25.2 4.7-34.5 12.8c-4.3.3-8.3 1.8-12.3 3.2C419.7 65.6 379.9 32 305.2 32c-68.6 0-130.4 41.2-156.8 104.5L58.7 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48h-11.4l-61-142.2c-2.4-5.5 1.9-11.2 7.3-11.2 1 0 2 .2 3 .6l47.1 18.9c-.2 2-1.1 3.9-1.1 6 0 13.1 4.7 25.1 12.8 34.5.9 12.3 6.1 24.2 15.3 33.4 9.1 9.1 20.9 14.5 33.6 15.5 9.3 8 21.3 12.7 34.3 12.7s25-4.7 34.3-12.7c12.7-1 24.5-6.4 33.6-15.5 9.2-9.2 14.4-21.1 15.3-33.4 8.1-9.3 12.8-21.4 12.8-34.5s-4.6-25.2-12.7-34.6zM480 400v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-32c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16zm-81.1-233.4c-13.5 0-25.9 6.7-33.4 18-7.4 11.2-8.7 25.3-3.3 37.7L417.8 352H93.3L178 148.8C199.5 97.3 249.4 64 305.2 64c61.3 0 93.9 26.6 165.9 99.3-5.4 7.6-9.2 16-10.1 25.1l-47.3-18.9c-4.7-2-9.7-2.9-14.8-2.9zm193.7 77.5c4.4 8.1 3.5 18.3-3.4 25.1-4.2 4.2-9.6 6.2-15.1 6.2-3.5 0-6.9-1.2-10-2.9-2.6 8.8-10.5 15.4-20.1 15.4s-17.5-6.6-20.1-15.4c-3.2 1.7-6.5 2.9-10 2.9-5.5 0-10.9-2.1-15.1-6.2-6.8-6.8-7.7-17-3.4-25.1-8.8-2.6-15.4-10.5-15.4-20.1s6.6-17.5 15.4-20.1c-4.4-8.1-3.5-18.3 3.4-25.1 4.1-4.1 9.3-6 14.6-6 3.6 0 7.2.9 10.5 2.7 2.6-8.8 10.5-15.4 20.1-15.4s17.5 6.6 20.1 15.4c3.3-1.8 6.9-2.7 10.5-2.7 5.3 0 10.6 2 14.6 6 6.8 6.8 7.8 17 3.4 25.1 8.8 2.6 15.4 10.5 15.4 20.1s-6.6 17.5-15.4 20.1z\"]\n};\nvar faHatWinter = {\n prefix: 'fal',\n iconName: 'hat-winter',\n icon: [512, 512, [], \"f7a8\", \"M489.9 386c-11.8-73.4-47.4-193.5-154.1-257.4v-.7c10-7.8 16.2-19.8 16.2-33.1s-6.1-25.2-16.2-33.1c1.6-12.7-2.6-25.5-12-34.8-9.4-9.3-22.2-13.4-34.8-11.9-15.6-20-50.4-20-66.1.1-12.6-1.4-25.4 2.6-34.8 11.9-9.4 9.4-13.5 22.2-12 34.8-10 7.8-16.2 19.8-16.2 33.1s6.1 25.2 16.2 33.1v.7C69.5 192.5 33.9 312.6 22.1 386 9.3 390.2 0 401.8 0 416v64c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-64c0-14.2-9.3-25.8-22.1-30zm-33.1-2H55.2c2.6-14.4 6-30.1 10.8-47.1l62-31 64 32 64-32 64 32 64-32 62 31c4.8 17 8.3 32.7 10.8 47.1zm-257-298.9l19-5.6-9.4-17.4c-1.8-3.3-2.5-8.5 1.4-12.4 3.9-4 9.2-3.2 12.5-1.5l17.4 9.4 5.6-19c1.2-3.9 4.6-7.8 9.8-7.8s8.7 3.9 9.8 7.8l5.6 19 17.4-9.4c3.3-1.8 8.5-2.5 12.5 1.5 3.9 3.9 3.2 9.1 1.4 12.4l-9.4 17.4 19 5.6c3.9 1.1 7.8 4.6 7.8 9.8s-3.9 8.7-7.8 9.8l-19 5.6 9.4 17.4c1.8 3.3 2.5 8.5-1.4 12.4-2.9 2.9-5.6 5.2-12.5 1.5l-17.4-9.5-5.6 19c-1.2 3.9-4.6 7.8-9.8 7.8s-8.7-3.9-9.8-7.8l-5.6-19-17.4 9.5c-6.9 3.8-9.6 1.4-12.5-1.5-3.9-3.9-3.2-9.1-1.4-12.4l9.4-17.4-19-5.6c-3.9-1.1-7.8-4.6-7.8-9.8s3.9-8.7 7.8-9.8zm-13.3 75.6c.6.7 1 1.5 1.7 2.1 9.2 9.2 22 13.7 35 12.2 7.8 9.9 19.7 15.9 32.9 15.9s25.1-6 32.9-15.9c13 1.6 25.8-3 35-12.2.7-.7 1.1-1.4 1.7-2.1 52.4 33.8 85.1 83.6 105.2 132.8L384 270.1l-64 32-64-32-64 32-64-32-46.7 23.4c20.1-49.2 52.7-99 105.2-132.8zM480 480H32v-64h448v64z\"]\n};\nvar faHatWitch = {\n prefix: 'fal',\n iconName: 'hat-witch',\n icon: [576, 512, [], \"f6e7\", \"M573.99 439.89l-10.49-12.03c-2.83-3.25-7.65-3.55-10.97-.8-15.37 12.7-32.56 22.48-50.42 30.75L393.59 214.36a64.009 64.009 0 0 1-1.89-45.45l6.35-19.04C402.4 136.81 414.62 128 428.4 128h39.2c13.77 0 26 8.81 30.36 21.88L512 192l30.36-77.24c3.83-11.5.84-24.18-7.73-32.75L465.28 9.37A31.974 31.974 0 0 0 442.64 0c-5.43 0-10.9 1.38-15.87 4.22L260.43 107.18a128.004 128.004 0 0 0-53.47 59.15L74.07 457.89c-17.93-8.28-35.18-18.09-50.61-30.84-3.32-2.74-8.14-2.45-10.97.8L2.01 439.89c-2.96 3.39-2.62 8.68.84 11.55C50.01 490.55 109.39 512 170.92 512h234.16c61.53 0 120.9-21.45 168.07-60.56 3.46-2.87 3.8-8.15.84-11.55zM236.21 179.33c8.36-18.81 22.23-34.15 41.07-44.94L442.65 32.01l69.32 72.6-2.68 6.81A63.876 63.876 0 0 0 467.6 96h-39.2a63.913 63.913 0 0 0-60.71 43.76l-6.35 19.04c-7.44 22.33-6.44 46.54 3.02 68.6l82.35 184.73c-13.42 2.34-27.01 3.88-40.83 3.88H352v-4c0-15.44-12.56-28-28-28h-72c-15.44 0-28 12.56-28 28v4h-53.87c-13.56 0-26.91-1.45-40.1-3.71l106.18-232.97zM103.99 469.41l12.52-27.47c17.58 3.59 35.42 6.06 53.61 6.06H224v32h-53.08c-22.96 0-45.34-4.07-66.93-10.59zM256 480v-64h64v64h-64zm96 0v-32h53.87c18.35 0 36.34-2.52 54.07-6.17l12.27 27.52C450.57 475.91 428.1 480 405.07 480H352z\"]\n};\nvar faHatWizard = {\n prefix: 'fal',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M288 192l-16-32-16 32-32 16 32 16 16 32 16-32 32-16-32-16zm216 288h-24L379.18 247.34a73.068 73.068 0 0 1-2.21-52.44L442.67 0 223.83 123.68c-27.61 15.6-49.46 39.51-62.37 68.25L32 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h496c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-436.92 0l31.72-70.6 55.86 27.93L176 480H67.08zM192 440.45l-13.48-26.97L151.55 400l26.96-13.48L192 359.55l13.48 26.96L232.45 400l-26.96 13.48L192 440.45zM208 480l21.33-42.67L304 400l-74.67-37.33L192 288l-37.33 74.67-44.96 22.48 80.94-180.11c10.19-22.67 27.11-41.18 48.93-53.51l146.08-82.55-39 115.7c-8.32 24.69-7.2 51.47 3.17 75.38l23.7 54.7L352 304l-16-32-16 32-32 16 32 16 16 32 16-32 25.26-12.63L445.12 480H208z\"]\n};\nvar faHdd = {\n prefix: 'fal',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M566.819 227.377L462.377 83.768A48.001 48.001 0 0 0 423.557 64H152.443a47.998 47.998 0 0 0-38.819 19.768L9.181 227.377A47.996 47.996 0 0 0 0 255.609V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V255.609a47.996 47.996 0 0 0-9.181-28.232zM139.503 102.589A16.048 16.048 0 0 1 152.443 96h271.115c5.102 0 9.939 2.463 12.94 6.589L524.796 224H51.204l88.299-121.411zM544 272v128c0 8.823-7.178 16-16 16H48c-8.822 0-16-7.177-16-16V272c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16zm-56 64c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24zm-64 0c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"]\n};\nvar faHeadSide = {\n prefix: 'fal',\n iconName: 'head-side',\n icon: [512, 512, [], \"f6e9\", \"M509.21 275c-20.94-47.12-48.44-151.73-73.08-186.75C397.68 33.6 334.56 0 266.09 0h-66.08C95.47 0 4.12 80.08.14 184.55-2.13 244.33 23.1 298.14 64 334.82V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V320.54L85.36 311c-35.65-31.97-55.06-77.62-53.25-125.23C35.35 100.98 110.66 32 200.01 32h66.08c57.19 0 110.97 27.91 143.86 74.66 12.52 17.8 29.11 66.74 42.45 106.07 9.73 28.71 18.93 55.83 27.57 75.27H416v96c0 17.64-14.36 32-32 32h-96v88c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h64c35.35 0 64-28.65 64-64v-64h31.96c23.16 0 38.65-23.84 29.25-45zM352 192c0-17.67-14.33-32-32-32s-32 14.33-32 32 14.33 32 32 32 32-14.33 32-32z\"]\n};\nvar faHeadSideBrain = {\n prefix: 'fal',\n iconName: 'head-side-brain',\n icon: [512, 512, [], \"f808\", \"M509.21 275c-20.94-47.12-48.44-151.73-73.08-186.75A207.94 207.94 0 0 0 266.09 0H200C95.47 0 4.12 80.08.14 184.55A191.3 191.3 0 0 0 64 334.82V504a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V320.54L85.36 311a159.67 159.67 0 0 1-53.25-125.23C35.35 101 110.66 32 200 32h66.08A176.08 176.08 0 0 1 410 106.66c12.52 17.8 29.11 66.74 42.45 106.07 9.73 28.71 18.93 55.83 27.57 75.27H416v96a32 32 0 0 1-32 32h-96v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.21-45zM313.6 192c21.21 0 38.4-16.48 38.4-36.8s-17.19-36.8-38.4-36.8H311a38.09 38.09 0 0 0-35.8-25.6c-7.1 0-13.38 2.45-19.08 5.81C249.35 87.68 237.8 80 224 80s-25.34 7.68-32.11 18.61c-5.71-3.36-12-5.81-19.09-5.81a38.4 38.4 0 0 0-38.4 38.4A38.4 38.4 0 0 0 96 169.6c0 16.85 11 30.74 26.11 35.92-.06.86-.51 1.6-.51 2.48a38.4 38.4 0 0 0 38.4 38.4 37.91 37.91 0 0 0 12.8-2.58V288H224v-44.18a37.91 37.91 0 0 0 12.8 2.58 38.4 38.4 0 0 0 38.4-38.4 37.84 37.84 0 0 0-3.73-16z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fal',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M488,360a24,24,0,1,0,24,24A24,24,0,0,0,488,360Zm-10.8-85c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,234.1,0H196.74C92.49,0,3.67,81.11.11,185.29A191.32,191.32,0,0,0,64,334.81V504a8,8,0,0,0,8,8H88a8,8,0,0,0,8-8V320.55l-5.69-5.11C70.46,297.63,54.08,276,44,251.31-1.34,139.68,88.37,32,200,32H234.1A176.07,176.07,0,0,1,378,106.66c12.52,17.79,29.11,66.75,42.46,106.07,9.72,28.71,18.92,55.83,27.56,75.27H384v48H338c-26.28,0-49.2,20.25-50,46.52A48,48,0,0,0,336,432h48v16a32,32,0,0,1-32,32H296a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8h56a64,64,0,0,0,64-64V416a16,16,0,0,0-16-16H336.85c-8,0-15.35-5.45-16.63-13.32A16,16,0,0,1,336,368h64a16,16,0,0,0,16-16V320H448A32,32,0,0,0,477.2,275ZM320,192a32,32,0,1,0-32,32A32,32,0,0,0,320,192ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm0,56a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm0,104a24,24,0,1,0,24,24A24,24,0,0,0,616,464ZM552,320a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm0,96a24,24,0,1,0,24,24A24,24,0,0,0,552,416Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fal',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M427,320H448a32,32,0,0,0,29.25-45c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,234.1,0H196.74A198.73,198.73,0,0,0,74.44,42.34L23,1.82A7.87,7.87,0,0,0,11.77,3l-10,12.5A8,8,0,0,0,3,26.73l614,483.5a7.66,7.66,0,0,0,2.84,1l.35-.07c3,.73,6.05.35,8-2.14l10-12.5a7.86,7.86,0,0,0-1.21-11.2ZM301.25,221A31.89,31.89,0,0,0,288,160c-15.63,0-28,11.42-30.83,26.23L101.6,63.73C129.48,44.12,163.34,32,200,32H234.1A176.07,176.07,0,0,1,378,106.66c12.52,17.79,29.11,66.75,42.46,106.07,9.72,28.71,18.92,55.83,27.56,75.27H386.4ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368Zm64-8a24,24,0,1,0,24,24A24,24,0,0,0,616,360ZM44,251.31c-20.94-51.5-12.9-102,12.55-141.63L30.79,89.36A186,186,0,0,0,.11,185.29,191.32,191.32,0,0,0,64,334.81V504a8,8,0,0,0,8,8H88a8,8,0,0,0,8-8V320.55l-5.69-5.11C70.46,297.63,54.08,276,44,251.31ZM400,400H336.85c-8,0-15.35-5.45-16.63-13.32A16,16,0,0,1,336,368h48.64L344,336h-6c-26.28,0-49.2,20.25-50,46.52A48,48,0,0,0,336,432h48v16a32,32,0,0,1-32,32H296a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8h56a64,64,0,0,0,64-64V416A16,16,0,0,0,400,400Z\"]\n};\nvar faHeadSideHeadphones = {\n prefix: 'fal',\n iconName: 'head-side-headphones',\n icon: [512, 512, [], \"f8c2\", \"M509.21 275c-20.94-47.12-48.44-151.73-73.09-186.75A207.88 207.88 0 0 0 266.09 0H200C95.48 0 4.14 80.08.14 184.55A191.34 191.34 0 0 0 64 334.81V504a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V320.55L85.38 311a159.63 159.63 0 0 1-53.24-125.23C34.65 119.6 81.29 63.56 144 41.92v74.35a112 112 0 1 0 128 0V32.36a175.82 175.82 0 0 1 137.92 74.3c12.53 17.79 29.12 66.75 42.47 106.07 9.72 28.71 18.93 55.83 27.56 75.27H416v96a32 32 0 0 1-32 32h-96v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.21-45zM176 34.29c7.9-1.11 15.8-2.29 24-2.29h40v69.2c-10.2-3.06-20.8-5.2-32-5.2s-21.8 2.14-32 5.2zM288 208a80 80 0 1 1-80-80 80.08 80.08 0 0 1 80 80zm-80-48a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48zm0 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fal',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M512,288a31.66,31.66,0,0,0-2.77-13c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H197.68C93.48,0,4,80.61.13,184.74-2.08,244.4,23.08,298.13,64,334.88V504a8,8,0,0,0,8,8H88a8,8,0,0,0,8-8l0-183.4-10.61-9.53a159.87,159.87,0,0,1-52.79-133l.68-.31L224,316.51V504a8,8,0,0,0,8,8H401.88a64,64,0,0,0,60.71-43.76l47.77-143.31A32,32,0,0,0,512,314.81Zm-44.38,64H336a16,16,0,0,0,0,32H456.94l-10.67,32H336a16,16,0,0,0,0,32h99.6l-3.38,10.12A32,32,0,0,1,401.88,480H256V320H478.27Zm12.16-64H239.21L40.69,143.61C62.58,79.4,126.15,32,200,32h66.15a176.21,176.21,0,0,1,143.82,74.66c12.48,17.75,29,66.57,42.35,105.8,9.78,28.83,19,56.06,27.49,75.48ZM320,160a32,32,0,1,0,32,32A32.07,32.07,0,0,0,320,160Z\"]\n};\nvar faHeadSideMedical = {\n prefix: 'fal',\n iconName: 'head-side-medical',\n icon: [512, 512, [], \"f809\", \"M336 216v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8zm173.21 59c-20.94-47.12-48.44-151.73-73.08-186.75A207.94 207.94 0 0 0 266.09 0H200C95.47 0 4.12 80.08.14 184.55A191.3 191.3 0 0 0 64 334.82V504a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V320.54L85.36 311a159.67 159.67 0 0 1-53.25-125.23C35.35 101 110.66 32 200 32h66.08A176.08 176.08 0 0 1 410 106.66c12.52 17.8 29.11 66.74 42.45 106.07 9.73 28.71 18.93 55.83 27.57 75.27H416v96a32 32 0 0 1-32 32h-96v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h64a64 64 0 0 0 64-64v-64h32a32 32 0 0 0 29.21-45z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fal',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M256,224a16,16,0,1,0,16,16A16,16,0,0,0,256,224Zm253.2,51c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H200C95.47,0,4.13,80.08.14,184.55A191.27,191.27,0,0,0,64,334.81V504a8,8,0,0,0,8,8H88a8,8,0,0,0,8-8V320.55L85.36,311A159.66,159.66,0,0,1,32.11,185.77C35.34,101,110.66,32,200,32h66.07A176.08,176.08,0,0,1,410,106.66c12.52,17.79,29.11,66.75,42.46,106.07,9.72,28.71,18.92,55.83,27.56,75.27H416v96a32,32,0,0,1-32,32H288v88a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192Zm86.63,125.25,8.57,8.58a16,16,0,1,0,22.63-22.62l-8.58-8.58C313.09,274.47,327.37,240,355.88,240H368a16,16,0,0,0,0-32H355.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,0,0-22.63-22.63l-8.57,8.58a31.35,31.35,0,0,1-22.4,9.44c-16.45,0-32.23-12.78-32.23-32.07V96a16,16,0,0,0-32,0v12.12c0,19.29-15.78,32.07-32.23,32.07a31.35,31.35,0,0,1-22.4-9.44l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H112a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.58a31.34,31.34,0,0,1,22.4-9.43c16.45,0,32.23,12.77,32.23,32.06V352a16,16,0,0,0,32,0V339.88c0-19.29,15.78-32.06,32.23-32.06A31.38,31.38,0,0,1,310.63,317.25Zm-66.53-24c-1.47,1.37-2.86,2.81-4.18,4.29a64.18,64.18,0,0,0-48.15-21.7c-1.25,0-2.5,0-3.74.11A64.3,64.3,0,0,0,166.5,224,64.3,64.3,0,0,0,188,172.08c1.24.07,2.49.11,3.74.11A64.2,64.2,0,0,0,240,150.39a64.18,64.18,0,0,0,48.23,21.8c1.25,0,2.5,0,3.73-.11A64.38,64.38,0,0,0,313.49,224,64.38,64.38,0,0,0,292,275.93c-1.23-.08-2.48-.11-3.73-.11A64.46,64.46,0,0,0,244.1,293.23Z\"]\n};\nvar faHeadVr = {\n prefix: 'fal',\n iconName: 'head-vr',\n icon: [512, 512, [], \"f6ea\", \"M480 64h-96.49C345.04 23.98 291.6 0 234.09 0h-34.08C127.59 0 61.92 38.7 26.82 97.04 11.71 99.61 0 112.16 0 128v64c0 17.67 14.33 32 32 32h184c.72 0 1.18-.59 1.85-.77 18.99 20.1 46.27 32.77 75.58 32.77H480c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM32 192v-64h165.66c-4.1 11.56-6.21 24.05-5.53 37.16.5 9.5 2.89 18.37 6.1 26.84H32zm184.57-95.76c-.22-.02-.35-.24-.57-.24H67.08c30.83-38.58 79.05-64 132.94-64h34.08c36.29 0 70.79 11.79 99.82 32H288c-28.47 0-53.85 12.56-71.43 32.24zM384 224h-96c-35.29 0-64-28.71-64-64s28.71-64 64-64h96v128zm96 0h-64V96h64v128zM46.19 256H11.26c10.86 30.54 29.07 57.59 52.74 78.82V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V320.54L85.37 311c-17.27-15.49-30.15-34.41-39.18-55zM384 288v96c0 17.64-14.36 32-32 32h-64v88c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h32c35.35 0 64-28.65 64-64v-64h31.96c18.45 0 31.79-15.15 31.8-32H384z\"]\n};\nvar faHeading = {\n prefix: 'fal',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M416 64v384h56a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H328a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56V272H128v176h56a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H40a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h56V64H40a8 8 0 0 1-8-8V40a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8h-56v176h256V64h-56a8 8 0 0 1-8-8V40a8 8 0 0 1 8-8h144a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8z\"]\n};\nvar faHeadphones = {\n prefix: 'fal',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.517 32 0 146.497 0 288v51.429a16.003 16.003 0 0 0 8.213 13.978l23.804 13.262c-.005.443-.017.886-.017 1.331 0 61.856 50.144 112 112 112h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-49.675 0-91.79 32.343-106.453 77.118L32 330.027V288C32 164.205 132.184 64 256 64c123.796 0 224 100.184 224 224v42.027l-5.547 3.09C459.79 288.343 417.676 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c61.856 0 112-50.144 112-112 0-.445-.012-.888-.017-1.332l23.804-13.262A16.002 16.002 0 0 0 512 339.428V288c0-141.482-114.497-256-256-256zM144 288h16v160h-16c-44.112 0-80-35.888-80-80s35.888-80 80-80zm224 160h-16V288h16c44.112 0 80 35.888 80 80s-35.888 80-80 80z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fal',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M384 288h-32c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h32c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zm32 127.88c0 17.68-14.36 32.06-32 32.06h-32V320.06h32c17.64 0 32 14.38 32 32.06v63.76zM160 288h-32c-35.35 0-64 28.71-64 64.12v63.76C64 451.29 92.65 480 128 480h32c17.67 0 32-14.35 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm0 159.94h-32c-17.64 0-32-14.38-32-32.06v-63.76c0-17.68 14.36-32.06 32-32.06h32v127.88zM256 32C114.84 32 0 146.85 0 288v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V288C32 164.48 132.5 64 256 64s224 100.48 224 224v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V288c0-141.15-114.84-256-256-256z\"]\n};\nvar faHeadset = {\n prefix: 'fal',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 224c0-17.67-14.33-32-32-32h-32c-35.35 0-64 28.65-64 64v63.64c0 35.35 28.65 64 64 64h32c17.67 0 32-14.33 32-32V224zm-32 127.64h-32c-17.64 0-32-14.36-32-32V256c0-17.64 14.36-32 32-32h32v127.64zm224 32c35.35 0 64-28.65 64-64V256c0-35.35-28.65-64-64-64h-32c-17.67 0-32 14.33-32 32v127.64c0 17.67 14.33 32 32 32h32zM352 224h32c17.64 0 32 14.36 32 32v63.64c0 17.64-14.36 32-32 32h-32V224zM256 0C113.97 0 3.92 117.82.1 256L0 280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8l.09-24C35.43 135.19 131.63 32 256 32c123.5 0 224 100.48 224 224v176c0 26.47-21.53 48-48 48h-82.94c1.79-5.03 2.94-10.36 2.94-16 0-26.51-21.49-48-48-48h-64c-26.51 0-48 21.49-48 48s21.49 48 48 48h192c44.12 0 80-35.89 80-80V256C512 114.85 397.16 0 256 0zm48 480h-64c-8.82 0-16-7.18-16-16s7.18-16 16-16h64c8.82 0 16 7.18 16 16s-7.18 16-16 16z\"]\n};\nvar faHeart = {\n prefix: 'fal',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.7c-54.5-46.4-136-38.7-186.6 13.5L256 96.6l-19.7-20.3C195.5 34.1 113.2 8.7 49.7 62.7c-62.8 53.6-66.1 149.8-9.9 207.8l193.5 199.8c6.2 6.4 14.4 9.7 22.6 9.7 8.2 0 16.4-3.2 22.6-9.7L472 270.5c56.4-58 53.1-154.2-9.7-207.8zm-13.1 185.6L256.4 448.1 62.8 248.3c-38.4-39.6-46.4-115.1 7.7-161.2 54.8-46.8 119.2-12.9 142.8 11.5l42.7 44.1 42.7-44.1c23.2-24 88.2-58 142.8-11.5 54 46 46.1 121.5 7.7 161.2z\"]\n};\nvar faHeartBroken = {\n prefix: 'fal',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.9c-39.6-41.2-83.8-41.7-95.5-41.7-28.7 0-57.5 9.4-81.3 28.2-5.2 4.1-7 11.4-4.9 17.6l25 75.4-85.8 57.2c-6.2 4.1-8.7 12-6.1 18.9l22.1 58.8-78-78 79.7-53.2c6-4 8.6-11.5 6.3-18.3l-17.4-52.5c-1.7-5-4.6-9.8-8.4-13.4-43.9-41.6-80.9-41.1-95-41.1-12 0-54.1 0-96.1 41.9C-10.4 123.7-12.5 203 31 256l212.1 218.5c3.5 3.6 8.2 5.5 12.8 5.5 4.7 0 9.3-1.8 12.8-5.5L481 256c43.5-53 41.4-132.3-7.3-182.1zM457 234.8l-201 207-201-207C22.3 194 25 133.4 61 96.6 81.1 76.4 103.8 64 134.4 64c27.3 0 51.6 10.3 72.8 32l13.7 41.5-85.8 57.2c-8.4 5.6-9.6 17.5-2.4 24.6l130.9 130.9c15.2 15.2 40.4-1 32.9-21.2l-37-98.8 85.4-57c6-4 8.6-11.5 6.3-18.4L326 79c15.6-9.7 33.6-14.8 52.2-14.8 26.7 0 51.3 9.9 72.6 32.1 36.3 37.1 38.9 97.7 6.2 138.5z\"]\n};\nvar faHeartCircle = {\n prefix: 'fal',\n iconName: 'heart-circle',\n icon: [496, 512, [], \"f4c7\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm116-318.4c-41.9-36.3-89.5-8.4-104.9 7.7L248 172.9l-11.1-11.6c-26.6-27.9-72.5-35.9-104.9-7.7-35.3 30.6-37.2 85.6-5.6 118.7l108.9 114.1c7 7.4 18.4 7.4 25.5 0l108.9-114.1c31.5-33.2 29.7-88.1-5.7-118.7zm-17 96.5l-99 103.8-99-103.8c-16.7-17.5-20.4-51.6 3.4-72.1 22.2-19.3 50-6.8 61.9 5.7L248 219l33.7-35.3c8.7-9.2 37.5-26.8 61.9-5.7 23.8 20.5 20.1 54.5 3.4 72.1z\"]\n};\nvar faHeartRate = {\n prefix: 'fal',\n iconName: 'heart-rate',\n icon: [640, 512, [], \"f5f8\", \"M480 224c-6.53 0-12.44 3.98-14.84 10.06l-45.62 114.05-84-335.98C333.72 4.86 327.69.17 319.62 0c-7.5.19-13.84 5.53-15.31 12.86l-82.06 410.23-46.72-186.97A16.005 16.005 0 0 0 160 224H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h139.5l60.97 243.88c1.78 7.14 8.22 12.12 15.53 12.12h.38c7.5-.19 13.84-5.53 15.31-12.86l82.06-410.23 78.72 314.97c1.69 6.73 7.53 11.62 14.44 12.09 7.62.28 13.38-3.59 15.94-10.03l60-149.94H632c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H480z\"]\n};\nvar faHeartSquare = {\n prefix: 'fal',\n iconName: 'heart-square',\n icon: [448, 512, [], \"f4c8\", \"M340 145.6c-14.4-12.5-30.6-17.6-46.4-17.6-22.8 0-44.6 10.7-58.6 25.3l-11 11.6-11.1-11.6C199.2 139 177.3 128 154.2 128c-15.7 0-31.8 5.1-46.3 17.6-35.3 30.6-37.2 85.6-5.6 118.7l108.9 114.1c7 7.4 18.4 7.4 25.5 0l108.9-114.1c31.6-33.2 29.8-88.1-5.6-118.7zm-17 96.5l-99 103.8-99-103.8c-16.7-17.5-20.4-51.6 3.4-72.1 8.2-7.1 17.3-9.9 26.3-9.9 13.9 0 27.3 6.9 35.6 15.6L224 211l33.7-35.3c8.2-8.6 21.7-15.5 35.6-15.5 8.9 0 18.1 2.8 26.2 9.9 23.9 20.4 20.2 54.4 3.5 72zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352z\"]\n};\nvar faHeartbeat = {\n prefix: 'fal',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M468.7 76.5C423.6 32.2 375 32 362.3 32c-12.7 0-61.5.2-106.3 44.4C211.3 32.3 162.5 32 149.7 32c-12.7 0-61.4.2-106.4 44.5C15.4 104 0 140.7 0 179.9 0 214.1 12.3 246 33.8 272h120.8l29.9-71.8 56.9 126.4c5.5 12.3 22.9 12.7 28.9.6l49.7-99.4 22.1 44.2h136c21.5-26 33.8-57.9 33.8-92.1.1-39.2-15.3-75.9-43.2-103.4zM462.5 240H361.9l-27.6-55.2c-5.9-11.8-22.7-11.8-28.6 0l-48.9 97.9-58.2-129.3c-5.8-12.8-24-12.5-29.4.4L133.3 240H49.5c-9.2-14.6-42.6-82.7 18.3-142.7C90.4 75.1 120 64 149.7 64c33.9 0 54.5 6.3 106.3 57.3C311 67.1 330.5 64 362.3 64c29.7 0 59.3 11.1 81.8 33.3 61 60.1 27.5 128.2 18.4 142.7zM268.7 443.4c-6.2 6.1-16.2 6.1-22.4 0L108.9 304H64l159.9 162.2c18.7 18.5 48.6 18.4 67.3 0L448 304h-44.5L268.7 443.4z\"]\n};\nvar faHeat = {\n prefix: 'fal',\n iconName: 'heat',\n icon: [448, 512, [], \"e00c\", \"M192,153.59V48a16,16,0,0,0-32,0V152.25A202.63,202.63,0,0,0,210.26,286C238.49,318.19,256,358.38,256,401.23V464a16,16,0,0,0,32,0V402.41a202.44,202.44,0,0,0-50.27-133.7C209.51,236.53,192,196.39,192,153.59ZM64,132.4V112a16,16,0,0,0-32,0v16A257.68,257.68,0,0,0,82.29,280.39C110.65,318.68,128,364,128,411.6V464a16,16,0,0,0,32,0V416a257.68,257.68,0,0,0-50.29-152.39C81.35,225.32,64,180,64,132.4ZM365.71,263.61C337.35,225.32,320,180,320,132.4V112a16,16,0,0,0-32,0v16a257.68,257.68,0,0,0,50.29,152.39C366.65,318.68,384,364,384,411.6V464a16,16,0,0,0,32,0V416A257.68,257.68,0,0,0,365.71,263.61Z\"]\n};\nvar faHelicopter = {\n prefix: 'fal',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 416h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h184c4.42 0 8-3.58 8-8V40c0-4.42-3.58-8-8-8H136c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h216v96H128l-43.2-57.6C81.78 98.37 77.03 96 72 96H16.01C5.6 96-2.04 105.78.49 115.88L32 224l160 64 86.4 115.2A31.992 31.992 0 0 0 304 416zm112-221.11C506.66 210.2 576 289.05 576 384H416V194.89zm-203.78 66.73l-8.33-3.33-145.54-58.21L37.33 128H64l38.4 51.2L112 192h272v192h-80l-86.4-115.2-5.38-7.18zm425.44 208.03l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-7.6 7.6c-9 9-21.2 14.05-33.93 14.05H232c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h341.48c21.22 0 41.58-8.43 56.58-23.44l7.59-7.59c3.13-3.12 3.13-8.18.01-11.31z\"]\n};\nvar faHelmetBattle = {\n prefix: 'fal',\n iconName: 'helmet-battle',\n icon: [512, 512, [], \"f6eb\", \"M510.28 223.37L429.41 4.53C428.26 1.42 425.63 0 423 0c-3.5 0-7.01 2.52-7.01 6.93v106.39C361.41 35.29 255.99 0 255.99 0S150.6 35.28 96.01 113.3V6.93C96.01 2.52 92.51 0 89 0c-2.63 0-5.27 1.42-6.42 4.53L1.72 223.37c-3.86 15.05-1.16 30.91 7.41 43.51C18.12 280.11 32.66 288 48.02 288c3.29 0 6.48-.42 9.57-1.11-7.39 45.62-19.22 81.5-24.72 104.64-3.43 14.43 3.59 29.37 16.32 35.24L239.99 512V256l-80-16v-16h191.99v16l-80 16v256l190.81-85.23c12.73-5.87 19.75-20.81 16.32-35.24-5.5-23.14-17.33-59.02-24.72-104.64 3.1.69 6.29 1.11 9.59 1.11 15.36 0 29.9-7.89 38.89-21.12 8.57-12.6 11.27-28.46 7.41-43.51zM64.01 236.89c0 10.36-7.33 19.11-16 19.11-4.75 0-9.4-2.66-12.42-7.11-3.18-4.67-4.3-10.55-3.16-16.31l31.58-85.47v89.78zm239.98 225.77V282.23l80-16V192H128v74.23l80 16v180.43L64.13 398.4c1.51-6.3 3.52-13.55 5.76-21.7C80.28 338.95 96 281.89 96 210.82 96 106.62 219.41 49 256.04 34.2c36.68 14.71 159.95 71.96 159.95 176.63 0 71.07 15.71 128.12 26.11 165.88 2.24 8.15 4.25 15.4 5.76 21.7l-143.87 64.25zm172.42-213.77c-3.02 4.45-7.67 7.11-12.42 7.11-8.67 0-16-8.75-16-19.11v-89.77l31.58 85.47c1.14 5.76.01 11.63-3.16 16.3z\"]\n};\nvar faHexagon = {\n prefix: 'fal',\n iconName: 'hexagon',\n icon: [576, 512, [], \"f312\", \"M441.5 39.8C432.9 25.1 417.1 16 400 16H176c-17.1 0-32.9 9.1-41.5 23.8l-112 192c-8.7 14.9-8.7 33.4 0 48.4l112 192c8.6 14.7 24.4 23.8 41.5 23.8h224c17.1 0 32.9-9.1 41.5-23.8l112-192c8.7-14.9 8.7-33.4 0-48.4l-112-192zm84.3 224.3l-112 192c-2.9 4.9-8.2 7.9-13.8 7.9H176c-5.7 0-11-3-13.8-7.9l-112-192c-2.9-5-2.9-11.2 0-16.1l112-192c2.8-5 8.1-8 13.8-8h224c5.7 0 11 3 13.8 7.9l112 192c2.9 5 2.9 11.2 0 16.2z\"]\n};\nvar faHighlighter = {\n prefix: 'fal',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M528.61 75.91l-60.49-60.52C457.91 5.16 444.45 0 430.98 0a52.38 52.38 0 0 0-34.75 13.15L110.59 261.8c-10.29 9.08-14.33 23.35-10.33 36.49l12.49 41.02-36.54 36.56c-6.74 6.75-6.74 17.68 0 24.43l.25.26L0 479.98 99.88 512l43.99-44.01.02.02c6.75 6.75 17.69 6.75 24.44 0l36.46-36.47 40.91 12.53c18.01 5.51 31.41-4.54 36.51-10.32l248.65-285.9c18.35-20.82 17.37-52.32-2.25-71.94zM91.05 475.55l-32.21-10.33 40.26-42.03 22.14 22.15-30.19 30.21zm167.16-62.99c-.63.72-1.4.94-2.32.94-.26 0-.54-.02-.83-.05l-40.91-12.53-18.39-5.63-39.65 39.67-46.85-46.88 39.71-39.72-5.6-18.38-12.49-41.02c-.34-1.13.01-2.36.73-3l44.97-39.15 120.74 120.8-39.11 44.95zm248.51-285.73L318.36 343.4l-117.6-117.66L417.4 37.15c4.5-3.97 17.55-9.68 28.1.88l60.48 60.52c7.65 7.65 8.04 20 .74 28.28z\"]\n};\nvar faHiking = {\n prefix: 'fal',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M376 160h-16c-4.42 0-8 3.58-8 8v26.95c-5.03-1.79-10.36-2.95-16-2.95h-30.16l-43.08-55.18-1.22-1.56-1.4-1.4c5.11-3.04 10-6.52 14.39-10.9C288.3 109.2 295.57 91.57 295.57 72s-7.28-37.2-21.04-50.96C260.77 7.28 243.15 0 223.58 0c-19.58 0-37.2 7.28-50.96 21.04S151.58 52.42 151.58 72c0 18.07 6.46 34.33 18.24 47.57l-45.84-13.16c-44.78-10.62-90.62 15.75-102 59.09L.92 247.08c-1.94 7.5-.78 15.28 3.22 21.94 4.09 6.83 10.66 11.61 17.81 13.31l80.26 22.95-36.78 147.08c-6.38 25.73 9.31 51.81 34.97 58.2 3.8.95 7.71 1.43 11.61 1.43 22.09 0 41.25-14.97 46.58-36.4l27.13-108.52 38.28 25.9V464c0 26.47 21.53 48 48 48s48-21.53 48-48v-79.53c0-25.75-12.51-50.08-33.47-65.08L238 287.59l5.02-20.06 1.52 1.95c9.17 11.77 22.97 18.52 37.88 18.52H336c5.64 0 10.97-1.15 16-2.95V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V168c0-4.42-3.58-8-8-8zM195.24 43.67C203.02 35.89 212.47 32 223.58 32s20.56 3.89 28.33 11.67c7.77 7.77 11.67 17.23 11.67 28.33s-3.89 20.56-11.67 28.33c-7.77 7.77-17.23 11.67-28.33 11.67-11.11 0-20.56-3.89-28.33-11.67-7.77-7.77-11.67-17.23-11.67-28.33s3.89-20.56 11.66-28.33zM31.92 255.09l.12-.45.22.53-.34-.08zm.75-2.98l20.28-78.56c6.94-26.61 35.44-42.78 62.9-36.2l28.98 8.32a74.842 74.842 0 0 0-10.06 23.01l-26.28 105.1-75.82-21.67zm94.87 215.77c-1.81 7.28-8.34 12.12-15.53 12.12-1.28 0-2.56-.16-3.87-.48-8.59-2.14-13.78-10.83-11.66-19.39l32.8-131.2 28.23 19.08-29.97 119.87zM336 256h-53.59c-4.94 0-9.59-2.28-12.62-6.17l-41.88-53.81-25.96 103.86c-.17.68-.83 1.01-1.08 1.65l67.04 43.88c12.59 9.02 20.09 23.61 20.09 39.06V464c0 8.84-7.16 16-16 16s-16-7.16-16-16v-79.53c0-5.16-2.5-10.03-6.72-13.03L145.1 301.02a16.002 16.002 0 0 1-6.22-16.89l26.94-107.72a42.682 42.682 0 0 1 41.5-32.41c11.41 0 22.12 4.44 30.22 12.52L290.23 224H336c8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faHippo = {\n prefix: 'fal',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M584.11 96.29c-28.85-1.51-54.65 17.18-79.6 26.54C489.98 88.27 455.83 64 416 64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v40.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.63 0 224v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-59.42c24.66 7.19 51.56 11.42 80 11.42s55.34-4.24 80-11.42V448c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V288h96v48c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-48c17.67 0 32-14.33 32-32v-96.42c0-32.17-23.76-61.6-55.89-63.29zM384 448h-64V345.92c-120.03 34.98-142.84 23.65-224 0V448H32V224c0-70.58 71.78-128 160-128 40.32 0 78.98 12.29 108.84 34.62L320 144.93V208c0 38.63 27.52 70.95 64 78.38V448zm192-128h-32v-32h32v32zm32-64H400c-26.47 0-48-21.53-48-48V64h32v32h32c25.83 0 49 15.4 59.02 39.23l11.93 28.36c72.91-27.35 75.75-35.88 95.48-35.35 13.86.73 25.57 15.08 25.57 31.34V256zm-176.19-96c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faHistory = {\n prefix: 'fal',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M20 24h10c6.627 0 12 5.373 12 12v94.625C85.196 57.047 165.239 7.715 256.793 8.001 393.18 8.428 504.213 120.009 504 256.396 503.786 393.181 392.834 504 256 504c-63.926 0-122.202-24.187-166.178-63.908-5.113-4.618-5.354-12.561-.482-17.433l7.069-7.069c4.503-4.503 11.749-4.714 16.482-.454C150.782 449.238 200.935 470 256 470c117.744 0 214-95.331 214-214 0-117.744-95.331-214-214-214-82.862 0-154.737 47.077-190.289 116H164c6.627 0 12 5.373 12 12v10c0 6.627-5.373 12-12 12H20c-6.627 0-12-5.373-12-12V36c0-6.627 5.373-12 12-12zm321.647 315.235l4.706-6.47c3.898-5.36 2.713-12.865-2.647-16.763L272 263.853V116c0-6.627-5.373-12-12-12h-8c-6.627 0-12 5.373-12 12v164.147l84.884 61.734c5.36 3.899 12.865 2.714 16.763-2.646z\"]\n};\nvar faHockeyMask = {\n prefix: 'fal',\n iconName: 'hockey-mask',\n icon: [448, 512, [], \"f6ee\", \"M376.61 54.46C335.13 18.15 279.56 0 224 0 168.43 0 112.87 18.15 71.39 54.46 7.36 110.5-31.01 224.44 32.63 416 64.53 512 224 512 224 512s159.47 0 191.37-96c63.64-191.56 25.27-305.5-38.76-361.54zM385 405.91c-20.08 60.43-123.06 73.97-161 74.09-1.36 0-137.06-2.02-161-74.09C-4.54 202.62 52.47 113.54 92.47 78.54 126.25 48.96 174.2 32 224 32s97.74 16.96 131.53 46.54c40 35 97.01 124.08 29.47 327.37zM272 112c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.17 16 16 16zm-96 0c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm16 304c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm0-64c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm0-64c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm-20-112h-72c-19.88 0-36 14.33-36 32 0 35.35 32.23 64 72 64 39.76 0 72-28.65 72-64 0-17.67-16.12-32-36-32zm-36 64c-33.59 0-48.06-32-36-32h72c11.72 0-2.9 32-36 32zm88-112c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm32 288c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm0-64c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm0-64c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm92-112h-72c-19.88 0-36 14.33-36 32 0 35.35 32.24 64 72 64s72-28.65 72-64c0-17.67-16.12-32-36-32zm-36 64c-33.6 0-48.06-32-36-32h72c11.72 0-2.91 32-36 32z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fal',\n iconName: 'hockey-puck',\n icon: [544, 512, [], \"f453\", \"M272 64C141 64 0 99 0 176v144c0 84 136.8 128 272 128s272-44 272-128V176c0-77-141-112-272-112zm240 256c0 53-107.5 96-240 96S32 373 32 320v-87.7c95.7 74 383.6 74.5 480 0V320zm-240-64c-132.5 0-240-35.8-240-80s107.5-80 240-80 240 35.8 240 80-107.5 80-240 80z\"]\n};\nvar faHockeySticks = {\n prefix: 'fal',\n iconName: 'hockey-sticks',\n icon: [640, 512, [], \"f454\", \"M624 352H410.6c-3 0-5.8-1.7-7.2-4.4L373.6 288l118-236.2c3.9-7.9.7-17.5-7.2-21.5L427.3 1.7c-7.9-4-17.5-.8-21.5 7.2L320 180.6 234.2 8.8c-3.9-7.9-13.6-11.1-21.5-7.2l-57.3 28.6c-7.9 4-11.1 13.6-7.2 21.5l118 236.2-29.8 59.6c-1.4 2.7-4.1 4.4-7.2 4.4H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h186.3c36.4 0 69.6-20.6 85.9-53.1l31.8-63.6 31.8 63.6c16.3 32.5 49.5 53.1 85.9 53.1H624c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM184.1 51.8l28.6-14.3 89.4 178.9-17.9 35.8L184.1 51.8zM32 480v-96h32v96H32zm227.6-35.4c-10.9 21.8-32.8 35.4-57.2 35.4H96v-96h133.4c15.3 0 29-8.5 35.8-22.1L427.3 37.5l28.6 14.3-196.3 392.8zM437.7 480c-24.4 0-46.3-13.6-57.2-35.4L338 359.5l17.9-35.8 19.1 38.1c6.8 13.6 20.5 22.1 35.8 22.1H544v96H437.7zm170.3 0h-32v-96h32v96z\"]\n};\nvar faHollyBerry = {\n prefix: 'fal',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M443.9 343.6c-5-8.7-13.8-14.4-23.7-15.4-14.3-1.5-29-4.5-43.8-8.9-7.4-2.2-11.8-9.8-10-17.4 3.6-15.1 8.4-29.4 14.3-42.6 4.1-9.1 3.5-19.7-1.6-28.3-5-8.6-13.8-14.2-23.5-15.1-14.6-1.4-29.2-4.6-43.7-8.8 19.1-11 32.1-31.5 32.1-55.1 0-34.3-27-62-60.8-63.7 3.1-7.5 4.8-15.7 4.8-24.3 0-35.3-28.7-64-64-64s-64 28.6-64 64c0 8.6 1.8 16.8 4.8 24.3C131 90 104 117.7 104 152c0 23.7 13 44.1 32.1 55.2-14.5 4.2-29.1 7.4-43.7 8.8-9.7.9-18.6 6.6-23.5 15.1-5.1 8.7-5.6 19.2-1.6 28.3 5.9 13.2 10.7 27.5 14.3 42.6 1.8 7.5-2.6 15.2-10 17.4-14.8 4.4-29.6 7.4-43.8 8.9-9.8 1-18.7 6.8-23.7 15.4-4.9 8.6-5.5 19.1-1.4 28 14.5 31.7 22.2 68.1 22.4 105.2.1 12.8 6.6 24.2 17.5 30.4C48.1 510.4 54 512 60 512c6 0 12.1-1.6 17.7-4.8 32.2-18.4 67.4-29.9 101.9-33.1 9.7-.9 18.5-6.6 23.5-15.2 5-8.7 5.6-19.2 1.5-28.3-5.9-13.2-10.7-27.5-14.2-42.6-1.8-7.5 2.6-15.2 10-17.4 7.9-2.4 15.8-4.3 23.6-5.8 7.8 1.5 15.7 3.4 23.6 5.8 7.4 2.2 11.7 9.8 10 17.4-3.6 15.1-8.4 29.4-14.2 42.6-4.1 9.1-3.5 19.6 1.5 28.3 5 8.6 13.8 14.2 23.6 15.2 34.5 3.2 69.8 14.7 101.9 33.1 5.5 3.2 11.6 4.8 17.6 4.8 6 0 12-1.6 17.4-4.7 10.9-6.3 17.4-17.7 17.5-30.4.2-37.1 7.9-73.5 22.4-105.2 4.1-9 3.5-19.5-1.4-28.1zM280 120c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm-144 32c0-17.6 14.4-32 32-32s32 14.4 32 32-14.4 32-32 32-32-14.4-32-32zm55.2 188.1c-23.6 7.1-37.6 31.4-31.9 55.4 4 17 9.5 33.3 17.3 46.8-39.6 3.7-78.3 16.3-118 37.4-1-.6-1.5-1.5-1.5-2.9C57 434.5 48.5 394.7 31 360c16.3-1.7 33-5.1 49.8-10.1 23.6-7.1 37.6-31.4 31.9-55.4-4-17-9.5-33.3-17.3-46.8 40.6-3.8 81.8-17.5 119.5-39.3-.5 42.9 8 85 24.6 121.8-15.9 1.7-32.1 5-48.3 9.9zM224 96c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm166.9 380.7c0 1.3-.5 2.3-4.6 2.8-36.6-21-75.3-33.5-113.8-35.8 6.7-15 12.2-31.2 16.2-48.3 4.7-19.8-4.1-39.6-20.5-50 4.5-8.4 5-18.5 1.1-27.1-14.2-31.1-21.6-66.6-22.1-103.2 33.6 17.7 69.6 29 104.4 31.1-6.7 15-12.2 31.2-16.2 48.3-5.7 24 8.3 48.3 31.9 55.4 16.8 5 33.5 8.4 48.9 8.4-16.7 36.4-25.2 76.2-25.3 118.4z\"]\n};\nvar faHome = {\n prefix: 'fal',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M541 229.16l-61-49.83v-77.4a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v51.33L308.19 39.14a32.16 32.16 0 0 0-40.38 0L35 229.16a8 8 0 0 0-1.16 11.24l10.1 12.41a8 8 0 0 0 11.2 1.19L96 220.62v243a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-128l64 .3V464a16 16 0 0 0 16 16l128-.33a16 16 0 0 0 16-16V220.62L520.86 254a8 8 0 0 0 11.25-1.16l10.1-12.41a8 8 0 0 0-1.21-11.27zm-93.11 218.59h.1l-96 .3V319.88a16.05 16.05 0 0 0-15.95-16l-96-.27a16 16 0 0 0-16.05 16v128.14H128V194.51L288 63.94l160 130.57z\"]\n};\nvar faHomeAlt = {\n prefix: 'fal',\n iconName: 'home-alt',\n icon: [576, 512, [], \"f80a\", \"M541 229.16l-232.85-190a32.16 32.16 0 0 0-40.38 0L35 229.16a8 8 0 0 0-1.16 11.24l10.1 12.41a8 8 0 0 0 11.2 1.19L96 220.62v243a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-128l64 .3V464a16 16 0 0 0 16 16l128-.33a16 16 0 0 0 16-16V220.62L520.86 254a8 8 0 0 0 11.25-1.16l10.1-12.41a8 8 0 0 0-1.21-11.27zm-93.11 218.59h.1l-96 .3V319.88a16.05 16.05 0 0 0-15.95-16l-96-.27a16 16 0 0 0-16.05 16v128.14H128V194.51L288 63.94l160 130.57z\"]\n};\nvar faHomeHeart = {\n prefix: 'fal',\n iconName: 'home-heart',\n icon: [576, 512, [], \"f4c9\", \"M573.5 219.9L512 170.4V72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v72.6L310.6 8c-13.2-10.7-32.1-10.7-45.2 0L2.5 219.9c-2.9 2.4-3.4 6.6-1 9.5l14.2 17.5c2.4 2.9 6.6 3.4 9.6 1L64 216.7V496c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V216.8l38.8 31.3c2.9 2.4 7.2 1.9 9.6-1l14.2-17.5c2.3-3 1.7-7.3-1.1-9.7zM480 480H96V190.9L283.7 39.5c2.5-2 6-2 8.4 0L480 191v289zM276.9 201.5c-26.6-27.9-72.5-35.9-104.9-7.7-35.3 30.6-37.2 85.6-5.6 118.7l108.9 114.1c7 7.4 18.4 7.4 25.5 0l108.9-114.1c31.6-33.2 29.8-88.1-5.6-118.7-41.9-36.3-89.5-8.4-104.9 7.7L288 213.2l-11.1-11.7zm44.8 22.3c8.7-9.2 37.5-26.8 61.9-5.7 23.8 20.6 20.2 54.5 3.4 72.1L288 394l-99-103.8c-16.7-17.5-20.4-51.6 3.4-72.1 22.2-19.3 50-6.8 61.9 5.7l33.7 35.3 33.7-35.3z\"]\n};\nvar faHomeLg = {\n prefix: 'fal',\n iconName: 'home-lg',\n icon: [576, 512, [], \"f80b\", \"M573.48 219.91L512 170.42V72a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v72.6L310.6 8a35.85 35.85 0 0 0-45.19 0L2.53 219.91a6.71 6.71 0 0 0-1 9.5l14.2 17.5a6.82 6.82 0 0 0 9.6 1L64 216.72V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V216.82l38.8 31.29a6.83 6.83 0 0 0 9.6-1l14.19-17.5a7.14 7.14 0 0 0-1.11-9.7zM336 480h-96V320h96zm144 0H368V304a16 16 0 0 0-16-16H224a16 16 0 0 0-16 16v176H96V190.92l187.71-151.4a6.63 6.63 0 0 1 8.4 0L480 191z\"]\n};\nvar faHomeLgAlt = {\n prefix: 'fal',\n iconName: 'home-lg-alt',\n icon: [576, 512, [], \"f80c\", \"M573.48 219.91L310.6 8a35.85 35.85 0 0 0-45.19 0L2.53 219.91a6.71 6.71 0 0 0-1 9.5l14.2 17.5a6.82 6.82 0 0 0 9.6 1L64 216.72V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V216.82l38.8 31.29a6.83 6.83 0 0 0 9.6-1l14.19-17.5a7.14 7.14 0 0 0-1.11-9.7zM240 480V320h96v160zm240 0H368V304a16 16 0 0 0-16-16H224a16 16 0 0 0-16 16v176H96V190.92l187.71-151.4a6.63 6.63 0 0 1 8.4 0L480 191z\"]\n};\nvar faHoodCloak = {\n prefix: 'fal',\n iconName: 'hood-cloak',\n icon: [576, 512, [], \"f6ef\", \"M569.65 460.85C511.98 383.87 511.98 320 511.98 320v-64c0-84.03-46.36-123.05-101.17-182.7l39.75-39.75C462.94 21.17 454.17 0 436.66 0H287.57C191.98 0 64.02 109.45 64.02 256v64s0 63.87-57.67 140.85C-9.42 481.9 6.02 512 32.32 512h511.35c26.31 0 41.75-30.1 25.98-51.15zM191.98 480V320c0-52.94 43.06-96 95.99-96s95.99 43.06 95.99 96v160H191.98zm223.98.01V320c0-70.69-57.3-128-127.99-128s-127.99 57.31-127.99 128v160.02l-128.02.01C95.29 395.5 96.02 323.04 96.02 320v-64c0-129.94 114.42-224 191.55-224h119.28L366.5 72.36s32.84 35.6 38.68 41.82c45.05 47.98 74.81 79.68 74.81 141.81v64c0 3.04.73 75.5 63.69 160l-127.72.02z\"]\n};\nvar faHorizontalRule = {\n prefix: 'fal',\n iconName: 'horizontal-rule',\n icon: [640, 512, [], \"f86c\", \"M640 247.5v16a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h624a8 8 0 0 1 8 8z\"]\n};\nvar faHorse = {\n prefix: 'fal',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.95 86.27c-.01-9.62-3.67-15.92-9.14-22.56 5.39-9.45 8.38-20.32 8.38-31.71 0-17.67-14.33-32-32-32H432c-70.58 0-128 57.42-128 128H163.36c-35.98 0-67.27 19.42-84.71 48.13C35.11 176.87 0 212.28 0 256v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56c0-21.5 14.23-39.48 33.71-45.59-.96 5.54-1.71 11.15-1.71 16.96 0 24.2 8.9 47.33 24.53 65.24l-21.97 74.28c-3.12 10.77-3.38 22.03-.8 32.74l21.13 87.86C90.34 501.86 103.2 512 118 512h57.53c20.95 0 36.12-19.75 31.02-39.86l-21.68-85.57 19.29-53.73L288 351.47V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V323.81c20.5-21.51 32-49.75 32-79.6v-50.52l14.55 21.82c19.11 28.67 49.98 20.67 55.45 18.8l25.52-8.71c19.44-6.63 32.5-24.9 32.49-45.45l-.06-93.88zm-42.78 109.04l-25.52 8.71c-9.33 3.19-16.14-2.76-18.48-6.27L464 160l-48-16v100.21c0 26.67-12.64 50.17-32 65.6V480h-64V325.8l-136.43-30.32-32.12 89.47L175.53 480H118l-21.13-87.86a31.698 31.698 0 0 1 .37-16.18l27.63-93.41C107.45 270.37 96 250.24 96 227.37c0-37.21 30.16-67.37 67.37-67.37H336v-32c0-53.02 42.98-96 96-96h111.19c0 13.29-8.11 24.67-19.63 29.5l20.39 24.78.05 93.88a16 16 0 0 1-10.83 15.15zM480 80c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faHorseHead = {\n prefix: 'fal',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M296 176c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm211.9 123.2C435 142 432.3 124.5 390.4 97.8c10.2-19.9 12.5-43.4 6.1-68.1C391.8 12.2 375.9 0 357.6 0c-13 0-11.9 2.1-81.2 32.3C118.8 101.2 0 139.1 0 380.9V464c0 26.5 21.5 48 48 48h224c30.5 0 54.3-28.6 46.6-59.6l-18.3-73.3c6.5-2.4 12.6-5.4 18.5-8.8l14.7 20.6c11.4 15.8 29.6 25.2 48.9 25.2h30.1c15.6 0 30.3-5.9 41.6-16.7l40.5-35.7c16.7-17 22-42.2 13.3-64.5zM471.8 341l-39.6 34.8c-5.2 5.2-12.4 8.2-19.8 8.2h-30.1c-9 0-17.5-4.3-22.7-11.6L323.7 327c-17.3 17.1-40.6 28.2-66.9 28.2-39.2 0-72.6-23.7-87.4-57.4-2.2-5.1-8.9-6.3-12.9-2.4l-12.1 12.1c-2.4 2.4-3.1 6.2-1.6 9.3 21.1 41.6 64.2 70.3 114 70.3 4.2 0 8.1-.8 12.2-1.2l18.5 74.1c2.6 10.4-5.4 19.9-15.5 19.9H48c-8.8 0-16-7.2-16-16v-83.1c0-249.6 119.5-255.3 323-348.5 17.5-6.3 25.2 51.3-19.4 77.4 37.3 7.2 68.3 33.2 81.3 69.3l61.2 131.8c4 10.5 1.6 22.3-6.3 30.2z\"]\n};\nvar faHorseSaddle = {\n prefix: 'fal',\n iconName: 'horse-saddle',\n icon: [576, 512, [], \"f8c3\", \"M575.94 86.27c0-9.61-3.66-15.93-9.13-22.57a63.91 63.91 0 0 0 8.38-31.7 32 32 0 0 0-32-32H432a128.14 128.14 0 0 0-128 128H163.37c-36 0-67.28 19.42-84.71 48.12A80 80 0 0 0 0 256v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56a47.82 47.82 0 0 1 33.72-45.59 97.81 97.81 0 0 0-1.72 17 99.36 99.36 0 0 0 24.53 65.23l-22 74.28a64 64 0 0 0-.81 32.73l21.12 87.86A32 32 0 0 0 118 512h57.53a32 32 0 0 0 31-39.86l-21.69-85.58 19.29-53.72L288 351.47V480a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32V323.81a115 115 0 0 0 32-79.61v-50.51l14.56 21.83c19.1 28.67 50 20.67 55.44 18.79l25.53-8.72A47.91 47.91 0 0 0 576 180.16zM224 304.47l-40.44-9L151.44 385l24.09 95H118l-21.13-87.86a33 33 0 0 1 .38-16.14l27.62-93.4A67 67 0 0 1 144 163.17V176a95.83 95.83 0 0 0 80 94.39zM176 176v-16h128v16a64 64 0 0 1-128 0zm368 4.17c0 6.31-4.84 13.1-10.84 15.14l-25.5 8.69c-9.35 3.18-16.16-2.75-18.5-6.27L464 160l-48-16v100.2c0 26.68-12.63 50.18-32 65.61V480h-64V325.8l-64-14.22v-41.19A95.83 95.83 0 0 0 336 176v-48a96 96 0 0 1 96-96h111.19a32 32 0 0 1-19.63 29.5l20.38 24.78.06 93.88zM480 80a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]\n};\nvar faHospital = {\n prefix: 'fal',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M180 352h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm88 0h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-128-96h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm128 0h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 256H0v-20c0-6.627 5.373-12 12-12h20V85c0-11.598 10.745-21 24-21h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88c13.255 0 24 9.402 24 21v395h20c6.627 0 12 5.373 12 12v20zM64 480h128v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84h128V96h-80v40c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24V96H64v384zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fal',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M468 384h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12zm0-128h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12zM308 384h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12zm0-128h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12zM148 384h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12zm0-128h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12zm182-144h-26V86c0-3.3-2.7-6-6-6h-20c-3.3 0-6 2.7-6 6v26h-26c-3.3 0-6 2.7-6 6v20c0 3.3 2.7 6 6 6h26v26c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6v-26h26c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6zm198 16H416V48c0-26.5-21.5-48-48-48H208c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v328c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V176c0-8.8 7.2-16 16-16h144V48c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v112h144c8.8 0 16 7.2 16 16v328c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V176c0-26.5-21.5-48-48-48z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fal',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M344 144h-16c-4.4 0-8 3.6-8 8v88H192v-88c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v208c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-88h128v88c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 480C132.5 480 32 379.5 32 256S132.5 32 256 32s224 100.5 224 224-100.5 224-224 224z\"]\n};\nvar faHospitalUser = {\n prefix: 'fal',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M148 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm96-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-52-256h26a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6h-26V70a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm288 192a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm0-160a64 64 0 1 1-64 64 64.07 64.07 0 0 1 64-64zm143.69 221.13C606.44 355.5 577 342 546.79 342 519 342 512 352 480 352s-38.95-10-66.79-10c-30.23 0-59.65 13.48-76.9 39.11A95.5 95.5 0 0 0 320 434.67V472a40 40 0 0 0 40 40h240a40 40 0 0 0 40-40v-37.33a95.5 95.5 0 0 0-16.31-53.54zM608 472a8 8 0 0 1-8 8H360a8 8 0 0 1-8-8v-37.33A63.61 63.61 0 0 1 362.85 399c10.53-15.64 29.35-25 50.36-25 21.8 0 30 10 66.79 10s45-10 66.79-10c21 0 39.83 9.34 50.36 25A63.61 63.61 0 0 1 608 434.67zM320 128v222.31a119.48 119.48 0 0 1 32-25V128a32 32 0 0 0-32-32h-16V32a32 32 0 0 0-32-32H80a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v376a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V128h48V32h192v96z\"]\n};\nvar faHospitals = {\n prefix: 'fal',\n iconName: 'hospitals',\n icon: [640, 512, [], \"f80e\", \"M148 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm96-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-52-256h26a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6h-26V70a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm276 64h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm96-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0-96h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm0 192h-40a12 12 0 0 0-12 12v40a12 12 0 0 0 12 12h40a12 12 0 0 0 12-12v-40a12 12 0 0 0-12-12zm-52-256h26a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6h-26V70a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6zm128-32h-16V32a32 32 0 0 0-32-32H400a32 32 0 0 0-32 32v64h-64V32a32 32 0 0 0-32-32H80a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v376a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V128h48V32h192v96h48v376a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V128h48V32h192v96h48v376a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V128a32 32 0 0 0-32-32z\"]\n};\nvar faHotTub = {\n prefix: 'fal',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M80 144c39.76 0 72-32.24 72-72 0-39.77-32.24-72-72-72S8 32.23 8 72c0 39.76 32.24 72 72 72zm0-112c22.06 0 40 17.94 40 40s-17.94 40-40 40-40-17.94-40-40 17.94-40 40-40zm255.58 184.28c.25 4.29 3.63 7.72 7.93 7.72h15.98c4.54 0 8.34-3.8 8.11-8.34-2.03-40.37-18.75-77.44-45.6-100.42-19.77-16.92-32.18-44.75-33.96-75.52-.25-4.29-3.63-7.71-7.93-7.71h-15.98c-4.54 0-8.34 3.8-8.11 8.34 2.03 40.37 18.75 77.44 45.6 100.42 19.76 16.91 32.17 44.74 33.96 75.51zm96 0c.25 4.29 3.63 7.72 7.93 7.72h15.98c4.54 0 8.34-3.8 8.11-8.34-2.03-40.37-18.75-77.44-45.6-100.42-19.77-16.92-32.18-44.75-33.96-75.52-.25-4.29-3.63-7.71-7.93-7.71h-15.98c-4.54 0-8.34 3.8-8.11 8.34 2.03 40.37 18.75 77.44 45.6 100.42 19.76 16.91 32.17 44.74 33.96 75.51zM104 448h16c4.42 0 8-3.58 8-8V328c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8zm96 0h16c4.42 0 8-3.58 8-8V328c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8zm96 0h16c4.42 0 8-3.58 8-8V328c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8zm96 0h16c4.42 0 8-3.58 8-8V328c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8zm88-192H272l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM32 224c0-17.64 14.36-32 32-32h58.67c6.88 0 13.7 2.27 19.2 6.4l76.8 57.6H32v-32zm448 224c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V288h448v160z\"]\n};\nvar faHotdog = {\n prefix: 'fal',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M469.96 179.21l13.62-13.63C501.91 147.27 512 122.91 512 97s-10.09-50.27-28.42-68.59C465.28 10.1 440.92 0 415 0s-50.28 10.1-68.6 28.43l-13.62 13.62-22.15-22.15C297.44 6.69 280.37 0 263.83 0c-14.79 0-29.16 5.35-39.98 16.17L16.17 223.85c-22.94 22.94-21.27 61.8 3.72 86.79l22.15 22.15-13.63 13.63C10.09 364.73 0 389.09 0 415s10.09 50.27 28.42 68.59C46.72 501.9 71.08 512 97 512s50.28-10.1 68.6-28.43l13.62-13.62 22.15 22.15c13.2 13.2 30.26 19.89 46.81 19.89 14.79 0 29.16-5.35 39.98-16.17l207.68-207.68c22.94-22.94 21.27-61.8-3.72-86.79l-22.16-22.14zM38.8 246.47L246.47 38.8c10.91-10.91 29.79-8.02 41.54 3.72l22.15 22.15L64.67 310.16l-22.15-22.15c-12.48-12.48-14.15-31.11-3.72-41.54zm104.16 214.49c-25.36 25.38-66.54 25.4-91.91 0-25.39-25.38-25.39-66.54 0-91.91l318-318c25.36-25.38 66.54-25.4 91.91 0 25.39 25.38 25.39 66.54 0 91.91l-318 318zM473.2 265.53L265.52 473.2c-10.89 10.89-29.77 8.04-41.53-3.72l-22.15-22.15 245.49-245.49 22.15 22.15c12.48 12.48 14.15 31.11 3.72 41.54zM416 96c-12.4 12.41-21.76 14.01-34.71 16.23-14.4 2.47-32.33 5.55-51.92 25.14-19.6 19.6-22.67 37.52-25.14 51.92-2.22 12.95-3.83 22.3-16.23 34.71-12.4 12.4-21.76 14.01-34.71 16.23-14.4 2.47-32.33 5.55-51.92 25.14-19.6 19.6-22.67 37.52-25.14 51.92C174 330.25 172.4 339.6 160 352c-12.4 12.4-21.76 14.01-34.7 16.23-14.4 2.47-32.33 5.54-51.92 25.14-6.25 6.25-6.25 16.38 0 22.63 3.12 3.12 7.22 4.69 11.31 4.69S92.88 419.12 96 416c12.4-12.4 21.76-14.01 34.7-16.23 14.4-2.47 32.33-5.54 51.92-25.14 19.6-19.6 22.67-37.52 25.14-51.92 2.22-12.95 3.83-22.3 16.23-34.71 12.4-12.4 21.76-14.01 34.71-16.23 14.4-2.47 32.33-5.55 51.92-25.14s22.67-37.52 25.14-51.92c2.22-12.95 3.83-22.3 16.23-34.71s21.76-14.01 34.71-16.23c14.4-2.47 32.33-5.55 51.92-25.14 6.25-6.25 6.25-16.38 0-22.63-6.24-6.25-16.37-6.25-22.62 0z\"]\n};\nvar faHotel = {\n prefix: 'fal',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M396.8 224h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm-128-96h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm128 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm-256 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm128 96h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zM568 32c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8H8C3.58 0 0 3.58 0 8v16c0 4.42 3.58 8 8 8h23.98v448H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h560c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-24V32h24zM320 480h-64v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80zm192 0H352v-80c0-26.47-21.53-48-48-48h-32c-26.47 0-48 21.53-48 48v80H63.98V32H512v448zM140.8 224h38.4c6.4 0 12.8-6.4 12.8-12.8v-38.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v38.4c0 6.4 6.4 12.8 12.8 12.8zm26.31 157.66l16.25 2.26c4.3.6 8.11-2.24 9.07-6.36 9.96-42.83 49.74-74.28 95.58-74.28s85.61 31.45 95.58 74.28c.96 4.12 4.77 6.96 9.07 6.36l16.25-2.26c4.6-.64 7.9-4.92 6.94-9.34C403.22 314.29 349.72 271.5 288 271.5s-115.22 42.79-127.83 100.81c-.96 4.43 2.34 8.71 6.94 9.35z\"]\n};\nvar faHourglass = {\n prefix: 'fal',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M368 32h4c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h4c0 91.821 44.108 193.657 129.646 224C59.832 286.441 16 388.477 16 480h-4c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-4c0-91.821-44.108-193.657-129.646-224C324.168 225.559 368 123.523 368 32zM48 32h288c0 110.457-64.471 200-144 200S48 142.457 48 32zm288 448H48c0-110.457 64.471-200 144-200s144 89.543 144 200z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fal',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M368 32h4c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h4c0 91.821 44.108 193.657 129.646 224C59.832 286.441 16 388.477 16 480h-4c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-4c0-91.821-44.108-193.657-129.646-224C324.168 225.559 368 123.523 368 32zM48 32h288c0 110.457-64.471 200-144 200S48 142.457 48 32zm288 448H48c0-110.457 64.471-200 144-200s144 89.543 144 200zM98.379 416h187.243a12.01 12.01 0 0 1 11.602 8.903 199.464 199.464 0 0 1 2.059 8.43c1.664 7.522-4 14.667-11.704 14.667H96.422c-7.704 0-13.368-7.145-11.704-14.667.62-2.804 1.307-5.616 2.059-8.43A12.01 12.01 0 0 1 98.379 416zm15.962-50.912a141.625 141.625 0 0 1 6.774-8.739c2.301-2.738 5.671-4.348 9.248-4.348h123.276c3.576 0 6.947 1.61 9.248 4.348a142.319 142.319 0 0 1 6.774 8.739c5.657 7.91-.088 18.912-9.813 18.912H124.153c-9.724 0-15.469-11.003-9.812-18.912z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fal',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M368 32h4c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h4c0 91.821 44.108 193.657 129.646 224C59.832 286.441 16 388.477 16 480h-4c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-4c0-91.821-44.108-193.657-129.646-224C324.168 225.559 368 123.523 368 32zM48 32h288c0 110.457-64.471 200-144 200S48 142.457 48 32zm288 448H48c0-110.457 64.471-200 144-200s144 89.543 144 200zm-66.34-333.088a141.625 141.625 0 0 1-6.774 8.739c-2.301 2.738-5.671 4.348-9.248 4.348H130.362c-3.576 0-6.947-1.61-9.248-4.348a142.319 142.319 0 0 1-6.774-8.739c-5.657-7.91.088-18.912 9.813-18.912h135.694c9.725 0 15.469 11.003 9.813 18.912zM98.379 416h187.243a12.01 12.01 0 0 1 11.602 8.903 199.464 199.464 0 0 1 2.059 8.43c1.664 7.522-4 14.667-11.704 14.667H96.422c-7.704 0-13.368-7.145-11.704-14.667.62-2.804 1.307-5.616 2.059-8.43A12.01 12.01 0 0 1 98.379 416z\"]\n};\nvar faHourglassStart = {\n prefix: 'fal',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M368 32h4c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h4c0 91.821 44.108 193.657 129.646 224C59.832 286.441 16 388.477 16 480h-4c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-4c0-91.821-44.108-193.657-129.646-224C324.168 225.559 368 123.523 368 32zM48 32h288c0 110.457-64.471 200-144 200S48 142.457 48 32zm288 448H48c0-110.457 64.471-200 144-200s144 89.543 144 200zM285.621 96H98.379a12.01 12.01 0 0 1-11.602-8.903 199.464 199.464 0 0 1-2.059-8.43C83.054 71.145 88.718 64 96.422 64h191.157c7.704 0 13.368 7.145 11.704 14.667a199.464 199.464 0 0 1-2.059 8.43A12.013 12.013 0 0 1 285.621 96zm-15.961 50.912a141.625 141.625 0 0 1-6.774 8.739c-2.301 2.738-5.671 4.348-9.248 4.348H130.362c-3.576 0-6.947-1.61-9.248-4.348a142.319 142.319 0 0 1-6.774-8.739c-5.657-7.91.088-18.912 9.813-18.912h135.694c9.725 0 15.469 11.003 9.813 18.912z\"]\n};\nvar faHouse = {\n prefix: 'fal',\n iconName: 'house',\n icon: [576, 512, [], \"e00d\", \"M570.53,242,512,190.75V48a16,16,0,0,0-16-16H400a16,16,0,0,0-16,16V78.75L298.53,4a16,16,0,0,0-21.06,0L5.47,242a16,16,0,0,0,21.07,24.09L64,233.27V464a48.05,48.05,0,0,0,48,48H464a48.05,48.05,0,0,0,48-48V233.27l37.46,32.79A16,16,0,0,0,570.53,242ZM480,464a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V205.27l192-168,192,168Zm0-301.25-64-56V64h64ZM208,218.67V325.34A26.75,26.75,0,0,0,234.66,352H341.3A26.76,26.76,0,0,0,368,325.34V218.67A26.75,26.75,0,0,0,341.3,192H234.66A26.74,26.74,0,0,0,208,218.67ZM240,224h96v96H240Z\"]\n};\nvar faHouseDamage = {\n prefix: 'fal',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M573.51 219.94L512 170.35V72c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v72.55L310.63 8.01c-13.16-10.69-32.06-10.69-45.22 0L2.53 219.94c-2.92 2.36-3.37 6.64-1.01 9.45l14.17 17.55a6.788 6.788 0 0 0 9.56 1.01L64 216.7V496c0 8.84 7.16 16 16 16h149.57l-14.55-32-22.69-49.91 104.11-71.99L236.28 224l148.05 153.86-104.11 71.99L299.59 480l20.55 32H496c8.84 0 16-7.16 16-16V216.78l38.79 31.28c2.93 2.36 7.2 1.91 9.56-1.01l14.17-17.55c2.36-2.92 1.8-7.2-1.01-9.56zM480 480H337.63l-13.76-21.42 78.67-54.4a31.976 31.976 0 0 0 13.64-23.13c.94-9.34-2.28-18.62-8.78-25.38L259.34 201.81c-6.22-6.47-14.61-9.81-23.07-9.81-6.2 0-12.44 1.8-17.9 5.48-12.89 8.71-17.66 25.42-11.29 39.62l49.27 109.82-82.22 56.85c-12.73 8.81-17.34 25.47-10.93 39.56L179.87 480H96V190.9L283.74 39.51a6.635 6.635 0 0 1 8.44 0L480 190.98V480z\"]\n};\nvar faHouseDay = {\n prefix: 'fal',\n iconName: 'house-day',\n icon: [640, 512, [], \"e00e\", \"M120,176a56,56,0,1,0,56-56A56.09,56.09,0,0,0,120,176Zm80,0a24,24,0,1,1-24-24A24,24,0,0,1,200,176ZM634.53,296,576,244.75V144a16,16,0,0,0-32,0v72.75L410.53,100a16,16,0,0,0-21.06,0l-224,196a16,16,0,0,0,21.06,24.09L224,287.28V464a48.05,48.05,0,0,0,48,48H528a48.06,48.06,0,0,0,48-48V287.28l37.46,32.78A16,16,0,0,0,634.53,296ZM544,464a16,16,0,0,1-16,16H272a16,16,0,0,1-16-16V264a15.43,15.43,0,0,0-.81-4L400,133.27l144,126ZM78.72,272.19l22-66.16L38.41,174.89l62.34-31.22-22-66.08,66.15,22L176,37.3l31.22,62.42,66.06-22.06-22,66.09,25,12.51,26.06-22.75-12-6,16.57-49.61a26.74,26.74,0,0,0-6.6-27.54A26.4,26.4,0,0,0,273,44L223.4,60.56,200,13.73c-9.19-18.31-38.81-18.31-48,0L128.62,60.52,79,44A26.82,26.82,0,0,0,45.06,77.89l16.56,49.59L14.84,150.89a26.83,26.83,0,0,0,0,48l46.78,23.36L45.06,271.92a26.67,26.67,0,0,0,6.6,27.53A26.31,26.31,0,0,0,79,305.81l41.94-14,31.11-27.15-7.27-14.56ZM336,277.33v85.34A21.39,21.39,0,0,0,357.37,384h85.3A21.39,21.39,0,0,0,464,362.67V277.33A21.39,21.39,0,0,0,442.67,256h-85.3A21.39,21.39,0,0,0,336,277.33ZM368,288H432v64H368Z\"]\n};\nvar faHouseFlood = {\n prefix: 'fal',\n iconName: 'house-flood',\n icon: [576, 512, [], \"f74f\", \"M252 193c-15.4 0-28 12.6-28 28v72c0 15.4 12.6 28 28 28h72c15.4 0 28-12.6 28-28v-72c0-15.4-12.6-28-28-28h-72zm68 96h-64v-64h64v64zm248.3 160c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.2-171.8-.1-5.9-4.8-14.3-4.7-20.2.1-20.2 16.6-48.4 26.7-78.2 28.2-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c0-4.3-3.4-7.7-7.7-7.9zM45.9 252.4c2.1 2.6 5.9 3 8.5.9L96 219.8v165.4c10.9 0 21.6 3.8 30.2 10.7.5.4 1.2.7 1.8 1.1V194L284.1 68.1c2.2-1.8 5.3-1.8 7.5 0l156 125.9v203.3c.6-.4 1.3-.8 1.9-1.2 8.5-7 19.2-10.8 30.2-10.9V219.9l41.6 33.5c2.6 2.1 6.4 1.7 8.5-.9l12.6-15.6c2.1-2.6 1.6-6.4-.9-8.5l-61.8-49.7v-75.9c0-3.3-2.7-6-6-6h-20c-3.3 0-6 2.7-6 6v50.1L307.9 40.1c-11.7-9.5-28.5-9.5-40.2 0L34.2 228.4c-2.6 2.1-3 5.9-.9 8.4l12.6 15.6z\"]\n};\nvar faHouseLeave = {\n prefix: 'fal',\n iconName: 'house-leave',\n icon: [640, 512, [], \"e00f\", \"M112,384a16,16,0,0,1-16-16V168a15.35,15.35,0,0,0-.81-4L240,37.27l108.4,94.85a135.51,135.51,0,0,1,27-18.88L250.53,4a16,16,0,0,0-21.06,0L5.47,200a16,16,0,0,0,21.07,24.1L64,191.28V368a48.05,48.05,0,0,0,48,48H299.31a82.32,82.32,0,0,1,10.91-15.37l15-16.63Zm69.33-224A21.39,21.39,0,0,0,160,181.34v85.33A21.39,21.39,0,0,0,181.33,288h85.3A21.39,21.39,0,0,0,288,266.67V181.34A21.39,21.39,0,0,0,266.63,160ZM256,256H192V192h64Zm369.54-8.7-19.6-21.09-8.71-28.5c-7.88-26.11-23.28-47.8-43.19-62.8A74,74,0,1,0,451.32,116.3c-14.72,3.8-28.4,9.8-45.31,17.41l-8.59,3.8c-24,10.5-43.4,30.09-54.9,55.2l-11.81,28c-7.28,17.2-5.69,35.7,4.22,50.7A52.78,52.78,0,0,0,378.42,295a48.24,48.24,0,0,0,32.91-12.9c.18,1.4.37,2.7.59,4.11L397.7,325.1l-16.28,44.61L334,422.1c-18.69,20.4-18.69,52.4,0,72.9a50,50,0,0,0,74.4,0l46.68-51.2a111.23,111.23,0,0,0,22-36.5l8.72-23.89,10.59,10.69a4,4,0,0,1,.91,1.9l15.59,74.2C518,494.5,539,512,562.82,512a50.1,50.1,0,0,0,12.09-1.5c27.4-6.91,44-34.59,38-62.91L597.31,373.5a114.57,114.57,0,0,0-14.72-36.7,49.59,49.59,0,0,0,5.5.3c20.31,0,38.91-12.6,47.41-32.19S640.18,263.3,625.5,247.3ZM512,32a42,42,0,1,1-42,42A42,42,0,0,1,512,32ZM447,396.3a78,78,0,0,1-15.59,25.9L384.7,473.41a18.19,18.19,0,0,1-13.59,6.18,18.54,18.54,0,0,1-13.59-6.18,22.43,22.43,0,0,1,0-29.71l46.68-51.2a35.57,35.57,0,0,0,7.13-11.79l16.28-44.61.09.11,1,1.2,29,29.3Zm141.08-91.09c-4.4,0-9-1.8-13-6.21L551.6,273.71a50.14,50.14,0,0,1-11-19.41c-11.41-37.5-11.5-39.89-17.5-48.5l-20.91,91.7,43,43.41A78.39,78.39,0,0,1,566,380.21l15.59,74.09c2.41,11.29-4,22.61-14.4,25.2a16.49,16.49,0,0,1-4.37.5c-9.41,0-16.72-7.59-18.63-16.3L528.6,389.5a34.7,34.7,0,0,0-9.5-17.79L456,307.8c-11.59-13.8-15.69-31.2-11.91-47.7l15.82-69.3c-9,3.2-18.1,7.3-35.41,15a36.13,36.13,0,0,0-18.31,18.41L395,250.8c-3.69,8.7-10.1,12.3-16.6,12.3-12.5,0-25.21-13.39-18.21-29.89L371.7,206c8.32-18.2,21.91-31.9,38.63-39.2C444.51,151.71,459,144,486.91,144c36.28,0,68.28,25.29,79.78,63L577,240.91a6.9,6.9,0,0,0,1.59,2.8L602,269C616.09,284.3,602.91,305.21,588.09,305.21Z\"]\n};\nvar faHouseNight = {\n prefix: 'fal',\n iconName: 'house-night',\n icon: [640, 512, [], \"e010\", \"M112,224a111.5,111.5,0,0,0,87-41.45,20.51,20.51,0,0,0-19.75-33.08A59.2,59.2,0,0,1,138.84,39.85a20.3,20.3,0,0,0,10.07-21.27,20.26,20.26,0,0,0-16.47-16.7A136,136,0,0,0,112,0a112,112,0,0,0,0,224ZM97.78,33.27a91.21,91.21,0,0,0,54.47,147.9A80,80,0,1,1,97.78,33.27Zm97.15,35.51,39.72,16.56,16.56,39.72a5.33,5.33,0,0,0,9.55,0l16.56-39.72L317,68.78a5.33,5.33,0,0,0,0-9.54L277.32,42.68,260.76,3a5.33,5.33,0,0,0-9.55,0L234.65,42.68,194.93,59.24a5.34,5.34,0,0,0,0,9.54ZM157,379.24l-39.72-16.57L100.76,323a5.34,5.34,0,0,0-9.55,0L74.65,362.67,34.93,379.24a5.34,5.34,0,0,0,0,9.54l39.72,16.56,16.56,39.72a5.33,5.33,0,0,0,9.55,0l16.56-39.72L157,388.78a5.33,5.33,0,0,0,0-9.54Zm179-101.9v85.33A21.39,21.39,0,0,0,357.36,384h85.31A21.39,21.39,0,0,0,464,362.67V277.34A21.4,21.4,0,0,0,442.67,256H357.36A21.4,21.4,0,0,0,336,277.34ZM368,288H432v64H368Zm266.49,8L576,244.75V144a16,16,0,0,0-32,0v72.75L410.53,100a16,16,0,0,0-21.07,0l-224,196a16,16,0,0,0,21.07,24.09L224,287.28V464a48.05,48.05,0,0,0,48,48H528a48.06,48.06,0,0,0,48-48V287.28l37.46,32.78A16,16,0,0,0,634.53,296ZM544,464a16,16,0,0,1-16,16H272a16,16,0,0,1-16-16V264a15.94,15.94,0,0,0-.81-4L400,133.27l144,126Z\"]\n};\nvar faHouseReturn = {\n prefix: 'fal',\n iconName: 'house-return',\n icon: [640, 512, [], \"e011\", \"M96,368V168a15.35,15.35,0,0,0-.81-4L240,37.27,357.21,139.84c1.34-1.8,2.3-3.87,3.72-5.6a105.83,105.83,0,0,1-18-49.42L250.53,4a16,16,0,0,0-21.06,0L5.47,200a16,16,0,0,0,21.07,24.1L64,191.28V368a48.05,48.05,0,0,0,48,48H321.14l6.74-32H112A16,16,0,0,1,96,368Zm85.33-208A21.39,21.39,0,0,0,160,181.34v85.33A21.39,21.39,0,0,0,181.33,288h85.3A21.39,21.39,0,0,0,288,266.67V181.34A21.39,21.39,0,0,0,266.63,160ZM256,256H192V192h64ZM626,422.1l-47.4-52.39L562.3,325.1l-14.21-38.89c.21-1.41.4-2.71.59-4.11a48.21,48.21,0,0,0,32.9,12.9,52.8,52.8,0,0,0,43.5-23.59c9.9-15,11.5-33.5,4.22-50.7l-11.81-28c-11.5-25.11-30.91-44.7-54.91-55.2l-8.59-3.8c-16.9-7.61-30.59-13.61-45.31-17.41A74,74,0,1,0,406,134.91c-19.9,15-35.31,36.69-43.18,62.8l-8.72,28.5L334.51,247.3c-14.69,16-18.6,38.11-10,57.61s27.09,32.19,47.4,32.19a49.33,49.33,0,0,0,5.5-.3,114.57,114.57,0,0,0-14.72,36.7L347.1,447.59c-6,28.32,10.59,56,38,62.91a50,50,0,0,0,12.09,1.5c23.81,0,44.81-17.5,49.9-41.8L462.68,396a4,4,0,0,1,.91-1.9l10.59-10.69,8.72,23.89a111.4,111.4,0,0,0,22,36.5L551.59,495A50,50,0,0,0,626,495C644.67,474.5,644.67,442.5,626,422.1ZM448,32a42,42,0,1,1-42,42A42,42,0,0,1,448,32Zm-7.1,339.7a34.61,34.61,0,0,0-9.49,17.79l-15.6,74.2c-1.9,8.71-9.22,16.3-18.62,16.3a16.44,16.44,0,0,1-4.37-.5c-10.41-2.59-16.82-13.91-14.41-25.2L394,380.21a78.55,78.55,0,0,1,20.81-39.3l43-43.41-20.9-91.7c-6,8.61-6.1,11-17.5,48.5a50.14,50.14,0,0,1-11,19.41L384.91,299c-4,4.41-8.59,6.21-13,6.21-14.81,0-28-20.91-13.9-36.21l23.4-25.29a6.9,6.9,0,0,0,1.59-2.8L393.32,207c11.49-37.7,43.49-63,79.77-63,27.9,0,42.4,7.7,76.59,22.79,16.72,7.3,30.31,21,38.62,39.2l11.5,27.21c7,16.5-5.72,29.89-18.22,29.89-6.5,0-12.9-3.6-16.59-12.3L553.8,224.21a36.13,36.13,0,0,0-18.31-18.41c-17.31-7.7-26.4-11.8-35.4-15l15.81,69.3c3.78,16.5-.31,33.9-11.91,47.7Zm161.59,101.7a18.58,18.58,0,0,1-13.59,6.18,18.23,18.23,0,0,1-13.6-6.18L528.59,422.2A78,78,0,0,1,513,396.3l-10.68-29.59,29-29.3,1-1.2.1-.11,16.28,44.61a35.55,35.55,0,0,0,7.12,11.79l46.69,51.2A22.43,22.43,0,0,1,602.49,473.41Z\"]\n};\nvar faHouseSignal = {\n prefix: 'fal',\n iconName: 'house-signal',\n icon: [640, 512, [], \"e012\", \"M0,224v32c141.38,0,256,114.62,256,256h32C288,352.94,159.06,224,0,224Zm0,96v32A160,160,0,0,1,160,512h32C192,406,106,320,0,320Zm0,96v32a64,64,0,0,1,64,64H96A96,96,0,0,0,0,416ZM634.53,200,576,148.76V48a16,16,0,1,0-32,0v72.74L410.53,4a16,16,0,0,0-21.06,0L224,148.76h0L165.47,200a16,16,0,1,0,21.06,24.09L224,191.29h0v70.79a337.37,337.37,0,0,1,32,32.61V168a15.35,15.35,0,0,0-.81-4L400,37.27l144,126V368a16,16,0,0,1-16,16H310.61a333,333,0,0,1,11.29,32H528a48.05,48.05,0,0,0,48-48V191.28l37.46,32.79A16,16,0,0,0,634.53,200ZM442.67,288A21.39,21.39,0,0,0,464,266.67V181.34A21.39,21.39,0,0,0,442.67,160h-85.3A21.39,21.39,0,0,0,336,181.34v85.33A21.39,21.39,0,0,0,357.37,288ZM368,192H432v64H368Z\"]\n};\nvar faHouseUser = {\n prefix: 'fal',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.93,242l-58.57-51.26V48a16,16,0,0,0-16-16H400.28a16,16,0,0,0-16,16V78.71L298.74,4a16,16,0,0,0-21.08,0L5.47,242A18.2,18.2,0,0,0,0,254a16,16,0,0,0,16,16,18.56,18.56,0,0,0,10.56-3.95l37.48-32.83V464a48.1,48.1,0,0,0,48,48H464.33a48.11,48.11,0,0,0,48-48V233.24L549.84,266A18.65,18.65,0,0,0,560,269.65a16,16,0,0,0,16-16A18.26,18.26,0,0,0,570.93,242ZM175.72,480a80.12,80.12,0,0,1,80.05-80h64a80.12,80.12,0,0,1,80.06,80Zm304.62-16a16,16,0,0,1-16,16H431.9A112.18,112.18,0,0,0,319.82,368h-64A112.17,112.17,0,0,0,143.7,480H112.08a16,16,0,0,1-16-16V205.24l192.13-168,192.14,168Zm0-301.28-64-56V64h64ZM207.74,256a80.06,80.06,0,1,0,80.06-80A80.13,80.13,0,0,0,207.74,256Zm128.09,0a48,48,0,1,1-48-48A48.07,48.07,0,0,1,335.83,256Z\"]\n};\nvar faHryvnia = {\n prefix: 'fal',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M376 224c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-96.54l12.73-12.59c16.23-16.05 25.53-38.73 25.53-62.22 0-46.97-36.14-85.19-80.58-85.19h-84.42c-22.05 0-43.2 7.77-59.56 21.84l-33.51 28.8a8.008 8.008 0 0 0-.86 11.28l10.42 12.14c2.88 3.35 7.93 3.74 11.28.86l33.52-28.81C124.59 69.02 138.33 64 152.72 64h84.42c26.78 0 48.58 23.86 48.58 53.19 0 15-5.84 29.39-16.03 39.47L233.96 192H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h193.6l-64.71 64H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h96.54l-12.73 12.59c-16.23 16.05-25.53 38.73-25.53 62.22 0 46.97 36.14 85.19 80.58 85.19h84.42c22.05 0 43.2-7.77 59.56-21.84l33.52-28.8a8.008 8.008 0 0 0 .86-11.28l-10.42-12.14a8.01 8.01 0 0 0-11.29-.86l-33.52 28.81c-10.58 9.09-24.31 14.11-38.7 14.11h-84.42c-26.78 0-48.58-23.86-48.58-53.19 0-15 5.84-29.39 16.03-39.47L150.04 320H376c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H182.4l64.71-64H376z\"]\n};\nvar faHumidity = {\n prefix: 'fal',\n iconName: 'humidity',\n icon: [384, 512, [], \"f750\", \"M160 292c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm92 60c-15.5 0-28 12.5-28 28s12.5 28 28 28 28-12.5 28-28-12.5-28-28-28zM223.9 22.1C219.5 7.5 205.8 0 192 0c-13.5 0-27 7.2-31.8 22.1C109.1 179.8 0 222.7 0 333.9 0 432.3 85.9 512 192 512s192-79.7 192-178.1c0-111.7-108.9-153.3-160.1-311.8zM192 480c-88.2 0-160-65.5-160-146.1 0-47.6 25-80.4 59.6-125.9 32.6-42.8 73.1-96 98.6-175.7.1-.1.8-.3 1.8-.3.7 0 1.2.1 1.4.1h.1c26 80.4 66.5 133.4 99.1 176.1C327.1 253.4 352 286 352 333.9c0 80.6-71.8 146.1-160 146.1zm61-212.2l-12.5-10c-3.5-2.8-8.5-2.2-11.2 1.2l-99.5 134c-2.8 3.5-2.2 8.5 1.2 11.2l12.5 10c3.5 2.8 8.5 2.2 11.2-1.2l99.5-134c2.8-3.4 2.2-8.5-1.2-11.2z\"]\n};\nvar faHurricane = {\n prefix: 'fal',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M176 96l24.5-74.8C204 10.6 195.9 0 185.1 0c-.7 0-1.3 0-2 .1C80 12.4 0 101.6 0 208c0 114.9 93.1 208 208 208l-24.5 74.8c-3.5 10.6 4.6 21.2 15.4 21.2.7 0 1.3 0 2-.1C304 499.6 384 410.4 384 304c0-114.9-93.1-208-208-208zm46.3 379.2l16.1-49.3 13.7-42H208c-97 0-176-79-176-176 0-81.1 54.2-150.7 129.7-171.2L145.6 86l-13.7 42H176c97 0 176 79 176 176 0 81.1-54.2 150.7-129.7 171.2zM192 184c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"]\n};\nvar faICursor = {\n prefix: 'fal',\n iconName: 'i-cursor',\n icon: [192, 512, [], \"f246\", \"M96 38.223C75.091 13.528 39.824 1.336 6.191.005 2.805-.129 0 2.617 0 6.006v20.013c0 3.191 2.498 5.847 5.686 5.989C46.519 33.825 80 55.127 80 80v160H38a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h42v160c0 24.873-33.481 46.175-74.314 47.992-3.188.141-5.686 2.797-5.686 5.989v20.013c0 3.389 2.806 6.135 6.192 6.002C40.03 510.658 75.193 498.351 96 473.777c20.909 24.695 56.176 36.887 89.809 38.218 3.386.134 6.191-2.612 6.191-6.001v-20.013c0-3.191-2.498-5.847-5.686-5.989C145.481 478.175 112 456.873 112 432V272h42a6 6 0 0 0 6-6v-20a6 6 0 0 0-6-6h-42V80c0-24.873 33.481-46.175 74.314-47.992 3.188-.142 5.686-2.798 5.686-5.989V6.006c0-3.389-2.806-6.135-6.192-6.002C151.97 1.342 116.807 13.648 96 38.223z\"]\n};\nvar faIceCream = {\n prefix: 'fal',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M380.91 129.3C366.57 55.65 301.85 0 224 0S81.43 55.65 67.09 129.3A79.87 79.87 0 0 0 80 288h6l95 196.65a47.54 47.54 0 0 0 86.06 0L362 288h6a79.87 79.87 0 0 0 12.91-158.7zM238.22 470.73c-4.06 8.38-11.28 9.27-14.22 9.27s-10.16-.89-14.22-9.27L121.5 288h205zM368 256H80a47.86 47.86 0 0 1-7.75-95.12l22-3.59 4.25-21.88a127.86 127.86 0 0 1 251 0l4.25 21.88 22 3.59A47.86 47.86 0 0 1 368 256z\"]\n};\nvar faIceSkate = {\n prefix: 'fal',\n iconName: 'ice-skate',\n icon: [576, 512, [], \"f7ac\", \"M568 416h-16c-4.4 0-8 3.6-8 8v8c0 26.5-21.5 48-48 48h-80v-64h32c35.3 0 64-28.7 64-64v-37c0-44.1-30-82.5-72.7-93.1L320 192V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h-83.7c-8.1 0-16.2 1.6-23.8 4.6L52.1 88C40 92.8 32 104.6 32 117.7V352c0 35.3 28.7 64 64 64v64H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h488c44.2 0 80-35.8 80-80v-8c0-4.4-3.6-8-8-8zM64 352V117.7l128.4-51.4c3.8-1.5 7.8-2.3 11.9-2.3H288v64h-56c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v32h-56c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h84.1l115.5 28.9C460.1 260 480 285.5 480 315v37c0 17.6-14.4 32-32 32H96c-17.6 0-32-14.4-32-32zm320 128H128v-64h256v64z\"]\n};\nvar faIcicles = {\n prefix: 'fal',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M466 0H46C16.3 0-7.3 28.5 2.1 59.8l88.7 249.4c2.3 6.7 7.9 11.3 15.7 10.8 7-.2 13.1-5.1 14.9-11.9l23.5-77 35.3 172.1c1.5 7.5 8.1 12.9 15.7 12.9 7.7 0 14.2-5.4 15.7-13L248 221.6l22.3 86c1.6 7.2 8 12.4 15.5 12.5h.1c7.4 0 13.8-5 15.5-12.2l32.3-119.3 56.5 310.3c1.4 7.6 7.9 13.1 15.6 13.1h.2c7.6 0 14.2-5.4 15.7-12.8l89.5-444.5v-.2C516.6 25.8 494.4 0 466 0zm-59.2 411l-54.9-301.8c-3.1-17-27.2-17.6-31.3-1l-34 138.3-24.1-106c-3.7-16.3-27.9-16.8-31.3.5l-35.3 182L163 157c-3.5-17.6-27.2-15.8-31.2-1l-27.7 104.7L32.6 50C30 41.2 36.4 32 46 32h420c11.1 0 14.9 10.5 13.8 16.5l-73 362.5z\"]\n};\nvar faIcons = {\n prefix: 'fal',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M106.66 215.41a29.89 29.89 0 0 0 42.59 0l84.66-85.62a76.63 76.63 0 0 0-5.41-112.62C199.84-6.75 156.41-4.67 128 21.38 99.66-4.73 56.22-6.86 27.47 17.19A76.7 76.7 0 0 0 22 129.8zM48 41.73a41.14 41.14 0 0 1 26.53-9.39A47.2 47.2 0 0 1 108 46.55l20 20.17 20-20.19c16.69-16.86 43-18.94 60-4.81a44.62 44.62 0 0 1 3.19 65.56l-81.72 85.64-84.69-85.61a44.71 44.71 0 0 1-12.72-33.47A44.12 44.12 0 0 1 48 41.73zM260.57 288h-48l-7.08-14.21A27.4 27.4 0 0 0 179.83 256h-71.71a27.4 27.4 0 0 0-25.66 17.75l-7 14.21h-48A27.42 27.42 0 0 0 0 315.35v169.26A27.42 27.42 0 0 0 27.43 512h233.14A27.42 27.42 0 0 0 288 484.61V315.35A27.42 27.42 0 0 0 260.57 288zM256 480H32V320h63.3l8.81-17.81 7-14.15h65.73l7.09 14.21 8.84 17.75H256zM484.62 0a24.05 24.05 0 0 0-3.93.33L343.55 23.18C330 25.44 320 38.94 320 54.86V166.8a81.36 81.36 0 0 0-32-6.47c-35.88 0-64 21.08-64 48s28.12 48 64 48 64-21.08 64-48V54.86a4.45 4.45 0 0 1 0-.65l128-21.33V135a80 80 0 0 0-32-6.65c-35.35 0-64 21.49-64 48s28.65 48 64 48 64-21.49 64-48V32c0-17.91-12.51-32-27.38-32zM288 224.33c-19.25 0-32-9.63-32-16s12.75-16 32-16 32 9.62 32 16-12.75 16-32 16zm160-32c-19.85 0-32-10.36-32-16s12.15-16 32-16 32 10.36 32 16-12.15 16-32 16zM144 336a64 64 0 1 0 64 64 64.07 64.07 0 0 0-64-64zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm280.19-152.84a16 16 0 0 0-28.63-14.32L328 400h110.31l-52.2 88.06a16 16 0 0 0 6 21.83A15.8 15.8 0 0 0 400 512a16 16 0 0 0 13.91-8.06L493.44 368H379.75z\"]\n};\nvar faIconsAlt = {\n prefix: 'fal',\n iconName: 'icons-alt',\n icon: [512, 512, [], \"f86e\", \"M480.84 0a23.6 23.6 0 0 0-3.9.33L340.87 23.18c-13.41 2.26-23.37 15.76-23.37 31.68V166.8a80.15 80.15 0 0 0-31.75-6.47c-35.59 0-63.5 21.08-63.5 48s27.91 48 63.5 48 63.5-21.08 63.5-48V54.86a4.45 4.45 0 0 1 0-.65l127-21.33V135a78.79 78.79 0 0 0-31.75-6.65c-35.07 0-63.5 21.49-63.5 48s28.43 48 63.5 48 63.5-21.49 63.5-48V32c0-17.91-12.41-32-27.16-32zM285.75 224.33c-19.1 0-31.75-9.63-31.75-16s12.65-16 31.75-16 31.75 9.62 31.75 16-12.65 16-31.75 16zm158.75-32c-19.7 0-31.75-10.36-31.75-16s12.05-16 31.75-16 31.75 10.36 31.75 16-12.05 16-31.75 16zM7.94 96h87.31v120a8 8 0 0 0 7.94 8h15.87a8 8 0 0 0 7.94-8V96h87.31a8 8 0 0 0 7.94-8V72a8 8 0 0 0-7.94-8H7.94A8 8 0 0 0 0 72v16a8 8 0 0 0 7.94 8zm325.44 288a48 48 0 1 0-47.63-48 47.81 47.81 0 0 0 47.63 48zm0-64a16 16 0 1 1-15.88 16 16 16 0 0 1 15.88-16zM7.94 32h206.37a8 8 0 0 0 7.94-8V8.33a8 8 0 0 0-7.94-8H7.94a8 8 0 0 0-7.94 8V24a8 8 0 0 0 7.94 8zm452.44 384A48 48 0 1 0 508 464a47.81 47.81 0 0 0-47.62-48zm0 64a16 16 0 1 1 15.87-16 16 16 0 0 1-15.87 16zm34.07-189.66a7.89 7.89 0 0 0-11.22 0L288.08 487a8.05 8.05 0 0 0 0 11.32l11.22 11.31a7.89 7.89 0 0 0 11.22 0L505.67 313a8 8 0 0 0 0-11.32zM181.32 448.13l37.2-24.13a8.05 8.05 0 0 0 2.53-11l-8.41-13.58a7.9 7.9 0 0 0-10.94-2.55L158.35 425l-43.93-44.28A63.79 63.79 0 0 0 158.75 320c0-35.3-28.49-64-63.5-64s-63.5 28.7-63.5 64a63.91 63.91 0 0 0 30.57 54.45l-30.1 18.25C1.28 411.45-9.2 451.31 8.81 481.55 20.57 501.19 41.49 512 63.26 512a66.67 66.67 0 0 0 34.63-9.75l56.11-36.4 43.47 43.81a7.89 7.89 0 0 0 11.22 0l11.22-11.31a8 8 0 0 0 0-11.32zM95.25 288a32 32 0 1 1-31.75 32 31.87 31.87 0 0 1 31.75-32zM81.31 475c-15.91 9.66-36.22 5.22-45.27-9.9s-3.38-35.27 12.55-44.94l37.48-22.73 45 45.31z\"]\n};\nvar faIdBadge = {\n prefix: 'fal',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M320 0H64C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 448c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h256c17.6 0 32 14.4 32 32v384zM144 96h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 208c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm46.8 144c-19.5 0-24.4 7-46.8 7s-27.3-7-46.8-7c-21.2 0-41.8 9.4-53.8 27.4C84.2 358.1 80 371 80 384.9V424c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-39.1c0-14 9-32.9 33.2-32.9 12.4 0 20.8 7 46.8 7 25.9 0 34.3-7 46.8-7 24.3 0 33.2 18.9 33.2 32.9V424c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-39.1c0-13.9-4.2-26.8-11.4-37.5-12.1-18-32.7-27.4-53.8-27.4z\"]\n};\nvar faIdCard = {\n prefix: 'fal',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0 128h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168-32c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM512 32H64C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM272 448H112v-15.1c0-7 2.1-13.8 6-19.6 5.6-8.3 15.8-13.2 27.3-13.2 12.4 0 20.8 7 46.8 7 25.9 0 34.3-7 46.8-7 11.5 0 21.7 5 27.3 13.2 3.9 5.8 6 12.6 6 19.6V448h-.2zm272-32c0 17.6-14.4 32-32 32H304v-15.1c0-13.9-4.2-26.8-11.4-37.5-12.1-17.9-32.7-27.4-53.8-27.4-19.5 0-24.4 7-46.8 7s-27.3-7-46.8-7c-21.2 0-41.8 9.4-53.8 27.4C84.2 406.1 80 419 80 432.9V448H64c-17.6 0-32-14.4-32-32V160h512v256zm0-288H32V96c0-17.6 14.4-32 32-32h448c17.6 0 32 14.4 32 32v32z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fal',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M288 208c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM512 64H352V32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v32H64C28.7 64 0 92.7 0 128v320c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM256 32h64v96h-64V32zm128 448H192v-21.9c0-9 2.6-17.6 7.6-25 7.2-10.7 20.3-17.2 35-17.2 15.9 0 23.5 8 53.4 8s37.6-8 53.4-8c14.7 0 27.7 6.4 35 17.2 5 7.4 7.6 16 7.6 25V480zm160-32c0 17.6-14.4 32-32 32h-96v-21.9c0-15.9-4.8-30.6-13-42.8-13.8-20.5-37.3-31.3-61.5-31.3-22.2 0-27.8 8-53.4 8-25.6 0-31.2-8-53.4-8-24.2 0-47.7 10.8-61.5 31.3-8.2 12.2-13 27-13 42.8V480H64c-17.6 0-32-14.4-32-32V128c0-17.6 14.4-32 32-32h160v64h128V96h160c17.6 0 32 14.4 32 32v320z\"]\n};\nvar faIgloo = {\n prefix: 'fal',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M288 32C128.9 32 0 160.9 0 320v128c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V320c0-159.1-128.9-288-288-288zm199.5 128H352V72.4c54.2 14 101.5 45.2 135.5 87.6zM448 320h-49.8c-22.2-38.1-63-64-110.2-64s-88 25.9-110.2 64H128V192h320v128zM288 64c10.9 0 21.5.9 32 2.2V160H88.5c46.9-58.4 118.9-96 199.5-96zM66.6 192H96v128H32c0-46.7 12.7-90.3 34.6-128zM32 448v-96h132.5c-2.7 10.3-4.5 20.9-4.5 32v64H32zm160 0v-64c0-53 43-96 96-96s96 43 96 96v64H192zm352 0H416v-64c0-11.1-1.9-21.7-4.5-32H544v96zm-64-128V192h29.4c21.9 37.7 34.6 81.3 34.6 128h-64z\"]\n};\nvar faImage = {\n prefix: 'fal',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm16 336c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V112c0-8.822 7.178-16 16-16h416c8.822 0 16 7.178 16 16v288zM112 232c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56 25.072 56 56 56zm0-80c13.234 0 24 10.766 24 24s-10.766 24-24 24-24-10.766-24-24 10.766-24 24-24zm207.029 23.029L224 270.059l-31.029-31.029c-9.373-9.373-24.569-9.373-33.941 0l-88 88A23.998 23.998 0 0 0 64 344v28c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-92c0-6.365-2.529-12.47-7.029-16.971l-88-88c-9.373-9.372-24.569-9.372-33.942 0zM416 352H96v-4.686l80-80 48 48 112-112 80 80V352z\"]\n};\nvar faImagePolaroid = {\n prefix: 'fal',\n iconName: 'image-polaroid',\n icon: [448, 512, [], \"f8c4\", \"M112 192a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm0-64a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm304-96H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm0 416H32v-80h384zM85.2 336l52-69.33 40 53.33-12 16zm120 0l76-101.33 76 101.33zm210.8 0h-18.8L294 198.41c-6.06-8.07-19.56-8.07-25.62 0l-71.19 94.91L150 230.41c-6.06-8.07-19.56-8.07-25.62 0L45.18 336H32V64h384z\"]\n};\nvar faImages = {\n prefix: 'fal',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M528 32H112c-26.51 0-48 21.49-48 48v16H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48v-16h16c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-48 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V144c0-8.822 7.178-16 16-16h16v240c0 26.51 21.49 48 48 48h368v16zm64-64c0 8.822-7.178 16-16 16H112c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h416c8.822 0 16 7.178 16 16v288zM176 200c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56 25.072 56 56 56zm0-80c13.234 0 24 10.766 24 24s-10.766 24-24 24-24-10.766-24-24 10.766-24 24-24zm240.971 23.029c-9.373-9.373-24.568-9.373-33.941 0L288 238.059l-31.029-31.03c-9.373-9.373-24.569-9.373-33.941 0l-88 88A24.002 24.002 0 0 0 128 312v28c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-92c0-6.365-2.529-12.47-7.029-16.971l-88-88zM480 320H160v-4.686l80-80 48 48 112-112 80 80V320z\"]\n};\nvar faInbox = {\n prefix: 'fal',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M566.819 227.377L462.377 83.768A48.001 48.001 0 0 0 423.557 64H152.443a47.998 47.998 0 0 0-38.819 19.768L9.181 227.377A47.996 47.996 0 0 0 0 255.609V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V255.609a47.996 47.996 0 0 0-9.181-28.232zM139.503 102.589A16.048 16.048 0 0 1 152.443 96h271.115c5.102 0 9.939 2.463 12.94 6.589L524.796 224H388.223l-32 64H219.777l-32-64H51.204l88.299-121.411zM544 272v128c0 8.823-7.178 16-16 16H48c-8.822 0-16-7.177-16-16V272c0-8.837 7.163-16 16-16h120l32 64h176l32-64h120c8.837 0 16 7.163 16 16z\"]\n};\nvar faInboxIn = {\n prefix: 'fal',\n iconName: 'inbox-in',\n icon: [576, 512, [], \"f310\", \"M560.8 329.8l-94.6-88.7c-2.4-2.3-6.2-2.1-8.5.3L444.1 256c-2.3 2.4-2.1 6.2.3 8.5l59.3 55.6H388.2l-32 64H219.8l-32-64H72.4l59.3-55.6c2.4-2.3 2.5-6.1.3-8.5l-13.7-14.6c-2.3-2.4-6.1-2.5-8.5-.3l-94.6 88.7c-9.7 9-15.2 21.7-15.2 35V464c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48v-99.2c0-13.3-5.5-26-15.2-35zM544 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-96c0-8.8 7.2-16 16-16h120l32 64h176l32-64h120c8.8 0 16 7.2 16 16v96zM416 128h-64V24c0-13.2-10.8-24-24-24h-80c-13.2 0-24 10.8-24 24v104h-64c-28.4 0-42.8 34.5-22.6 54.6l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c20-20.1 5.8-54.6-22.7-54.6zM288 288L160 160h96V32h64v128h96L288 288z\"]\n};\nvar faInboxOut = {\n prefix: 'fal',\n iconName: 'inbox-out',\n icon: [576, 512, [], \"f311\", \"M560.8 329.8l-94.6-88.7c-2.4-2.3-6.2-2.1-8.5.3L444.1 256c-2.3 2.4-2.1 6.2.3 8.5l59.3 55.6H388.2l-32 64H219.8l-32-64H72.4l59.3-55.6c2.4-2.3 2.5-6.1.3-8.5l-13.7-14.6c-2.3-2.4-6.1-2.5-8.5-.3l-94.6 88.7C5.5 338.9 0 351.5 0 364.8V464c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48v-99.2c0-13.3-5.5-25.9-15.2-35zM544 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-96c0-8.8 7.2-16 16-16h120l32 64h176l32-64h120c8.8 0 16 7.2 16 16v96zM160 192h64v104c0 13.2 10.8 24 24 24h80c13.2 0 24-10.8 24-24V192h64c28.4 0 42.8-34.5 22.6-54.6l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-20 20.1-5.8 54.6 22.7 54.6zM288 32l128 128h-96v128h-64V160h-96L288 32z\"]\n};\nvar faIndent = {\n prefix: 'fal',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 148.7a15.63 15.63 0 0 0-11.17-4.7A16 16 0 0 0 0 160v192a16 16 0 0 0 16.13 16 15.58 15.58 0 0 0 11.18-4.7l96-96a16 16 0 0 0 0-22.62zM32 313.36V198.64L89.37 256zM440 48H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm0 384H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faIndustry = {\n prefix: 'fal',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M477.267 162.534L320 241.167V184c0-18.007-18.948-29.359-34.733-21.466L128 241.167V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184c0-18.007-18.948-29.359-34.733-21.466zM107.578 287.155L288 196.944V280c0 5.949 6.268 9.81 11.578 7.155L480 196.944V448H32V64h64v216c0 5.947 6.269 9.811 11.578 7.155z\"]\n};\nvar faIndustryAlt = {\n prefix: 'fal',\n iconName: 'industry-alt',\n icon: [512, 512, [], \"f3b3\", \"M404 384h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm-116-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-128 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm352-188v272c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h80c13.255 0 24 10.745 24 24v185.167l157.267-78.633C301.052 154.641 320 165.993 320 184v57.167l157.267-78.633C493.052 154.641 512 165.993 512 184zM96 280V64H32v384h448V196.944l-180.422 90.211C294.268 289.81 288 285.949 288 280v-83.056l-180.422 90.211C102.269 289.811 96 285.947 96 280z\"]\n};\nvar faInfinity = {\n prefix: 'fal',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M488.88 96C406.31 96 346.21 178.45 320 222.45 293.79 178.45 233.69 96 151.12 96 67.78 96 0 167.78 0 256s67.78 160 151.12 160c82.56 0 142.67-82.45 168.88-126.46C346.21 333.55 406.31 416 488.88 416 572.22 416 640 344.22 640 256S572.22 96 488.88 96zM151.12 384C85.44 384 32 326.58 32 256s53.44-128 119.12-128c78.03 0 136.47 100.61 150.94 128-14.47 27.39-72.9 128-150.94 128zm337.76 0c-78.03 0-136.47-100.61-150.94-128 14.47-27.39 72.91-128 150.94-128C554.56 128 608 185.42 608 256s-53.44 128-119.12 128z\"]\n};\nvar faInfo = {\n prefix: 'fal',\n iconName: 'info',\n icon: [256, 512, [], \"f129\", \"M208 368.667V208c0-15.495-7.38-29.299-18.811-38.081C210.442 152.296 224 125.701 224 96c0-52.935-43.065-96-96-96S32 43.065 32 96c0 24.564 9.274 47.004 24.504 64H56c-26.467 0-48 21.533-48 48v48c0 23.742 17.327 43.514 40 47.333v65.333C25.327 372.486 8 392.258 8 416v48c0 26.467 21.533 48 48 48h144c26.467 0 48-21.533 48-48v-48c0-23.742-17.327-43.514-40-47.333zM128 32c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zm88 432c0 8.837-7.163 16-16 16H56c-8.837 0-16-7.163-16-16v-48c0-8.837 7.163-16 16-16h24V272H56c-8.837 0-16-7.163-16-16v-48c0-8.837 7.163-16 16-16h104c8.837 0 16 7.163 16 16v192h24c8.837 0 16 7.163 16 16v48z\"]\n};\nvar faInfoCircle = {\n prefix: 'fal',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-36 344h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faInfoSquare = {\n prefix: 'fal',\n iconName: 'info-square',\n icon: [448, 512, [], \"f30f\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zm-228-80h12V232h-12c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h48c6.627 0 12 5.373 12 12v140h12c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-72c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12zm36-240c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faInhaler = {\n prefix: 'fal',\n iconName: 'inhaler',\n icon: [640, 512, [], \"f5f9\", \"M24 264c-13.25 0-24 10.75-24 24s10.75 24 24 24 24-10.75 24-24-10.75-24-24-24zm0 96c-13.25 0-24 10.75-24 24s10.75 24 24 24 24-10.75 24-24-10.75-24-24-24zm0 96c-13.25 0-24 10.75-24 24s10.75 24 24 24 24-10.75 24-24-10.75-24-24-24zM616.27 38.02L478.47 1.1c-2.77-.74-5.56-1.1-8.3-1.1-14.13 0-27.06 9.43-30.89 23.72l-24.97 93.21-5.11-5.11c-3.21-3.21-7.26-4.7-11.25-4.7-6.87 0-13.56 4.39-15.54 11.95L346.49 256H224c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h270.62c29.09 0 54.53-19.62 61.91-47.76l37.96-144.71c2.88-11-.28-22.71-8.32-30.75l-3.11-3.11L638.9 77.21c4.58-17.07-5.55-34.61-22.63-39.19zm-90.7 418.1c-3.69 14.06-16.42 23.88-30.95 23.88H224V288h147.18l6.26-23.88 28.84-109.96 157.25 157.25-37.96 144.71zm31.35-196.58L440.45 143.07l29.77-111.06L608 68.93l-51.08 190.61zM120 312c-13.25 0-24 10.75-24 24s10.75 24 24 24 24-10.75 24-24-10.75-24-24-24zm0 96c-13.25 0-24 10.75-24 24s10.75 24 24 24 24-10.75 24-24-10.75-24-24-24z\"]\n};\nvar faIntegral = {\n prefix: 'fal',\n iconName: 'integral',\n icon: [366, 512, [], \"f667\", \"M88.46 479.84c-19.3-1.3-36.8-11.91-48.88-27.02L1.75 405.54A8.007 8.007 0 0 1 3 394.29l12.5-10a7.983 7.983 0 0 1 11.23 1.25l39.72 49.65c7.69 9.64 19.93 14.41 32.42 12.33 14.06-2.34 24.72-14.1 27.93-27.99l76.85-333.31c6.43-27.9 28.9-50.51 57.32-53.77 23.05-2.64 45.12 6.59 59.38 24.38l43.9 54.92a7.995 7.995 0 0 1-1.25 11.24l-12.5 10c-3.45 2.76-8.48 2.2-11.23-1.25l-43.9-54.92c-7.7-9.62-19.83-14.39-32.29-12.37-14.09 2.29-24.83 14.02-28.04 27.95l-77.55 336.31c-7.31 31.69-36.1 53.35-69.03 51.13z\"]\n};\nvar faIntersection = {\n prefix: 'fal',\n iconName: 'intersection',\n icon: [320, 512, [], \"f668\", \"M149.35 64.35C64.31 69.85 0 144.26 0 229.48V440c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V228.52c0-68.11 51.28-127.67 119.24-132.22C225.76 91.3 288 150.52 288 224v216c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V224c0-91.89-77.46-165.69-170.65-159.65z\"]\n};\nvar faInventory = {\n prefix: 'fal',\n iconName: 'inventory',\n icon: [640, 512, [], \"f480\", \"M632 0h-16c-4.4 0-8 4.1-8 9.1V192h-64V48c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v144H32V9.1c0-5-3.6-9.1-8-9.1H8C3.6 0 0 4.1 0 9.1V512h32v-32h576v32h32V9.1c0-5-3.6-9.1-8-9.1zM384 64h128v128H384V64zM256 448H128V320h128v128zm32 0V320h128v128H288zm320 0H448V304c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16v144H32V224h576v224z\"]\n};\nvar faIslandTropical = {\n prefix: 'fal',\n iconName: 'island-tropical',\n icon: [448, 512, [], \"f811\", \"M299.39 32c-15.4 0-30 2.55-43.94 6.23C228.22 14.67 190.46 0 148.62 0 73.38 0 11.08 47.24.24 108.86A16.51 16.51 0 0 0 16.8 128h73.45C57.94 177.87 55.12 238.52 85 281.15c7.13 10.17 19.58 7.49 25.24 1.84l83.13-83.14c-8.85 57-25.63 110.52-41.67 152.15h-20.51C58.84 352 0 410.86 0 483.2A28.85 28.85 0 0 0 28.81 512h326.38A28.85 28.85 0 0 0 384 483.2c0-62.2-43.62-114.2-101.81-127.61 9.7-74.31 4.43-147.08-1.9-195.59H431.2a16.51 16.51 0 0 0 16.56-19.14C436.92 79.25 374.62 32 299.39 32zm52.55 448H32.06a99.3 99.3 0 0 1 99.13-96h121.62a99.3 99.3 0 0 1 99.13 96zM250.12 352h-64.27c17.86-48.47 30.69-116.82 37.11-181.72L233.23 160H248c6.26 46.64 11.77 119 2.12 192zM220 128L102.22 245.76c-18.69-49 7.89-121.36 73-150.68a8 8 0 0 0 4.28-10.22l-6-14.91a8 8 0 0 0-10.58-4.46A169.86 169.86 0 0 0 117.24 96h-79.9c16.44-37.53 60.83-64 111.28-64 32.72 0 63.21 10.8 85.87 30.42l12.76 11c10.81-2.8 31.44-9.42 52.14-9.42 50.45 0 94.83 26.48 111.27 64z\"]\n};\nvar faItalic = {\n prefix: 'fal',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 40v16a8 8 0 0 1-8 8h-87.5l-96 384H216a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h87.5l96-384H104a8 8 0 0 1-8-8V40a8 8 0 0 1 8-8h208a8 8 0 0 1 8 8z\"]\n};\nvar faJackOLantern = {\n prefix: 'fal',\n iconName: 'jack-o-lantern',\n icon: [576, 512, [], \"f30e\", \"M494.75 110.52C460.24 77.96 409.33 71.33 368 90.9V51.8c0-12.2-6.78-23.17-17.69-28.62L310.69 3.36c-7.97-3.97-17.38-4.45-25.66-1.27-8.31 3.16-15 9.72-18.34 18.03l-28.7 71.75c-4.78 2.44-9.4 5.19-13.74 8.38-43.41-30.29-103.78-26.76-143 10.26C28.84 159.92 0 225.78 0 295.95c0 70.16 28.84 136 81.25 185.4 39.19 36.98 99.53 40.6 143 10.28 36.56 26.9 90.94 26.9 127.5 0 19.5 13.59 42.38 20.36 65.22 20.36 28.12 0 56.16-10.23 77.78-30.63C547.16 431.96 576 366.11 576 295.94s-28.84-136.02-81.25-185.42zM296.41 31.99L336 51.8v39.11c-18.21-8.78-38.95-11.99-59.17-10.01l19.58-48.91zm176.4 426.09c-30.16 28.42-79.78 28.87-110.62 1.06l-11-9.9-10.75 10.2c-14.5 13.76-31.66 20.46-52.44 20.46s-37.94-6.7-52.44-20.46l-10.75-10.2-11 9.9c-30.84 27.81-80.47 27.35-110.62-1.06C57.28 414.79 32 357.21 32 295.94s25.28-118.85 71.19-162.16c30.12-28.4 79.75-28.9 110.62-1.05l11 9.9 10.75-10.2c14.5-13.76 31.66-20.46 52.44-20.46s37.94 6.7 52.44 20.46l10.75 10.2 11-9.9c30.81-27.82 80.44-27.4 110.62 1.06C518.72 177.09 544 234.67 544 295.94s-25.28 118.85-71.19 162.14zm1.66-179.15c-10.62-8.39-24.81-9.28-36.28-2.27-53.41 32.73-116.03 46.65-180.53 39.9L240 314.7v29.23h-32v-36.79l-10.97-3.64c-22.56-7.48-41.91-16.26-59.16-26.81-11.47-7.05-25.75-6.08-36.28 2.31-10.81 8.62-14.91 22.68-10.47 35.84 5.5 16.18 12.38 30.18 21.09 42.9 33.84 48.52 94.66 74.17 175.78 74.17 11.69 0 22.78-.7 33.56-1.75l14.44-1.41v-36.84h32v31.15l21.97-8.81c31.72-12.72 56.69-31.93 74.31-57.18 8.47-12.31 15.22-26.14 20.69-42.34 4.45-13.14.32-27.2-10.49-35.8zm-19.81 25.6c-4.5 13.33-9.97 24.59-16.69 34.32-10.56 15.14-24.69 27.62-42.12 37.31-5.53-9.69-15.94-16.23-27.84-16.23h-32c-17.66 0-32 14.36-32 31.99v7.53c-5.22.3-10.53.47-16 .47-70.22 0-121.94-20.92-149.47-60.39-6.97-10.15-12.56-21.59-17.34-35.56 16.44 10.08 34.47 18.65 54.81 26.09v13.87c0 17.64 14.34 31.99 32 31.99h32c15.56 0 28.56-11.17 31.44-25.92 63.41 4.78 128.84-12.58 183.5-46.07l-.29.6zm-205.51-48.58c2.85 0 4.86-1.11 6-3.33s1.14-4.44 0-6.66L214 179.29c-1.71-2.23-3.86-3.33-6.43-3.33s-4.43 1.11-5.57 3.33l-41.15 66.65c-1.14 2.23-1.14 4.44 0 6.66s3.15 3.33 6 3.33h82.3zm160 0c2.85 0 4.86-1.11 6-3.33s1.14-4.44 0-6.66L374 179.29c-1.71-2.23-3.86-3.33-6.43-3.33s-4.43 1.11-5.57 3.33l-41.15 66.65c-1.14 2.23-1.14 4.44 0 6.66s3.15 3.33 6 3.33h82.3z\"]\n};\nvar faJedi = {\n prefix: 'fal',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M560,241.23438C560,390.53125,437.97065,512,288.00423,512,141.569,512,22.78961,394.76562,16.28971,253.95312c-4.24993-92.54687,38.46815-179.84374,114.31072-233.5a23.72023,23.72023,0,0,1,13.74979-4.40624,24.075,24.075,0,0,1,22.31215,32.9375,126.06511,126.06511,0,0,0-8.96861,46.65624c0,41.10938,19.1872,78.90626,52.62418,103.67188a24.08535,24.08535,0,0,1,1.81248,37.375,111.64354,111.64354,0,0,0-37.21818,83.29688c0,56.5625,42.3431,102.42187,97.09224,110.21874V358.625l-20.68717,20.6875a15.99817,15.99817,0,1,1-22.62465-22.625L249.37984,336H224.00523a16,16,0,0,1,0-32h25.37461l-20.68718-20.6875a15.99817,15.99817,0,1,1,22.62465-22.625l20.68717,20.6875V16a15.99975,15.99975,0,1,1,31.9995,0V281.375l20.68718-20.6875a15.99817,15.99817,0,0,1,22.62465,22.625L326.62863,304h25.37461a16,16,0,0,1,0,32H326.62863l20.68718,20.70312a15.99265,15.99265,0,0,1-22.62465,22.60938L303.97274,358.625v71.67188C387.47144,418.98438,400.94,342.15625,401.00248,320A111.45108,111.45108,0,0,0,363.878,236.70312a24.04818,24.04818,0,0,1,1.81247-37.39062c33.40573-24.76562,52.59294-62.54688,52.59294-103.65625A125.851,125.851,0,0,0,409.2836,48.9375,24.075,24.075,0,0,1,431.59575,16a23.66572,23.66572,0,0,1,13.71854,4.40625A271.02474,271.02474,0,0,1,560,241.23438Zm-33.74947,27.5625L490.50108,300.0625a16.00686,16.00686,0,0,1-21.06217-24.10938l57.6866-50.46874a237.50982,237.50982,0,0,0-5.18742-36.82813L491.28232,219.3125a15.99265,15.99265,0,0,1-22.62465-22.60938l42.40559-42.40624a239.45023,239.45023,0,0,0-64.374-92.07813,157.73669,157.73669,0,0,1,3.56245,33.4375,159.43294,159.43294,0,0,1-58.28034,123.6875A142.8669,142.8669,0,0,1,433.002,320.01562c-.1875,87.89063-72.84262,143.82813-145.029,143.82813-79.99875,0-145.06024-64.8125-145.06024-144.46875a143.69178,143.69178,0,0,1,41.09311-100.03125,159.36344,159.36344,0,0,1-58.31159-123.6875V95.5625a189.99126,189.99126,0,0,1,3.59369-33.375,237.7374,237.7374,0,0,0-64.53024,91.96875L107.2883,196.6875a15.99817,15.99817,0,0,1-22.62465,22.625l-30.49953-30.5a235.49408,235.49408,0,0,0-5.62491,36.39062l57.96785,50.75a16.001,16.001,0,0,1-21.06217,24.09376L49.82044,268.84375C60.789,362.34375,142.78774,480,288.00423,480,410.93982,480,512.46949,387.48438,526.25053,268.79688Z\"]\n};\nvar faJoint = {\n prefix: 'fal',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M556.44 93.48C548.9 88.45 544 80.33 544 71.26V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v62.31c0 20.16 10.28 38.78 27.02 50.01 43.2 28.98 68.98 77.3 68.98 129.36V280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-30.31c0-62.93-31.24-121.31-83.56-156.21zm-52.87 80.13C528.9 190.71 544 219.1 544 249.69V280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-30.31c0-41.96-21.08-80.88-56.31-103.78C494.07 129.25 480 99.53 480 68.97V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v67.03c0 40.32 22.15 76.02 55.57 98.58zM616 352H278.94C180.3 352 83.65 379.72 0 432c83.65 52.28 180.3 80 278.94 80H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24zM278.94 480c-73.85 0-146.33-16.47-212.51-48 60.11-28.64 125.5-44.14 192.32-46.88l81.3 94.88h-61.11zm103.27 0l-82.27-96h117.85l82.27 96H382.21zM608 480h-65.79l-82.27-96H608v96z\"]\n};\nvar faJournalWhills = {\n prefix: 'fal',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M433.09375,414.20312C429.5,430.29688,428.68749,459.79688,432.68749,480H436a12.04337,12.04337,0,0,1,12,12v8a12.04337,12.04337,0,0,1-12,12H64A64.00317,64.00317,0,0,1,0,448V80A79.964,79.964,0,0,1,80,0H424a23.95631,23.95631,0,0,1,24,24V392A24.14194,24.14194,0,0,1,433.09375,414.20312ZM416,32H80A48.01238,48.01238,0,0,0,32,80V392.875A63.29355,63.29355,0,0,1,64,384H416ZM404.28125,416H64a32,32,0,0,0,0,64H404.28125A229.78513,229.78513,0,0,1,404.28125,416ZM100,206.95312c0-50.1875,27.5625-96.8125,71.93749-121.6875a11.95085,11.95085,0,0,1,14.5,2.14063,13.58423,13.58423,0,0,1,3.375,8.29687A13.90947,13.90947,0,0,1,188,101.98438,60.027,60.027,0,0,0,201.46875,180.875a11.82582,11.82582,0,0,1,4.40625,8.5625,11.95519,11.95519,0,0,1-3.31251,9.03125A51.74024,51.74024,0,0,0,228,284.84375V259.3125l-6.34375,6.34375a7.99915,7.99915,0,0,1-11.3125-11.3125L220.68749,244H208a8,8,0,0,1,0-16h12.68749l-10.34374-10.34375a7.99915,7.99915,0,0,1,11.3125-11.3125L228,212.6875V84a12,12,0,0,1,24,0V212.6875l6.34375-6.34375a7.99915,7.99915,0,0,1,11.3125,11.3125L259.31249,228H272a8,8,0,0,1,0,16H259.31249L269.625,254.32812a7.99915,7.99915,0,1,1-11.31251,11.3125l-6.34374-6.34374v25.53124a51.76724,51.76724,0,0,0,25.46874-86.375,11.92036,11.92036,0,0,1-3.31249-9.01562,13.5281,13.5281,0,0,1,4.375-8.5625,60.027,60.027,0,0,0,13.46875-78.89062A11.99016,11.99016,0,0,1,308.06249,85.25C352.43749,110.14062,380,156.76562,380,206.95312c0,77.20313-62.81251,140-140,140S100,284.15625,100,206.95312Zm50,46.3125a8.03978,8.03978,0,0,1-11.3125.75l-6.84375-6c16.65625,43.6875,58.65625,74.9375,108.125,74.9375s91.46874-31.25,108.125-74.9375l-6.84375,6a8.005,8.005,0,1,1-10.56251-12.03124l23.84376-20.875c.59375-4.6875,1.4375-9.3125,1.4375-14.15626a115.1298,115.1298,0,0,0-2.0625-21.5625L341.625,197.65625a7.99915,7.99915,0,0,1-11.31251-11.3125L348.75,167.90625a115.65937,115.65937,0,0,0-23.78125-39.20313c.125,1.70313.1875,3.39063.1875,5.09376a84.38526,84.38526,0,0,1-22.71876,57.42187,76.01587,76.01587,0,1,1-124.90624,0,84.21054,84.21054,0,0,1-22.71875-57.42187c0-1.70313.09375-3.39063.15625-5.09376a116.81117,116.81117,0,0,0-23.78125,39.20313l18.46875,18.4375a7.99915,7.99915,0,0,1-11.3125,11.3125L126.0625,185.39062A112.56957,112.56957,0,0,0,124,206.95312c0,4.84376.84375,9.46876,1.4375,14.15626l23.84375,20.875A7.97419,7.97419,0,0,1,150,253.26562Z\"]\n};\nvar faJoystick = {\n prefix: 'fal',\n iconName: 'joystick',\n icon: [448, 512, [], \"f8c5\", \"M200 64a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm216 288H240V222.39c54.21-7.83 96-54 96-110.39a112 112 0 0 0-224 0c0 56.38 41.79 102.56 96 110.39V352h-80v-16a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v16H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zM144 112a80 80 0 1 1 80 80 80.09 80.09 0 0 1-80-80zm272 368H32v-96h384z\"]\n};\nvar faJug = {\n prefix: 'fal',\n iconName: 'jug',\n icon: [448, 512, [], \"f8c6\", \"M304 272H144a48.05 48.05 0 0 0-48 48v64a48.05 48.05 0 0 0 48 48h160a48 48 0 0 0 48-48v-64a48 48 0 0 0-48-48zm16 112a16 16 0 0 1-16 16H144a16 16 0 0 1-16-16v-64a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16zm128-248a71.75 71.75 0 0 0-137.71-28.48A32 32 0 0 1 304 88.78V32h8a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h8v56.78a32 32 0 0 1-7 20l-76.95 96.16a128 128 0 0 0-28 80V448a64 64 0 0 0 64 64H352a64 64 0 0 0 64-64V284.9a128 128 0 0 0-26.88-78.22A71.93 71.93 0 0 0 448 136zm-64 312a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V284.9a96.39 96.39 0 0 1 21-60l77-96.14a64.22 64.22 0 0 0 14-40V32h96v56.78a64.23 64.23 0 0 0 14 40l76.93 96.18a96.34 96.34 0 0 1 21 60zm-8-272a39.41 39.41 0 0 1-13.41-2.71l-25.49-31.87c-.27-1.85-1.1-3.5-1.1-5.42a40 40 0 1 1 40 40z\"]\n};\nvar faKaaba = {\n prefix: 'fal',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M261.89 166.54l-96 26.18a7.997 7.997 0 0 0-5.89 7.72v16.58c0 5.28 5.02 9.11 10.11 7.72l96-26.18a7.997 7.997 0 0 0 5.89-7.72v-16.57c0-5.29-5.02-9.12-10.11-7.73zm48 32.01l96 26.18c5.09 1.39 10.11-2.44 10.11-7.72v-16.58c0-3.61-2.41-6.77-5.89-7.72l-96-26.18c-5.09-1.39-10.11 2.44-10.11 7.72v16.57a8 8 0 0 0 5.89 7.73zM554.12 83.51L318.36 4.93C308.51 1.64 298.25 0 288 0s-20.51 1.64-30.36 4.93L21.88 83.51A32.006 32.006 0 0 0 0 113.87v310.8c0 15 10.42 27.98 25.06 31.24l242.12 53.8c6.86 1.53 13.84 2.29 20.83 2.29s13.97-.76 20.83-2.29l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24v-310.8c-.02-13.77-8.83-26-21.9-30.36zM544 229.3l-85.89-23.49c-5.09-1.39-10.11 2.44-10.11 7.72v16.58c0 3.61 2.41 6.77 5.89 7.72L544 262.08v162.59l-242.12 53.8a63.984 63.984 0 0 1-27.77 0L32 424.67V262.3l90.11-24.48a7.997 7.997 0 0 0 5.89-7.72v-16.58c0-5.28-5.02-9.11-10.11-7.72L32 229.14V186.7l242.25-72.68c9-2.69 18.47-2.7 27.53.02L544 186.69v42.61zm0-76.02L311 83.39c-15.09-4.56-31-4.55-45.97-.02L32 153.29v-39.41l235.76-78.59c7.57-2.53 22.71-5.92 40.48 0L544 113.87v39.41z\"]\n};\nvar faKazoo = {\n prefix: 'fal',\n iconName: 'kazoo',\n icon: [640, 512, [], \"f8c7\", \"M467.91 216.4l-11.31-11.31a8 8 0 0 0-11.32 0L417 233.37l-28.29-28.28a8 8 0 0 0-11.31 0l-11.31 11.31a8 8 0 0 0 0 11.31L394.37 256l-28.28 28.28a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.31 0L417 278.63l28.28 28.28a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0 0-11.32L439.62 256l28.29-28.29a8 8 0 0 0 0-11.31zM609 128H481.68c-19.53-9.89-41.29-16-64.68-16s-45.15 6.11-64.68 16H242.93a128.18 128.18 0 0 0-35.16 4.92L24.21 185.37A32 32 0 0 0 1 216.14v79.72a32 32 0 0 0 23.21 30.77l183.56 52.44a127.81 127.81 0 0 0 35.16 4.93h109.39c19.53 9.89 41.29 16 64.68 16s45.15-6.11 64.68-16H609a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM242.93 352a95.64 95.64 0 0 1-26.37-3.7L33 295.86v-79.72l183.56-52.45a95.9 95.9 0 0 1 26.37-3.69h66.83a143.73 143.73 0 0 0 0 192zM417 368a112 112 0 1 1 112-112 112.12 112.12 0 0 1-112 112zm192-16h-84.76a143.73 143.73 0 0 0 0-192H609z\"]\n};\nvar faKerning = {\n prefix: 'fal',\n iconName: 'kerning',\n icon: [640, 512, [], \"f86f\", \"M416.54 0h-17A8 8 0 0 0 392 5.32l-176.28 496a8 8 0 0 0 7.55 10.68h17a8 8 0 0 0 7.54-5.32l176.29-496A8 8 0 0 0 416.54 0zm-131 96h-17.02a8 8 0 0 0-7.5 5.19L160 371 59 101.19A8 8 0 0 0 51.49 96H34.43a8 8 0 0 0-7.49 10.8l113.8 304a8 8 0 0 0 7.5 5.2h23.53a8 8 0 0 0 7.49-5.2l113.81-304a8 8 0 0 0-7.5-10.8zm327.52 309.2l-113.8-304a8 8 0 0 0-7.49-5.2h-23.53a8 8 0 0 0-7.5 5.2l-113.8 304a8 8 0 0 0 7.49 10.8h17.06a8 8 0 0 0 7.49-5.2L413 320h134l34 90.8a8 8 0 0 0 7.5 5.2h17.05a8 8 0 0 0 7.51-10.8zM425 288l55-147 55 147z\"]\n};\nvar faKey = {\n prefix: 'fal',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M336 32c79.529 0 144 64.471 144 144s-64.471 144-144 144c-18.968 0-37.076-3.675-53.661-10.339L240 352h-48v64h-64v64H32v-80l170.339-170.339C195.675 213.076 192 194.968 192 176c0-79.529 64.471-144 144-144m0-32c-97.184 0-176 78.769-176 176 0 15.307 1.945 30.352 5.798 44.947L7.029 379.716A24.003 24.003 0 0 0 0 396.686V488c0 13.255 10.745 24 24 24h112c13.255 0 24-10.745 24-24v-40h40c13.255 0 24-10.745 24-24v-40h19.314c6.365 0 12.47-2.529 16.971-7.029l30.769-30.769C305.648 350.055 320.693 352 336 352c97.184 0 176-78.769 176-176C512 78.816 433.231 0 336 0zm48 108c11.028 0 20 8.972 20 20s-8.972 20-20 20-20-8.972-20-20 8.972-20 20-20m0-28c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faKeySkeleton = {\n prefix: 'fal',\n iconName: 'key-skeleton',\n icon: [512, 512, [], \"f6f3\", \"M329.37 137.37c-12.49 12.5-12.49 32.76 0 45.26 12.5 12.5 32.76 12.5 45.26 0 12.49-12.5 12.49-32.76 0-45.26-12.5-12.49-32.76-12.49-45.26 0zm64-64c-12.49 12.5-12.49 32.76 0 45.26 12.5 12.5 32.76 12.5 45.26 0s12.5-32.76 0-45.26c-12.5-12.49-32.76-12.49-45.26 0zM448 0H320c-35.35 0-64 28.65-64 64v128c0 11.85 3.44 22.8 9.05 32.32L2.34 487.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l48.7-48.7 46.4 46.4c6.16 6.16 16.2 6.22 22.43 0l44.86-44.86c6.19-6.19 6.19-16.23 0-22.43l-46.4-46.4 28.71-28.72 46.4 46.4c6.16 6.16 16.2 6.22 22.43 0l44.86-44.86c6.19-6.19 6.19-16.23 0-22.43l-46.4-46.4 50.72-50.72c9.52 5.61 20.47 9.05 32.32 9.05h128c35.35 0 64-28.65 64-64V64C512 28.65 483.35 0 448 0zM153.71 451.28l-22.43 22.43-35.18-35.18 22.43-22.43 35.18 35.18zm96-96l-22.43 22.43-35.19-35.19 22.43-22.43 35.19 35.19zM480 192c0 17.64-14.36 32-32 32H320c-17.64 0-32-14.36-32-32V64c0-17.64 14.36-32 32-32h128c17.64 0 32 14.36 32 32v128z\"]\n};\nvar faKeyboard = {\n prefix: 'fal',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm16 336c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16V112c0-8.823 7.177-16 16-16h480c8.823 0 16 7.177 16 16v288zM168 268v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm-336 80v-24c0-6.627-5.373-12-12-12H84c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm384 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zM120 188v-24c0-6.627-5.373-12-12-12H84c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm96 0v-24c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12zm-96 152v-8c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"]\n};\nvar faKeynote = {\n prefix: 'fal',\n iconName: 'keynote',\n icon: [512, 512, [], \"f66c\", \"M505.24 274.49l-48.4-96.8A32 32 0 0 0 428.22 160H128v-16c0-39.77 29.25-72.6 67.34-78.72C202.29 83.22 219.6 96 240 96h64c26.51 0 48-21.49 48-48S330.51 0 304 0h-64c-21.37 0-39.27 14.06-45.48 33.36C139.17 40.12 96 86.87 96 144v16H83.78a32 32 0 0 0-28.62 17.69l-48.4 96.8A63.874 63.874 0 0 0 0 303.11V352c0 17.67 14.33 32 32 32h160v96h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-56v-96h160c17.67 0 32-14.33 32-32v-48.89c0-9.94-2.31-19.74-6.76-28.62zM240 32h64c8.82 0 16 7.18 16 16s-7.18 16-16 16h-64c-8.82 0-16-7.18-16-16s7.18-16 16-16zM83.78 192h344.45l48 96H35.78l48-96zM288 480h-64v-96h64v96zm192-128H32v-32h448v32z\"]\n};\nvar faKhanda = {\n prefix: 'fal',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66a16.095 16.095 0 0 0-7.76-1.99c-4.28 0-8.51 1.71-11.6 5.01a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.17-5.14 1.24-11.54-3.57-16.04L255.86 0l-58.99 52.81c-4.75 4.44-5.77 10.81-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-3-3.21-7.34-4.8-11.69-4.8-2.89 0-5.8.7-8.33 2.1C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c3.12 3.65 7.6 5.59 12.15 5.59 2.55 0 5.13-.61 7.5-1.88l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c2.38 1.26 4.95 1.88 7.5 1.88 4.55 0 9.03-1.94 12.15-5.59l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zM115.73 379.85L68.1 324.23c-11.38-13.29-19.78-26.73-24.98-39.96-21.09-53.63-11.41-110.92 22.11-152.16a197.139 197.139 0 0 0-4.95 44c.22 63.87 32.09 123.19 84.73 158.32l24.28 16.91-53.56 28.51zm184.21-270.48c21.58 14.34 35.86 38.83 35.86 66.63 0 28.76-15.38 53.81-38.21 67.91l-12.27-26.93c-8.75-24.52-8.75-51.04 0-75.56l14.62-32.05zm-44.08-66.43l27.85 24.93-27.48 60.28-.38.83-.38-.83-27.49-60.26 27.88-24.95zm-41.75 200.97c-22.83-14.1-38.21-39.15-38.21-67.91 0-27.81 14.29-52.29 35.86-66.63l14.61 32.06c8.75 24.52 8.75 51.03 0 75.56l-12.26 26.92zm41.75 69.43l-27.84-22.81 27.46-60.28.37-.82.37.82 27.47 60.28-27.83 22.81zm219.16-47.84c-5.5 21.29-17.13 42.41-34.57 62.77l-44.17 51.57-53.57-28.51 23.52-16.38c53.31-35.6 85.27-95.01 85.5-159.02 0-14.7-1.64-29.26-4.85-43.43 29.44 36.32 40.6 84.75 28.14 133z\"]\n};\nvar faKidneys = {\n prefix: 'fal',\n iconName: 'kidneys',\n icon: [608, 512, [], \"f5fb\", \"M248.4 224.84l-56.12-29.54c4.75-9.17 10.65-18.07 18.84-26.14 36.75-36.24 41.81-100.27 7.33-138.91C200.55 10.21 176.29 0 151.92 0c-21.63 0-43.33 8.04-60.74 24.39-77.1 72.43-108.5 179.1-81.85 278.4C30.18 380.45 84.84 384 100.09 384c77.87 0 99.25-79.77 87.85-122.11-4.33-16.25-5.97-22.32-5.01-35.72l51.87 27.3c5.15 2.71 8.4 8.25 8.4 14.31V504c0 4.42 3.4 8 7.6 8H266c4.2 0 7.6-3.58 7.6-8V267.77c0-18.18-9.76-34.8-25.2-42.93zm-92.72 34.45l3.02 11.32c21.86 81.24-95.2 116.37-117.08 34.76l-3.03-11.27c-23.45-87.4 4.46-181.6 72.83-245.83C122.59 37.78 136.97 32 151.92 32c34.53 0 62.78 30.46 60.78 67.63-.92 17.06-8.1 32.73-20.22 44.11-33.91 31.83-47.67 75.05-36.8 115.55zm361.14-234.9C499.41 8.04 477.71 0 456.08 0c-24.36 0-48.63 10.21-66.51 30.25-34.48 38.64-29.42 102.67 7.33 138.91 8.19 8.08 14.09 16.98 18.83 26.14l-56.12 29.54c-15.45 8.13-25.2 24.75-25.2 42.93V504c0 4.42 3.4 8 7.6 8h15.2c4.2 0 7.6-3.58 7.6-8V267.78c0-6.06 3.25-11.6 8.41-14.31l51.86-27.3c.96 13.4-.68 19.47-5.01 35.72C408.66 304.23 430.04 384 507.91 384c15.25 0 69.91-3.55 90.76-81.21 26.65-99.3-4.75-205.98-81.85-278.4zm52.6 269.7l-3.03 11.27c-21.89 81.61-138.95 46.49-117.08-34.76l3.02-11.32c10.86-40.5-2.89-83.71-36.81-115.55-12.12-11.38-19.3-27.05-20.22-44.11-2-37.17 26.25-67.63 60.78-67.63 14.95 0 29.33 5.78 40.5 16.27 68.38 64.24 96.29 158.43 72.84 245.83z\"]\n};\nvar faKiss = {\n prefix: 'fal',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm56-164c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faKissBeam = {\n prefix: 'fal',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm56-164c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zm160 0c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fal',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M499.6 392.3c-5.2-13.6-15.2-24.3-27.4-31.8 15-31.8 23.8-67 23.8-104.5C496 119 385 8 248 8S0 119 0 256s111 248 248 248c36.1 0 70.2-8.1 101.2-22.1 9.5 11.6 24.7 17.8 40.7 13.7l65.4-16.9c37.5-9.8 58.3-49.8 44.3-86.4zm-176.4 10.1l13.8 49.9c-27.2 12.5-57.2 19.7-89 19.7-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216c0 33.9-8 65.9-22 94.4-1-.1-18.6-30.4-56.1-30.4-41.9 0-74.5 39.8-62.7 82.4zm124 45.3l-65.4 16.9c-4 1.1-8.5-1.3-9.8-5.6l-18-65.1c-5.2-18.9 6.9-38.3 26.8-41.4 17.7-2.8 34 9.5 38.6 26l1.8 6.6 6.7-1.7c14.3-3.7 34.7 1.7 41.8 20.4 7.2 18.8-3.5 38.9-22.5 43.9zM304 308c0-19.2-28.7-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.7 13.5 20.7 21.5s-7.7 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.7 13.5 20.7 21.5s-7.7 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm235.8 46.1c-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-1.8 10.9 11.3 18.4 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.6 7.5 21.6.2 19.8-10.8z\"]\n};\nvar faKite = {\n prefix: 'fal',\n iconName: 'kite',\n icon: [640, 512, [], \"f6f4\", \"M608 0H345.5c-14.9 0-27.8 10.3-31.2 24.8l-83.5 361.8-88.2 88.2c-10.5 10.4-30.6 2-30.6-12.7V356.6l12 9.2c7.4 5.7 16.2 8.7 25.3 8.7 23.5 0 42.7-19.9 42.7-44.3V278c0-24.4-19.2-44.3-42.7-44.3-9.2 0-17.9 3-25.3 8.7l-12 9.2V224c0-44.2-35.8-80-80-80H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h24c26.5 0 48 21.5 48 48v27.4l-12-9.2c-7.4-5.7-16.2-8.7-25.3-8.7-23.5.1-42.7 20-42.7 44.4v52.2c0 24.4 19.2 44.3 42.7 44.3 9.2 0 17.9-3 25.3-8.7l12-9.2v103.1c0 25.7 18.3 48.9 43.8 52 15.5 1.8 30.5-3.4 41.4-14.3l88.2-88.2 361.8-83.5c14.5-3.4 24.8-16.3 24.8-31.2V32c0-17.7-14.3-32-32-32zM48.6 340.3c-7.1 5.4-16.6-.4-16.6-10.2v-52.2c0-9.8 9.5-15.6 16.6-10.2L96 304l47.4-36.3c7.1-5.4 16.6.4 16.6 10.2v52.2c0 9.8-9.5 15.6-16.6 10.2L96 304zM585.4 32L476 141.4 366.6 32zM340.9 51.6L453.4 164 273.5 343.9zm-44.8 314.9L476 186.6 588.4 299zM608 273.4L498.6 164 608 54.6z\"]\n};\nvar faKiwiBird = {\n prefix: 'fal',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M463.99 200c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm98.61 76.02c9.13-17.26 14.34-36.92 13.23-58.04C572.66 157.41 518.3 112 457.65 112h-9.37c-52.82 0-104.26-16.25-147.74-46.24C269.69 44.48 232.32 32 191.99 32c-14.56 0-29.5 1.62-44.67 5.05C76.36 53.08 19.49 110.89 4.43 182.07c-18.61 87.96 23.2 168.34 91.56 207.96V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-66.93c20.02 7.08 41.56 10.93 64 10.93 10.94 0 21.57-1.14 32-2.91V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-67.44c14.23-5.07 27.88-11.38 40.34-19.5C342.08 355.25 393.88 336 448.48 336h15.51c2.58 0 4.99-.61 7.53-.78l74.44 136.44c2.84 5.25 8.28 8.34 14.03 8.34 1.5 0 3-.2 4.5-.64 7.22-2.12 12-9 11.47-16.5L562.6 276.02zm-58.45 52.14c10.54-4.07 20.18-9.66 28.9-16.54l5.73 80.07-34.63-63.53zm17.88-49.1C506.77 295.14 486.16 304 463.99 304h-15.51c-57.3 0-114.36 18.25-169.62 54.25C253.01 375.1 222.97 384 191.99 384c-48.47 0-93.81-21.63-124.37-59.33-30.56-37.71-42.18-87.27-31.88-135.98 12.44-58.81 60.12-107.2 118.64-120.42C166.9 65.44 179.56 64 191.99 64c32.47 0 63.72 9.72 90.38 28.1 49.23 33.95 106.6 51.9 165.91 51.9h9.37c45.36 0 84.04 33.94 86.22 75.65 1.17 22.24-6.59 43.34-21.84 59.41z\"]\n};\nvar faKnifeKitchen = {\n prefix: 'fal',\n iconName: 'knife-kitchen',\n icon: [576, 512, [], \"f6f5\", \"M566.64 65.94L511 9.37C504.76 3.12 496.59 0 488.41 0s-16.35 3.12-22.58 9.37L4.58 464.14C-3.36 472.1-.6 486.3 9.9 489.83 51.69 503.86 98.5 512 144.82 512c72.96 0 144.73-20.19 193.87-69.35l100.45-100.04c11.72-11.67 12.18-30.39 2.11-43.16l11.59-68.83 113.8-119.42c12.48-12.5 12.48-32.76 0-45.26zM317.34 419.6C278.4 458.55 217.13 480 144.82 480c-32.83 0-66.58-4.38-98.97-12.77l261.67-262.38 110.33 114.66L317.34 419.6zm104.7-202.14l-10.5 50.25-81.36-84.55C378.55 136.89 488.22 32 488.41 32l56.36 56.68-122.73 128.78zM432 128c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm32-32c0 8.84 7.16 16 16 16s16-7.16 16-16-7.16-16-16-16-16 7.16-16 16z\"]\n};\nvar faLambda = {\n prefix: 'fal',\n iconName: 'lambda',\n icon: [448, 512, [], \"f66e\", \"M440 448h-72.63c-3.12 0-5.96-1.81-7.26-4.65L178.83 50.59A31.999 31.999 0 0 0 149.78 32H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h136.63c3.12 0 5.96 1.81 7.26 4.65l7.79 16.88L.62 468.92C-1.57 474.19 2.3 480 8.01 480h17.36a7.99 7.99 0 0 0 7.38-4.92l145.17-350.05 155.25 336.38A31.999 31.999 0 0 0 362.22 480H440c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faLamp = {\n prefix: 'fal',\n iconName: 'lamp',\n icon: [416, 512, [], \"f4ca\", \"M413.7 237.8l-71.9-216C337.3 8.6 327.2 0 316 0H112c-10.6 0-20.3 7.7-25 19.9l-84 216C-6.3 259.8 7.2 288 28 288h92.7C86.3 327.8 64 383.9 64 423.6c0 26.1 9.7 50.3 26.2 70.1 9.9 11.9 26.1 18.3 42.7 18.3h150.3c16.6 0 32.8-6.4 42.7-18.3 16.5-19.8 26.2-43.9 26.2-70.1 0-39.7-22.3-95.8-56.7-135.6H388c20.1 0 33.6-26.4 25.7-50.2zM320 423.6c0 17.6-6.5 34.8-18.8 49.6-3.4 4.1-10.5 6.8-18 6.8H132.9c-7.5 0-14.6-2.7-18-6.8-12.3-14.8-18.8-32-18.8-49.6 0-41.7 31-106 70.4-135.6h83.1C289 317.6 320 381.9 320 423.6zM377.4 256H38.6c-4.3 0-7.3-4.2-5.9-8.2 0-.1.1-.2.1-.3L116.7 32h194.7l71.9 215.9v.1c1.4 4-1.7 8-5.9 8z\"]\n};\nvar faLampDesk = {\n prefix: 'fal',\n iconName: 'lamp-desk',\n icon: [512, 512, [], \"e014\", \"M494.42,64H369.14L328.57,23.43A80,80,0,0,0,215.43,136.57l4.69,4.68L116.69,244.67a16.06,16.06,0,0,0-4.07,15.8L158,416H80c-35.09,0-68.12,23.22-78.53,55.2A30.19,30.19,0,0,0,6,498.55,32.64,32.64,0,0,0,32.27,512H351.73A32.64,32.64,0,0,0,378,498.55a30.21,30.21,0,0,0,4.47-27.36C372,439.2,339,416,304,416H191.35L146,260.59l96.74-96.71L256,177.14V302.42A17.53,17.53,0,0,0,273.67,320,17.18,17.18,0,0,0,286,314.82l60.16-60.16C358.6,265.24,374.39,272,392,272a72.08,72.08,0,0,0,72-72c0-17.61-6.75-33.4-17.33-45.87L506.82,94C517.88,82.9,510.05,64,494.42,64ZM304,448c21.6,0,41.84,13.94,47.75,32H31.93c6.25-19.19,26.46-32,48.09-32Zm88-208a38.92,38.92,0,0,1-23.37-7.83l55.54-55.54A38.94,38.94,0,0,1,432,200,40,40,0,0,1,392,240ZM288,267.53V163.88l-49.94-49.94a48,48,0,0,1,67.88-67.88L355.88,96H459.53Z\"]\n};\nvar faLampFloor = {\n prefix: 'fal',\n iconName: 'lamp-floor',\n icon: [384, 512, [], \"e015\", \"M381.38,179.39l-68.57-160A32,32,0,0,0,283.39,0H100.61A32,32,0,0,0,71.19,19.39l-68.57,160A32,32,0,0,0,32,224H176V416H144c-35.09,0-68.12,23.22-78.53,55.2a30.16,30.16,0,0,0,4.47,27.35A32.63,32.63,0,0,0,96.25,512h191.5a32.63,32.63,0,0,0,26.31-13.45,30.18,30.18,0,0,0,4.47-27.36C308.06,439.2,275.06,416,240,416H208V224H352A32,32,0,0,0,381.38,179.39ZM240,448c21.59,0,41.84,13.94,47.75,32L95.91,480c6.25-19.19,26.47-32,48.09-32ZM32,192,100.61,32H283.39L352,192Z\"]\n};\nvar faLandmark = {\n prefix: 'fal',\n iconName: 'landmark',\n icon: [576, 512, [], \"f66f\", \"M565.62 92.11L299.24 2.04C295.62.68 291.81 0 288 0s-7.62.68-11.24 2.04L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM544 128H32v-9.42L288 32l256 86.56V128zm24 352h-24v-64c0-17.67-16.37-32-36.57-32H496V192h-32v192h-96V192h-32v192h-96V192h-32v192h-96V192H80v192H68.57C48.37 384 32 398.33 32 416v64H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h560c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-56 0H64v-62.72c.7-.52 2.21-1.28 4.57-1.28h438.86c2.37 0 3.87.76 4.57 1.28V480z\"]\n};\nvar faLandmarkAlt = {\n prefix: 'fal',\n iconName: 'landmark-alt',\n icon: [512, 512, [], \"f752\", \"M504 480h-24v-80c0-8.8-7.2-16-16-16h-16V256h24c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-24c0-100.5-77.6-183-176-191.2V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24.8C141.6 41 64 123.5 64 224H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h24v128H48c-8.8 0-16 7.2-16 16v80H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM256 64c88.2 0 160 71.8 160 160H96c0-88.2 71.8-160 160-160zm160 192v128h-80V256h80zm-112 0v128h-96V256h96zm-208 0h80v128H96V256zm352 224H64v-64h384v64z\"]\n};\nvar faLanguage = {\n prefix: 'fal',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M616 96H24c-13.255 0-24 10.745-24 24v272c0 13.255 10.745 24 24 24h592c13.255 0 24-10.745 24-24V120c0-13.255-10.745-24-24-24zM304 384H32V128h272v256zm304 0H336V128h272v256zM91.088 352h10.34a12 12 0 0 0 11.397-8.243l13.508-40.973h67.335l13.508 40.973A12.001 12.001 0 0 0 218.573 352h10.339c8.276 0 14.067-8.18 11.319-15.985l-59.155-168A12 12 0 0 0 169.757 160h-19.513a12 12 0 0 0-11.319 8.014l-59.155 168C77.021 343.82 82.812 352 91.088 352zm60.663-128.991c3.787-10.818 8.113-29.747 8.113-29.747h.541s4.057 18.929 7.572 29.747l17.036 51.38h-50.298l17.036-51.38zM384 212v-8c0-6.627 5.373-12 12-12h68v-20c0-6.627 5.373-12 12-12h8c6.627 0 12 5.373 12 12v20h68c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12h-15.699c-7.505 24.802-23.432 50.942-44.896 74.842 10.013 9.083 20.475 17.265 30.924 24.086 5.312 3.467 6.987 10.475 3.84 15.982l-3.987 6.976c-3.429 6.001-11.188 7.844-16.993 4.091-13.145-8.5-25.396-18.237-36.56-28.5-11.744 10.454-24.506 20.146-37.992 28.68-5.761 3.646-13.409 1.698-16.791-4.221l-3.972-6.95c-3.197-5.594-1.379-12.672 4.058-16.129 11.382-7.237 22.22-15.428 32.24-24.227-10.026-11.272-18.671-22.562-25.687-33.033-3.833-5.721-2.11-13.48 3.803-17.01l6.867-4.099c5.469-3.264 12.55-1.701 16.092 3.592 6.379 9.531 13.719 18.947 21.677 27.953 15.017-16.935 26.721-34.905 33.549-52.033H396c-6.627 0-12-5.373-12-12z\"]\n};\nvar faLaptop = {\n prefix: 'fal',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 368h-48V96c0-35.3-28.72-64-64-64H128c-35.28 0-64 28.7-64 64v272H16c-8.84 0-16 7.16-16 16v48c0 44.11 35.88 80 80 80h480c44.12 0 80-35.89 80-80v-48c0-8.84-7.16-16-16-16zM96 96c0-17.67 14.33-32 32-32h384c17.67 0 32 14.33 32 32v272H391.13c-4.06 0-7.02 3.13-7.92 7.09C379.98 389.35 367.23 400 352 400h-64c-15.23 0-27.98-10.65-31.21-24.91-.9-3.96-3.86-7.09-7.92-7.09H96V96zm512 336c0 26.47-21.53 48-48 48H80c-26.47 0-48-21.53-48-48v-32h194.75c6.59 18.62 24.38 32 45.25 32h96c20.88 0 38.66-13.38 45.25-32H608v32z\"]\n};\nvar faLaptopCode = {\n prefix: 'fal',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M266.34 277.65l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L230.62 208l47.03-47.03c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-64 64c-3.12 3.12-3.12 8.19 0 11.31l64 64c3.13 3.12 8.19 3.12 11.31-.01zm96-11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l64-64c3.12-3.12 3.12-8.19 0-11.31l-64-64c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31L409.38 208l-47.03 47.03a7.994 7.994 0 0 0-.01 11.31zM624 368h-48V96c0-35.3-28.72-64-64-64H128c-35.28 0-64 28.7-64 64v272H16c-8.84 0-16 7.16-16 16v48c0 44.11 35.88 80 80 80h480c44.12 0 80-35.89 80-80v-48c0-8.84-7.16-16-16-16zM96 96c0-17.67 14.33-32 32-32h384c17.67 0 32 14.33 32 32v272H391.13c-4.06 0-7.02 3.13-7.92 7.09C379.98 389.35 367.23 400 352 400h-64c-15.23 0-27.98-10.65-31.21-24.91-.9-3.96-3.86-7.09-7.92-7.09H96V96zm512 336c0 26.47-21.53 48-48 48H80c-26.47 0-48-21.53-48-48v-32h194.75c6.59 18.62 24.38 32 45.25 32h96c20.88 0 38.66-13.38 45.25-32H608v32z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fal',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M624,416H592V288c0-17.68-12.9-32-28.81-32H332.73c-15.91,0-28.8,14.32-28.8,32V416h-32a16,16,0,0,0-16,16v37.34A42.82,42.82,0,0,0,298.53,512H597.39A42.83,42.83,0,0,0,640,469.33V432A16,16,0,0,0,624,416ZM335.93,288H560V416h-224ZM608,469.26A10.76,10.76,0,0,1,597.39,480H298.64a10.78,10.78,0,0,1-10.72-10.67V448H608ZM197.28,160A21.41,21.41,0,0,0,175.9,181.3v85.35A21.42,21.42,0,0,0,197.28,288h74.64a64.32,64.32,0,0,1,32-56V181.3A21.44,21.44,0,0,0,282.59,160Zm74.64,96h-64V192h64Zm-176,112V168a18.8,18.8,0,0,0-.81-4L239.91,37.22l144,126V224h32V191.25L453.34,224h20a15.71,15.71,0,0,0,6.2-12.33A18.31,18.31,0,0,0,474.49,200L416,148.72V48a16,16,0,0,0-32,0v72.75L250.45,4a16,16,0,0,0-21.07,0L5.33,200A18.24,18.24,0,0,0,0,211.89a16,16,0,0,0,16,16,18.62,18.62,0,0,0,10.4-3.83l37.47-32.82V368a48.1,48.1,0,0,0,48,48h112V384h-112A16,16,0,0,1,95.88,368Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fal',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M624 368h-48V96a64.07 64.07 0 0 0-64-64H128a64.07 64.07 0 0 0-64 64v272H16a16 16 0 0 0-16 16v48a80.09 80.09 0 0 0 80 80h480a80.09 80.09 0 0 0 80-80v-48a16 16 0 0 0-16-16zM96 96a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32v272H391.13c-4.06 0-7 3.13-7.92 7.09A32 32 0 0 1 352 400h-64a32 32 0 0 1-31.21-24.91c-.9-4-3.86-7.09-7.92-7.09H96zm512 336a48.05 48.05 0 0 1-48 48H80a48.05 48.05 0 0 1-48-48v-32h194.75A48.06 48.06 0 0 0 272 432h96a48 48 0 0 0 45.25-32H608zM288 312a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h56z\"]\n};\nvar faLasso = {\n prefix: 'fal',\n iconName: 'lasso',\n icon: [576, 512, [], \"f8c8\", \"M288 0C126.5 0 0 77.31 0 176c0 46.78 29.06 90.62 81.81 123.45 4.54 2.82 9.51 5.58 14.7 8.34C93.28 333.29 117.4 352 144 352a55.73 55.73 0 0 0 19.65-3.58c17.26 15.75 29.07 36.41 28.32 67.77C191.11 451.85 161 480 125.38 480H40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h84.61c54.33 0 99.47-44.5 99.39-98.83 0-29.05-8.41-51.28-21.06-68.84A464.82 464.82 0 0 0 288 352c161.5 0 288-77.31 288-176S449.5 0 288 0zm0 320a422.74 422.74 0 0 1-96.36-11c-1.86-20.67-22.35-37-47.64-37a53.72 53.72 0 0 0-29.64 8.76c-5.36-2.8-11-5.6-15.64-8.46C55.69 245.52 32 211.33 32 176 32 97.94 149.22 32 288 32s256 65.94 256 144-117.22 144-256 144z\"]\n};\nvar faLaugh = {\n prefix: 'fal',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm152.7 400.7c-19.8 19.8-43 35.4-68.7 46.3-26.6 11.3-54.9 17-84.1 17s-57.5-5.7-84.1-17c-25.7-10.9-48.8-26.5-68.7-46.3-19.8-19.8-35.4-43-46.3-68.7-11.3-26.6-17-54.9-17-84.1s5.7-57.5 17-84.1c10.9-25.7 26.5-48.8 46.3-68.7 19.8-19.8 43-35.4 68.7-46.3 26.6-11.3 54.9-17 84.1-17s57.5 5.7 84.1 17c25.7 10.9 48.8 26.5 68.7 46.3 19.8 19.8 35.4 43 46.3 68.7 11.3 26.6 17 54.9 17 84.1s-5.7 57.5-17 84.1c-10.8 25.8-26.4 48.9-46.3 68.7zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm215 64H113c-9.6 0-17.1 8.4-15.9 18 8.8 71 69.4 126 142.9 126h16c73.4 0 134-55 142.9-126 1.2-9.6-6.3-18-15.9-18zM256 400h-16c-50.2 0-93.5-33.3-107.4-80h230.8c-13.9 46.7-57.2 80-107.4 80z\"]\n};\nvar faLaughBeam = {\n prefix: 'fal',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm152.7 400.7c-19.8 19.8-43 35.4-68.7 46.3-26.6 11.3-54.9 17-84.1 17s-57.5-5.7-84.1-17c-25.7-10.9-48.8-26.5-68.7-46.3-19.8-19.8-35.4-43-46.3-68.7-11.3-26.6-17-54.9-17-84.1s5.7-57.5 17-84.1c10.9-25.7 26.5-48.8 46.3-68.7 19.8-19.8 43-35.4 68.7-46.3 26.6-11.3 54.9-17 84.1-17s57.5 5.7 84.1 17c25.7 10.9 48.8 26.5 68.7 46.3 19.8 19.8 35.4 43 46.3 68.7 11.3 26.6 17 54.9 17 84.1s-5.7 57.5-17 84.1c-10.8 25.8-26.4 48.9-46.3 68.7zM287 227.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.6 11 11.9 15.1 4.5zm-160 0l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM383 288H113c-9.6 0-17.1 8.4-15.9 18 8.8 71 69.4 126 142.9 126h16c73.4 0 134-55 142.9-126 1.2-9.6-6.3-18-15.9-18zM256 400h-16c-50.2 0-93.5-33.3-107.4-80h230.8c-13.9 46.7-57.2 80-107.4 80z\"]\n};\nvar faLaughSquint = {\n prefix: 'fal',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm152.7 400.7c-19.8 19.8-43 35.4-68.7 46.3-26.6 11.3-54.9 17-84.1 17s-57.5-5.7-84.1-17c-25.7-10.9-48.8-26.5-68.7-46.3-19.8-19.8-35.4-43-46.3-68.7-11.3-26.6-17-54.9-17-84.1s5.7-57.5 17-84.1c10.9-25.7 26.5-48.8 46.3-68.7 19.8-19.8 43-35.4 68.7-46.3 26.6-11.3 54.9-17 84.1-17s57.5 5.7 84.1 17c25.7 10.9 48.8 26.5 68.7 46.3 19.8 19.8 35.4 43 46.3 68.7 11.3 26.6 17 54.9 17 84.1s-5.7 57.5-17 84.1c-10.8 25.8-26.4 48.9-46.3 68.7zM281.8 206.3l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.7 4.7-7.7 15.9 0 20.6zm-147.6 48l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM383 288H113c-9.6 0-17.1 8.4-15.9 18 8.8 71 69.4 126 142.9 126h16c73.4 0 134-55 142.9-126 1.2-9.6-6.3-18-15.9-18zM256 400h-16c-50.2 0-93.5-33.3-107.4-80h230.8c-13.9 46.7-57.2 80-107.4 80z\"]\n};\nvar faLaughWink = {\n prefix: 'fal',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm152.7 400.7c-19.8 19.8-43 35.4-68.7 46.3-26.6 11.3-54.9 17-84.1 17s-57.5-5.7-84.1-17c-25.7-10.9-48.8-26.5-68.7-46.3s-35.4-43-46.3-68.7c-11.3-26.6-17-54.9-17-84.1s5.7-57.5 17-84.1c10.9-25.7 26.5-48.8 46.3-68.7s43-35.4 68.7-46.3c26.6-11.3 54.9-17 84.1-17s57.5 5.7 84.1 17c25.7 10.9 48.8 26.5 68.7 46.3s35.4 43 46.3 68.7c11.3 26.6 17 54.9 17 84.1s-5.7 57.5-17 84.1c-10.8 25.8-26.4 48.9-46.3 68.7zM288 217l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-4-25.2-34.2-42.1-59.9-42.1S272 181 268 206.2c-1.6 11.1 11.6 18.2 20 10.8zm-120 7c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm215 64H113c-9.6 0-17.1 8.4-15.9 18 8.8 71 69.4 126 142.9 126h16c73.4 0 134-55 142.9-126 1.2-9.6-6.3-18-15.9-18zM256 400h-16c-50.2 0-93.5-33.3-107.4-80h230.8c-13.9 46.7-57.2 80-107.4 80z\"]\n};\nvar faLayerGroup = {\n prefix: 'fal',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M512 256.01c0-9.98-5.81-18.94-14.77-22.81l-99.74-43.27 99.7-43.26c9-3.89 14.81-12.84 14.81-22.81s-5.81-18.92-14.77-22.79L271.94 3.33c-10.1-4.44-21.71-4.45-31.87-.02L14.81 101.06C5.81 104.95 0 113.9 0 123.87s5.81 18.92 14.77 22.79l99.73 43.28-99.7 43.26C5.81 237.08 0 246.03 0 256.01c0 9.97 5.81 18.92 14.77 22.79l99.72 43.26-99.69 43.25C5.81 369.21 0 378.16 0 388.14c0 9.97 5.81 18.92 14.77 22.79l225.32 97.76a40.066 40.066 0 0 0 15.9 3.31c5.42 0 10.84-1.1 15.9-3.31l225.29-97.74c9-3.89 14.81-12.84 14.81-22.81 0-9.98-5.81-18.94-14.77-22.81l-99.72-43.26 99.69-43.25c9-3.89 14.81-12.84 14.81-22.81zM45.23 123.87l208.03-90.26.03-.02c1.74-.71 3.65-.76 5.45.02l208.03 90.26-208.03 90.27c-1.81.77-3.74.77-5.48 0L45.23 123.87zm421.54 264.27L258.74 478.4c-1.81.77-3.74.77-5.48 0L45.23 388.13l110.76-48.06 84.11 36.49a40.066 40.066 0 0 0 15.9 3.31c5.42 0 10.84-1.1 15.9-3.31l84.11-36.49 110.76 48.07zm-208.03-41.87c-1.81.77-3.74.77-5.48 0L45.23 256 156 207.94l84.1 36.5a40.066 40.066 0 0 0 15.9 3.31c5.42 0 10.84-1.1 15.9-3.31l84.1-36.49 110.77 48.07-208.03 90.25z\"]\n};\nvar faLayerMinus = {\n prefix: 'fal',\n iconName: 'layer-minus',\n icon: [512, 512, [], \"f5fe\", \"M512 253.21c0-10.08-5.81-19.13-14.77-23.04L271.9 131.33c-10.06-4.43-21.74-4.43-31.81 0L14.81 230.15C5.81 234.08 0 243.13 0 253.21c0 10.08 5.81 19.13 14.77 23.04L114.5 320l-99.7 43.73C5.81 367.65 0 376.7 0 386.79c0 10.08 5.81 19.13 14.77 23.04l225.32 98.82c5.06 2.22 10.48 3.34 15.9 3.34s10.84-1.11 15.9-3.34l225.29-98.81c9-3.93 14.81-12.98 14.81-23.06 0-10.09-5.81-19.14-14.77-23.06l-99.72-43.75 99.69-43.73c9-3.91 14.81-12.96 14.81-23.03zm-45.19 133.57l-208.06 91.26c-1.81.78-3.74.78-5.48 0L45.23 386.78 156 338.2l84.1 36.89c5.06 2.22 10.48 3.34 15.9 3.34s10.84-1.11 15.9-3.34l84.12-36.9 110.79 48.59zm-208.07-42.31c-1.81.78-3.74.78-5.48 0L45.23 253.21l208.03-91.26c1.81-.78 3.74-.78 5.48 0l208.03 91.26-208.03 91.26zM504 64H296c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8z\"]\n};\nvar faLayerPlus = {\n prefix: 'fal',\n iconName: 'layer-plus',\n icon: [512, 512, [], \"f5ff\", \"M504 96h-88V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v88h-88c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h88v88c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88h88c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-6.77 270.71l-99.72-42.87 99.72-42.87c8.35-3.6 12.19-13.23 8.58-21.52-3.65-8.29-13.32-12.13-21.74-8.48l-225.32 96.86c-1.81.77-3.74.77-5.48 0L45.23 258.4l193.45-83.16c8.35-3.59 12.19-13.23 8.58-21.52-3.65-8.28-13.26-12.13-21.74-8.48L14.81 235.81C5.81 239.66 0 248.52 0 258.4c0 9.87 5.81 18.74 14.77 22.58l99.73 42.87-99.7 42.85C5.81 370.55 0 379.42 0 389.31c0 9.87 5.81 18.74 14.77 22.58l225.32 96.84c5.06 2.17 10.48 3.28 15.9 3.28s10.84-1.09 15.9-3.28l225.29-96.83c9-3.85 14.81-12.72 14.81-22.59.01-9.89-5.8-18.76-14.76-22.6zM258.74 478.72c-1.81.77-3.74.77-5.48 0L45.23 389.29 156 341.68l84.1 36.15c5.06 2.17 10.48 3.28 15.9 3.28s10.84-1.09 15.9-3.28l84.12-36.16 110.78 47.62-208.06 89.43z\"]\n};\nvar faLeaf = {\n prefix: 'fal',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-2.9-6.5-8.6-9.7-14.3-9.7-5.3 0-10.7 2.8-14 8.5C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 20.9 3.4 40.9 9.6 59.7C29.3 413 1.4 489.4.9 490.7c-2.9 8.3 1.5 17.5 9.8 20.4 7.9 2.8 17.4-1.1 20.4-9.8.4-1.2 23.9-65.1 87.6-122.7C151.1 438.9 214.7 480 288 480c6.9 0 13.7-.4 20.4-1.1C465.5 467.5 576 326.8 576 154.3c0-50.2-10.8-102.2-29.8-144.6zM305 447.1c-5.9.6-11.6.9-17 .9-63.3 0-117.6-37.2-143.5-90.6C196.3 319 268.6 288 368 288c8.8 0 16-7.2 16-16s-7.2-16-16-16c-102.8 0-179 31-234.8 70.4-3.1-12.4-5.2-25.1-5.2-38.4 0-88.2 71.8-160 160-160h80c63.3 0 121-28.4 159.7-77.2 10.5 32.3 16.3 68.7 16.3 103.5 0 159.6-100.1 282.7-239 292.8z\"]\n};\nvar faLeafHeart = {\n prefix: 'fal',\n iconName: 'leaf-heart',\n icon: [576, 512, [], \"f4cb\", \"M426.2 205.2c-13.9-11.6-47.7-28.5-90.2 14.5-42.6-43-76.4-26.1-90.2-14.5-27.5 23-28.9 64.2-4.3 89.1l84.7 85.6c5.4 5.5 14.3 5.6 19.8 0l84.7-85.6c24.5-24.9 23-66.1-4.5-89.1zm-18.4 66.6L336 344.4l-71.8-72.6c-10.2-10.3-12.3-30 2.1-42 13.7-11.5 31.2-3.4 38.4 3.7l31.4 31.7 31.4-31.7c7.1-7.2 24.6-15.2 38.4-3.7 14.2 12 12.2 31.6 1.9 42zM546.2 9.7c-2.9-6.5-8.6-9.7-14.3-9.7-5.3 0-10.7 2.8-14 8.5C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 20.7 3.4 40.6 9.4 59.2C29.3 412.2 2 487.5.9 490.7c-2.9 8.3 1.5 17.4 9.8 20.4 7.6 2.7 17.3-.8 20.4-9.8.2-.7 24.2-65.4 87.5-122.9 15.5 29 75.2 112.6 189.8 100.5C465.5 467.6 576 326.8 576 154.3c0-50.2-10.8-102.2-29.8-144.6zM305 447.1c-97 10.2-177-66.4-177-159.1 0-88.2 71.8-160 160-160h80c63.3 0 121-28.4 159.7-77.2 10.5 32.3 16.3 68.7 16.3 103.5 0 159.6-100.1 282.7-239 292.8z\"]\n};\nvar faLeafMaple = {\n prefix: 'fal',\n iconName: 'leaf-maple',\n icon: [512, 512, [], \"f6f6\", \"M496.06 163.47l-27.34-16.41 8.44-75.97c2.14-19.5-13.61-38.41-36.25-36.27l-75.97 8.45-16.41-27.34C342.62 6.11 332.28.16 320.81 0c-10.59-.02-21.97 5.53-28.12 15.2l-42.91 67.45c-8.33-22.52-32.9-24.41-42.53-19.2l-13.81 7.41-35.09-39.72c-6.17-7.71-15.42-12.31-25.62-12.31-10.03 0-19.37 4.47-25.16 11.7L72 70.86l-13.81-7.41c-18.48-9.99-50.1 8.62-43.72 37.31l29.41 142.69-24 10.3c-26.45 11.34-26.45 49 0 60.34l108.79 46.62L4.69 484.69c-6.25 6.25-6.25 16.38 0 22.62C7.81 510.44 11.91 512 16 512s8.19-1.56 11.31-4.69l123.98-123.98 46.62 108.74c5.19 12.18 17.11 19.92 30.19 19.92 13.12 0 24.97-7.8 30.19-19.91l10.25-23.98L411 497.5c23.83 5.29 47.82-17.22 38.97-40l-8.84-17.5 39.75-35.09c16.65-13.35 16.07-38.02.34-50.97l-40.09-35.38 7.41-13.8c6.34-11.73 1.1-35.19-19.22-42.52l67.5-42.94c20.67-13.17 20.05-43.34-.76-55.83zM342.94 279.28c-15.25 9.71-5.02 33.47 12.56 29l62.78-14.8-17.34 32.3 60.43 53.51-60.43 53.49 17.78 33.12-169.32-34.42-22.06 48.02-51.68-120.54L331.3 203.32c6.25-6.25 6.25-16.38 0-22.62-6.25-6.25-16.37-6.25-22.62 0L153.16 336.21 32.5 283.16l48-20.58L46.87 93.69l32.31 17.36 54.66-59.33 52.41 59.33 33.41-17.95.16.47-16.09 62.94c-4.45 17.53 19.18 27.83 29 12.56L321.1 32.41l26.97 44.94 97.28-9.78-10.69 96.37 44.97 28.38-136.69 86.96z\"]\n};\nvar faLeafOak = {\n prefix: 'fal',\n iconName: 'leaf-oak',\n icon: [512, 512, [], \"f6f7\", \"M511.52 207.17c-4.14-37.69-37.21-54.28-44.63-58.83 14.26-48.71-4.46-75.76-16.31-86.93-11.18-11.85-38.21-30.57-86.93-16.31-4.55-7.41-21.14-40.48-58.83-44.63-46.25-5.04-64.93 30.95-85.61 67.47-27.94-22.58-51.06-18.94-58.25-17.53-73.71 14.56-55.51 117.73-54.29 129.09-34.93-9.76-74.01 11.67-74.01 65.41 0 38.62 28.68 72.88 21.39 92.19-13.25 36.77-11.6 70.13 3.85 94.38L4.69 484.69c-6.25 6.25-6.25 16.38 0 22.62C7.81 510.44 11.91 512 16 512s8.19-1.56 11.31-4.69l53.21-53.21c24.24 15.45 57.61 17.09 94.38 3.85 19.31-7.29 53.57 21.39 92.19 21.39 53.74 0 75.17-39.08 65.41-74.01 11.37 1.23 114.53 19.42 129.09-54.28 1.42-7.19 5.05-30.31-17.53-58.26 36.51-20.69 72.51-39.37 67.46-85.62zm-41.18 30.61c-5.96 6.43-12.2 10.09-75.13 45.99 23.41 28.45 22.54 27.29 25.54 31.12 21.12 27.08 4.55 45.26-10.47 53.84-24 13.73-40.15 8.24-139.22-1.97 0 0 26.31 37.53 27.06 38.86 16.36 28.49-10.66 48.05-44.53 40.27-15.59-3.58-31.98-12.57-50-17.59-37.01-10.42-70.39 16.78-99.94 2.68l227.66-227.66c6.25-6.25 6.25-16.38 0-22.62-6.25-6.25-16.38-6.25-22.63 0L81.02 408.35c-14.09-29.55 13.1-62.93 2.68-99.94-5.02-18.02-14-34.41-17.59-50-7.79-33.87 11.77-60.89 40.26-44.53 1.33.75 38.86 27.06 38.86 27.06-10.21-99.07-15.7-115.21-1.96-139.22 8.58-15.03 26.76-31.59 53.84-10.47 3.84 2.99 2.68 2.12 31.13 25.53 35.9-62.92 39.56-69.16 45.99-75.12 19.92-18.42 48.37-9 59.66 17.06 6.3 14.35 22.94 21.65 38.73 17.1 24.38-7.15 43.5-4.29 55.35 8.22 12.51 11.85 15.37 30.97 8.22 55.34-4.56 15.8 2.75 32.44 17.09 38.73 26.06 11.3 35.48 39.75 17.06 59.67z\"]\n};\nvar faLemon = {\n prefix: 'fal',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C473.784 7.709 454.948 0 437.954 0c-8.734 0-16.98 2.035-24.007 6.129-58.912 34.315-181.245-53.083-321.073 86.745C-46.948 232.697 40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.08 23.08 54.378 28.899 75.095 16.832 58.902-34.31 181.245 53.081 321.068-86.743C558.949 279.304 471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM478.22 81.95c-44.546 76.475 49.666 183.163-81.721 314.55-131.434 131.434-238.029 37.148-314.547 81.72-20.528 11.956-60.128-27.64-48.171-48.167 44.547-76.475-49.667-183.163 81.721-314.55C246.942-15.939 353.523 78.359 430.053 33.78c19.978-11.637 60.439 27.102 48.167 48.17zm-218.749 29.669c-31.89 7.086-64.973 26.511-93.157 54.694-28.184 28.185-47.608 61.268-54.694 93.157-1.657 7.457-8.271 12.533-15.604 12.533-1.149 0-2.316-.125-3.485-.385-8.626-1.917-14.065-10.464-12.148-19.09 8.391-37.756 30.872-76.41 63.306-108.843 32.433-32.434 71.087-54.915 108.843-63.306 8.628-1.919 17.173 3.522 19.09 12.148s-3.525 17.175-12.151 19.092z\"]\n};\nvar faLessThan = {\n prefix: 'fal',\n iconName: 'less-than',\n icon: [320, 512, [], \"f536\", \"M0 261.83c0 3.02 1.7 5.78 4.4 7.14l289.73 146.18c3.95 1.98 8.76.37 10.73-3.58l14.29-28.62c1.97-3.95.37-8.75-3.58-10.73L83.13 256l232.44-116.22c3.95-1.97 5.55-6.78 3.58-10.73l-14.29-28.62c-1.97-3.95-6.78-5.56-10.73-3.58L4.42 241.77A7.985 7.985 0 0 0 0 248.92v12.91z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fal',\n iconName: 'less-than-equal',\n icon: [384, 512, [], \"f537\", \"M347.58 308.22L115.13 192 347.58 75.78c3.95-1.97 5.55-6.78 3.58-10.73l-14.29-28.62a7.986 7.986 0 0 0-10.73-3.58L36.4 179.02a7.992 7.992 0 0 0-4.4 7.14v12.91c0 3.03 1.71 5.8 4.42 7.15l289.71 144.92c3.95 1.98 8.76.38 10.73-3.58l14.29-28.62c1.98-3.94.38-8.74-3.57-10.72zM0 440v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8z\"]\n};\nvar faLevelDown = {\n prefix: 'fal',\n iconName: 'level-down',\n icon: [256, 512, [], \"f149\", \"M252.478 408.503l-99.974 99.975c-4.697 4.697-12.311 4.697-17.008 0l-99.974-99.975c-4.696-4.697-4.696-12.311 0-17.008l8.503-8.503c4.697-4.697 12.311-4.697 17.007 0L126 447.959V36H24.024a11.996 11.996 0 0 1-8.485-3.515l-12-12C-4.021 12.926 1.333 0 12.024 0H138c13.255 0 24 10.745 24 24v423.959l64.967-64.966c4.697-4.697 12.311-4.697 17.007 0l8.503 8.503c4.697 4.696 4.697 12.31.001 17.007z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fal',\n iconName: 'level-down-alt',\n icon: [256, 512, [], \"f3be\", \"M216.01 384h-53.986V24c0-13.255-10.745-24-24-24h-118C9.333 0 3.979 12.926 11.539 20.485l12 12A12 12 0 0 0 32.024 36h94v348H72.037c-29.564 0-43.064 36.535-21.26 55.917l71.987 64c12.125 10.777 30.395 10.777 42.52 0l71.986-64C259.082 420.528 245.562 384 216.01 384zm.014 32l-72 64-72-64h144z\"]\n};\nvar faLevelUp = {\n prefix: 'fal',\n iconName: 'level-up',\n icon: [256, 512, [], \"f148\", \"M252.478 103.497L152.504 3.522c-4.697-4.697-12.311-4.697-17.008 0l-99.974 99.975c-4.696 4.697-4.696 12.311 0 17.008l8.503 8.503c4.697 4.697 12.311 4.697 17.007 0L126 64.041V476H24.024a11.996 11.996 0 0 0-8.485 3.515l-12 12C-4.021 499.074 1.333 512 12.024 512H138c13.255 0 24-10.745 24-24V64.041l64.967 64.966c4.697 4.697 12.311 4.697 17.007 0l8.503-8.503c4.697-4.696 4.697-12.31.001-17.007z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fal',\n iconName: 'level-up-alt',\n icon: [256, 512, [], \"f3bf\", \"M237.27 72.083l-71.986-64c-12.125-10.777-30.395-10.777-42.52 0l-71.987 64C28.973 91.465 42.473 128 72.037 128h53.987v348h-94a11.996 11.996 0 0 0-8.485 3.515l-12 12C3.979 499.074 9.333 512 20.024 512h118c13.255 0 24-10.745 24-24V128h53.986c29.552 0 43.072-36.528 21.26-55.917zM72.024 96l72-64 72 64h-144z\"]\n};\nvar faLifeRing = {\n prefix: 'fal',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm168.766 113.176l-62.885 62.885a128.711 128.711 0 0 0-33.941-33.941l62.885-62.885a217.323 217.323 0 0 1 33.941 33.941zM256 352c-52.935 0-96-43.065-96-96s43.065-96 96-96 96 43.065 96 96-43.065 96-96 96zM363.952 68.853l-66.14 66.14c-26.99-9.325-56.618-9.33-83.624 0l-66.139-66.14c66.716-38.524 149.23-38.499 215.903 0zM121.176 87.234l62.885 62.885a128.711 128.711 0 0 0-33.941 33.941l-62.885-62.885a217.323 217.323 0 0 1 33.941-33.941zm-52.323 60.814l66.139 66.14c-9.325 26.99-9.33 56.618 0 83.624l-66.139 66.14c-38.523-66.715-38.5-149.229 0-215.904zm18.381 242.776l62.885-62.885a128.711 128.711 0 0 0 33.941 33.941l-62.885 62.885a217.366 217.366 0 0 1-33.941-33.941zm60.814 52.323l66.139-66.14c26.99 9.325 56.618 9.33 83.624 0l66.14 66.14c-66.716 38.524-149.23 38.499-215.903 0zm242.776-18.381l-62.885-62.885a128.711 128.711 0 0 0 33.941-33.941l62.885 62.885a217.323 217.323 0 0 1-33.941 33.941zm52.323-60.814l-66.14-66.14c9.325-26.99 9.33-56.618 0-83.624l66.14-66.14c38.523 66.715 38.5 149.229 0 215.904z\"]\n};\nvar faLightCeiling = {\n prefix: 'fal',\n iconName: 'light-ceiling',\n icon: [512, 512, [], \"e016\", \"M272,192.74V0H240V192.74C117.11,200.21,17.4,292.62.32,411.64-2.43,430.83,13,448,32.56,448H177.62a80,80,0,0,0,156.76,0H479.44c19.56,0,35-17.18,32.24-36.37C494.6,292.62,394.89,200.21,272,192.74ZM256,480a48,48,0,0,1-45.24-32h90.48A48,48,0,0,1,256,480ZM32,416.18C47.72,306.62,144,224,256,224s208.28,82.61,223.44,192Z\"]\n};\nvar faLightSwitch = {\n prefix: 'fal',\n iconName: 'light-switch',\n icon: [384, 512, [], \"e017\", \"M256,96H128a32,32,0,0,0-32,32V384a32,32,0,0,0,32,32H256a32,32,0,0,0,32-32V128A32,32,0,0,0,256,96Zm0,288H128V272H256Zm0-144H128V128H256ZM320,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H320a64,64,0,0,0,64-64V64A64,64,0,0,0,320,0Zm32,448a32,32,0,0,1-32,32H214.38a23.7,23.7,0,0,0,1.61-8,24,24,0,0,0-48,0,23.47,23.47,0,0,0,1.62,8H64a32,32,0,0,1-32-32V64A32,32,0,0,1,64,32H169.61A23.47,23.47,0,0,0,168,40a24,24,0,0,0,48,0,23.7,23.7,0,0,0-1.61-8H320a32,32,0,0,1,32,32Z\"]\n};\nvar faLightSwitchOff = {\n prefix: 'fal',\n iconName: 'light-switch-off',\n icon: [384, 512, [], \"e018\", \"M256,96H128a32,32,0,0,0-32,32V384a32,32,0,0,0,32,32H256a32,32,0,0,0,32-32V128A32,32,0,0,0,256,96Zm0,288H128V272H256Zm0-144H128V128H256Zm-32,80H160v32h64ZM320,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H320a64,64,0,0,0,64-64V64A64,64,0,0,0,320,0Zm32,448a32,32,0,0,1-32,32H214.38a23.7,23.7,0,0,0,1.61-8,24,24,0,0,0-48,0,23.47,23.47,0,0,0,1.62,8H64a32,32,0,0,1-32-32V64A32,32,0,0,1,64,32H169.61A23.47,23.47,0,0,0,168,40a24,24,0,0,0,48,0,23.7,23.7,0,0,0-1.61-8H320a32,32,0,0,1,32,32Z\"]\n};\nvar faLightSwitchOn = {\n prefix: 'fal',\n iconName: 'light-switch-on',\n icon: [384, 512, [], \"e019\", \"M224,160H160v32h64ZM320,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H320a64,64,0,0,0,64-64V64A64,64,0,0,0,320,0Zm32,448a32,32,0,0,1-32,32H214.39a23.47,23.47,0,0,0,1.62-8,24,24,0,0,0-48,0,23.7,23.7,0,0,0,1.61,8H64a32,32,0,0,1-32-32V64A32,32,0,0,1,64,32H169.62A23.7,23.7,0,0,0,168,40a24,24,0,0,0,48,0,23.47,23.47,0,0,0-1.62-8H320a32,32,0,0,1,32,32ZM256,96H128a32,32,0,0,0-32,32V384a32,32,0,0,0,32,32H256a32,32,0,0,0,32-32V128A32,32,0,0,0,256,96Zm0,288H128V272H256Zm0-144H128V128H256Z\"]\n};\nvar faLightbulb = {\n prefix: 'fal',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M176 0C73.05 0-.12 83.54 0 176.24c.06 44.28 16.5 84.67 43.56 115.54C69.21 321.03 93.85 368.68 96 384l.06 75.18c0 3.15.94 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84L256 384c2.26-15.72 26.99-63.19 52.44-92.22C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0zm47.94 454.31L206.85 480h-61.71l-17.09-25.69-.01-6.31h95.9v6.31zm.04-38.31h-95.97l-.07-32h96.08l-.04 32zm60.4-145.32c-13.99 15.96-36.33 48.1-50.58 81.31H118.21c-14.26-33.22-36.59-65.35-50.58-81.31C44.5 244.3 32.13 210.85 32.05 176 31.87 99.01 92.43 32 176 32c79.4 0 144 64.6 144 144 0 34.85-12.65 68.48-35.62 94.68zM176 64c-61.75 0-112 50.25-112 112 0 8.84 7.16 16 16 16s16-7.16 16-16c0-44.11 35.88-80 80-80 8.84 0 16-7.16 16-16s-7.16-16-16-16z\"]\n};\nvar faLightbulbDollar = {\n prefix: 'fal',\n iconName: 'lightbulb-dollar',\n icon: [352, 512, [], \"f670\", \"M203.09 183.42l-45-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V96c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 19.97 12.98 37.81 31.58 43.39l45 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.11c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V288c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-19.97-12.98-37.81-31.58-43.39zM176 0C73.05 0-.12 83.54 0 176.24c.06 44.28 16.5 84.67 43.56 115.54C69.21 321.03 93.85 368.68 96 384l.06 75.18c0 3.15.94 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84L256 384c2.26-15.72 26.99-63.19 52.44-92.22C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0zm47.94 454.31L206.85 480h-61.71l-17.09-25.69-.01-6.31h95.9v6.31zm.04-38.31h-95.97l-.07-32h96.08l-.04 32zm60.4-145.32c-13.99 15.96-36.33 48.1-50.58 81.31H118.21c-14.26-33.22-36.59-65.35-50.58-81.31C44.5 244.3 32.13 210.85 32.05 176 31.87 99.01 92.43 32 176 32c79.4 0 144 64.6 144 144 0 34.85-12.65 68.48-35.62 94.68z\"]\n};\nvar faLightbulbExclamation = {\n prefix: 'fal',\n iconName: 'lightbulb-exclamation',\n icon: [352, 512, [], \"f671\", \"M176 248c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-16.47-31.5c.26 4.22 3.76 7.5 7.98 7.5h16.97a8 8 0 0 0 7.98-7.5l7-112c.29-4.61-3.37-8.5-7.98-8.5h-30.97c-4.61 0-8.27 3.89-7.98 8.5l7 112zM176 0C73.05 0-.12 83.54 0 176.24c.06 44.28 16.5 84.67 43.56 115.54C69.21 321.03 93.85 368.68 96 384l.06 75.18c0 3.15.94 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84L256 384c2.26-15.72 26.99-63.19 52.44-92.22C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0zm47.94 454.31L206.85 480h-61.71l-17.09-25.69-.01-6.31h95.9v6.31zm.04-38.31h-95.97l-.07-32h96.08l-.04 32zm60.4-145.32c-13.99 15.96-36.33 48.1-50.58 81.31H118.21c-14.26-33.22-36.59-65.35-50.58-81.31C44.5 244.3 32.13 210.85 32.05 176 31.87 99.01 92.43 32 176 32c79.4 0 144 64.6 144 144 0 34.85-12.65 68.48-35.62 94.68z\"]\n};\nvar faLightbulbOn = {\n prefix: 'fal',\n iconName: 'lightbulb-on',\n icon: [640, 512, [], \"f672\", \"M320,64A112.14,112.14,0,0,0,208,176a16,16,0,0,0,32,0,80.09,80.09,0,0,1,80-80,16,16,0,0,0,0-32Zm0-64C217.06,0,143.88,83.55,144,176.23a175,175,0,0,0,43.56,115.55C213.22,321,237.84,368.69,240,384l.06,75.19a15.88,15.88,0,0,0,2.69,8.83l24.5,36.84A16,16,0,0,0,280.56,512h78.85a16,16,0,0,0,13.34-7.14L397.25,468a16.17,16.17,0,0,0,2.69-8.83L400,384c2.25-15.72,27-63.19,52.44-92.22A175.9,175.9,0,0,0,320,0Zm47.94,454.31L350.84,480H289.12l-17.06-25.69,0-6.31h95.91ZM368,416H272l-.06-32H368Zm60.41-145.31c-14,15.95-36.32,48.09-50.57,81.29H262.22c-14.28-33.21-36.6-65.34-50.6-81.29A143.47,143.47,0,0,1,176.06,176C175.88,99,236.44,32,320,32c79.41,0,144,64.59,144,144A143.69,143.69,0,0,1,428.38,270.69ZM96,176a16,16,0,0,0-16-16H16a16,16,0,0,0,0,32H80A16,16,0,0,0,96,176ZM528,64a16.17,16.17,0,0,0,7.16-1.69l64-32A16,16,0,0,0,584.84,1.69l-64,32A16,16,0,0,0,528,64Zm96,96H560a16,16,0,0,0,0,32h64a16,16,0,0,0,0-32ZM119.16,33.69l-64-32A16,16,0,0,0,40.84,30.31l64,32A16.17,16.17,0,0,0,112,64a16,16,0,0,0,7.16-30.31Zm480,288-64-32a16,16,0,0,0-14.32,28.63l64,32a16,16,0,0,0,14.32-28.63ZM112,288a16.17,16.17,0,0,0-7.16,1.69l-64,32a16,16,0,0,0,14.32,28.63l64-32A16,16,0,0,0,112,288Z\"]\n};\nvar faLightbulbSlash = {\n prefix: 'fal',\n iconName: 'lightbulb-slash',\n icon: [640, 512, [], \"f673\", \"M224 119.3l25.4 20C262.7 113.7 289.2 96 320 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-41 0-76.5 22.4-96 55.3zM320 32c79.4 0 144 64.6 144 144 0 59.1-35.3 94.4-40.3 100.5l25 19.7c2.9-3.5 47.3-47.1 47.3-120.3C496 78.8 417.2 0 320 0c-75.1 0-123.2 43.4-146.9 79.2L198.3 99c19.2-30.3 58.8-67 121.7-67zm317 453.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM262.2 352c-14.3-33.2-36.6-65.4-50.6-81.3-16.2-18.5-27-40.6-32.1-64.2l-35.3-27.8c.7 43.3 16.8 82.8 43.3 113.1 25.7 29.3 50.3 76.9 52.4 92.2l.1 75.2c0 3.1.9 6.2 2.7 8.8l24.5 36.8c3 4.5 8 7.1 13.3 7.1h78.9c5.4 0 10.4-2.7 13.3-7.1l24.5-36.8c1.7-2.6 2.7-5.7 2.7-8.8l.1-75.2c.1-.4.9-2.6 1-3.1L364.3 352zm105.7 102.3l-17 25.7h-61.7l-17.1-25.7V448H368v6.3zm.1-38.3h-96l-.1-32H368z\"]\n};\nvar faLightsHoliday = {\n prefix: 'fal',\n iconName: 'lights-holiday',\n icon: [640, 512, [], \"f7b2\", \"M638.3 77l-4.1-7c-3.4-5.7-10.6-7.6-16.5-4.4-83.2 46-188.4 71.3-297.8 71.3S105.4 111.6 22.2 65.6C16.4 62.3 9.1 64.2 5.8 70l-4.1 7C-1.7 82.9.2 90.5 6.2 93.8c44.5 24.7 94.9 43.6 148.6 56.4l-9.7 23.1-7.4-3.1c-12.2-5.1-26.3.6-31.4 12.8l-21.6 51.4c-18.2 5.5-34.4 19.8-45.4 45.9-20.6 48.9 7.9 129.6 21.2 135.2 13.3 5.6 90.9-30.4 111.5-79.3 11-26.1 9.9-47.6 1.1-64.5l21.6-51.4c5.1-12.2-.6-26.3-12.8-31.4l-7.4-3.1 12.2-28.9c38 7.1 77.3 11.1 117.3 12V192h-8c-13.2 0-24 10.8-24 24v55.8c-14.6 12.2-24 31.6-24 59.9 0 53 57.6 116.4 72 116.4s72-63.3 72-116.4c0-28.3-9.4-47.7-24-59.9V216c0-13.2-10.8-24-24-24h-8v-23.2c40-.9 79.3-4.8 117.3-12l12.2 28.9-7.4 3.1c-12.2 5.1-17.9 19.2-12.8 31.4l21.6 51.4c-8.8 16.9-9.9 38.4 1.1 64.5 20.6 48.9 98.2 84.9 111.5 79.3 13.3-5.6 41.8-86.3 21.2-135.2-11-26.1-27.2-40.3-45.4-45.9L533.8 183c-5.1-12.2-19.2-17.9-31.4-12.8l-7.4 3.1-9.7-23.1c53.8-12.8 104.1-31.8 148.6-56.4 5.9-3.4 7.8-11 4.4-16.8zM142.5 323.7c-10.5 25-46.3 47.6-67.2 56.4-8.3-21.2-17.1-62.5-6.6-87.5 11.6-27.4 28.6-35.3 53.8-24.7s31.5 28.4 20 55.8zm6.6-77.7c-4.4-2.8-9.1-5.4-14.2-7.5-5.1-2.1-10.2-3.7-15.3-4.9l13-30.8 29.5 12.4-13 30.8zm422.2 46.7c10.5 25 1.7 66.3-6.6 87.5-20.9-8.9-56.6-31.4-67.2-56.4-11.6-27.4-5.2-45.1 19.9-55.7 25.2-10.7 42.3-2.9 53.9 24.6zm-63.9-89.9l13 30.8c-5.1 1.2-10.2 2.7-15.3 4.9-5.1 2.1-9.8 4.7-14.2 7.5l-13-30.8 29.5-12.4zM304 224h32v33.4c-5.2-.9-10.5-1.4-16-1.4s-10.8.5-16 1.4V224zm56 107.6c0 27.1-24.2 61.8-40 78.1-15.8-16.3-40-51-40-78.1 0-29.8 12.7-43.6 40-43.6s40 13.9 40 43.6z\"]\n};\nvar faLineColumns = {\n prefix: 'fal',\n iconName: 'line-columns',\n icon: [512, 512, [], \"f870\", \"M504 304H296a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 128H296a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-256H296a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H296a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zM216 432H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-256H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm0 128H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faLineHeight = {\n prefix: 'fal',\n iconName: 'line-height',\n icon: [640, 512, [], \"f871\", \"M175 144c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.63 0l-80 80C-5.64 126-.64 144 15 144h64v224H15C.71 368-6.31 385.31 3.71 395.31l80 80a16 16 0 0 0 22.63 0l80-80C195.65 386 190.65 368 175 368h-64V144zm-38.62 256L95 441.37 53.65 400h82.73zM79 112H53.63L95 70.63 136.36 112H79zm552 128H263a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 128H263a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-256H263a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faLink = {\n prefix: 'fal',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M301.148 394.702l-79.2 79.19c-50.778 50.799-133.037 50.824-183.84 0-50.799-50.778-50.824-133.037 0-183.84l79.19-79.2a132.833 132.833 0 0 1 3.532-3.403c7.55-7.005 19.795-2.004 20.208 8.286.193 4.807.598 9.607 1.216 14.384.481 3.717-.746 7.447-3.397 10.096-16.48 16.469-75.142 75.128-75.3 75.286-36.738 36.759-36.731 96.188 0 132.94 36.759 36.738 96.188 36.731 132.94 0l79.2-79.2.36-.36c36.301-36.672 36.14-96.07-.37-132.58-8.214-8.214-17.577-14.58-27.585-19.109-4.566-2.066-7.426-6.667-7.134-11.67a62.197 62.197 0 0 1 2.826-15.259c2.103-6.601 9.531-9.961 15.919-7.28 15.073 6.324 29.187 15.62 41.435 27.868 50.688 50.689 50.679 133.17 0 183.851zm-90.296-93.554c12.248 12.248 26.362 21.544 41.435 27.868 6.388 2.68 13.816-.68 15.919-7.28a62.197 62.197 0 0 0 2.826-15.259c.292-5.003-2.569-9.604-7.134-11.67-10.008-4.528-19.371-10.894-27.585-19.109-36.51-36.51-36.671-95.908-.37-132.58l.36-.36 79.2-79.2c36.752-36.731 96.181-36.738 132.94 0 36.731 36.752 36.738 96.181 0 132.94-.157.157-58.819 58.817-75.3 75.286-2.651 2.65-3.878 6.379-3.397 10.096a163.156 163.156 0 0 1 1.216 14.384c.413 10.291 12.659 15.291 20.208 8.286a131.324 131.324 0 0 0 3.532-3.403l79.19-79.2c50.824-50.803 50.799-133.062 0-183.84-50.802-50.824-133.062-50.799-183.84 0l-79.2 79.19c-50.679 50.682-50.688 133.163 0 183.851z\"]\n};\nvar faLips = {\n prefix: 'fal',\n iconName: 'lips',\n icon: [640, 512, [], \"f600\", \"M545.25 219c-17.56-7.56-65.56-25.33-131.97-26.89-29.09-.26-43.57 13.79-93.28 13.79-49.64 0-64.6-14.04-93.28-13.79-66.41 1.56-114.41 19.33-131.97 26.89-6.13 2.62-10.53 8.09-11.72 14.62-1.22 6.53.94 13.22 5.78 17.89 115.97 113.38 347.91 111.91 462.38 0 4.84-4.67 7-11.36 5.78-17.89-1.19-6.53-5.59-12-11.72-14.62zM320 304c-100.16 0-164.34-38.81-194.19-62.55 91.6-30.58 135.94-10.52 137.28-10.19 17.59 4.41 37.25 6.61 56.91 6.61s39.31-2.21 56.91-6.61c1.34-.33 45.68-20.39 137.28 10.19C484.34 265.19 420.16 304 320 304zm311.14-108.32C579.47 109.99 466.31 32 417.72 32c0 0-32.57 0-97.72 50-65.15-50-97.72-50-97.72-50-48.59 0-161.75 77.99-213.42 163.68-10.32 17.11-11.63 37.99-3.89 56.38C32.95 318.51 117.59 480 279.28 480h81.43c161.69 0 246.33-161.49 274.32-227.95 7.74-18.38 6.43-39.26-3.89-56.37zm-25.6 43.95C579.16 302.28 502.49 448 360.72 448h-81.43C137.51 448 60.84 302.28 34.46 239.63c-3.85-9.15-3.19-19.14 1.8-27.43 48.4-80.28 151.23-146.83 184.99-148.18 27.32 4.25 64.82 32.28 98.74 58.31 33.92-26.04 71.42-54.07 98.74-58.31 33.77 1.35 136.59 67.9 184.99 148.18 5.01 8.29 5.67 18.29 1.82 27.43z\"]\n};\nvar faLiraSign = {\n prefix: 'fal',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 255.681h-16.255c-6.398 0-11.706 5.02-11.983 11.412-4.877 112.517-82.255 173.397-188.949 173.397h-46.834V240.396l170.631-37.918a12 12 0 0 0 9.397-11.714v-8.195c0-7.677-7.109-13.38-14.603-11.714l-165.425 36.761v-47.219l170.631-37.918a12 12 0 0 0 9.397-11.714v-8.195c0-7.677-7.109-13.38-14.603-11.714l-165.425 36.761V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v93.387L9.397 149.521A12 12 0 0 0 0 161.235v8.196c0 7.677 7.109 13.379 14.603 11.714L64 170.168v47.219L9.397 229.521A12 12 0 0 0 0 241.235v8.195c0 7.677 7.109 13.38 14.603 11.714L64 250.168V468c0 6.627 5.373 12 12 12h83.268c130.519 0 219.608-76.854 224.724-211.914.256-6.78-5.213-12.405-11.998-12.405z\"]\n};\nvar faList = {\n prefix: 'fal',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M88 56H40a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16V72a16 16 0 0 0-16-16zm0 160H40a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16zm0 160H40a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h48a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16zm416 24H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-320H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8V88a8 8 0 0 0-8-8zm0 160H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faListAlt = {\n prefix: 'fal',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 64c8.823 0 16 7.178 16 16v352c0 8.822-7.177 16-16 16H48c-8.823 0-16-7.178-16-16V80c0-8.822 7.177-16 16-16h416m0-32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-336 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm288-148v-24a6 6 0 0 0-6-6H198a6 6 0 0 0-6 6v24a6 6 0 0 0 6 6h212a6 6 0 0 0 6-6zm0 96v-24a6 6 0 0 0-6-6H198a6 6 0 0 0-6 6v24a6 6 0 0 0 6 6h212a6 6 0 0 0 6-6zm0 96v-24a6 6 0 0 0-6-6H198a6 6 0 0 0-6 6v24a6 6 0 0 0 6 6h212a6 6 0 0 0 6-6z\"]\n};\nvar faListMusic = {\n prefix: 'fal',\n iconName: 'list-music',\n icon: [512, 512, [], \"f8c9\", \"M8 224h272a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm152 104a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8zM8 96h272a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zM470 1.64l-96.59 31.88C360.72 37.74 352 50 352 64v312.13C331.66 361.28 303.38 352 272 352c-61.86 0-112 35.82-112 80s50.14 80 112 80 112-35.82 112-80V192l106.12-35.37A32 32 0 0 0 512 126.27V32a32 32 0 0 0-42-30.36zM272 480c-47.14 0-80-25.3-80-48s32.86-48 80-48 80 25.3 80 48-32.86 48-80 48zm208-353.72l-96 32V64h-.56v-.13L480 32z\"]\n};\nvar faListOl = {\n prefix: 'fal',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.84a154.82 154.82 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.3 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.73 6.13-3.2 11.72 2.62 15.94 7.71 4.69 20.39 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM12.1 320H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.33c3.28-10.29 48.33-18.68 48.33-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.45 18.75-4.38 5.59-3 10.84 2.79 15.37l8.58 6.88c5.61 4.56 11 2.47 16.13-2.44a13.4 13.4 0 0 1 9.45-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.1 320zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm488-80H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8V88a8 8 0 0 0-8-8zm0 320H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-160H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h336a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faListUl = {\n prefix: 'fal',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M32.39 224C14.73 224 0 238.33 0 256s14.73 32 32.39 32a32 32 0 0 0 0-64zm0-160C14.73 64 0 78.33 0 96s14.73 32 32.39 32a32 32 0 0 0 0-64zm0 320C14.73 384 0 398.33 0 416s14.73 32 32.39 32a32 32 0 0 0 0-64zM504 80H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8V88a8 8 0 0 0-8-8zm0 160H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0 160H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faLocation = {\n prefix: 'fal',\n iconName: 'location',\n icon: [512, 512, [], \"f601\", \"M504 240h-56.81C439.48 146.76 365.24 72.52 272 64.81V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v56.81C146.76 72.52 72.52 146.76 64.81 240H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56.81c7.71 93.24 81.95 167.48 175.19 175.19V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56.81c93.24-7.71 167.48-81.95 175.19-175.19H504c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM256 416c-88.22 0-160-71.78-160-160S167.78 96 256 96s160 71.78 160 160-71.78 160-160 160zm0-256c-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zm0 160c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faLocationArrow = {\n prefix: 'fal',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M461.9 0c-5.73 0-11.59 1.1-17.39 3.52L28.74 195.41c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 30.01 24.21 47.93 48.74 47.93 17.3 0 34.75-8.9 44.01-28.74l191.9-415.78C522.06 34.89 494.14 0 461.9 0zm17.55 54.08L287.6 469.74c-3.18 6.82-8.24 10.28-15.03 10.28-5.8 0-16.76-3.33-16.76-15.94v-207.9H47.93c-11.45 0-14.64-8.83-15.49-12.63-1.1-4.93-1.27-13.98 9.7-19.1L456.82 33.04c1.71-.71 3.37-1.05 5.09-1.05 5.42 0 11.49 3.65 15.11 9.08 2.19 3.29 4.32 8.41 2.43 13.01z\"]\n};\nvar faLocationCircle = {\n prefix: 'fal',\n iconName: 'location-circle',\n icon: [496, 512, [], \"f602\", \"M307.75 147l-181.94 84c-16.38 7.64-24.78 24.53-20.91 42.05 3.88 17.36 18.34 29.03 36.06 29.03h60.97v60.95c0 17.72 11.66 32.22 29.03 36.06 2.84.62 5.69.94 8.44.94 14.31 0 27.22-8.14 33.62-21.91L357 196.22l.25-.55c5.69-13.64 2.34-29.48-8.5-40.34-10.91-10.92-26.72-14.27-41-8.33zM244 364.67c-1.28 2.72-3.28 3.89-6.12 3.17-2.59-.58-3.94-2.2-3.94-4.81v-92.95h-92.97c-2.59 0-4.22-1.33-4.81-3.97-.62-2.78.44-4.84 3.12-6.08l181.31-83.72c.53-.22 1-.3 1.5-.3 1.91 0 3.47 1.39 4 1.92.62.62 2.56 2.83 1.69 5.25L244 364.67zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216z\"]\n};\nvar faLocationSlash = {\n prefix: 'fal',\n iconName: 'location-slash',\n icon: [640, 512, [], \"f603\", \"M284.5 167l32.2 25.4c1.1-.1 2.1-.3 3.3-.3 31.3 0 57.3 22.6 62.8 52.4l31.8 25.1c.6-4.4 1.4-8.8 1.4-13.4 0-53-43-96-96-96-12.6-.2-24.5 2.4-35.5 6.8zM320 96c88.2 0 160 71.8 160 160 0 19.9-4.1 38.8-10.8 56.4l26.2 20.6c8.3-19 14-39.4 15.8-61H568c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-56.8c-7.7-93.2-82-167.5-175.2-175.2V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56.8c-37.5 3.1-71.6 17.3-99.9 38.8l25.8 20.3C255.6 106.4 286.6 96 320 96zm0 320c-88.2 0-160-71.8-160-160 0-19.9 4.1-38.8 10.8-56.4L144.6 179c-8.3 19-14 39.4-15.8 61H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56.8c7.7 93.2 82 167.5 175.2 175.2V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56.8c37.5-3.1 71.6-17.3 99.9-38.9L410.1 388c-25.7 17.6-56.7 28-90.1 28zm317 69.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM355.5 345l-32.2-25.4c-1.1.1-2.1.3-3.3.3-31.3 0-57.3-22.6-62.8-52.4l-31.8-25.1c-.6 4.4-1.4 8.8-1.4 13.4 0 53 43 96 96 96 12.6.2 24.5-2.4 35.5-6.8z\"]\n};\nvar faLock = {\n prefix: 'fal',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-16v-62.5C384 73.1 312.9.3 224.5 0 136-.3 64 71.6 64 160v64H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zM96 160c0-70.6 57.4-128 128-128s128 57.4 128 128v64H96v-64zm304 320H48c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v192c0 8.8-7.2 16-16 16z\"]\n};\nvar faLockAlt = {\n prefix: 'fal',\n iconName: 'lock-alt',\n icon: [448, 512, [], \"f30d\", \"M224 420c-11 0-20-9-20-20v-64c0-11 9-20 20-20s20 9 20 20v64c0 11-9 20-20 20zm224-148v192c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48h16v-64C64 71.6 136-.3 224.5 0 312.9.3 384 73.1 384 161.5V224h16c26.5 0 48 21.5 48 48zM96 224h256v-64c0-70.6-57.4-128-128-128S96 89.4 96 160v64zm320 240V272c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16z\"]\n};\nvar faLockOpen = {\n prefix: 'fal',\n iconName: 'lock-open',\n icon: [640, 512, [], \"f3c1\", \"M480.5 0C392-.3 320 71.6 320 160v64H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-62.6c0-70.7 56.7-129 127.3-129.4C550.2 31.6 608 89.2 608 160v84c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-82.5C640 73.1 568.9.3 480.5 0zM400 256c8.8 0 16 7.2 16 16v192c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h352z\"]\n};\nvar faLockOpenAlt = {\n prefix: 'fal',\n iconName: 'lock-open-alt',\n icon: [640, 512, [], \"f3c2\", \"M227 417c-11 0-20-9-20-20v-64c0-11 9-20 20-20s20 9 20 20v64c0 11-9 20-20 20zM480.5 0C392-.3 320 71.6 320 160v64H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-62.6c0-70.7 56.7-129 127.3-129.4C550.2 31.6 608 89.2 608 160v84c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-82.5C640 73.1 568.9.3 480.5 0zM400 256c8.8 0 16 7.2 16 16v192c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h352z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fal',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M223.351 320H145V44c0-6.627-5.373-12-12-12h-10c-6.627 0-12 5.373-12 12v276H32.652c-29.388 0-43.268 34.591-23.231 54.627l95.952 96c12.497 12.496 32.757 12.497 45.255 0l95.955-96C266.56 354.65 252.85 320 223.351 320zM128 448l-96-96h192l-96 96z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fal',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M160 351.351V273h276c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H160v-78.348c0-29.388-34.591-43.268-54.627-23.231l-96 95.952c-12.496 12.497-12.497 32.757 0 45.255l96 95.955C125.35 394.56 160 380.85 160 351.351zM32 256l96-96v192l-96-96z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fal',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M288 160.649V239H12c-6.627 0-12 5.373-12 12v10c0 6.627 5.373 12 12 12h276v78.348c0 29.388 34.591 43.268 54.627 23.231l96-95.952c12.496-12.497 12.497-32.757 0-45.255l-96-95.955C322.65 117.44 288 131.15 288 160.649zM416 256l-96 96V160l96 96z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fal',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M32.649 192H111v276c0 6.627 5.373 12 12 12h10c6.627 0 12-5.373 12-12V192h78.348c29.388 0 43.268-34.591 23.231-54.627l-95.952-96c-12.497-12.496-32.757-12.497-45.255 0l-95.955 96C-10.56 157.35 3.15 192 32.649 192zM128 64l96 96H32l96-96z\"]\n};\nvar faLongArrowDown = {\n prefix: 'fal',\n iconName: 'long-arrow-down',\n icon: [256, 512, [], \"f175\", \"M252.485 343.03l-7.07-7.071c-4.686-4.686-12.284-4.686-16.971 0L145 419.887V44c0-6.627-5.373-12-12-12h-10c-6.627 0-12 5.373-12 12v375.887l-83.444-83.928c-4.686-4.686-12.284-4.686-16.971 0l-7.07 7.071c-4.686 4.686-4.686 12.284 0 16.97l116 116.485c4.686 4.686 12.284 4.686 16.971 0l116-116.485c4.686-4.686 4.686-12.284-.001-16.97z\"]\n};\nvar faLongArrowLeft = {\n prefix: 'fal',\n iconName: 'long-arrow-left',\n icon: [448, 512, [], \"f177\", \"M136.97 380.485l7.071-7.07c4.686-4.686 4.686-12.284 0-16.971L60.113 273H436c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H60.113l83.928-83.444c4.686-4.686 4.686-12.284 0-16.971l-7.071-7.07c-4.686-4.686-12.284-4.686-16.97 0l-116.485 116c-4.686 4.686-4.686 12.284 0 16.971l116.485 116c4.686 4.686 12.284 4.686 16.97-.001z\"]\n};\nvar faLongArrowRight = {\n prefix: 'fal',\n iconName: 'long-arrow-right',\n icon: [448, 512, [], \"f178\", \"M311.03 131.515l-7.071 7.07c-4.686 4.686-4.686 12.284 0 16.971L387.887 239H12c-6.627 0-12 5.373-12 12v10c0 6.627 5.373 12 12 12h375.887l-83.928 83.444c-4.686 4.686-4.686 12.284 0 16.971l7.071 7.07c4.686 4.686 12.284 4.686 16.97 0l116.485-116c4.686-4.686 4.686-12.284 0-16.971L328 131.515c-4.686-4.687-12.284-4.687-16.97 0z\"]\n};\nvar faLongArrowUp = {\n prefix: 'fal',\n iconName: 'long-arrow-up',\n icon: [256, 512, [], \"f176\", \"M3.515 168.97l7.07 7.071c4.686 4.686 12.284 4.686 16.971 0L111 92.113V468c0 6.627 5.373 12 12 12h10c6.627 0 12-5.373 12-12V92.113l83.444 83.928c4.686 4.686 12.284 4.686 16.971 0l7.07-7.071c4.686-4.686 4.686-12.284 0-16.97l-116-116.485c-4.686-4.686-12.284-4.686-16.971 0L3.515 152c-4.687 4.686-4.687 12.284 0 16.97z\"]\n};\nvar faLoveseat = {\n prefix: 'fal',\n iconName: 'loveseat',\n icon: [512, 512, [], \"f4cc\", \"M448 193.9v-33.7c0-53.1-43-96.2-96-96.2H160c-53 0-96 43.1-96 96.2v33.7c-36.5 7.5-64 39.8-64 78.6 0 25.1 12.1 48.8 32 63.8v79.6c0 17.7 14.3 32.1 32 32.1h64c17.3 0 31.3-14.7 31.8-32h192.4c.5 17.3 14.5 32 31.8 32h64c17.7 0 32-14.4 32-32.1v-79.6c19.9-15.1 32-38.7 32-63.8 0-38.7-27.5-71.1-64-78.6zm-320 222H64v-97.4c-17.1-10-32-21.1-32-46 0-26.5 21.5-48.1 48-48.1h32c8.8 0 16 7.2 16 16v175.5zM352 384H160v-95.5h192V384zm0-143.6V256H160v-15.6c0-26.5-21.5-48.1-48-48.1H96v-32.1c0-35.4 28.7-64.1 64-64.1h192c35.3 0 64 28.8 64 64.1v32.1h-16c-26.5 0-48 21.6-48 48.1zm96 78.1v97.4h-64V240.4c0-8.8 7.2-16 16-16h32c26.5 0 48 21.6 48 48.1 0 23.9-13.9 35.4-32 46z\"]\n};\nvar faLowVision = {\n prefix: 'fal',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.348 231.63C512.998 135.99 407.86 72 288 72c-36.303 0-71.26 5.877-103.93 16.722L121.889 4.913c-4-5.391-11.612-6.519-17.003-2.519l-6.507 4.828c-5.391 4-6.519 11.613-2.519 17.004l56.926 76.726C91.489 128.594 40.334 174.447 6.637 231.631c-8.979 15.238-8.719 33.949.004 48.739 30.605 51.943 75.611 94.537 129.537 122.627C29.589 259.268 39.873 273.724 34.215 264.124a16.006 16.006 0 0 1 0-16.247 287.008 287.008 0 0 1 16.929-25.491L204.72 429.39c15 3.91 30.42 6.78 46.18 8.54L72.243 197.124a293.367 293.367 0 0 1 33.449-30.602L308.14 439.39c12.42-.74 24.66-2.18 36.68-4.27L131.942 148.202a293.06 293.06 0 0 1 7.594-4.553 292.057 292.057 0 0 1 32.824-16.313l281.751 379.751c4 5.391 11.612 6.519 17.003 2.519l6.507-4.828c5.391-4 6.519-11.613 2.519-17.004l-56.917-76.714c61.284-27.629 112.419-73.491 146.124-130.69a47.961 47.961 0 0 0 .001-48.74zM362.31 328.959l-38.511-51.906c27.52-18.592 35.914-54.676 20.671-83.193v.02c0 14.56-11.8 26.36-26.35 26.36-14.56 0-26.36-11.8-26.36-26.36 0-14.55 11.8-26.35 26.36-26.35h.02c-22.278-11.908-50.192-9.748-70.538 6.823l-34.7-46.77C233.992 112.746 259.945 104 288 104c70.69 0 128 55.52 128 124 0 41.637-21.187 78.478-53.69 100.959zm179.47-64.839c-31.903 54.148-80.569 96.241-138.133 120.555l-22.24-29.975c74.24-52.148 88.248-153.521 32.713-222.709 54.32 25.45 98.59 66.55 127.66 115.89a15.958 15.958 0 0 1 0 16.239z\"]\n};\nvar faLuchador = {\n prefix: 'fal',\n iconName: 'luchador',\n icon: [448, 512, [], \"f455\", \"M224 0C100.3 0 0 100.3 0 224v128c0 88.4 71.6 160 160 160h128c88.4 0 160-71.6 160-160V224C448 100.3 347.7 0 224 0zm192 352c0 70.6-57.4 128-128 128H160c-70.6 0-128-57.4-128-128V224c0-105.9 86.1-192 192-192s192 86.1 192 192v128zM226.5 226.2c-.9-.7-4.2-.7-5.1 0C213.3 188.3 182 160 144 160H76c-6.6 0-12 5.4-12 12v30.7c0 47.1 35.8 85.3 80 85.3h22.4c-7.4 12.2-12.5 23.5-15.8 32.9-30.9 4.6-54.6 31-54.6 63.1 0 35.5 29.4 64 64.9 64H287c35.5 0 64.9-28.5 64.9-64 0-32.1-23.7-58.5-54.6-63.1-3.3-9.5-8.4-20.7-15.8-32.9H304c44.2 0 80-38.2 80-85.3V172c0-6.6-5.4-12-12-12h-68c-37.9 0-69.3 28.3-77.5 66.2zm36.2 93.8h-77.4c6.8-14.8 18.5-33.4 38.7-53.3 20.2 19.9 31.9 38.5 38.7 53.3zM144 256c-26.5 0-48-23.9-48-53.3V192h48c26.5 0 48 23.9 48 53.3v8.7c-.6.7-1.2 1.3-1.8 2H144zm176 128c0 17.6-14.4 32-32 32H160c-17.6 0-32-14.4-32-32s14.4-32 32-32h128c17.6 0 32 14.4 32 32zm32-181.3c0 29.4-21.5 53.3-48 53.3h-46.2c-.6-.7-1.2-1.3-1.8-2v-8.7c0-29.4 21.5-53.3 48-53.3h48v10.7z\"]\n};\nvar faLuggageCart = {\n prefix: 'fal',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 352h320c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32h-64V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v48h-64c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32zm256-224h64v192h-64V128zM320 48c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v48H320V48zm0 80h128v192H320V128zm-96 0h64v192h-64V128zm408 288H128V8c0-4.42-3.58-8-8-8H8C3.58 0 0 3.58 0 8v16c0 4.42 3.58 8 8 8h88v408c0 4.42 3.58 8 8 8h58.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H632c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-424 64c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16zm288 0c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faLungs = {\n prefix: 'fal',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15c-21.68-81.3-56.08-159.15-102.08-231.02C511.89 124.56 497.93 96 453.92 96c-38.72 0-70.1 29.42-70.1 65.71v75.36l-47.81-31.85V8c0-4.42-3.59-8-8.01-8h-16.01c-4.42 0-8.01 3.58-8.01 8v197.22l-47.81 31.85v-75.36c0-36.29-31.38-65.71-70.1-65.71-44.01 0-57.97 28.56-80.1 63.13-46 71.87-80.4 149.72-102.08 231.02C1.3 399.84 0 409.79 0 419.79 0 472.11 45.66 512 98.13 512c18.1 0 24.47-2.87 86.74-19.55 42.21-11.3 71.31-47.47 71.31-88.61v-89.87l-32.02 21.33v68.54c0 26.47-19.56 50.2-47.57 57.7C112.18 478.79 110.55 480 98.13 480c-36.45 0-66.11-27.01-66.11-60.21 0-7.2.95-14.4 2.81-21.39 20.85-78.18 53.86-152.87 98.12-222.01 27.82-43.94 32.14-48.38 53.13-48.38 21 0 38.08 15.12 38.08 33.71v96.69l-98.51 65.63c-3.68 2.45-4.67 7.42-2.22 11.1l8.88 13.31c2.45 3.68 7.42 4.67 11.1 2.22L320 233.01l176.59 117.65c3.68 2.45 8.65 1.46 11.1-2.22l8.88-13.31a8.006 8.006 0 0 0-2.22-11.1l-98.51-65.63v-96.69c0-18.59 17.08-33.71 38.08-33.71 20.99 0 25.31 4.44 53.13 48.38 44.25 69.14 77.27 143.84 98.12 222.01a83.248 83.248 0 0 1 2.81 21.39c0 33.2-29.66 60.21-66.11 60.21-12.42 0-14.05-1.21-78.45-18.46-28.01-7.5-47.57-31.23-47.57-57.7V335.3l-32.02-21.33v89.87c0 41.15 29.1 77.31 71.31 88.61 62.27 16.68 68.64 19.55 86.74 19.55 52.47 0 98.13-39.89 98.13-92.21-.01-10-1.31-19.95-3.9-29.64z\"]\n};\nvar faLungsVirus = {\n prefix: 'fal',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M421.83,421.83a16,16,0,0,0,0-22.62l-8.57-8.58C393.1,370.47,407.38,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.5,0-42.78-34.47-22.62-54.63l8.57-8.57a16,16,0,0,0-22.62-22.63l-8.58,8.58a31.31,31.31,0,0,1-22.39,9.44c-16.45,0-32.23-12.78-32.23-32.07V192a16,16,0,0,0-32,0v12.12c0,19.29-15.78,32.07-32.23,32.07a31.35,31.35,0,0,1-22.4-9.44l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.58a31.38,31.38,0,0,1,22.4-9.43c16.45,0,32.23,12.77,32.23,32.06V448a16,16,0,0,0,32,0V435.88c0-19.29,15.78-32.06,32.23-32.06a31.31,31.31,0,0,1,22.39,9.43l8.58,8.58a16,16,0,0,0,22.62,0Zm-45.07-78.32A64,64,0,0,0,372,371.93c-1.24-.08-2.48-.11-3.73-.11A64.15,64.15,0,0,0,320,393.62a64.17,64.17,0,0,0-48.23-21.8c-1.25,0-2.5,0-3.74.11A64.33,64.33,0,0,0,246.52,320,64.33,64.33,0,0,0,268,268.08c1.24.07,2.49.11,3.74.11A64.2,64.2,0,0,0,320,246.39a64.18,64.18,0,0,0,48.23,21.8c1.25,0,2.49,0,3.73-.11A64.38,64.38,0,0,0,393.5,320,64.11,64.11,0,0,0,376.76,343.51ZM304,288a16,16,0,1,0,16,16A16,16,0,0,0,304,288Zm32,32a16,16,0,1,0,16,16A16,16,0,0,0,336,320ZM204.13,272l-.15-.15-.23.15ZM336,147V8a8,8,0,0,0-8-8H312a8,8,0,0,0-8,8V147a44.88,44.88,0,0,1,32,0ZM201.16,449.07a67.76,67.76,0,0,1-24.57,12.48C112.18,478.8,110.54,480,98.12,480,61.69,480,32,453,32,419.8a83.14,83.14,0,0,1,2.82-21.39,788.37,788.37,0,0,1,98.12-222C160.76,132.45,165.09,128,186.07,128s38.08,15.1,38.08,33.7V182a43.15,43.15,0,0,1,32,7.56V161.7c0-36.28-31.38-65.7-70.11-65.7-44,0-58,28.56-80.09,63.12a820.64,820.64,0,0,0-102.08,231A114.64,114.64,0,0,0,0,419.8C0,472.11,45.66,512,98.12,512c18.11,0,24.47-2.88,86.75-19.55a98.18,98.18,0,0,0,52.57-34.71,45.76,45.76,0,0,1-36.28-8.67Zm434.93-58.91A820.61,820.61,0,0,0,534,159.12C511.88,124.56,497.93,96,453.91,96c-38.72,0-70.11,29.42-70.11,65.7v27.91a47.62,47.62,0,0,1,26.72-8.12,46.57,46.57,0,0,1,5.31.52V161.7c0-18.58,17.08-33.7,38.08-33.7s25.31,4.44,53.12,48.37a789.06,789.06,0,0,1,98.13,222A101.48,101.48,0,0,1,608,419.78C608,453,578.3,480,541.86,480c-12.42,0-14.06-1.2-78.45-18.45a67.76,67.76,0,0,1-24.56-12.46,45.79,45.79,0,0,1-36.29,8.67,98.15,98.15,0,0,0,52.57,34.71C517.39,509.12,523.77,512,541.86,512c52.47,0,98.14-39.89,98.14-92.2A115.09,115.09,0,0,0,636.09,390.16ZM435.88,272h.36l-.21-.14Z\"]\n};\nvar faMace = {\n prefix: 'fal',\n iconName: 'mace',\n icon: [512, 512, [], \"f6f8\", \"M501.02 198.92l-71.37-14.29c-9.77-52.76-51.8-93.84-104.93-102.54l-15.77-71.25c-3.21-14.52-11.27-14.44-14.18.14l-14.29 71.39c-52.64 9.81-93.62 51.75-102.36 104.75l-71.26 15.77c-14.52 3.21-14.44 11.27.14 14.18l71.37 14.29c1.7 9.17 4.68 17.81 8.22 26.17L4.69 439.43c-6.25 6.25-6.25 16.38 0 22.63l45.26 45.26c6.25 6.25 16.38 6.25 22.63 0l182-182.02c9.04 3.8 18.43 6.92 28.38 8.58l15.78 71.28c3.21 14.52 11.27 14.44 14.18-.14l14.29-71.36c52.79-9.7 93.92-51.68 102.68-104.79l71.26-15.77c14.53-3.21 14.44-11.26-.13-14.18zM61.25 473.37l-22.63-22.63 164.53-164.53c6.58 8.45 14.27 15.96 22.74 22.51L61.25 473.37zM304 304c-53.02 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96-42.98 96-96 96zm0-144c-26.47 0-48 21.53-48 48s21.53 48 48 48 48-21.53 48-48-21.53-48-48-48zm0 64c-8.81 0-16-7.17-16-16s7.19-16 16-16 16 7.17 16 16-7.19 16-16 16z\"]\n};\nvar faMagic = {\n prefix: 'fal',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm0-96c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm352 224l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm0 96c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm70.63-306.04L434.04 9.37C427.79 3.12 419.6 0 411.41 0s-16.38 3.12-22.63 9.37L9.37 388.79c-12.5 12.5-12.5 32.76 0 45.25l68.59 68.59c6.25 6.25 14.44 9.37 22.63 9.37s16.38-3.12 22.63-9.37l379.41-379.41c12.49-12.5 12.49-32.76 0-45.26zM100.59 480L32 411.41l258.38-258.4 68.6 68.6L100.59 480zm281.02-281.02l-68.6-68.6L411.38 32h.03L480 100.59l-98.39 98.39z\"]\n};\nvar faMagnet = {\n prefix: 'fal',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M372 32c-19.9 0-36 16.1-36 36v172c0 64-40 96-79.9 96-40 0-80.1-32-80.1-96V68c0-19.9-16.1-36-36-36H36.4C16.4 32 .2 48.3.4 68.4c.3 24.5.6 58.4.7 91.6H0v32h1.1C1 218.3.7 242 0 257.3 0 408 136.2 504 256.8 504 377.5 504 512 408 512 257.3V68c0-19.9-16.1-36-36-36H372zM36.5 68H140v92H37.1c-.1-33.4-.4-67.4-.6-92zM476 258.1c-.1 30.4-6.6 59.3-19.4 85.8-11.9 24.9-29 47.2-50.8 66.3-20.6 18.1-45.2 32.9-71.2 42.9-25.5 9.8-52.4 15-77.9 15-25.5 0-52.5-5.2-78.2-15-26.2-10-51-24.9-71.8-43-22-19.2-39.2-41.5-51.3-66.3-12.9-26.5-19.4-55.3-19.6-85.6.7-15.9 1-39.7 1.1-66.1H140v48c0 49.2 18.9 79.7 34.8 96.6 10.8 11.5 23.5 20.4 37.8 26.5 13.8 5.9 28.5 8.9 43.5 8.9s29.7-3 43.5-8.9c14.3-6.1 27-15 37.7-26.5 15.8-16.9 34.7-47.4 34.7-96.6v-48h102.9c.1 26.2.4 50.1 1.1 66zM372 160V68h103.5c-.3 24.6-.6 58.6-.6 92H372z\"]\n};\nvar faMailBulk = {\n prefix: 'fal',\n iconName: 'mail-bulk',\n icon: [640, 512, [], \"f674\", \"M592 96H240c-26.47 0-48 21.53-48 48v16h32v-16c0-8.84 7.16-16 16-16h352c8.84 0 16 7.16 16 16v224c0 8.84-7.16 16-16 16H416v32h176c26.47 0 48-21.53 48-48V144c0-26.47-21.53-48-48-48zM96 48c0-8.84 7.16-16 16-16h288c8.84 0 16 7.16 16 16v16h32V48c0-26.47-21.53-48-48-48H112C85.53 0 64 21.53 64 48v112h32V48zm464 208c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h64zm-48-64h32v32h-32v-32zm-176 0H48c-26.47 0-48 21.53-48 48v224c0 26.47 21.53 48 48 48h288c26.47 0 48-21.53 48-48V240c0-26.47-21.53-48-48-48zm16 272c0 8.84-7.16 16-16 16H48c-8.84 0-16-7.16-16-16V313.6c12.8 9.6 32 25.6 96 70.4 12.8 9.6 38.4 32 64 32s51.2-22.4 64-32c64-44.8 83.2-60.8 96-70.4V464zm0-188.8c-25.6 19.2-22.4 19.2-115.2 86.4-9.6 3.2-28.8 22.4-44.8 22.4s-35.2-19.2-44.8-25.6C54.4 291.2 57.6 291.2 32 272v-32c0-8.84 7.16-16 16-16h288c8.84 0 16 7.16 16 16v35.2z\"]\n};\nvar faMailbox = {\n prefix: 'fal',\n iconName: 'mailbox',\n icon: [576, 512, [], \"f813\", \"M432 64H144A144 144 0 0 0 0 208v208a32 32 0 0 0 32 32h512a32 32 0 0 0 32-32V208A144 144 0 0 0 432 64zM256 416H32V208a112 112 0 0 1 224 0zm288 0H288V208c0-45.52-21.54-85.61-54.51-112H432a112.12 112.12 0 0 1 112 112zm-48-224H328a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h88v80a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm-16 96h-32v-64h32zm-296-96h-80a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faMale = {\n prefix: 'fal',\n iconName: 'male',\n icon: [256, 512, [], \"f183\", \"M198.746 140.274C209.582 125.647 216 107.56 216 88c0-48.523-39.477-88-88-88S40 39.477 40 88c0 19.56 6.418 37.647 17.254 52.274C28.585 150.478 8 177.873 8 210v105c0 24.74 17.041 45.576 40 51.387V459c0 29.224 23.776 53 53 53h54c29.224 0 53-23.776 53-53v-92.613c22.959-5.812 40-26.647 40-51.387V210c0-32.127-20.585-59.522-49.254-69.726zM128 32c30.928 0 56 25.072 56 56s-25.072 56-56 56-56-25.072-56-56 25.072-56 56-56zm88 283c0 11.598-9.402 21-21 21h-19v123c0 11.598-9.402 21-21 21h-54c-11.598 0-21-9.402-21-21V336H61c-11.598 0-21-9.402-21-21V210c0-23.196 18.804-42 42-42h9.36c22.711 10.443 49.59 10.894 73.28 0H174c23.196 0 42 18.804 42 42v105z\"]\n};\nvar faMandolin = {\n prefix: 'fal',\n iconName: 'mandolin',\n icon: [512, 512, [], \"f6f9\", \"M507.31 50.67l-46-46a16 16 0 0 0-19.81-2.25l-64 40.07a32 32 0 0 0-14 19.11L345.07 133l-59.23 59.23c-6.75-.13-13.36-.2-19.75-.2-177.4 0-220.3 49.21-235.35 64.26-46.81 46.78-39.52 150.35 17.53 207.44C80.22 495.65 126.73 512 169.69 512c33.81 0 65.42-10.12 86-30.74 15.59-15.59 67.83-61.13 64-255.09L379 166.93l71.37-18.46a32 32 0 0 0 19.11-14l40.07-64a16 16 0 0 0-2.24-19.8zM234.73 457l-1.64 1.63c-13.57 13.58-36.68 21.37-63.4 21.37-36.93 0-74.78-14.91-98.78-38.89-47.55-47.58-49.42-130.34-17.55-162.2l1.64-1.65c12.66-12.81 50.81-51 198.86-53l-35.51 35.51a16 16 0 0 0 0 22.62l11.32 11.31a16 16 0 0 0 22.62 0l35.52-35.51c-2 147.93-39.99 185.89-53.08 198.81zm207.64-339.51l-64.55 16.69 16.69-64.55 53.2-33.31 28 28zM160 288a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faMap = {\n prefix: 'fal',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM30.63 118.18L176 67.61V387.8L31.91 441.05l-1.28-322.87zM208 387.71V67.8l160 56.48v319.91l-160-56.48zm192 56.68V124.2l144.09-53.26 1.28 322.87L400 444.39z\"]\n};\nvar faMapMarked = {\n prefix: 'fal',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M560 160c-2 0-4 .4-6 1.2L384 224l-10.3-3.6C397 185.5 416 149.2 416 123 416 55 358.7 0 288 0S160 55.1 160 123c0 11.8 4 25.8 10.4 40.6L20.1 216C8 220.8 0 232.6 0 245.7V496c0 9.2 7.5 16 16 16 2 0 4-.4 6-1.2L192 448l172 60.7c13 4.3 27 4.4 40 .2L555.9 456c12.2-4.9 20.1-16.6 20.1-29.7V176c0-9.2-7.5-16-16-16zM176 419.8L31.9 473l-1.3-226.9L176 195.6zM288 32c52.9 0 96 40.8 96 91 0 27-38.1 88.9-96 156.8-57.9-67.9-96-129.8-96-156.8 0-50.2 43.1-91 96-91zm-80 387.7V228.8c24.4 35.3 52.1 68 67.7 85.7 3.2 3.7 7.8 5.5 12.3 5.5s9-1.8 12.3-5.5c12.8-14.5 33.7-39.1 54.3-66.9l13.4 4.7v223.9zm192 56.7V252.2L544.1 199l1.3 226.9z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fal',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M560 160c-2 0-4 .4-6 1.2L384 224l-10.3-3.6C397 185.5 416 149.2 416 123 416 55 358.7 0 288 0S160 55.1 160 123c0 11.8 4 25.8 10.4 40.6L20.1 216C8 220.8 0 232.6 0 245.7V496c0 9.2 7.5 16 16 16 2 0 4-.4 6-1.2L192 448l172 60.7c13 4.3 27 4.4 40 .2L555.9 456c12.2-4.9 20.1-16.6 20.1-29.7V176c0-9.2-7.5-16-16-16zM176 419.8L31.9 473l-1.3-226.9L176 195.6zM288 32c52.9 0 96 40.8 96 91 0 27-38.1 88.9-96 156.8-57.9-67.9-96-129.8-96-156.8 0-50.2 43.1-91 96-91zm80 444.2l-160-56.5V228.8c24.4 35.3 52.1 68 67.7 85.7 3.2 3.7 7.8 5.5 12.3 5.5s9-1.8 12.3-5.5c12.8-14.5 33.7-39.1 54.3-66.9l13.4 4.7zm32 .2V252.2L544.1 199l1.3 226.9zM312 128c0-13.3-10.8-24-24-24s-24 10.7-24 24c0 13.2 10.8 24 24 24s24-10.7 24-24z\"]\n};\nvar faMapMarker = {\n prefix: 'fal',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M192 0C85.961 0 0 85.961 0 192c0 77.413 26.97 99.031 172.268 309.67 9.534 13.772 29.929 13.774 39.465 0C357.03 291.031 384 269.413 384 192 384 85.961 298.039 0 192 0zm0 473.931C52.705 272.488 32 256.494 32 192c0-42.738 16.643-82.917 46.863-113.137S149.262 32 192 32s82.917 16.643 113.137 46.863S352 149.262 352 192c0 64.49-20.692 80.47-160 281.931z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fal',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M192 96c-52.935 0-96 43.065-96 96s43.065 96 96 96 96-43.065 96-96-43.065-96-96-96zm0 160c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm0-256C85.961 0 0 85.961 0 192c0 77.413 26.97 99.031 172.268 309.67 9.534 13.772 29.929 13.774 39.465 0C357.03 291.031 384 269.413 384 192 384 85.961 298.039 0 192 0zm0 473.931C52.705 272.488 32 256.494 32 192c0-42.738 16.643-82.917 46.863-113.137S149.262 32 192 32s82.917 16.643 113.137 46.863S352 149.262 352 192c0 64.49-20.692 80.47-160 281.931z\"]\n};\nvar faMapMarkerAltSlash = {\n prefix: 'fal',\n iconName: 'map-marker-alt-slash',\n icon: [640, 512, [], \"f605\", \"M320 32c88.2 0 160 71.8 160 160 0 34.7-4.7 54.1-34.8 101.5l25.3 19.9C503.9 261.2 512 235.2 512 192 512 86.4 425.6 0 320 0c-61.7 0-116.7 29.7-151.9 75.3l25.4 20C222.7 57.1 268.3 32 320 32zm74 221.1c13.6-16.5 22-37.6 22-61.1 0-53.8-42.2-96-96-96-31.9 0-59.5 15.1-76.8 38.4l25.1 19.8c11.5-15.9 30.1-26.2 51.7-26.2 35.9 0 64 28.1 64 64 0 16-5.8 30.2-15.2 41.3zm-21.5 146.2c-15.5 22-33.1 46.9-52.5 74.7-19.7-28.2-37.1-52.9-52.5-74.7C170.6 262 160 245.1 160 192c0-.3.1-.5.1-.8l-30.3-23.9c-1.1 8.1-1.8 16.3-1.8 24.7 0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6c30.8-44.1 56-79.7 77-109.6L391 373c-5.8 8.3-11.9 17-18.5 26.3zM637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3z\"]\n};\nvar faMapMarkerCheck = {\n prefix: 'fal',\n iconName: 'map-marker-check',\n icon: [384, 512, [], \"f606\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.69zm89.33-339.54a7.98 7.98 0 0 0-5.66-2.34c-2.05 0-4.1.78-5.66 2.34L162.54 241.94l-48.57-48.57a7.98 7.98 0 0 0-5.66-2.34c-2.05 0-4.1.78-5.66 2.34l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l65.54 65.54c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.65-2.34l124.45-124.45c3.12-3.12 3.12-8.19 0-11.31l-11.3-11.31z\"]\n};\nvar faMapMarkerEdit = {\n prefix: 'fal',\n iconName: 'map-marker-edit',\n icon: [384, 512, [], \"f607\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.69zm64.01-368.65c-12.5-12.47-32.75-12.47-45.25 0l-94.09 94.09c-2 2.02-3.44 4.51-4.16 7.27l-16 61.25c-1.44 5.5.12 11.34 4.16 15.36 3.03 3.05 7.12 4.69 11.31 4.69 1.34 0 2.72-.17 4.03-.52l61.25-16c2.75-.72 5.28-2.15 7.28-4.17l94.09-94.09c12.47-12.47 12.47-32.78 0-45.25l-22.62-22.63zM165 241.61l-30.62 8 8-30.61 91.03-91.03 22.62 22.62L165 241.61z\"]\n};\nvar faMapMarkerExclamation = {\n prefix: 'fal',\n iconName: 'map-marker-exclamation',\n icon: [384, 512, [], \"f608\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.69zm-8.49-234h16.97a8 8 0 0 0 7.98-7.5l7-112c.29-4.61-3.37-8.5-7.98-8.5h-30.97c-4.61 0-8.27 3.89-7.98 8.5l7 112c.25 4.21 3.75 7.5 7.98 7.5zm8.48 24c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faMapMarkerMinus = {\n prefix: 'fal',\n iconName: 'map-marker-minus',\n icon: [384, 512, [], \"f609\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.69zM280 176H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faMapMarkerPlus = {\n prefix: 'fal',\n iconName: 'map-marker-plus',\n icon: [384, 512, [], \"f60a\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.69zM280 176h-72v-72c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v72h-72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h72v72c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72h72c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faMapMarkerQuestion = {\n prefix: 'fal',\n iconName: 'map-marker-question',\n icon: [384, 512, [], \"f60b\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474.01c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.7zM192 296c-13.26 0-24 10.74-24 24 0 13.25 10.74 24 24 24s24-10.75 24-24c0-13.26-10.74-24-24-24zm.68-200c-41.09 0-75.02 31.12-79.5 71.01-.54 4.77 3.2 8.99 8 8.99h16.13c3.95 0 7.29-2.9 7.85-6.81 3.31-23.26 23.36-41.19 47.52-41.19 31.19 0 48 24.73 48 48 0 20.62-20.84 32.53-55.16 49.69a15.996 15.996 0 0 0-8.84 14.31v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-14.14c31.66-16.09 64-35.56 64-73.86 0-39.33-29.94-80-80-80z\"]\n};\nvar faMapMarkerSlash = {\n prefix: 'fal',\n iconName: 'map-marker-slash',\n icon: [640, 512, [], \"f60c\", \"M320 32c88.2 0 160 71.8 160 160 0 34.7-4.7 54.1-34.8 101.5l25.3 19.9C503.9 261.2 512 235.2 512 192 512 86.4 425.6 0 320 0c-61.7 0-116.7 29.7-151.9 75.3l25.4 20C222.7 57.1 268.3 32 320 32zm52.5 367.3c-15.5 22-33.1 46.9-52.5 74.7-19.7-28.2-37.1-52.9-52.5-74.7C170.6 262 160 245.1 160 192c0-.3.1-.5.1-.8l-30.3-23.9c-1.1 8.1-1.8 16.3-1.8 24.7 0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6c30.8-44.1 56-79.7 77-109.6L391 373c-5.8 8.3-11.9 17-18.5 26.3zM637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3z\"]\n};\nvar faMapMarkerSmile = {\n prefix: 'fal',\n iconName: 'map-marker-smile',\n icon: [384, 512, [], \"f60d\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.91-52.47 74.69zM256 184c13.25 0 24-10.75 24-24 0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24zm11.84 53.34C249.03 259.38 221.41 272 192 272s-57.03-12.62-75.84-34.64c-5.72-6.73-15.84-7.44-22.53-1.78-6.75 5.75-7.53 15.84-1.78 22.56C116.72 287.28 153.22 304 192 304s75.28-16.72 100.16-45.88c5.75-6.72 4.94-16.83-1.78-22.56-6.66-5.72-16.79-4.94-22.54 1.78zM128 184c13.25 0 24-10.75 24-24 0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24z\"]\n};\nvar faMapMarkerTimes = {\n prefix: 'fal',\n iconName: 'map-marker-times',\n icon: [384, 512, [], \"f60e\", \"M192 0C86.4 0 0 86.4 0 192c0 76.8 25.6 99.2 172.8 310.4 4.8 6.4 12 9.6 19.2 9.6s14.4-3.2 19.2-9.6C358.4 291.2 384 268.8 384 192 384 86.4 297.6 0 192 0zm.01 474c-19.67-28.17-37.09-52.85-52.49-74.69C42.64 261.97 32 245.11 32 192c0-88.22 71.78-160 160-160s160 71.78 160 160c0 53.11-10.64 69.97-107.52 207.31-15.52 22.01-33.09 46.92-52.47 74.69zm73.53-344.23l-11.31-11.31c-1.56-1.56-3.61-2.34-5.66-2.34s-4.1.78-5.66 2.34L192 169.37l-50.91-50.91c-1.56-1.56-3.61-2.34-5.66-2.34s-4.09.78-5.66 2.34l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31L169.37 192l-50.91 50.91c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c1.56 1.56 3.61 2.34 5.66 2.34s4.1-.78 5.66-2.34l50.91-50.9 50.91 50.91c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L214.63 192l50.91-50.91a8.015 8.015 0 0 0 0-11.32z\"]\n};\nvar faMapPin = {\n prefix: 'fal',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M144 0C64.47 0 0 64.47 0 144c0 74.05 56.1 134.33 128 142.39v206.43l11.01 16.51c2.38 3.56 7.61 3.56 9.98 0L160 492.82V286.39c71.9-8.05 128-68.34 128-142.39C288 64.47 223.53 0 144 0zm0 256c-61.76 0-112-50.24-112-112S82.24 32 144 32s112 50.24 112 112-50.24 112-112 112zm0-192c-44.12 0-80 35.89-80 80 0 8.84 7.16 16 16 16s16-7.16 16-16c0-26.47 21.53-48 48-48 8.84 0 16-7.16 16-16s-7.16-16-16-16z\"]\n};\nvar faMapSigns = {\n prefix: 'fal',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M441.37 192c8.49 0 16.62-4.21 22.63-11.72l43.31-54.14c6.25-7.81 6.25-20.47 0-28.29L464 43.71C458 36.21 449.86 32 441.37 32H272V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24H56c-13.25 0-24 13.43-24 30v100c0 16.57 10.75 30 24 30h184v32H70.63C62.14 224 54 228.21 48 235.71L4.69 289.86c-6.25 7.81-6.25 20.47 0 28.29L48 372.28c6 7.5 14.14 11.72 22.63 11.72H240v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V384h184c13.25 0 24-13.43 24-30V254c0-16.57-10.75-30-24-30H272v-32h169.37zm6.38 160h-375l-38.4-48 38.45-48h375.19l-.24 96zM64.25 64h375l38.4 48-38.45 48H64.01l.24-96z\"]\n};\nvar faMarker = {\n prefix: 'fal',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M421.4 0c-23.17 0-46.33 8.84-64 26.52l-6.28 6.28-23.43-23.43c-12.5-12.5-32.75-12.5-45.25 0L152.36 139.48c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L305.07 32l23.42 23.43-234.55 234.6A327.069 327.069 0 0 0 .18 485.12l-.03.23C-1.45 499.72 9.88 512 23.94 512c.89 0 1.78-.05 2.69-.15a326.972 326.972 0 0 0 195.3-93.8L485.4 154.54C542.54 97.38 501.35 0 421.4 0zM199.31 395.42c-44.99 45-103.91 74.41-166.07 83.39 9.13-62.64 38.49-121.32 83.32-166.16l78.71-78.72 82.75 82.77-78.71 78.72zm263.46-263.51L300.64 294.07l-82.75-82.77L380.02 49.14C391.07 38.09 405.77 32 421.4 32c32.32 0 58.52 26.16 58.52 58.53-.01 15.63-6.09 30.33-17.15 41.38z\"]\n};\nvar faMars = {\n prefix: 'fal',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-88c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h45.4l-95.5 95.5C209.2 171.8 178 160 144 160 64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-34-11.8-65.2-31.5-89.9l95.5-95.5V164c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12zM144 416c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faMarsDouble = {\n prefix: 'fal',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M288 208c0-34-11.8-65.2-31.5-89.9L320 54.6V100c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V12c0-6.6-5.4-12-12-12h-88c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h45.4l-63.5 63.5C209.2 75.8 178 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144zM144 320c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112zm368-148v88c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12v-45.4l-63.5 63.5C436.2 302.8 448 334 448 368c0 79.5-64.5 144-144 144-74.4 0-135.6-56.4-143.2-128.8 10.7-1 21.2-3 31.6-6C197 434.7 245.1 480 304 480c62 0 112-50.1 112-112 0-59-45.4-107-102.8-111.6 3-10.4 4.9-20.9 6-31.6 28.1 2.9 53.8 14 74.7 30.7l63.5-63.5H412c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h88c6.6 0 12 5.4 12 12z\"]\n};\nvar faMarsStroke = {\n prefix: 'fal',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-88c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h45.4l-49.6 49.6-31.1-31.1c-4.7-4.7-12.3-4.7-17 0l-5.7 5.7c-4.7 4.7-4.7 12.3 0 17l31.1 31.1-23.3 23.3C209.2 171.8 178 160 144 160 64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-34-11.8-65.2-31.5-89.9l23.3-23.3 31.1 31.1c4.7 4.7 12.3 4.7 17 0l5.7-5.7c4.7-4.7 4.7-12.3 0-17l-31.1-31.1 49.6-49.6V164c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V76c-.1-6.6-5.5-12-12.1-12zM144 416c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fal',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M474.9 247.5l-62.2-62.2c-4.7-4.7-12.3-4.7-17 0L390 191c-4.7 4.7-4.7 12.3 0 17l32.1 32.1H352v-44c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v44h-32.9c-3.5-31.4-17.2-61.8-41.3-85.8-56.2-56.2-147.4-56.2-203.6 0-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 24-24 37.8-54.5 41.3-85.8H320v44c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-44h70.2l-32.1 32.1c-4.7 4.7-4.7 12.3 0 17l5.7 5.7c4.7 4.7 12.3 4.7 17 0l62.2-62.2c4.6-4.9 4.6-12.5-.1-17.2zM144 368c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fal',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-24-24-54.5-37.8-85.8-41.3V160h44c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-44V57.8l32.1 32.1c4.7 4.7 12.3 4.7 17 0l5.7-5.7c4.7-4.7 4.7-12.3 0-17L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L73.3 67.3c-4.7 4.7-4.7 12.3 0 17L79 90c4.7 4.7 12.3 4.7 17 0l32-32.2V128H84c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h44v32.9c-31.4 3.5-61.8 17.2-85.8 41.3-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zM144 448c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faMask = {\n prefix: 'fal',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c7.83-11.5 19.57-17.25 31.31-17.25 11.74 0 23.49 5.75 31.31 17.25l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zm158.46 349.09c-29.61 0-57.92-15.61-75.72-41.76l-25.73-37.79c-13.56-19.92-34.34-31.34-57-31.34-22.67 0-43.44 11.42-57 31.34l-25.73 37.79c-17.8 26.15-46.11 41.76-75.73 41.76C84.32 413.09 32 340.54 32 272.77c0-31.04 10.25-75.99 59.07-113.92 50.48-39.22 129.87-59.94 229.6-59.94 100.06 0 179.35 20.29 229.31 58.66C597.93 194.41 608 238.62 608 269.21c0 68.05-52.92 143.88-128.87 143.88zM192 186.18c-46.93 0-77.44 29.93-91.52 47.89-5.97 7.62-5.97 18.78 0 26.39 14.08 17.96 44.59 47.89 91.52 47.89s77.44-29.93 91.52-47.89c5.97-7.62 5.97-18.78 0-26.39-14.08-17.96-44.59-47.89-91.52-47.89zm0 87.27c-26.83 0-46.54-13.8-58.82-26.18 12.28-12.38 32-26.18 58.82-26.18s46.54 13.8 58.82 26.18c-12.28 12.38-31.99 26.18-58.82 26.18zm256-87.27c-46.93 0-77.44 29.93-91.52 47.89-5.97 7.62-5.97 18.78 0 26.39 14.08 17.96 44.59 47.89 91.52 47.89s77.44-29.93 91.52-47.89c5.97-7.62 5.97-18.78 0-26.39-14.08-17.96-44.59-47.89-91.52-47.89zm0 87.27c-26.83 0-46.54-13.8-58.82-26.18 12.28-12.38 32-26.18 58.82-26.18 26.83 0 46.54 13.8 58.82 26.18-12.28 12.38-31.99 26.18-58.82 26.18z\"]\n};\nvar faMeat = {\n prefix: 'fal',\n iconName: 'meat',\n icon: [512, 512, [], \"f814\", \"M343 115.9c-9.81 9.8-5.83 29.67 8.88 44.37s34.57 18.68 44.38 8.87 5.83-29.67-8.88-44.37-34.63-18.67-44.38-8.87zm100.67-47.32l-.05-.06C388.15 13.07 330.39 0 298.94 0 260.32 0 237 19.06 230.22 25.85 191.52 64.53 128 139.63 128 209.45v82.28l-11.47 11.48c-3.14 3.14-9.11 5.32-17.21 2.06A72.48 72.48 0 0 0 0 372.66c0 21.53 15.57 69.06 67.66 71.67C69.63 483.7 102 512 139.28 512c51.81 0 86.19-52.22 67.34-99.41-1-2.53-3.88-11.28 2-17.21L220.05 384h82.59c69.84 0 145-63.46 183.65-102.15 55.27-55.27 12.22-158.4-42.62-213.27zM302.64 352H206.8l-20.72 20.73c-13.08 13.08-16.61 32.86-9.15 51.74 23.45 58.7-74.31 78.88-77.34 18.26l-1.45-28.91-28.88-1.45c-50.58-2.54-49-80.3 3.2-80.3a40 40 0 0 1 15 2.89c17.7 7.13 38 4.7 51.76-9.12L160 305v-95.55c0-37.67 27-88.94 73.31-140.37a118.4 118.4 0 0 0 1.08 40.14c7.35 36.69 29.64 75.82 61.17 107.33 40 40 89.81 63.82 133.32 63.82a102.3 102.3 0 0 0 13.57-1.08C391.22 325.19 340.19 352 302.64 352zm161-115.42C440.24 260 374 249.7 318.17 193.91 264.46 140.22 250.94 73 275.49 48.46 298.92 25 365.19 35.35 421 91.13c53.84 53.87 66.93 121.19 42.67 145.45z\"]\n};\nvar faMedal = {\n prefix: 'fal',\n iconName: 'medal',\n icon: [576, 512, [], \"f5a2\", \"M332.37 275.41l-19.75-40.05c-9.44-18.81-39.91-18.86-49.28.08l-19.72 39.97-44.06 6.44c-10.44 1.5-18.94 8.67-22.22 18.7-3.25 10.02-.59 20.83 6.97 28.17l31.91 31.09-7.56 43.92c-3.91 22.74 20.25 39.5 39.87 28.97L288 411.97l39.44 20.72c19.35 10.13 43.87-5.88 39.91-28.95l-7.56-43.92 31.91-31.09c7.56-7.34 10.22-18.16 6.97-28.17-3.28-10.03-11.78-17.19-22.19-18.7l-44.11-6.45zm-6.96 73.25l8.84 51.45-46.25-24.3-46.34 24.91 8.94-52.06-37.41-36.47 51.69-7.53L288 257.78l23.12 46.88 51.69 7.53-37.4 36.47zM559.97 0H402.12c-11.24 0-21.66 5.9-27.44 15.54L288 160 201.32 15.54A31.997 31.997 0 0 0 173.88 0H16.03C3.08 0-4.5 14.57 2.92 25.18l144.12 205.88C125.14 260.4 112 296.65 112 336c0 97.05 78.95 176 176 176s176-78.95 176-176c0-39.35-13.14-75.6-35.04-104.94L573.08 25.18C580.5 14.57 572.92 0 559.97 0zM46.76 32h127.12l78.93 131.55c-31.95 6.51-60.65 21.84-83.78 43.13L46.76 32zM432 336c0 79.53-64.47 144-144 144s-144-64.47-144-144 64.47-144 144-144 144 64.47 144 144zm-25.03-129.32c-23.13-21.29-51.83-36.62-83.78-43.13L402.12 32h127.12L406.97 206.68z\"]\n};\nvar faMedkit = {\n prefix: 'fal',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M464 96H352V56c0-13.255-10.745-24-24-24H184c-13.255 0-24 10.745-24 24v40H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V144c0-26.51-21.49-48-48-48zM192 64h128v32H192V64zm192 64v320H128V128h256zM32 432V144c0-8.822 7.178-16 16-16h48v320H48c-8.822 0-16-7.178-16-16zm448 0c0 8.822-7.178 16-16 16h-48V128h48c8.822 0 16 7.178 16 16v288zM352 272v32c0 6.627-5.373 12-12 12h-56v56c0 6.627-5.373 12-12 12h-32c-6.627 0-12-5.373-12-12v-56h-56c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h56v-56c0-6.627 5.373-12 12-12h32c6.627 0 12 5.373 12 12v56h56c6.627 0 12 5.373 12 12z\"]\n};\nvar faMegaphone = {\n prefix: 'fal',\n iconName: 'megaphone',\n icon: [576, 512, [], \"f675\", \"M568 32h-16c-4.42 0-8 3.58-8 8v19.33L32 179.8V168c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v176c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-11.8l130.58 30.72c-1.56 6.8-2.58 13.8-2.58 21.07 0 53.02 42.98 96 96 96 45.13 0 82.45-31.3 92.64-73.29L544 452.67V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V40c0-4.42-3.58-8-8-8zM256 448c-35.29 0-64-28.71-64-64 0-4.75.72-9.31 1.76-13.74l124.13 29.21C310.92 427.27 285.93 448 256 448zM32 299.33v-86.66L544 92.2v327.6L32 299.33z\"]\n};\nvar faMeh = {\n prefix: 'fal',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm-80-232c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm16 160H152c-8.8 0-16 7.2-16 16s7.2 16 16 16h192c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"]\n};\nvar faMehBlank = {\n prefix: 'fal',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm-80-296c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fal',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M224 224c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-72 40c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm192-112c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm64-104H184c-8.8 0-16 7.2-16 16s7.2 16 16 16h128c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"]\n};\nvar faMemory = {\n prefix: 'fal',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M496 272h32V144h-96v128h64zm-32-96h32v64h-32v-64zm-128 96h32V144h-96v128h64zm-32-96h32v64h-32v-64zm-128 96h32V144h-96v128h64zm-32-96h32v64h-32v-64zm488-16h8V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v64h8c13.26 0 24 10.74 24 24 0 13.25-10.74 24-24 24H0v240h640V208h-8c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24zm-24 256h-80v-16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-96v-16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-96v-16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-96v-16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16H32v-64h576v64zm0-282.59c-18.91 9-32 28.3-32 50.59s13.09 41.59 32 50.59V320H32v-85.41c18.9-9 32-28.3 32-50.59s-13.1-41.59-32-50.59V96h576v37.41z\"]\n};\nvar faMenorah = {\n prefix: 'fal',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M608 0s-32 46.33-32 64 14.33 32 32 32 32-14.33 32-32-32-64-32-64zm-96 96c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zM64 64C64 46.33 32 0 32 0S0 46.33 0 64s14.33 32 32 32 32-14.33 32-32zm552 64h-16c-4.42 0-8 3.58-8 8v168c0 26.51-21.49 48-48 48H336V136c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v216H96c-26.51 0-48-21.49-48-48V136c0-4.42-3.58-8-8-8H24c-4.42 0-8 3.58-8 8v168c0 44.18 35.82 80 80 80h208v96H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h432c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H336v-96h208c44.18 0 80-35.82 80-80V136c0-4.42-3.58-8-8-8zm-112 0c-4.42 0-8 3.58-8 8v184h32V136c0-4.42-3.58-8-8-8h-16zm-384 0c-4.42 0-8 3.58-8 8v184h32V136c0-4.42-3.58-8-8-8h-16zm288 0c-4.42 0-8 3.58-8 8v184h32V136c0-4.42-3.58-8-8-8h-16zm-192 0c-4.42 0-8 3.58-8 8v184h32V136c0-4.42-3.58-8-8-8h-16z\"]\n};\nvar faMercury = {\n prefix: 'fal',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-57-33.1-106.2-81.1-129.6 24-14.9 40.9-37.9 45.3-64.5C253.4 6.6 247.7 0 240.3 0h-8.1c-5.7 0-10.7 4.1-11.8 9.7C214.8 40.4 182.7 64 144 64S73.2 40.4 67.6 9.7C66.6 4 61.6 0 55.8 0h-8.1c-7.4 0-13.1 6.6-11.9 13.9 4.4 26.6 21.3 49.7 45.3 64.5C33.1 101.8 0 151 0 208c0 74.2 56.2 135.3 128.3 143.1-.2.9-.3 1.8-.3 2.7V416H76c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h52v52c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-52h52c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-52v-62.2c0-.9-.1-1.8-.3-2.7C231.8 343.3 288 282.2 288 208zM144 320c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faMeteor = {\n prefix: 'fal',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M510.97268,31.81922C501.16,64.21764,477.1594,140.996,452.15883,199.185c2.90631.89041,5.50012,1.70271,7.90643,2.39a31.03387,31.03387,0,0,1,19.5942,17.69885,31.36973,31.36973,0,0,1-1.18753,26.39987c-22.59427,43.19268-81.22061,149.96374-139.5032,208.24652a198.87529,198.87529,0,0,1-280.91271,0c-77.408-77.38754-77.408-203.45081,0-280.83835C116.36986,114.79916,223.15357,56.11022,266.37331,33.61566a30.5167,30.5167,0,0,1,26.3756-1.18721,31.09638,31.09638,0,0,1,17.71916,19.589c.68752,2.40567,1.59379,4.99879,2.40631,7.90434,58.50134-25.30638,135.09685-49.0975,167.37884-58.892a24.72164,24.72164,0,0,1,30.71946,30.78943ZM476.06563,35.9276C435.65845,48.31523,360.75048,72.51251,309.3743,96.60043l-16.90664,7.90434-5.21887-17.99565c-2.78132-9.70078-5.37513-18.4018-7.37517-24.99395C239.24769,83.80665,135.74531,140.5898,80.65029,195.68585c-64.90774,64.87494-64.90774,170.55252,0,235.53681s170.72267,64.89056,235.59916,0c55.12627-55.08044,111.90883-158.55542,133.72183-200.45154-6.00014-.79668-14.71909-3.38981-24.40681-6.20163l-18.00042-5.18624,7.90643-16.90217C439.37728,151.49341,463.75284,76.30847,476.06563,35.9276Zm-148.19091,276.027c0,70.57668-57.40757,127.96906-128.00294,127.96906a127.96906,127.96906,0,1,1,0-255.93812C270.46715,183.98556,327.96847,241.47166,327.87472,311.95462Zm-32.00073.09372a96.00221,96.00221,0,1,0-96.00221,95.9768C252.873,408.02514,295.96774,364.94181,295.874,312.04834Zm-88.002-32.086a24.00055,24.00055,0,1,1-24.00055-23.9942A23.95369,23.95369,0,0,1,207.872,279.96235Zm32.00074,72.07633a16.00037,16.00037,0,1,1-16.00037-15.99614A16.04933,16.04933,0,0,1,239.8727,352.03868Z\"]\n};\nvar faMicrochip = {\n prefix: 'fal',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M368 0H144c-26.51 0-48 21.49-48 48v416c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zm16 464c0 8.822-7.178 16-16 16H144c-8.822 0-16-7.178-16-16V48c0-8.822 7.178-16 16-16h224c8.822 0 16 7.178 16 16v416zm128-358v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fal',\n iconName: 'microphone',\n icon: [320, 512, [], \"f130\", \"M160 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S64 42.98 64 96v160c0 53.02 42.98 96 96 96zM96 96c0-35.29 28.71-64 64-64s64 28.71 64 64v160c0 35.29-28.71 64-64 64s-64-28.71-64-64V96zm216 96h-16c-4.42 0-8 3.58-8 8v56c0 73.46-62.2 132.68-136.73 127.71C83.3 379.18 32 319.61 32 251.49V200c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v50.34c0 83.39 61.65 156.12 144 164.43V480H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-72v-65.01C256.71 406.9 320 338.8 320 256v-56c0-4.42-3.58-8-8-8z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fal',\n iconName: 'microphone-alt',\n icon: [320, 512, [], \"f3c9\", \"M160 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S64 42.98 64 96v160c0 53.02 42.98 96 96 96zM96 96c0-35.29 28.71-64 64-64s64 28.71 64 64h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v32h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v32h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56c0 35.29-28.71 64-64 64s-64-28.71-64-64V96zm216 96h-16c-4.42 0-8 3.58-8 8v56c0 73.46-62.2 132.68-136.73 127.71C83.3 379.18 32 319.61 32 251.49V200c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v50.34c0 83.39 61.64 156.12 144 164.43V480H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-72v-65.01C256.71 406.9 320 338.8 320 256v-56c0-4.42-3.58-8-8-8z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fal',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M256 96c0-35.3 28.7-64 64-64s64 28.7 64 64h-56c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v32h-56c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v32h-27l57.7 45.4c.6-4.4 1.3-8.8 1.3-13.4V96c0-53-43-96-96-96s-96 43-96 96v23.3l32 25.2zm224 160v-56c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56c0 12.3-2.3 24-5.6 35.3l27 21.3C476.2 295 480 276 480 256zm-160 96c12.6 0 24.5-2.6 35.5-7l-32.2-25.4c-1.1.1-2.1.3-3.3.3-31.3 0-57.3-22.6-62.8-52.4l-33.2-26V256c0 53 43 96 96 96zm317 133.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM408 480h-72v-65c27.2-2.7 52.1-12.7 73.6-27.3l-26.4-20.8c-21 12-45.6 18.6-71.9 16.8-68-4.5-119.3-64.1-119.3-132.2v-35.2l-28.5-22.5c-2 1.5-3.5 3.5-3.5 6.1v50.3c0 83.4 61.6 156.1 144 164.4V480h-72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fal',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M256 96c0-35.3 28.7-64 64-64s64 28.7 64 64v149.3l30.7 24.1c.6-4.4 1.3-8.8 1.3-13.4V96c0-53-43-96-96-96s-96 43-96 96v23.3l32 25.2zm224 160v-56c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56c0 12.3-2.3 24-5.6 35.3l27 21.3C476.2 295 480 276 480 256zm-72 224h-72v-65c27.2-2.7 52.1-12.7 73.6-27.3l-26.4-20.8c-21 12-45.6 18.6-71.9 16.8-68-4.5-119.3-64.1-119.3-132.2v-35.2l-28.5-22.5c-2 1.5-3.5 3.5-3.5 6.1v50.3c0 83.4 61.7 156.1 144 164.4V480h-72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-88-128c12.6 0 24.5-2.6 35.5-7l-32.2-25.4c-1.1.1-2.1.3-3.3.3-31.3 0-57.3-22.6-62.8-52.4l-33.2-26V256c0 53 43 96 96 96zm317 133.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3z\"]\n};\nvar faMicrophoneStand = {\n prefix: 'fal',\n iconName: 'microphone-stand',\n icon: [512, 512, [], \"f8cb\", \"M475.78 33.5a122.38 122.38 0 0 0-170.45 2.13l-28.77 28.68a121 121 0 0 0-35.66 85.08L12.06 406.85a47.88 47.88 0 0 0 2 65.71l25.46 25.38a48.27 48.27 0 0 0 65.93 2l150.42-133.6V504a8 8 0 0 0 8 8H280a8 8 0 0 0 8-8V338l75.85-66.08a121.82 121.82 0 0 0 85.37-35.54l25.09-25C523 162.86 525.64 80.79 475.78 33.5zM84.25 476a16.08 16.08 0 0 1-22-.68l-25.44-25.39a16 16 0 0 1-.72-21.86l219.39-246.83 76.4 76.13zM426.5 213.74a89.56 89.56 0 0 1-62.92 26.17h-3.8L273 153.42v-3.78a88.92 88.92 0 0 1 26.27-62.7l11.06-11 127.24 126.77zm33.28-34.14L333.52 53.77A89.34 89.34 0 0 1 459.78 179.6z\"]\n};\nvar faMicroscope = {\n prefix: 'fal',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M456 416h-40.99C454.22 386.81 480 340.52 480 288c0-88.22-71.78-160-160-160V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32v48c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-48c17.67 0 32-14.33 32-32V160c70.59 0 128 57.42 128 128s-57.41 128-128 128H56c-30.88 0-56 25.12-56 56 0 22.06 17.94 40 40 40h432c22.06 0 40-17.94 40-40 0-30.88-25.12-56-56-56zm-200-64h-64v-32h64v32zm32-64H160V64h32V32h64v32h32v224zm184 192H40c-4.42 0-8-3.58-8-8 0-13.26 10.75-24 24-24h400c13.25 0 24 10.74 24 24 0 4.42-3.58 8-8 8z\"]\n};\nvar faMicrowave = {\n prefix: 'fal',\n iconName: 'microwave',\n icon: [512, 512, [], \"e01b\", \"M480,64H32A32,32,0,0,0,0,96V416a32,32,0,0,0,32,32H48l24,32h48l24-32H368l24,32h48l24-32h16a32,32,0,0,0,32-32V96A32,32,0,0,0,480,64Zm0,352H32V96H480ZM432,256a16,16,0,1,0-16-16A16,16,0,0,0,432,256Zm0-64a16,16,0,1,0-16-16A16,16,0,0,0,432,192ZM96,384H352a32,32,0,0,0,32-32V160a32,32,0,0,0-32-32H96a32,32,0,0,0-32,32V352A32,32,0,0,0,96,384Zm0-224H352V352H96Z\"]\n};\nvar faMindShare = {\n prefix: 'fal',\n iconName: 'mind-share',\n icon: [640, 512, [], \"f677\", \"M288.1 272.6V76c0-24.3 19.8-44 44.2-44 30.7 0 39.9 22.5 45.8 45.5l12.7-.3h.4c25.9 0 45.5 19.7 45.5 43.8 0 6.2-1.7 11.9-4.2 22.8 22.4 9.1 40.8 20.7 47 42.9 2.8-1.7 5.2-3.7 8.3-5 3.6-1.5 7.3-2.6 11.1-3.4 3.7-.8 7.5-1.2 11.3-1.3-8.5-26.1-28.2-44.4-41.5-52 2.7-37.7-25.9-74.3-66.7-79.4C390 18.2 362.8 0 332.2 0 307.6 0 286 11.9 272 29.9 258 11.9 236.4 0 211.8 0c-30.6 0-57.7 18.2-69.7 45.6-40.8 5.1-69.3 41.7-66.7 79.4-21 12.2-58.6 50.9-41.1 105.3C12.9 247.4 0 273.4 0 301c0 32.7 17.4 62.4 45.3 78.5-2.3 48.2 36.7 88.7 84.9 87.4 14.2 27.4 42.6 45 74.1 45 19.1 0 36.5-6.8 50.6-17.7-6.3-8.7-11.8-17.9-16.2-27.6-9.1 8.2-21.1 13.3-34.3 13.3-31.9 0-44.2-21.8-53.1-48.2-16.3 2.7-18.3 3.2-22.2 3.2-28.5 0-51.7-23.1-51.7-51.5 0-6.2.9-9.1 3.7-23-25.6-10.4-49-24.1-49-59.4 0-33.9 23-46.9 42.9-58.3-12.6-25.7-12.8-29.2-12.8-39.2 0-33.9 21.9-48.5 49.4-59.7-2.5-10.9-4.2-16.6-4.2-22.8 0-24.1 19.6-43.8 45.5-43.8h.4l12.7.3c5.9-22.9 15-45.5 45.8-45.5 24.3 0 44.2 19.7 44.2 44v228.4c9-12.1 20-22.7 32.1-31.8zm342.2 40.6l-96-95.2c-9.2-9.2-22.4-11.7-34.3-6.8-12.1 5.1-19.9 17-19.9 30.4v31.2h-97.2c-6.1-.1-12 0-18.1 1-53.8 7.9-97.5 50.6-106.7 103.9 0 .2-.1.5-.2.7-8.4 50.3 13.2 100.9 55.2 128.8 4.8 3.2 10.2 4.8 15.6 4.8 18.7 0 32.6-18.9 26.3-37.6-4.3-12.8-4.9-39.6 7.4-56.9 8.1-11.2 20.4-16.7 37.7-16.7h80V432c0 13.4 7.8 25.3 19.9 30.4 11.9 5 25.1 2.4 34.3-6.8l96-95.2c6.2-6.2 9.7-14.6 9.7-23.5s-3.4-17.4-9.7-23.7zM512 432v-63.2H400c-34.8 0-53.8 16.3-63.7 30-17 23.7-18.3 54.4-14.5 75-25.5-21.8-38.1-56-32.4-90.1 6.7-40.2 39.6-72.3 80-78.2 4.4-.7 8.7-.6 14.7-.6h128l-.3-64.1 96 95.2-95.8 96z\"]\n};\nvar faMinus = {\n prefix: 'fal',\n iconName: 'minus',\n icon: [384, 512, [], \"f068\", \"M376 232H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z\"]\n};\nvar faMinusCircle = {\n prefix: 'fal',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M140 274c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v12c0 6.6-5.4 12-12 12H140zm364-18c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-32 0c0-119.9-97.3-216-216-216-119.9 0-216 97.3-216 216 0 119.9 97.3 216 216 216 119.9 0 216-97.3 216-216z\"]\n};\nvar faMinusHexagon = {\n prefix: 'fal',\n iconName: 'minus-hexagon',\n icon: [576, 512, [], \"f307\", \"M441.5 39.8C432.9 25.1 417.1 16 400 16H176c-17.1 0-32.9 9.1-41.5 23.8l-112 192c-8.7 14.9-8.7 33.4 0 48.4l112 192c8.6 14.7 24.4 23.8 41.5 23.8h224c17.1 0 32.9-9.1 41.5-23.8l112-192c8.7-14.9 8.7-33.4 0-48.4l-112-192zm84.3 224.3l-112 192c-2.9 4.9-8.2 7.9-13.8 7.9H176c-5.7 0-11-3-13.8-7.9l-112-192c-2.9-5-2.9-11.2 0-16.1l112-192c2.8-5 8.1-8 13.8-8h224c5.7 0 11 3 13.8 7.9l112 192c2.9 5 2.9 11.2 0 16.2zM172 274c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v12c0 6.6-5.4 12-12 12H172z\"]\n};\nvar faMinusOctagon = {\n prefix: 'fal',\n iconName: 'minus-octagon',\n icon: [512, 512, [], \"f308\", \"M361.5 14.1c-9-9-21.2-14.1-33.9-14.1H184.5c-12.7 0-24.9 5.1-33.9 14.1L14.1 150.5c-9 9-14.1 21.2-14.1 33.9v143.1c0 12.7 5.1 24.9 14.1 33.9l136.5 136.5c9 9 21.2 14.1 33.9 14.1h143.1c12.7 0 24.9-5.1 33.9-14.1L498 361.4c9-9 14.1-21.2 14.1-33.9v-143c0-12.7-5.1-24.9-14.1-33.9L361.5 14.1zM480 327.5c0 4.3-1.7 8.3-4.7 11.3L338.9 475.3c-3 3-7 4.7-11.3 4.7H184.5c-4.3 0-8.3-1.7-11.3-4.7L36.7 338.9c-3-3-4.7-7-4.7-11.3V184.5c0-4.3 1.7-8.3 4.7-11.3L173.1 36.7c3-3 7-4.7 11.3-4.7h143.1c4.3 0 8.3 1.7 11.3 4.7l136.5 136.5c3 3 4.7 7 4.7 11.3v143zM140 274c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v12c0 6.6-5.4 12-12 12H140z\"]\n};\nvar faMinusSquare = {\n prefix: 'fal',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 64c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352m0-32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-60 242c6.6 0 12-5.4 12-12v-12c0-6.6-5.4-12-12-12H108c-6.6 0-12 5.4-12 12v12c0 6.6 5.4 12 12 12h232z\"]\n};\nvar faMistletoe = {\n prefix: 'fal',\n iconName: 'mistletoe',\n icon: [576, 512, [], \"f7b4\", \"M542.1 197.4c-29-29-104.4-41.3-143.9-45.8L304 57.4V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v49.4l-94.2 94.2c-39.5 4.6-114.9 16.9-143.9 45.8-40 40-45.4 99.4-12.1 132.7C36.5 344.8 56.3 352 77.2 352c26.6 0 55-11.5 77.4-33.9 14.9-14.9 25.3-42 32.6-70.2 5.6 4.9 12.7 8.1 20.8 8.1 17.7 0 32-14.3 32-32s-14.3-32-32-32c-3.6 0-6.9 1-10.2 2.1 1.1-7.3 1.9-13.9 2.6-19.9l71.6-71.6v170.5c-27.3 30.4-80 94.5-80 136.4 0 56.6 43 102.4 96 102.4s96-45.8 96-102.4c0-41.9-52.7-106-80-136.4V102.6l71.6 71.6c4.6 39.5 16.9 114.9 45.8 143.9 22.4 22.4 50.8 33.9 77.4 33.9 20.9 0 40.7-7.2 55.4-21.8 33.3-33.4 27.9-92.8-12.1-132.8zM132 295.5C116.4 311.1 96.4 320 77.2 320c-9.2 0-22.4-2.2-32.7-12.5C24 287.1 29.6 247 56.5 220c16.5-16.5 66.2-28.7 110.4-35-6.1 44.2-18.3 93.9-34.9 110.5zm220 114.1c0 38.8-28.7 70.4-64 70.4s-64-31.6-64-70.4c0-23.5 32.9-70.4 64-106.4 31.1 36 64 82.8 64 106.4zm179.5-102.1C521.2 317.8 508 320 498.8 320c-19.2 0-39.2-8.9-54.8-24.5-16.5-16.5-28.7-66.2-35-110.4 44.2 6.2 93.8 18.4 110.4 35 27 26.9 32.6 67 12.1 87.4zM384 64c17.7 0 32-14.3 32-32S401.7 0 384 0s-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faMitten = {\n prefix: 'fal',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M420.9 197.6c-13.5-11.4-30.6-17.6-48.2-17.6-21.9 0-42.5 9.5-56.9 26.1l-20.4-89C279.7 48.1 219.8 0 149.8 0c-11.3 0-22.7 1.3-33.8 3.9C35.6 22.6-14.7 103.9 3.8 185l44.6 195c.4 1.9 1.1 3.7 1.6 5.6-9.4 3.1-18 11.8-18 22.4v80c0 13.3 10.7 24 23.8 24h303.1c13.1 0 25.2-10.7 25.2-24v-80c0-11.4-9.4-20.4-19.9-22.9l66.4-80.4c26.6-32.2 22.2-80.2-9.7-107.1zM352 480H64v-64h288v64zm54.2-195.8L323.7 384H82.9c-1.2-3.7-2.7-7.4-3.6-11.3l-44.6-195C20.1 113.8 59.7 49.8 123.1 35c8.8-2 17.7-3.1 26.6-3.1 55.2 0 102.4 37.9 114.8 92.3L292 244.6l7.2 31.4 20.5-24.8 19.4-23.5c8.3-10.1 20.5-15.8 33.5-15.8 10.2 0 20 3.6 27.9 10.2 18.6 15.6 21.1 43.4 5.7 62.1z\"]\n};\nvar faMobile = {\n prefix: 'fal',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M192 416c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zM320 48v416c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h224c26.5 0 48 21.5 48 48zm-32 0c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v416c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V48z\"]\n};\nvar faMobileAlt = {\n prefix: 'fal',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M192 416c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm32-320H96v240h128V96m20-32c6.6 0 12 5.4 12 12v280c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h168zm76-16v416c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h224c26.5 0 48 21.5 48 48zm-32 0c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v416c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V48z\"]\n};\nvar faMobileAndroid = {\n prefix: 'fal',\n iconName: 'mobile-android',\n icon: [320, 512, [], \"f3ce\", \"M196 448h-72c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12zM320 48v416c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h224c26.5 0 48 21.5 48 48zm-32 0c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v416c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V48z\"]\n};\nvar faMobileAndroidAlt = {\n prefix: 'fal',\n iconName: 'mobile-android-alt',\n icon: [320, 512, [], \"f3cf\", \"M224 96v240H96V96h128m48-96H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM48 480c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h224c8.8 0 16 7.2 16 16v416c0 8.8-7.2 16-16 16H48zM244 64H76c-6.6 0-12 5.4-12 12v280c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12zm-48 352h-72c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h72c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12z\"]\n};\nvar faMoneyBill = {\n prefix: 'fal',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M320 144c-53 0-96 50.1-96 112 0 61.8 43 112 96 112s96-50.1 96-112-43-112-96-112zm0 192c-35.3 0-64-35.9-64-80s28.7-80 64-80 64 35.9 64 80-28.7 80-64 80zM608 64H32C14.3 64 0 78.3 0 96v320c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM32 96h64c0 35.3-28.7 64-64 64V96zm0 320v-64c35.3 0 64 28.7 64 64H32zm576 0h-64c0-35.3 28.7-64 64-64v64zm0-96c-52.9 0-96 43.1-96 96H128c0-52.9-43.1-96-96-96V192c52.9 0 96-43.1 96-96h384c0 52.9 43.1 96 96 96v128zm0-160c-35.3 0-64-28.7-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fal',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M608 64H32C14.3 64 0 78.3 0 96v320c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM32 96h64c0 35.3-28.7 64-64 64zm0 320v-64c35.3 0 64 28.7 64 64zm576 0h-64c0-35.3 28.7-64 64-64zm0-96c-52.9 0-96 43.1-96 96H128c0-52.9-43.1-96-96-96V192c52.9 0 96-43.1 96-96h384c0 52.9 43.1 96 96 96zm0-160c-35.3 0-64-28.7-64-64h64zm-288-32c-61.9 0-112 57.3-112 128s50.1 128 112 128c61.8 0 112-57.3 112-128s-50.1-128-112-128zm0 224c-44.1 0-80-43.1-80-96s35.9-96 80-96 80 43.1 80 96-35.9 96-80 96zm32-63.9h-16v-88c0-4.4-3.6-8-8-8h-13.7c-4.7 0-9.4 1.4-13.3 4l-15.3 10.2c-3.7 2.5-4.6 7.4-2.2 11.1l8.9 13.3c2.5 3.7 7.4 4.6 11.1 2.2l.5-.3V288h-16c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-7.9z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fal',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm0 192c-35.29 0-64-35.89-64-80s28.71-80 64-80 64 35.89 64 80-28.71 80-64 80zM621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34C70.34 94.34 46.9 79 32.25 79 15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.33-62.35 369.5-62.35 64.91 0 88.34 15.35 103 15.35 17.21 0 32.25-13.32 32.25-31.81V83.93c0-12.64-7.23-24.6-18.84-29.47zm-588.21 56.8c20.22 6.42 41.03 10.53 62.67 12.89-1.97 33.41-29.23 60.04-62.89 60.43l.22-73.32zM32 428.07l.13-42.54c33.58.07 60.88 26.31 63.38 59.43-22.45-3.04-43.63-8.45-63.51-16.89zm575.05-27.33c-20.16-6.4-40.9-10.51-62.47-12.87 2.89-32.5 29.69-58.14 62.69-58.52l-.22 71.39zm.31-103.54c-50 .34-90.59 39.32-94.58 88.6-70.73-1.43-137.18 15.82-200.6 31.87-75.07 19-126.54 31.21-184.41 29.87-1.23-52.02-43.48-94.01-95.55-94.13l.41-136.67c50.65-.34 91.72-40.32 94.78-90.52 70.53 1.41 137.02-15.83 200.4-31.87C402.6 75.41 454.3 63.13 512.03 64.46c.18 52.93 43.01 95.94 95.74 96.07l-.41 136.67zm.51-168.8c-34.24-.07-62.04-27.34-63.58-61.38 22.53 3.03 43.78 8.45 63.71 16.91l-.13 44.47z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fal',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm0 192c-35.29 0-64-35.89-64-80s28.71-80 64-80 64 35.89 64 80-28.71 80-64 80zM621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34C70.34 94.34 46.9 79 32.25 79 15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.33-62.35 369.5-62.35 64.91 0 88.34 15.35 103 15.35 17.21 0 32.25-13.32 32.25-31.81V83.93c0-12.64-7.23-24.6-18.84-29.47zm-22.69 344c-16.94-4.79-45.28-12.8-93.72-12.8-65.57 0-130.15 16.34-192.6 32.15-61.35 15.53-119.3 30.2-176.9 30.2-37.96 0-71.99-6.53-103.25-19.93l-.49-317.1c1.55.18 6.25 1.51 10.02 2.57 16.93 4.79 45.28 12.8 93.71 12.8 65.57 0 130.14-16.35 192.59-32.15C389.2 78.66 447.15 64 504.75 64c37.97 0 72 6.54 103.25 19.93l.49 317.1c-1.55-.18-6.25-1.51-10.02-2.57z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fal',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M624 32H16C7.16 32 0 39.16 0 48v400c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V48c0-8.84-7.16-16-16-16zm-16 416H32V160h576v288zm0-320H32V64h576v64zM104 384h144c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm288 0h144c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H392c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm-288-96h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm296 0h128c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16H400c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16zm16-64h96v32h-96v-32z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fal',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 416H32V64h576v384zM296 320h80c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm240-32h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h80c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-240-64h240c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H296c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm-161.28 33.72l42.19 11.44c4.19 1.14 7.09 4.55 7.09 8.3 0 4.8-4.5 8.7-10.06 8.7H147.6c-4.15 0-8.23-1.04-11.77-2.95-3.08-1.67-6.84-1.37-9.24 1.18l-12.07 12.73c-3.11 3.28-2.6 8.64 1.13 11.19 8.3 5.65 18.06 8.88 28.35 9.52V328c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-10.25c22.18-1.1 40-18.57 40-40.3 0-18.17-12.62-34.28-30.72-39.17l-42.19-11.44c-4.19-1.14-7.09-4.55-7.09-8.3 0-4.8 4.5-8.7 10.06-8.7h26.34c4.15 0 8.23 1.04 11.77 2.95 3.08 1.66 6.84 1.37 9.24-1.18l12.07-12.73c3.11-3.28 2.6-8.64-1.13-11.19-8.3-5.65-18.06-8.88-28.35-9.52V168c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v10.25c-22.18 1.1-40 18.57-40 40.3 0 18.17 12.62 34.28 30.72 39.17z\"]\n};\nvar faMoneyCheckEdit = {\n prefix: 'fal',\n iconName: 'money-check-edit',\n icon: [640, 512, [], \"f872\", \"M425.23 406.49A32.06 32.06 0 0 0 448 416h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-9.5-22.76L246.68 12.07a41.15 41.15 0 0 0-58.24 0l-48.38 48.4A41.48 41.48 0 0 0 128 89.89 40.68 40.68 0 0 0 140.34 119zM289.46 100L512 320v64h-64L228.1 161.4l61.36-61.4zM162.69 83.09l48.39-48.4A9.21 9.21 0 0 1 217.6 32a9 9 0 0 1 6.45 2.69l44.53 44.54-61.36 61.38-44.53-44.54a9.18 9.18 0 0 1 0-12.98zM128 408a8 8 0 0 0 8 8h253.61l-31.71-32H136a8 8 0 0 0-8 8zm8-88h158.49l-31.71-32H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm472-192H409.15l32.3 32H608v320H32V160h104l-18-18.12A73.25 73.25 0 0 1 107.13 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faMoneyCheckEditAlt = {\n prefix: 'fal',\n iconName: 'money-check-edit-alt',\n icon: [640, 512, [], \"f873\", \"M425.23 406.49A32.06 32.06 0 0 0 448 416h64a32 32 0 0 0 32-32v-64a32 32 0 0 0-9.5-22.76L246.68 12.07a41.15 41.15 0 0 0-58.24 0l-48.38 48.4A41.48 41.48 0 0 0 128 89.89 40.68 40.68 0 0 0 140.34 119zM289.46 100L512 320v64h-64L228.1 161.4l61.36-61.4zM162.69 83.09l48.39-48.4A9.21 9.21 0 0 1 217.6 32a9 9 0 0 1 6.45 2.69l44.53 44.54-61.36 61.38-44.53-44.54a9.18 9.18 0 0 1 0-12.98zM224 408a8 8 0 0 0 8 8h157.61l-31.71-32H232a8 8 0 0 0-8 8zm8-88h62.49l-31.71-32H232a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm376-192H409.15l32.3 32H608v320H32V160h104l-18-18.12A73.25 73.25 0 0 1 107.13 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zM136 424h16a8 8 0 0 0 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-20-13-37.81-31.58-43.39l-45-13.5c-5.16-1.54-8.77-6.78-8.77-12.73 0-7.27 5.29-13.19 11.79-13.19h28.11a24 24 0 0 1 12.82 3.72 8.21 8.21 0 0 0 10.13-.73l11.75-11.21a8 8 0 0 0-.57-12.14A57.15 57.15 0 0 0 160 240.29V224a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 20 13 37.81 31.58 43.39l45 13.5c5.16 1.54 8.77 6.78 8.77 12.73 0 7.27-5.29 13.19-11.79 13.19h-28.12a24.08 24.08 0 0 1-12.77-3.72 8.21 8.21 0 0 0-10.13.73l-11.8 11.21a8 8 0 0 0 .57 12.14A57.23 57.23 0 0 0 128 399.71V416a8 8 0 0 0 8 8z\"]\n};\nvar faMonitorHeartRate = {\n prefix: 'fal',\n iconName: 'monitor-heart-rate',\n icon: [576, 512, [], \"f611\", \"M544 0H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm0 480H32V272h134.12l43.56 87.16c2.72 5.45 8.28 8.84 14.31 8.84.38 0 .75-.02 1.12-.05 6.47-.45 12-4.75 14.06-10.89L288 210.59l16.81 50.45c2.18 6.54 8.3 10.95 15.19 10.95h152c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H331.53l-28.34-85.06c-4.38-13.06-26-13.06-30.38 0L221.03 310.3l-30.72-61.45a15.996 15.996 0 0 0-14.31-8.84H32V32h512v448z\"]\n};\nvar faMonkey = {\n prefix: 'fal',\n iconName: 'monkey',\n icon: [640, 512, [], \"f6fb\", \"M576 192c35.35 0 64-28.65 64-64 0-41.85-35.37-64-64-64h-5.88C556.9 26.8 521.74 0 480 0s-76.9 26.8-90.12 64H384c-28.22 0-64 21.93-64 64 0 35.35 28.65 64 64 64h5.88C391.02 195.2 192 218.88 192 416v32c0 11.71 3.39 22.55 8.9 32H176c-26.47 0-48-21.53-48-48V192c0-35.3-28.72-64-64-64S0 156.7 0 192v48c0 8.84 7.16 16 16 16s16-7.16 16-16v-48c0-17.64 14.34-32 32-32s32 14.36 32 32v240c0 44.11 35.88 80 80 80h240c17.67 0 32-14.33 32-32 0-26.5-16.19-49.3-39.21-59l72.48-54.79L512 458.36V480c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-26.8c0-8.62-1.38-17.15-4.11-25.33l-65.42-192.21c14.4-11.15 25.44-26.16 31.65-43.65H576zm0-96c14.22 0 32 11.05 32 32 0 17.64-14.36 32-32 32V96zm-192 64c-17.64 0-32-14.36-32-32 0-20.84 17.57-32 32-32v64zm189.53 277.98c1.63 4.9 2.47 10.04 2.47 15.21V480h-32v-26.83L497.54 313.8 320 448h64c17.66 0 32 14.36 32 32H256c-17.67 0-32-14.33-32-32v-32c0-103.74 82.34-188.04 185.2-191.66C426.76 243.66 451.84 256 480 256c10.48 0 20.38-2.1 29.82-5.2l63.71 187.18zM544 160c0 35.29-28.71 64-64 64s-64-28.71-64-64V96c0-35.29 28.71-64 64-64s64 28.71 64 64v64zm-96-64c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm64 0c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faMonument = {\n prefix: 'fal',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 416h-48l-30.86-315.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69C200.19 1.56 196.09 0 192 0s-8.19 1.56-11.31 4.69L104.08 81.3a31.97 31.97 0 0 0-9.21 19.44L64 416H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM126.71 103.92l65.3-65.3 65.29 65.23L287.85 416H96.15l30.56-312.08zM352 480H32v-32h320v32zM232 256h-80c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faMoon = {\n prefix: 'fal',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M448.964 365.617C348.188 384.809 255.14 307.765 255.14 205.419c0-58.893 31.561-112.832 82.574-141.862 25.83-14.7 19.333-53.859-10.015-59.28A258.114 258.114 0 0 0 280.947 0c-141.334 0-256 114.546-256 256 0 141.334 114.547 256 256 256 78.931 0 151.079-35.924 198.85-94.783 18.846-23.22-1.706-57.149-30.833-51.6zM280.947 480c-123.712 0-224-100.288-224-224s100.288-224 224-224c13.984 0 27.665 1.294 40.94 3.745-58.972 33.56-98.747 96.969-98.747 169.674 0 122.606 111.613 214.523 231.81 191.632C413.881 447.653 351.196 480 280.947 480z\"]\n};\nvar faMoonCloud = {\n prefix: 'fal',\n iconName: 'moon-cloud',\n icon: [576, 512, [], \"f754\", \"M320 300.8c0-45.4-36.6-82.4-81.8-83.2-16.1-34.1-50.8-57.6-90.2-57.6-41.7 0-77.6 25.2-92.5 62.5C23 233.9 0 264.6 0 300.8 0 346.7 37.3 384 83.2 384h153.6c45.9 0 83.2-37.3 83.2-83.2zM236.8 352H83.2C54.9 352 32 329.1 32 300.8c0-27.5 21.8-49.8 49-51 4.9-32.7 32.9-57.8 67-57.8 35.8 0 64.8 27.8 67.5 62.9 6.5-3.1 13.6-5.3 21.3-5.3 28.3 0 51.2 22.9 51.2 51.2S265.1 352 236.8 352zm336.8-.8c-4.1-8.6-12.4-13.9-21.8-13.9-1.5 0-3 .1-4.6.4-7.7 1.5-15.5 2.2-23.2 2.2-67 0-121.5-54.7-121.5-121.9 0-43.7 23.6-84.3 61.6-106 8.9-5.1 13.6-15 11.9-25.1-1.7-10.2-9.4-17.9-19.5-19.8-11.5-2.1-23.3-3.2-35-3.2-76.6 0-142.7 45.3-173.4 110.5 3.5 4.1 6.8 8.5 9.8 13 5.9 1.1 11.6 2.8 17.1 4.8C299.7 135.8 356 96 421.5 96c3 0 5.9.1 8.9.2-37.4 28.9-59.9 73.9-59.9 121.9C370.5 303 439.4 372 524 372c2.6 0 5.2-.1 7.8-.2C502.2 400.1 463 416 421.5 416c-38.4 0-73.2-14.2-100.8-36.9-7.6 8.1-16.3 14.9-25.9 20.6 33.8 29.9 78.1 48.2 126.7 48.2 58.1 0 112.4-25.9 149-71.1 6-7.2 7.2-17.1 3.1-25.6z\"]\n};\nvar faMoonStars = {\n prefix: 'fal',\n iconName: 'moon-stars',\n icon: [512, 512, [], \"f755\", \"M333.9 426.2c-.6 0-1.2.1-1.8.2-9.6 1.8-19.2 2.7-28.6 2.7-81.3 0-150-66.1-150-150.4 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7-11.6-2.1-23.3-3.2-35-3.2C85.9 128 0 213.9 0 320c0 106 85.8 192 191.8 192 59.2 0 113.2-26.9 149-71.1 4.9-6 .3-14.7-6.9-14.7zM191.8 480C103.7 480 32 408.2 32 320c0-78.5 56.8-144 131.4-157.5-26.6 32.2-41.8 73.2-41.8 116.2 0 89.8 65.1 164.7 150.5 179.7-24 14-51.6 21.6-80.3 21.6zm311.4-286.3l-48.6-24.3-24.3-48.6c-5.4-10.8-23.2-10.8-28.6 0l-24.3 48.6-48.6 24.3c-5.4 2.7-8.8 8.2-8.8 14.3s3.4 11.6 8.8 14.3l48.6 24.3 24.3 48.6c2.7 5.4 8.2 8.8 14.3 8.8s11.6-3.4 14.3-8.8l24.3-48.6 48.6-24.3c5.4-2.7 8.8-8.2 8.8-14.3s-3.4-11.6-8.8-14.3zm-67.7 26.7c-3.1 1.5-5.6 4.1-7.2 7.2L416 252.2l-12.3-24.7c-1.6-3.1-4.1-5.6-7.2-7.2L371.8 208l24.7-12.4c3.1-1.5 5.6-4.1 7.2-7.2l12.3-24.7 12.3 24.7c1.6 3.1 4.1 5.6 7.2 7.2l24.7 12.4-24.7 12.4zM304 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32z\"]\n};\nvar faMortarPestle = {\n prefix: 'fal',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504 192H390.63L497.36 85.27c24.11-24.11 17.51-64.75-12.98-80A49.957 49.957 0 0 0 462.05 0c-10.62 0-21.16 3.38-29.98 9.99L189.39 192H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24v32c0 81.42 50.76 150.83 122.29 178.75-12.76 16.78-21.7 36.63-24.92 58.44-1.45 9.83 5.98 18.81 15.92 18.81h221.42c9.94 0 17.37-8.97 15.92-18.81-3.21-21.81-12.15-41.67-24.92-58.44C429.24 406.83 480 337.42 480 256v-32h24c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM451.26 35.59c17.58-13.18 39.21 11.31 23.47 27.05L345.38 192H242.72L451.26 35.59zM448 256c0 66.31-40.01 124.77-101.92 148.94l-39.51 15.42 25.68 33.76c6.08 8 10.87 16.75 14.19 25.88H165.57c3.32-9.13 8.1-17.88 14.19-25.88l25.68-33.76-39.51-15.42C104.01 380.77 64 322.31 64 256v-32h384v32z\"]\n};\nvar faMosque = {\n prefix: 'fal',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M240 384c-29.53 0-48 25.06-48 49.89V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72c0-8.83 7.19-16 16-16s16 7.17 16 16v72c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72c0-26.47-21.53-48-48-48zm352-128h-6.17c3.77-8.64 6.17-17.59 6.17-26.91 0-53.93-43.52-95.46-90.74-124.66C459.48 78.59 426.39 52.01 384 0c-42.25 51.85-74.61 78.05-117.26 104.43-47.22 29.2-90.74 70.73-90.74 124.66 0 9.32 2.4 18.27 6.17 26.91H176c-5.64 0-10.97 1.15-16 2.95V120C160 40 80 0 80 0S0 40 0 120v392h32V192h96v312c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V304c0-8.84 7.16-16 16-16h416c8.84 0 16 7.16 16 16v200c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V304c0-26.51-21.49-48-48-48zm-464-96H32v-40c0-40.6 29.55-68.62 48-82.15C98.45 51.38 128 79.4 128 120v40zm421.07 96H218.93c-7.26-9.22-10.93-18.24-10.93-26.91 0-33.03 24.56-65.27 73-95.84 40.99-25.86 74.89-53.45 103-83.86 28.11 30.41 62.02 58 103 83.86 48.44 30.56 73 62.81 73 95.84 0 8.67-3.67 17.69-10.93 26.91zM384 320c-61.02 30.51-64 76.2-64 89.89V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-94.11c0-27.19 20.69-45.33 32-53.22 11.31 7.89 32 26.03 32 53.22V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-94.11c0-13.71-2.98-59.38-64-89.89zm144 64c-29.53 0-48 25.06-48 49.89V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72c0-8.83 7.19-16 16-16s16 7.17 16 16v72c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72c0-26.47-21.53-48-48-48z\"]\n};\nvar faMotorcycle = {\n prefix: 'fal',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.238 192c-17.943-.033-35.025 3.631-50.534 10.266L435.799 160H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-60a24.002 24.002 0 0 0-19.2 9.6l-31.893 42.524-27.265-44.485A16.005 16.005 0 0 0 368 64h-76c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h67.04l39.226 64H217.584c-16.679-19.064-41.794-32-89.584-32H80.452c-8.616 0-16.029 6.621-16.433 15.227C63.586 152.416 70.907 160 80 160h48c24.268 0 40.146 8.239 51.566 19.951l-10.364 18.843a127.7 127.7 0 0 0-39.723-6.786C58.709 191.202.272 248.724.001 319.499-.27 390.422 57.141 448 128 448c59.641 0 109.745-40.795 123.956-96h84.776c9.384 0 16.781-8.057 15.936-17.438-5.123-56.79 20.187-110.805 64.631-143.511l16.791 27.395c-30.629 23.533-50.314 60.604-50.086 102.267.38 69.638 57.194 126.66 126.83 127.281 70.58.629 128.112-55.871 129.153-126.057 1.052-71.012-56.729-129.808-127.749-129.937zM462 92h54v40h-84l30-40zM128 416c-52.935 0-96-43.065-96-96s43.065-96 96-96a95.687 95.687 0 0 1 25.45 3.436L97.98 328.289C92.126 338.933 99.838 352 112 352h106.499c-13.208 37.247-48.781 64-90.499 64zm192-96H139.061l70.399-128h159.467C337.778 226.865 320 272.362 320 320zm188.206 95.926c-49.822-1.93-90.199-42.305-92.132-92.127-1.214-31.294 12.642-59.467 34.879-77.836l57.496 93.808c3.463 5.651 10.852 7.424 16.502 3.96l6.821-4.181c5.65-3.463 7.423-10.851 3.96-16.502l-57.051-93.083A95.57 95.57 0 0 1 512 224c52.935 0 96 43.065 96 96 0 54.194-45.139 98.043-99.794 95.926z\"]\n};\nvar faMountain = {\n prefix: 'fal',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 32l102.86 160H313.38L256 249.38l-46.14-46.05L320 32zM32 480l160.19-249.19L256 294.62 326.62 224h116.8L608 480H32z\"]\n};\nvar faMountains = {\n prefix: 'fal',\n iconName: 'mountains',\n icon: [640, 512, [], \"f6fd\", \"M635.73 406.91l-194.04-297.6C435.9 100.44 425.95 96 416 96c-9.95 0-19.9 4.44-25.69 13.31l-52 79.76-70.79-110.55C261.32 68.84 250.66 64 240 64s-21.32 4.84-27.52 14.52L4.58 403.18C-7.99 422.81 6.81 448 30.92 448h580.22c22.5 0 36.32-23.09 24.59-41.09zM33.71 417.02L239.03 96.17c.08-.04.44-.17.97-.17l.57-.22L445.63 416l-411.92 1.02zM479.65 416c-.39-4.33-1.58-8.7-4.22-12.82L357.24 218.62 416 128.51 603.45 416h-123.8z\"]\n};\nvar faMouse = {\n prefix: 'fal',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M224 0h-64A160 160 0 0 0 0 160v192a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V160A160 160 0 0 0 224 0zM32 160A128.14 128.14 0 0 1 160 32h16v160H32zm320 192a128.14 128.14 0 0 1-128 128h-64A128.14 128.14 0 0 1 32 352V224h320zm0-160H208V32h16a128.14 128.14 0 0 1 128 128z\"]\n};\nvar faMouseAlt = {\n prefix: 'fal',\n iconName: 'mouse-alt',\n icon: [384, 512, [], \"f8cd\", \"M224 0h-64A160 160 0 0 0 0 160v192a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V160A160 160 0 0 0 224 0zm128 352a128.14 128.14 0 0 1-128 128h-64A128.14 128.14 0 0 1 32 352V160A128.14 128.14 0 0 1 160 32h64a128.14 128.14 0 0 1 128 128zM192 80a48.05 48.05 0 0 0-48 48v32a48 48 0 0 0 96 0v-32a48.05 48.05 0 0 0-48-48zm16 80a16 16 0 0 1-32 0v-32a16 16 0 0 1 32 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fal',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M154.149 488.438l-41.915-101.865-46.788 52.8C42.432 465.345 0 448.788 0 413.5V38.561c0-34.714 41.401-51.675 64.794-26.59L309.547 274.41c22.697 24.335 6.074 65.09-27.195 65.09h-65.71l42.809 104.037c8.149 19.807-1.035 42.511-20.474 50.61l-36 15.001c-19.036 7.928-40.808-1.217-48.828-20.71zm-31.84-161.482l61.435 149.307c1.182 2.877 4.117 4.518 6.926 3.347l35.999-15c3.114-1.298 4.604-5.455 3.188-8.896L168.872 307.5h113.479c5.009 0 7.62-7.16 3.793-11.266L41.392 33.795C37.785 29.932 32 32.879 32 38.561V413.5c0 5.775 5.935 8.67 9.497 4.65l80.812-91.194z\"]\n};\nvar faMp3Player = {\n prefix: 'fal',\n iconName: 'mp3-player',\n icon: [384, 512, [], \"f8ce\", \"M64 192h256V64H64zm32-96h192v64H96zM336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm16 464a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16zM192 224a112 112 0 1 0 112 112 112.14 112.14 0 0 0-112-112zm0 192a80 80 0 1 1 80-80 80.08 80.08 0 0 1-80 80zm0-104a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faMug = {\n prefix: 'fal',\n iconName: 'mug',\n icon: [576, 512, [], \"f874\", \"M480 64H64a32 32 0 0 0-32 32v256a96 96 0 0 0 96 96h192a96 96 0 0 0 96-96v-96h64a96 96 0 0 0 0-192zm-96 288a64.07 64.07 0 0 1-64 64H128a64.07 64.07 0 0 1-64-64V96h320zm96-128h-64V96h64a64 64 0 0 1 0 128z\"]\n};\nvar faMugHot = {\n prefix: 'fal',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M416 192.1H32c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96h192c53 0 96-43 96-96v-32h32c52.9 0 96-43 96-96s-43.1-95.9-96-95.9zM352 416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V224.1h320V416zm64-64h-32V224h32c35.3 0 64 28.7 64 64s-28.7 64-64 64zM191.3 78.5c17.3 17.2 30.4 40.7 32.2 73.4.2 4.3 3.7 7.8 8 7.8h16c4.5 0 8.2-3.7 8-8.2-2.1-42.1-19.3-73.3-41.6-95.5-18.4-18.7-21.1-38.2-21.9-48.9-.3-4.1-3.9-7.1-8-7.1l-16 .1c-4.7 0-8.2 4-7.9 8.7.9 14.9 5.2 43.6 31.2 69.7zm-95.6 0c17.3 17.2 30.4 40.7 32.2 73.4.2 4.3 3.7 7.8 8 7.8h16c4.5 0 8.2-3.7 8-8.2-2.1-42.1-19.3-73.3-41.6-95.5-18.3-18.7-21-38.2-21.8-48.9C96.2 3 92.6 0 88.4 0l-16 .1c-4.7 0-8.2 4-7.9 8.7 1 14.9 5.2 43.6 31.2 69.7z\"]\n};\nvar faMugMarshmallows = {\n prefix: 'fal',\n iconName: 'mug-marshmallows',\n icon: [512, 512, [], \"f7b7\", \"M416 160h-64c12.5-12.5 12.5-32.8 0-45.3l-73.4-73.4c-6.2-6.2-14.4-9.4-22.6-9.4s-16.4 3.1-22.6 9.4L206.7 68c-4.5-2.4-9.3-4-14.7-4H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96v-32h32c52.9 0 96-43.1 96-96s-43.1-96-96-96zM256 64l73.4 73.4-22.7 22.6H205.3l-22.6-22.6L256 64zM64 96h114.7L160 114.7c-12.5 12.5-12.5 32.8 0 45.3H64V96zm288 288c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V192h64v80c0 8.8 7.2 16 16 16s16-7.2 16-16v-80h224v192zm64-64h-32V192h32c35.3 0 64 28.7 64 64s-28.7 64-64 64z\"]\n};\nvar faMugTea = {\n prefix: 'fal',\n iconName: 'mug-tea',\n icon: [640, 512, [], \"f875\", \"M601.9 448H6.1c-13.1 0-4.5 32 20 32h555.8c24.5 0 33.1-32 20-32zM544 32H128a32 32 0 0 0-32 32v224a96 96 0 0 0 96 96h192a96 96 0 0 0 96-96v-64h64a96 96 0 0 0 0-192zm-96 256a64.07 64.07 0 0 1-64 64H192a64.07 64.07 0 0 1-64-64V64h96v32l-38.63 38.63a32 32 0 0 0-9.37 22.62V224a32 32 0 0 0 32 32h64a32 32 0 0 0 32-32v-66.75a32 32 0 0 0-9.37-22.62L256 96V64h192zM240 125.25l32 32V224h-64v-66.75zM544 192h-64V64h64a64 64 0 0 1 0 128z\"]\n};\nvar faMusic = {\n prefix: 'fal',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M481.44 0a29.38 29.38 0 0 0-9.25 1.5l-290.78 96C168.72 101.72 160 114 160 128v244.75C143 360 120.69 352 96 352c-53 0-96 35.81-96 80s43 80 96 80 96-35.81 96-80V256l288-96v148.75C463 296 440.69 288 416 288c-53 0-96 35.81-96 80s43 80 96 80 96-35.81 96-80V32c0-18.25-14.31-32-30.56-32zM96 480c-34.69 0-64-22-64-48s29.31-48 64-48 64 22 64 48-29.31 48-64 48zm320-64c-34.69 0-64-22-64-48s29.31-48 64-48 64 22 64 48-29.31 48-64 48zm64-289.72l-288 96V128h-.56v-.12L480 32.62z\"]\n};\nvar faMusicAlt = {\n prefix: 'fal',\n iconName: 'music-alt',\n icon: [384, 512, [], \"f8cf\", \"M342 1.64L213.41 33.52C200.72 37.74 192 50 192 64v312.13C171.66 361.28 143.38 352 112 352 50.14 352 0 387.82 0 432s50.14 80 112 80 112-35.82 112-80V192l138.12-35.37A32 32 0 0 0 384 126.27V32a32 32 0 0 0-42-30.36zM112 480c-47.14 0-80-25.3-80-48s32.86-48 80-48 80 25.3 80 48-32.86 48-80 48zm240-353.72l-128 32V64h-.56v-.13L352 32z\"]\n};\nvar faMusicAltSlash = {\n prefix: 'fal',\n iconName: 'music-alt-slash',\n icon: [640, 512, [], \"f8d0\", \"M637 485.34L23 1.82A7.85 7.85 0 0 0 11.79 3l-10 12.5A7.92 7.92 0 0 0 3 26.73l614 483.48a7.89 7.89 0 0 0 11.18-1.21l10-12.5a7.82 7.82 0 0 0-1.18-11.16zM320 376.13C299.65 361.28 271.37 352 240 352c-61.86 0-112 35.82-112 80s50.15 80 112 80 112-35.82 112-80v-89.72l-32-25.2zM240 480c-47.15 0-80-25.3-80-48s32.86-48 80-48 80 25.3 80 48-32.87 48-80 48zm112-288l138.12-35.37A32 32 0 0 0 512 126.27V32a32 32 0 0 0-42-30.36L341.4 33.52C328.71 37.74 320 50 320 64v131l32 25.2zm-.56-128.11L480 32v94.26l-128 32V64h-.56z\"]\n};\nvar faMusicSlash = {\n prefix: 'fal',\n iconName: 'music-slash',\n icon: [640, 512, [], \"f8d1\", \"M637 485.34L23 1.82A7.85 7.85 0 0 0 11.79 3l-10 12.5A7.92 7.92 0 0 0 3 26.73l614 483.48a7.89 7.89 0 0 0 11.18-1.21l10-12.5a7.82 7.82 0 0 0-1.18-11.16zM256 128h-.56v-.12L544 32.62v93.66l-218.7 72.9 30.08 23.69L544 160v148.75C527 296 504.71 288 480 288a112.39 112.39 0 0 0-34.78 5.61l33.63 26.48c.39 0 .76-.09 1.15-.09 34.69 0 64 22 64 48 0 1-.34 2-.43 3.06l27.33 21.52A67.33 67.33 0 0 0 576 368V32c0-18.25-14.31-32-30.56-32a29.38 29.38 0 0 0-9.25 1.5l-290.79 96c-10.28 3.42-17.68 12.21-20.22 22.83L256 144.6zm-32 244.75C207 360 184.7 352 160 352c-53 0-96 35.81-96 80s43 80 96 80 96-35.81 96-80V266.7l-32-25.2zM160 480c-34.69 0-64-22-64-48s29.32-48 64-48 64 22 64 48-29.3 48-64 48z\"]\n};\nvar faNarwhal = {\n prefix: 'fal',\n iconName: 'narwhal',\n icon: [640, 512, [], \"f6fe\", \"M594.39 224.44l44.9-191.9c2.72-11.5-2.59-23.5-13-29.25-6.19-3.37-13.38-4.22-20.19-2.22-6.78 1.98-12.41 6.48-15.75 12.62l-99.19 179.69C296.64 207.72 223.11 416 179.87 416c-10.96 0-19.87-8.92-19.87-19.88V288l47.37-24.9c10.39-5.93 16.62-15.93 16.62-26.62v-92.45c0-9.41-9.01-16.03-18.72-16.03-3.47 0-7.03.85-10.3 2.71L112 178.13l-82.98-47.42c-3.27-1.87-6.83-2.71-10.3-2.71C9.01 128 0 134.61 0 144.03v92.45c0 10.7 6.24 20.69 16.62 26.62L64 288v108.12c0 64 51.88 115.87 115.87 115.87H560c44.18 0 80-35.82 80-80V320.54c0-39.11-18.68-72.86-45.61-96.1zm4.65-160.26l-33.11 141.37c-12.23-6.06-25.11-10.06-38.37-11.9l71.48-129.47zM608 432c0 26.47-21.53 48-48 48H179.87C133.63 480 96 442.37 96 396.13V268.67l-64-33.84v-65.56l80 45.71 80-45.71v65.76l-64 33.64v127.46c0 28.6 23.27 51.87 51.87 51.87 29.8 0 49.95-25.95 80.45-65.23C309.41 319.55 383.6 224 512 224c45.41 0 96 39.65 96 96.54V432zm-176-80c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faNetworkWired = {\n prefix: 'fal',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M632 240H336v-80h80c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h80v80H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h120v80H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32h-64v-80h320v80h-64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32h-64v-80h120c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM224 384v96H64v-96h160zm0-256V32h192v96H224zm352 256v96H416v-96h160z\"]\n};\nvar faNeuter = {\n prefix: 'fal',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 74.1 56 135.2 128 143.1V468c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V319.1c72-7.9 128-69 128-143.1zM144 288c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faNewspaper = {\n prefix: 'fal',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.234 0-24 10.767-24 24v8H24c-13.255 0-24 10.745-24 24v280c0 26.51 21.49 48 48 48h504c13.233 0 24-10.767 24-24V88c0-13.233-10.767-24-24-24zM32 400V128h32v272c0 8.822-7.178 16-16 16s-16-7.178-16-16zm512 16H93.258A47.897 47.897 0 0 0 96 400V96h448v320zm-404-96h168c6.627 0 12-5.373 12-12V140c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12zm20-160h128v128H160V160zm-32 212v-8c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H140c-6.627 0-12-5.373-12-12zm224 0v-8c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-64v-8c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-128v-8c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 64v-8c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"]\n};\nvar faNotEqual = {\n prefix: 'fal',\n iconName: 'not-equal',\n icon: [384, 512, [], \"f53e\", \"M376 160h-54.06l38.56-38.56 21.16-21.16c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L254.06 160H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h198.06l-96 96H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h54.06L2.34 411.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L129.94 352H376c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8H177.94l96-96H376c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z\"]\n};\nvar faNotesMedical = {\n prefix: 'fal',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-88.6c.4-2.6.6-5.3.6-8 0-30.9-25.1-56-56-56s-56 25.1-56 56c0 2.7.2 5.4.6 8H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 32c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm160 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h48v20c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12V96h48c8.8 0 16 7.2 16 16v352zm-72-176h-56v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h-56c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h56v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h56c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\"]\n};\nvar faObjectGroup = {\n prefix: 'fal',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M404 192h-84v-52c0-6.6-5.4-12-12-12H108c-6.6 0-12 5.4-12 12v168c0 6.6 5.4 12 12 12h84v52c0 6.6 5.4 12 12 12h200c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12zm-276 96V160h160v128zm256 64H224v-32h84c6.6 0 12-5.4 12-12v-84h64zm116-224c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v20H96V44c0-6.6-5.4-12-12-12H12C5.4 32 0 37.4 0 44v72c0 6.6 5.4 12 12 12h20v256H12c-6.6 0-12 5.4-12 12v72c0 6.6 5.4 12 12 12h72c6.6 0 12-5.4 12-12v-20h320v20c0 6.6 5.4 12 12 12h72c6.6 0 12-5.4 12-12v-72c0-6.6-5.4-12-12-12h-20V128zM32 64h32v32H32zm32 384H32v-32h32zm352-52v20H96v-20c0-6.6-5.4-12-12-12H64V128h20c6.6 0 12-5.4 12-12V96h320v20c0 6.6 5.4 12 12 12h20v256h-20c-6.6 0-12 5.4-12 12zm64 52h-32v-32h32zM448 96V64h32v32z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fal',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v20h-96v-32h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v20H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h20v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-20h96v32h-20c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-20h224v20c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-20V224h20zm-180 96v32h-32v-32h32zM352 64h32v32h-32V64zM32 64h32v32H32V64zm32 288H32v-32h32v32zm20-64H64V128h20c6.627 0 12-5.373 12-12V96h224v20c0 6.627 5.373 12 12 12h20v160h-20c-6.627 0-12 5.373-12 12v20H96v-20c0-6.627-5.373-12-12-12zm140 160h-32v-32h32v32zm256-52v20H256v-20c0-6.627-5.373-12-12-12h-20v-32h96v20c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-20v-96h96v20c0 6.627 5.373 12 12 12h20v160h-20c-6.627 0-12 5.373-12 12zm64 52h-32v-32h32v32zm-32-256v-32h32v32h-32z\"]\n};\nvar faOctagon = {\n prefix: 'fal',\n iconName: 'octagon',\n icon: [512, 512, [], \"f306\", \"M361.5 14.1c-9-9-21.2-14.1-33.9-14.1H184.5c-12.7 0-24.9 5.1-33.9 14.1L14.1 150.5c-9 9-14.1 21.2-14.1 33.9v143.1c0 12.7 5.1 24.9 14.1 33.9l136.5 136.5c9 9 21.2 14.1 33.9 14.1h143.1c12.7 0 24.9-5.1 33.9-14.1L498 361.4c9-9 14.1-21.2 14.1-33.9v-143c0-12.7-5.1-24.9-14.1-33.9L361.5 14.1zM480 327.5c0 4.3-1.7 8.3-4.7 11.3L338.9 475.3c-3 3-7 4.7-11.3 4.7H184.5c-4.3 0-8.3-1.7-11.3-4.7L36.7 338.9c-3-3-4.7-7-4.7-11.3V184.5c0-4.3 1.7-8.3 4.7-11.3L173.1 36.7c3-3 7-4.7 11.3-4.7h143.1c4.3 0 8.3 1.7 11.3 4.7l136.5 136.5c3 3 4.7 7 4.7 11.3v143z\"]\n};\nvar faOilCan = {\n prefix: 'fal',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H272v-64h72c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H168c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h72v64h-64v-.02L37.72 166.84C16.54 162.98 0 179.92 0 198.33v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.44V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.74-5.48-9.03-10.19-7.69zM96 304.91l-64-11.64.04-94.94L96 209.96v94.95zM402.63 384H128V224h208.89c4.97 0 9.87 1.16 14.31 3.38l56.15 28.07c3.64 1.82 7.83 2.18 11.72 1.02l155.35-46.28L402.63 384zm176.21-89.09C568.38 310.06 544 347.53 544 367.98c0 26.47 21.53 48 48 48s48-21.53 48-48c0-20.45-24.38-57.92-34.84-73.08-5.94-8.65-20.38-8.65-26.32.01zM592 383.98c-8.81 0-16-7.17-16-15.98.12-4.89 6.78-18.83 16-34.34 9.22 15.52 15.88 29.45 16 34.33 0 8.82-7.19 15.99-16 15.99z\"]\n};\nvar faOilTemp = {\n prefix: 'fal',\n iconName: 'oil-temp',\n icon: [640, 512, [], \"f614\", \"M8 384h24c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84 2.45 0 4.69-.46 7.1-.56-7.34-9.65-12.99-20.48-16.9-32.22-21.05-1.84-37.38-8.9-46.28-17.12-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm624-32h-24c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1-8.9 8.21-25.23 15.28-46.28 17.12-3.91 11.75-9.57 22.57-16.9 32.22 2.41.1 4.65.56 7.1.56 38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84h24c4.42 0 8-3.58 8-8v-16c.01-4.42-3.57-8-7.99-8zm-312 48.02c44.12 0 80-35.89 80-80.02 0-38.63-27.52-70.95-64-78.38V160h72c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-72V96h72c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8h-72V32h72c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8h-80c-13.2 0-24 10.8-24 24v217.62c-36.48 7.43-64 39.75-64 78.38 0 44.12 35.88 80.02 80 80.02zM320 272c26.47 0 48 21.53 48 48s-21.53 48.02-48 48.02-48-21.55-48-48.02 21.53-48 48-48zm312 208h-24c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 471.58 442.04 480 416 480s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 471.58 250.04 480 224 480s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 471.58 58.04 480 32 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h24c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faOm = {\n prefix: 'fal',\n iconName: 'om',\n icon: [448, 512, [], \"f679\", \"M296.62 92.94c4.08 4.07 10.68 4.07 14.76 0l21.56-21.56a10.43 10.43 0 0 0 0-14.76l-21.56-21.56a10.43 10.43 0 0 0-14.76 0l-21.56 21.56a10.43 10.43 0 0 0 0 14.76l21.56 21.56zM310.56 160c56.59 0 69.84-14.42 71.92-17.31a8.073 8.073 0 0 0 1.52-4.72V112c0-6.58-7.35-10.29-12.5-6.46-20.05 14.86-41.94 22.4-65.06 22.4-39.69 0-69.59-22.14-69.89-22.37-6.99-5.25-16.15 3.37-11.23 10.87 1.17 1.78 29.21 43.56 85.24 43.56zm44.54 48.47c-19.97 2.1-38.29 12.09-52.49 26.29l-22.03 22.03a51.918 51.918 0 0 1-36.7 15.2h-72.56c17.23-20.68 25.74-48.87 17.53-79.42-8.62-32.11-35.75-57.32-68.49-63.13-31.19-5.53-61.18 4.98-81.39 27.25-3.07 3.38-2.29 8.78 1.36 11.53l12.86 9.67c3.37 2.53 7.91 1.83 10.86-1.19 12.67-12.95 30.8-19.04 49.66-15.91 21.57 3.58 39.66 20.39 44.68 41.67C167.06 239.18 139.29 272 104 272l-31.99.17c-5.96.03-9.81 6.31-7.15 11.64l8.04 16.09c1.27 2.53 3.8 4.05 6.59 4.28l37.3-.17c37.59 0 71.22 27.41 74.86 64.82C195.83 411.73 162.06 448 120 448h-8c-57.58 0-89.46-30.88-103.13-51.13-2.71-4.02-8.86-1.91-8.87 2.78C-.04 418.05 27.36 480 115.44 480c58.2 0 109.54-47.6 108.54-105.79-.47-27.26-11.6-51.9-29.24-70.21h49.13c22.25 0 43.59-8.84 59.32-24.57l23.14-23.15c7.28-7.28 16.31-12.9 26.38-15.06 33.54-7.2 63.28 18.31 63.28 50.65V376c0 22.09-17.91 40-40 40h-24c-20.68 0-32.6-12.97-40.55-22.47-2.5-2.99-7.45-1.29-7.45 2.56v19.3s-2.4 32.62 48 32.62h24c39.77 0 72-32.24 72-72v-84.12c.01-49.24-42.61-88.7-92.89-83.42z\"]\n};\nvar faOmega = {\n prefix: 'fal',\n iconName: 'omega',\n icon: [448, 512, [], \"f67a\", \"M448 256c0-132.21-114.54-237.67-249.8-222.55-101.56 11.34-184.1 93-196.48 194.43-11.37 93.2 34.7 176.53 107.34 220.12H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h144c4.42 0 8-3.58 8-8v-24.31c0-6.57-4.1-12.29-10.16-14.83C77.6 402.47 27.63 329.3 32.3 245.13c5.4-97.34 86.31-177 183.72-180.97C325.51 59.7 416 147.48 416 256c0 79.56-48.73 147.79-117.84 176.86-6.06 2.55-10.16 8.26-10.16 14.83V472c0 4.42 3.58 8 8 8h144c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H338.94C404.19 408.85 448 337.63 448 256z\"]\n};\nvar faOrnament = {\n prefix: 'fal',\n iconName: 'ornament',\n icon: [384, 512, [], \"f7b8\", \"M288 153.9V96c0-17.7-14.3-32-32-32h-18.9c1.8-5 2.9-10.4 2.9-16 0-26.5-21.5-48-48-48s-48 21.5-48 48c0 5.6 1.2 11 2.9 16H128c-17.7 0-32 14.3-32 32v57.9C38.7 187.1 0 249 0 320c0 106 86 192 192 192s192-86 192-192c0-71-38.7-132.9-96-166.1zM176 48c0-8.8 7.2-16 16-16s16 7.2 16 16-7.2 16-16 16-16-7.2-16-16zm-48 48h128v43.2c-20-7.1-41.5-11.2-64-11.2s-44 4.1-64 11.2V96zm64 64c52.1 0 97.9 25.4 127.2 64H64.8c29.3-38.6 75.1-64 127.2-64zm0 320c-52.1 0-97.9-25.4-127.2-64h254.4c-29.3 38.6-75.1 64-127.2 64zm146.4-96H45.6C36.9 364.4 32 342.8 32 320s4.9-44.4 13.6-64h292.9c8.6 19.6 13.6 41.2 13.6 64s-5 44.4-13.7 64z\"]\n};\nvar faOtter = {\n prefix: 'fal',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M512 56c-8.84 0-16 7.16-16 16s7.17 16 16 16c8.84 0 16-7.16 16-16s-7.16-16-16-16zm80-24h-17.14L561.6 18.74C549.52 6.66 533.44 0 516.35 0h-20.49c-11.12 0-22.1 2.91-31.75 8.43L310.86 96H288C182.13 96 96 182.13 96 288v1.14C41.79 296.93 0 343.67 0 400c0 61.76 50.24 112 112 112h144c26.47 0 48-21.53 48-48s-21.53-48-48-48H112c-8.82 0-16-7.18-16-16s7.18-16 16-16h208c17.67 0 32-14.33 32-32 0-23-12.19-43.2-30.45-54.48l48.61-25.85 47.32 94.64A32 32 0 0 0 446.1 384H544c17.67 0 32-14.33 32-32 0-35.29-28.71-64-64-64h-26.33l-30.71-61.42 44.82-23.84C512.99 195.71 529.04 192 544 192c52.93 0 96-43.06 96-96V80c0-26.47-21.53-48-48-48zm-48 128c-20.26 0-41.36 4.97-59.25 14.49l-4.19 2.23 16.9-21.96C506.5 143 520.72 136 535.5 136h58.09c-11.73 14.52-29.47 24-49.59 24zm63.19-56H535.5c-24.66 0-48.34 11.67-63.41 31.23l-59.71 77.74L465.89 320H512c17.66 0 32 14.36 32 32h-97.89l-62-123.99L211.13 320H288c17.66 0 32 14.36 32 32H112c-26.47 0-48 21.53-48 48s21.53 48 48 48h144c8.84 0 16 7.16 16 16s-7.16 16-16 16H112c-44.12 0-80-35.89-80-80s35.88-80 80-80h16v-32c0-88.37 71.63-160 160-160h31.36l160.62-91.79A32.048 32.048 0 0 1 495.86 32h20.49c8.55 0 16.58 3.33 22.62 9.37L561.6 64H592c8.84 0 16 7.16 16 16 0 0-.47 21.35-.81 24z\"]\n};\nvar faOutdent = {\n prefix: 'fal',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29a15.63 15.63 0 0 0 11.17 4.7A16 16 0 0 0 128 352V160a16 16 0 0 0-16.13-16 15.66 15.66 0 0 0-11.18 4.7l-96 96a16 16 0 0 0 0 22.62zM96 198.64v114.72L38.63 256zM440 48H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm0 384H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faOutlet = {\n prefix: 'fal',\n iconName: 'outlet',\n icon: [512, 512, [], \"e01c\", \"M448,0H64A64,64,0,0,0,0,64V448a64,64,0,0,0,64,64H448a64,64,0,0,0,64-64V64A64,64,0,0,0,448,0Zm32,448a32,32,0,0,1-32,32H64a32,32,0,0,1-32-32V64A32,32,0,0,1,64,32H448a32,32,0,0,1,32,32ZM369.85,96H142.15a22.86,22.86,0,0,0-16.41,6.7C87.71,141.71,64,195.9,64,256s23.71,114.28,61.74,153.29A22.87,22.87,0,0,0,142.15,416h227.7a22.87,22.87,0,0,0,16.41-6.71c38-39,61.74-93.19,61.74-153.29s-23.71-114.29-61.74-153.3A22.86,22.86,0,0,0,369.85,96Zm-3.68,288H145.83C113.66,349.51,96,304.22,96,256s17.67-93.51,49.83-128H366.17C398.33,162.48,416,207.77,416,256S398.34,349.51,366.17,384ZM192,176a16,16,0,0,0-16,16v80a16,16,0,0,0,32,0V192A16,16,0,0,0,192,176Zm64,128a32,32,0,0,0-32,32v16h64V336A32,32,0,0,0,256,304Zm64-128a16,16,0,0,0-16,16v80a16,16,0,0,0,32,0V192A16,16,0,0,0,320,176Z\"]\n};\nvar faOven = {\n prefix: 'fal',\n iconName: 'oven',\n icon: [448, 512, [], \"e01d\", \"M384,0H64A64,64,0,0,0,0,64V480a32,32,0,0,0,32,32H416a32,32,0,0,0,32-32V64A64,64,0,0,0,384,0Zm32,480H32V160H416Zm0-352H32V64A32,32,0,0,1,64,32H384a32,32,0,0,1,32,32ZM368,64a16,16,0,1,0,16,16A16,16,0,0,0,368,64Zm-64,0a16,16,0,1,0,16,16A16,16,0,0,0,304,64ZM144,64a16,16,0,1,0,16,16A16,16,0,0,0,144,64ZM80,64A16,16,0,1,0,96,80,16,16,0,0,0,80,64Zm0,384H368a16,16,0,0,0,16-16V208a16,16,0,0,0-16-16H80a16,16,0,0,0-16,16V432A16,16,0,0,0,80,448ZM96,224H352V416H96Zm208,32H144a16,16,0,0,0,0,32H304a16,16,0,0,0,0-32Z\"]\n};\nvar faOverline = {\n prefix: 'fal',\n iconName: 'overline',\n icon: [448, 512, [], \"f876\", \"M439 0H7a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8zM223 96A160 160 0 0 0 63 256v96a160 160 0 0 0 320 0v-96A160 160 0 0 0 223 96zm128 256a128 128 0 0 1-256 0v-96a128 128 0 0 1 256 0z\"]\n};\nvar faPageBreak = {\n prefix: 'fal',\n iconName: 'page-break',\n icon: [576, 512, [], \"f877\", \"M232 272a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM128 32h192v112a16 16 0 0 0 16 16h112v64h32v-82.77a31.93 31.93 0 0 0-9.35-22.6C447 94.92 384.8 32.78 361.23 9.23A31.54 31.54 0 0 0 338.75 0H128a32 32 0 0 0-32 32v192h32zm224 13.25L434.77 128H352zM568 272H424a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-408 24v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8zm288 184H128V352H96v128a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V352h-32z\"]\n};\nvar faPager = {\n prefix: 'fal',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M272 320h-80v32h80a16 16 0 0 0 0-32zM448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zm32 320a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32zM64 336a16 16 0 0 0 16 16h80v-32H80a16 16 0 0 0-16 16zm360-208H88a24 24 0 0 0-24 24v112a24 24 0 0 0 24 24h336a24 24 0 0 0 24-24V152a24 24 0 0 0-24-24zm-8 128H96v-96h320z\"]\n};\nvar faPaintBrush = {\n prefix: 'fal',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M455.59 0c-15.81 0-30.62 6.99-41.93 17.15C195.73 211.82 169.77 216.5 179.98 281.99c-41.52 4.96-78.59 24.05-100.32 81.32-2.68 7.08-9.12 11.38-16.64 11.38-12.67 0-51.85-31.56-63.02-39.19C0 429.45 43.26 512 146 512c117.18 0 152.72-87.75 145.06-145.89 56.9-7.01 97.15-62.51 206.45-266.49C505.2 84.65 512 68.48 512 51.66 512 21.52 484.89 0 455.59 0zM236.52 445.55C216.47 468.41 186.02 480 146 480c-63.78 0-92.29-38.83-104.75-78.69 8.02 3.65 14.98 5.39 21.77 5.39 20.92 0 39.2-12.58 46.56-32.03 6.65-17.52 16.05-53.95 83.76-62.04l65.08 50.62c4.03 30.68-1.25 58.75-21.9 82.3zM469.31 84.5c-118.4 220.96-143.69 245.11-194.08 251.31l-62-48.22c-8.8-56.43-14.8-35.28 221.82-246.64 6.33-5.69 13.81-8.95 20.54-8.95C467.38 32 480 39.9 480 51.66c0 10.58-5.54 22.79-10.69 32.84z\"]\n};\nvar faPaintBrushAlt = {\n prefix: 'fal',\n iconName: 'paint-brush-alt',\n icon: [512, 512, [], \"f5a9\", \"M489.17 144.05C547.44 80.02 483.28 0 418.52 0c-23.39 0-46.87 10.44-64.68 35.85L187.9 284.01c-45.13 2.9-86.1 20.09-109.34 81.34-2.65 6.99-9 11.22-16.41 11.22-12.49 0-51.14-31.13-62.15-38.65C0 430.58 42.67 512 144 512c141.21 0 145.89-117.04 142.91-145.49l.02-.02 202.24-222.44zM230.96 449.18C212.54 469.63 183.28 480 144 480c-62.08 0-90.15-37.47-102.57-76.29 7.55 3.32 14.15 4.86 20.72 4.86 20.81 0 39-12.52 46.33-31.87 6.86-18.09 17.63-56.66 89.31-61.26L254.68 366c2.96 28.21-4.08 61.37-23.72 83.18zm39.4-112.03l-49.86-44.32L380.05 54.22C390.38 39.47 403.33 32 418.52 32c22.9 0 47.56 16.71 57.36 38.88 7.94 17.96 4.45 35.34-10.39 51.64L270.36 337.15z\"]\n};\nvar faPaintRoller = {\n prefix: 'fal',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M464 64h-48V48c0-26.51-21.49-48-48-48H48C21.49 0 0 21.49 0 48v64c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48V96h48c8.81 0 16 7.17 16 16v96c0 8.83-7.19 16-16 16H256c-26.47 0-48 21.53-48 48v48h-16c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-16v-48c0-8.83 7.19-16 16-16h208c26.47 0 48-21.53 48-48v-96c0-26.47-21.53-48-48-48zm-80 0v48c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V48c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16v16zM256 480h-64V352h64v128z\"]\n};\nvar faPalette = {\n prefix: 'fal',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M112 264c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm32-112c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM256 0c-16.9 0-34.2 1.6-51.7 5C104.9 24.4 24.8 104.3 5.2 203.4-29.4 378.5 116.4 512 239.5 512c8.3 0 16.5-.6 24.6-1.9 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.6 113.9 397.1 0 256 0zm191.1 288h-79.7c-35.3 0-67.4 17.9-85.7 47.8-18.2 29.7-19.6 66-3.7 97.2 4.9 9.6 4.8 21.6-.1 31.3-2.4 4.6-7.9 12.6-18.7 14.3-6.3 1-12.9 1.5-19.7 1.5-54.6 0-114.1-31.3-155.5-81.6-44-53.6-60.9-120.6-47.4-188.7 17.1-86.6 87-156.2 173.9-173.2 15.2-3 30.5-4.5 45.5-4.5 123.1 0 223.6 99.9 224 222.6 0 18.3-14.8 33.3-32.9 33.3zM368 136c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM240 88c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24z\"]\n};\nvar faPallet = {\n prefix: 'fal',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 288h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zM288 32h64v76.2l-32-16-32 16V32zm-128 0h96v128l64-32 64 32V32h96v224H160V32zm472 320c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v128H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-56V352h56zM160 480H96V352h64v128zm288 0H192V352h256v128zm96 0h-64V352h64v128z\"]\n};\nvar faPalletAlt = {\n prefix: 'fal',\n iconName: 'pallet-alt',\n icon: [640, 512, [], \"f483\", \"M112 288h416c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H352V16c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zM352 96h160v160H352V96zM128 32h192v224H128V32zm504 320c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v128H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-56V352h56zM160 480H96V352h64v128zm288 0H192V352h256v128zm96 0h-64V352h64v128z\"]\n};\nvar faPaperPlane = {\n prefix: 'fal',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M464 4.3L16 262.7C-7 276-4.7 309.9 19.8 320L160 378v102c0 30.2 37.8 43.3 56.7 20.3l60.7-73.8 126.4 52.2c19.1 7.9 40.7-4.2 43.8-24.7l64-417.1C515.7 10.2 487-9 464 4.3zM192 480v-88.8l54.5 22.5L192 480zm224-30.9l-206.2-85.2 199.5-235.8c4.8-5.6-2.9-13.2-8.5-8.4L145.5 337.3 32 290.5 480 32l-64 417.1z\"]\n};\nvar faPaperclip = {\n prefix: 'fal',\n iconName: 'paperclip',\n icon: [512, 512, [], \"f0c6\", \"M149.106 512c-33.076 0-66.153-12.59-91.333-37.771-50.364-50.361-50.364-132.305-.002-182.665L319.842 29.498c39.331-39.331 103.328-39.331 142.66 0 39.331 39.332 39.331 103.327 0 142.657l-222.63 222.626c-28.297 28.301-74.347 28.303-102.65 0-28.3-28.301-28.3-74.349 0-102.649l170.301-170.298c4.686-4.686 12.284-4.686 16.97 0l5.661 5.661c4.686 4.686 4.686 12.284 0 16.971l-170.3 170.297c-15.821 15.821-15.821 41.563.001 57.385 15.821 15.82 41.564 15.82 57.385 0l222.63-222.626c26.851-26.851 26.851-70.541 0-97.394-26.855-26.851-70.544-26.849-97.395 0L80.404 314.196c-37.882 37.882-37.882 99.519 0 137.401 37.884 37.881 99.523 37.882 137.404.001l217.743-217.739c4.686-4.686 12.284-4.686 16.97 0l5.661 5.661c4.686 4.686 4.686 12.284 0 16.971L240.44 474.229C215.26 499.41 182.183 512 149.106 512z\"]\n};\nvar faParachuteBox = {\n prefix: 'fal',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 204.2C499.2 80.9 368.8 0 256 0S12.8 80.9.1 204.2C-1 214.9 6.9 224 16.1 224h32.5L160 345.4V480c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V345.4L463.3 224h32.5c9.3 0 17.2-9.1 16.1-19.8zM256 32c51.8 0 112 64 112 160H144c0-96 60.2-160 112-160zM34.3 192C47.7 126.9 101 76.8 163.4 51.1c-30.1 32.7-51.4 81-51.4 140.1v.8H34.3zm145.8 128L92 224h148v96h-59.9zM320 472c0 4.4-3.6 8-8 8H200c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v112zm11.9-152H272v-96h147.9l-88 96zM400 192v-.8c0-59.1-21.3-107.3-51.4-140.1 62.3 25.7 115.7 75.8 129.1 140.9H400z\"]\n};\nvar faParagraph = {\n prefix: 'fal',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M440 32H224A160 160 0 0 0 64.35 202.65c5.5 85 79.91 149.35 165.13 149.35H256v120a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V64h64v408a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V64h56a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8zM256 320h-32a128 128 0 0 1 0-256h32z\"]\n};\nvar faParagraphRtl = {\n prefix: 'fal',\n iconName: 'paragraph-rtl',\n icon: [384, 512, [], \"f878\", \"M176 224h48v88a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V32h32v280a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V32h24a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8H179.37C116.72 0 63.68 50 64 112.66 64.33 176.33 112.22 224 176 224zM119.12 57a85.55 85.55 0 0 1 60.25-25H224v160h-48c-46.12 0-79.76-33.44-80-79.51A77.8 77.8 0 0 1 119.12 57zM376 400H112v-64a16 16 0 0 0-16.12-16 15.66 15.66 0 0 0-11.19 4.7l-80 80a16 16 0 0 0 0 22.63l80 80A16.16 16.16 0 0 0 96.17 512c8 0 15.83-5.69 15.83-16v-64h264a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-296 0v57.37L38.63 416 80 374.64z\"]\n};\nvar faParking = {\n prefix: 'fal',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zM244.1 127.9H152c-4.4 0-8 3.6-8 8v240c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-72h72c51.4 0 92.7-44.3 87.6-96.8-4.4-45.7-45.5-79.2-91.5-79.2zM248 272h-72V160h72c30.9 0 56 25.1 56 56s-25.1 56-56 56z\"]\n};\nvar faParkingCircle = {\n prefix: 'fal',\n iconName: 'parking-circle',\n icon: [496, 512, [], \"f615\", \"M268.1 127.91H176c-4.42 0-8 3.58-8 8v240c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72h72c51.43 0 92.68-44.32 87.57-96.78-4.45-45.71-45.54-79.22-91.47-79.22zm3.9 144h-72v-112h72c30.88 0 56 25.12 56 56s-25.12 56-56 56zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216z\"]\n};\nvar faParkingCircleSlash = {\n prefix: 'fal',\n iconName: 'parking-circle-slash',\n icon: [496, 512, [], \"f616\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 464c-119.1 0-216-96.9-216-216 0-44.65 13.62-86.17 36.92-120.65l338.14 266.27C367.54 444.75 310.96 472 248 472zm-48-274.17v-37.91h72c30.88 0 56 25.12 56 56 0 24.55-15.99 45.23-38.02 52.77L200 197.83zm117.54 92.55c27.62-16.75 45.47-47.9 42.03-83.25-4.45-45.72-45.54-79.22-91.48-79.22H176c-4.42 0-8 3.58-8 8v36.72l-79.06-62.26C128.46 67.25 185.04 40 248 40c119.1 0 216 96.9 216 216 0 44.65-13.62 86.17-36.92 120.64l-109.54-86.26zM168 375.91c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-72h31.25L168 254.11v121.8z\"]\n};\nvar faParkingSlash = {\n prefix: 'fal',\n iconName: 'parking-slash',\n icon: [640, 512, [], \"f617\", \"M496 64c8.8 0 16 7.2 16 16v266.1l32 25.2V80c0-26.5-21.5-48-48-48H144.1c-8.4 0-16.2 2.4-23.1 6.2L153.8 64zm-82.2 204.8c12.9-16.9 20.1-38.3 17.8-61.6-4.5-45.7-45.5-79.2-91.5-79.2H248c-3.3 0-5.5 2.2-6.8 5l34.3 27H344c30.9 0 56 25.1 56 56 0 12.5-4.2 23.9-11.2 33.2zM637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM264.1 383.9c4.4 0 8-3.6 8-8v-72h31.2l-63.2-49.7v121.7c0 4.4 3.6 8 8 8zm-120 64c-8.8 0-16-7.2-16-16V166l-32-25.2v291.1c0 26.5 21.5 48 48 48H496c8.4 0 16.1-2.3 23-6.1l-32.9-25.9z\"]\n};\nvar faPassport = {\n prefix: 'fal',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm0 480H64c-17.64 0-32-14.36-32-32V64c0-17.64 14.36-32 32-32h352v448zm-304-64h224c8.8 0 16-7.2 16-16s-7.2-16-16-16H112c-8.8 0-16 7.2-16 16s7.2 16 16 16zm112-96c70.69 0 128-57.31 128-128S294.69 64 224 64 96 121.31 96 192s57.31 128 128 128zm94.38-144h-39.09c-1.49-27.03-6.54-51.35-14.21-70.41 27.71 13.24 48.02 39.19 53.3 70.41zm-39.09 32h39.09c-5.29 31.22-25.59 57.17-53.3 70.41 7.68-19.06 12.72-43.38 14.21-70.41zM224 97.31c7.69 7.45 20.77 34.42 23.43 78.69h-46.87c2.67-44.26 15.75-71.24 23.44-78.69zM247.43 208c-2.66 44.26-15.74 71.24-23.43 78.69-7.69-7.45-20.77-34.42-23.43-78.69h46.86zm-64.51-102.41c-7.68 19.06-12.72 43.38-14.21 70.41h-39.09c5.28-31.22 25.59-57.17 53.3-70.41zM168.71 208c1.49 27.03 6.54 51.35 14.21 70.41-27.71-13.24-48.02-39.19-53.3-70.41h39.09z\"]\n};\nvar faPastafarianism = {\n prefix: 'fal',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M629.28 355.14c-29.93-10.97-52.59 3.78-70.75 15.61-16.97 11-27.2 16.95-40.3 12.2-13.1-4.8-16.61-15.83-21.61-34.89-3.35-12.71-7.23-27.35-16.85-39.25 7.51-9.17 13.47-17.9 18.21-25.65 9.74 11.26 22.76 20.84 42.18 20.84 30.03 0 44.88-22.84 55.71-39.52 11.08-17.03 17-24.48 27.49-24.48 9.2 0 16.64-7.16 16.64-16s-7.44-16-16.64-16c-30.03 0-44.88 22.84-55.71 39.52-11.08 17.03-17 24.48-27.49 24.48-46.08 0-20.68-62.88-119.11-118.33l21.13-42.26c1.94.2 3.82.59 5.82.59 30.93 0 56-25.07 56-56S478.93 0 448 0s-56 25.07-56 56c0 17.42 8.12 32.78 20.58 43.05l-20.56 41.11C371.26 132.66 347.38 128 320 128s-51.26 4.66-72.03 12.16l-20.56-41.11C239.88 88.78 248 73.42 248 56c0-30.93-25.07-56-56-56s-56 25.07-56 56 25.07 56 56 56c1.99 0 3.88-.38 5.82-.59l21.13 42.26C120.52 209.12 145.92 272 99.84 272c-10.5 0-16.41-7.45-27.49-24.48C61.52 230.84 46.67 208 16.64 208 7.44 208 0 215.16 0 224s7.44 16 16.64 16c10.5 0 16.41 7.45 27.49 24.48C54.96 281.16 69.81 304 99.84 304c19.42 0 32.44-9.58 42.18-20.84 4.74 7.75 10.7 16.48 18.21 25.65-9.62 11.9-13.5 26.54-16.85 39.25-5.01 19.06-8.52 30.09-21.61 34.89-13.1 4.75-23.33-1.2-40.3-12.2-18.17-11.83-40.82-26.58-70.75-15.61-8.61 3.14-12.9 12.39-9.62 20.66 3.25 8.27 12.87 12.41 21.45 9.25 13.1-4.83 23.34 1.17 40.3 12.2 13.68 8.91 29.9 19.45 49.86 19.45 6.53 0 13.52-1.14 20.9-3.84 29.93-10.97 36.66-36.45 42.05-56.92 2.51-9.57 4.65-17.11 7.82-22.85 19.39 17.36 44.71 33.15 76.63 42.41-12.45 50.02-36.41 102.84-68.11 102.84-8.84 0-16 7.53-16 16.83 0 9.3 7.16 16.83 16 16.83 60.44 0 89.31-88.06 99.63-129.86 9.04 1.14 18.43 1.86 28.37 1.86s19.33-.73 28.37-1.86C358.69 423.94 387.56 512 448 512c8.84 0 16-7.53 16-16.83 0-9.3-7.16-16.83-16-16.83-31.7 0-55.66-52.82-68.11-102.85 31.92-9.26 57.24-25.04 76.63-42.41 3.16 5.75 5.3 13.28 7.82 22.85 5.39 20.47 12.12 45.95 42.05 56.92 7.38 2.7 14.37 3.84 20.9 3.84 19.96 0 36.17-10.55 49.86-19.45 16.96-11.03 27.2-17.03 40.3-12.2 8.58 3.16 18.2-.98 21.45-9.25 3.28-8.26-1.01-17.51-9.62-20.65zM448 32c13.23 0 24 10.77 24 24s-10.77 24-24 24-24-10.77-24-24 10.77-24 24-24zM192 80c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm128 272c-97.04 0-142.39-68.26-156.81-96.01C177.55 228.36 222.88 160 320 160s142.45 68.36 156.81 95.99C462.39 283.74 417.04 352 320 352z\"]\n};\nvar faPaste = {\n prefix: 'fal',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M433.941 193.941l-51.882-51.882A48 48 0 0 0 348.118 128H320V80c0-26.51-21.49-48-48-48h-66.752C198.643 13.377 180.858 0 160 0s-38.643 13.377-45.248 32H48C21.49 32 0 53.49 0 80v288c0 26.51 21.49 48 48 48h80v48c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V227.882a48 48 0 0 0-14.059-33.941zm-22.627 22.627a15.888 15.888 0 0 1 4.195 7.432H352v-63.509a15.88 15.88 0 0 1 7.431 4.195l51.883 51.882zM160 30c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18zM48 384c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h66.752c6.605 18.623 24.389 32 45.248 32s38.643-13.377 45.248-32H272c8.822 0 16 7.178 16 16v48H176c-26.51 0-48 21.49-48 48v208H48zm352 96H176c-8.822 0-16-7.178-16-16V176c0-8.822 7.178-16 16-16h144v72c0 13.2 10.8 24 24 24h72v208c0 8.822-7.178 16-16 16z\"]\n};\nvar faPause = {\n prefix: 'fal',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M48 479h96c26.5 0 48-21.5 48-48V79c0-26.5-21.5-48-48-48H48C21.5 31 0 52.5 0 79v352c0 26.5 21.5 48 48 48zM32 79c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V79zm272 400h96c26.5 0 48-21.5 48-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48zM288 79c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16V79z\"]\n};\nvar faPauseCircle = {\n prefix: 'fal',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M218 160h-20c-3.3 0-6 2.7-6 6v180c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6V166c0-3.3-2.7-6-6-6zm96 0h-20c-3.3 0-6 2.7-6 6v180c0 3.3 2.7 6 6 6h20c3.3 0 6-2.7 6-6V166c0-3.3-2.7-6-6-6zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 464c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216z\"]\n};\nvar faPaw = {\n prefix: 'fal',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm120.26 224c-20.3 0-37.81-5.77-56.35-11.88-19.68-6.49-40.02-13.19-63.91-13.19-23.65 0-43.85 6.67-63.39 13.12-18.64 6.15-36.25 11.96-56.87 11.96C96 448 96 430.12 96 424.25 96 361.35 196.19 256 256 256s160 105.35 160 168.25c0 5.87 0 23.75-39.74 23.75zm98.57-286.73c-3.57-.86-7.2-1.27-10.81-1.27-25.85 0-51.62 21-60.74 51.39-10.4 34.65 4.77 68.38 33.89 75.34 3.58.86 7.2 1.27 10.81 1.27 25.85 0 51.62-21 60.74-51.39 10.4-34.65-4.77-68.38-33.89-75.34zm3.24 66.14C472.7 245.3 458.55 256 447.98 256c-1.16 0-2.29-.13-3.37-.39-3.7-.88-6.72-3.32-8.98-7.25-4.13-7.18-4.76-17.55-1.7-27.76 5.37-17.9 19.52-28.6 30.1-28.6 1.16 0 2.29.13 3.37.39 3.7.88 6.72 3.33 8.98 7.25 4.12 7.18 4.76 17.55 1.69 27.77zm-159.51-36.8c3.55.93 7.15 1.38 10.76 1.38 27.84 0 56.22-26.82 66.7-65.25 11.84-43.42-3.64-85.21-34.58-93.36a41.92 41.92 0 0 0-10.76-1.39c-27.84 0-56.22 26.82-66.7 65.26-11.84 43.42 3.64 85.22 34.58 93.36zm-3.71-84.93C322.27 78.48 340.43 64 350.68 64c.91 0 1.77.11 2.61.33 4.13 1.09 7.12 5 8.9 8.09 5.08 8.8 8.52 25.48 2.95 45.91-7.42 27.19-25.57 41.67-35.83 41.67-.91 0-1.77-.11-2.62-.33-4.12-1.08-7.12-4.99-8.9-8.08-5.07-8.81-8.51-25.48-2.94-45.91zM182.68 192c3.61 0 7.21-.45 10.76-1.38 30.94-8.14 46.42-49.94 34.58-93.36C217.54 58.82 189.16 32 161.32 32c-3.61 0-7.21.45-10.76 1.39-30.94 8.14-46.42 49.94-34.58 93.36 10.48 38.43 38.87 65.25 66.7 65.25zM149.8 72.42c1.78-3.09 4.78-7 8.9-8.09.85-.22 1.7-.33 2.61-.33 10.26 0 28.41 14.48 35.83 41.68 5.57 20.43 2.13 37.11-2.95 45.91-1.78 3.09-4.77 7-8.9 8.08-.85.22-1.7.33-2.61.33-10.26 0-28.41-14.48-35.83-41.68-5.57-20.42-2.13-37.1 2.95-45.9zM74.84 286.73c29.12-6.96 44.29-40.69 33.88-75.34C99.6 181 73.83 160 47.98 160c-3.62 0-7.24.41-10.81 1.27-29.12 6.96-44.29 40.69-33.89 75.34C12.4 267 38.18 288 64.02 288c3.62 0 7.24-.41 10.82-1.27zM33.93 227.4c-3.06-10.21-2.43-20.59 1.7-27.76 2.26-3.93 5.28-6.37 8.98-7.25 1.08-.26 2.21-.39 3.37-.39 10.57 0 24.72 10.7 30.09 28.59 3.06 10.21 2.43 20.59-1.7 27.77-2.26 3.93-5.28 6.37-8.98 7.25-1.1.26-2.2.39-3.37.39-10.57 0-24.72-10.7-30.09-28.6z\"]\n};\nvar faPawAlt = {\n prefix: 'fal',\n iconName: 'paw-alt',\n icon: [448, 512, [], \"f701\", \"M367.31 300.78c-26.29-14.84-47.14-61.41-67.17-97.83C284.41 174.31 254.21 160 224 160s-60.41 14.31-76.15 42.95c-20.29 36.96-40.12 82.56-67.17 97.83C51.63 317.18 32 348.18 32 383.95c0 53.01 42.98 95.98 96 95.98 1.31.04 2.6.07 3.87.07 48.88 0 68.92-32.06 92.13-32.06S267.25 480 316.13 480c1.27 0 2.56-.02 3.87-.07 53.02 0 96-42.97 96-95.98 0-35.77-19.63-66.77-48.69-83.17zm-48.39 147.17l-2.79.05c-20.12 0-33.04-7.72-46.73-15.89-12.71-7.58-27.1-16.17-45.39-16.17s-32.69 8.59-45.39 16.17C164.93 440.28 152 448 131.88 448l-3.87-.07c-35.29 0-64-28.7-64-63.98 0-22.82 12.42-44.02 32.42-55.31 30.46-17.2 50.03-54.48 68.96-90.53 3.52-6.71 7.02-13.37 10.52-19.75C184.97 201.85 202.95 192 224 192s39.03 9.85 48.1 26.36c3.31 6.02 6.64 12.32 10.02 18.71 19.4 36.69 39.46 74.63 69.46 91.57 20 11.29 32.42 32.49 32.42 55.31 0 35.28-28.71 63.98-65.08 64zM112 200c0-30.93-25.07-56-56-56S0 169.07 0 200s25.07 56 56 56 56-25.07 56-56zm-80 0c0-13.23 10.77-24 24-24s24 10.77 24 24-10.77 24-24 24-24-10.77-24-24zm360-56c-30.93 0-56 25.07-56 56s25.07 56 56 56 56-25.07 56-56-25.07-56-56-56zm0 80c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm-96-80c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-80c13.23 0 24 10.77 24 24s-10.77 24-24 24-24-10.77-24-24 10.77-24 24-24zm-144 80c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-80c13.23 0 24 10.77 24 24s-10.77 24-24 24-24-10.77-24-24 10.77-24 24-24z\"]\n};\nvar faPawClaws = {\n prefix: 'fal',\n iconName: 'paw-claws',\n icon: [512, 512, [], \"f702\", \"M318.55 222.61c40.16 10.56 69.55-34.86 77.46-63.87 8.44-30.94 3.01-61.05-12.01-78.75L320 0v74.96c-15.94 11.26-29.49 30.37-36.02 54.29-11.84 43.42 3.64 85.22 34.57 93.36zm-3.7-84.93c18.22-66.79 66.59-47.08 50.29 12.65-18.19 66.71-66.59 47.12-50.29-12.65zm178.65 52.69L448 128v66.94c-19.83 6.55-37.51 24.43-44.72 48.46-10.4 34.65 4.77 68.38 33.89 75.34 30.46 7.29 61.64-17.11 71.55-50.13 8.85-29.51-1.55-59.5-15.22-78.24zm-15.43 69.03c-12.72 42.35-56.89 35.65-44.15-6.81 12.69-42.26 56.91-35.72 44.15 6.81zM256 256c-79.41 0-191.99 122.76-191.99 200.25 0 34.91 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.84 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C447.99 378.76 335.41 256 256 256zm120.26 224c-20.3 0-37.81-5.77-56.34-11.88-19.68-6.49-40.02-13.19-63.91-13.19-23.65 0-43.85 6.67-63.39 13.12-18.64 6.15-36.25 11.96-56.87 11.96-39.74 0-39.74-17.88-39.74-23.75C96.01 393.35 196.19 288 256 288s159.99 105.35 159.99 168.25c0 5.87 0 23.75-39.73 23.75zM108.73 243.39c-7.21-24.03-24.89-41.91-44.72-48.46V128L18.5 190.37C4.81 209.13-5.57 239.11 3.29 268.61c10 33.3 41.36 57.35 71.55 50.13 29.11-6.97 44.29-40.7 33.89-75.35zM33.94 259.4c-12.84-42.77 31.51-48.87 44.15-6.81 12.8 42.69-31.5 48.95-44.15 6.81zm159.51-36.79c30.94-8.14 46.42-49.94 34.58-93.36-6.53-23.92-20.07-43.04-36.02-54.29V0L128 79.99c-15.02 17.7-20.45 47.82-12.01 78.75 7.65 28.05 37.08 74.5 77.46 63.87zm3.7-84.93c16.2 59.39-32 79.74-50.3 12.65-16.19-59.39 32-79.75 50.3-12.65z\"]\n};\nvar faPeace = {\n prefix: 'fal',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm216 248c0 45.24-14.04 87.23-37.9 121.97L264 248.3V40.81C375.63 49.05 464 142.3 464 256zM232 40.81V248.3L69.9 377.97C46.04 343.23 32 301.24 32 256c0-113.7 88.37-206.95 200-215.19zM90.05 402.85L232 289.3v181.89c-55.93-4.13-105.9-29.59-141.95-68.34zM264 471.19V289.3l141.95 113.55C369.9 441.6 319.93 467.06 264 471.19z\"]\n};\nvar faPegasus = {\n prefix: 'fal',\n iconName: 'pegasus',\n icon: [576, 512, [], \"f703\", \"M575.95 86.27c-.01-9.62-3.67-15.92-9.14-22.56 5.39-9.45 8.38-20.32 8.38-31.71 0-17.67-14.33-32-32-32H432c-69.18 0-125.38 55.26-127.59 123.92-35.69-9.21-63.11-34.71-81.5-76.6-4-9.16-13.06-15.16-23.03-15.31-10.53.2-18.84 5.36-23.13 14.39C165.63 69.94 160 95.08 160 121.09c0 75.38 56.56 143.6 132.87 161.9 4.42 1.06 8.86-1.96 9.7-6.43l2.97-15.7c.8-4.22-1.93-8.17-6.1-9.2C237.69 236.47 192 181.6 192 121.09c0-16.31 2.72-32.19 8.06-47.38C229.38 130.23 276.1 160 335.94 160l.06-32c0-53.02 42.98-96 96-96h111.19c0 13.29-8.11 24.67-19.63 29.5l20.39 24.78.05 93.88a16 16 0 0 1-10.83 15.15l-25.52 8.71c-9.35 3.19-16.15-2.77-18.48-6.27L464 160l-48-16v100.21c0 26.67-12.64 50.17-32 65.6V480h-64V325.8l-136.43-30.32-32.12 89.47L175.53 480H118l-21.13-87.86a31.698 31.698 0 0 1 .37-16.18l27.63-93.41C107.45 270.37 96 250.24 96 227.37c0-27.2 16.21-50.49 39.41-61.13-3.19-10.36-5.22-21.01-6.18-31.92a100.202 100.202 0 0 0-50.57 41.82C35.11 176.87 0 212.28 0 256v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56c0-21.5 14.23-39.48 33.71-45.59-.96 5.54-1.71 11.15-1.71 16.96 0 24.2 8.9 47.33 24.53 65.24l-21.97 74.28c-3.12 10.77-3.38 22.03-.8 32.74l21.13 87.86C90.34 501.86 103.2 512 118 512h57.53c20.95 0 36.12-19.75 31.02-39.86l-21.68-85.57 19.29-53.73L288 351.47V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V323.81c20.5-21.51 32-49.75 32-79.6v-50.52l14.55 21.82c19.11 28.67 49.98 20.67 55.45 18.8l25.52-8.71c19.44-6.63 32.5-24.9 32.49-45.45l-.06-93.88zM496.01 96c0-8.84-7.16-16-16-16s-16 7.16-16 16 7.16 16 16 16 16-7.16 16-16z\"]\n};\nvar faPen = {\n prefix: 'fal',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M493.25 56.26l-37.51-37.51C443.25 6.25 426.87 0 410.49 0s-32.76 6.25-45.26 18.74L12.85 371.12.15 485.34C-1.45 499.72 9.88 512 23.95 512c.89 0 1.78-.05 2.69-.15l114.14-12.61 352.48-352.48c24.99-24.99 24.99-65.51-.01-90.5zM126.09 468.68l-93.03 10.31 10.36-93.17 263.89-263.89 82.77 82.77-263.99 263.98zm344.54-344.54l-57.93 57.93-82.77-82.77 57.93-57.93c6.04-6.04 14.08-9.37 22.63-9.37 8.55 0 16.58 3.33 22.63 9.37l37.51 37.51c12.47 12.48 12.47 32.78 0 45.26z\"]\n};\nvar faPenAlt = {\n prefix: 'fal',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M493.25 56.26l-37.51-37.51C443.24 6.25 426.86 0 410.49 0c-16.38 0-32.76 6.25-45.25 18.74l-67.88 67.88L274.74 64c-12.5-12.5-32.76-12.5-45.25 0L99.37 194.12c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L252.1 86.63l22.62 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.12l-.03.23C-1.45 499.72 9.88 512 23.95 512c5.73 0 111.06-6.99 198.03-93.95l271.28-271.28c24.99-25 24.99-65.52-.01-90.51zm-293.9 339.16c-45 45-103.93 74.41-166.1 83.39 9.13-62.64 38.5-121.32 83.34-166.16l180.77-180.77.01.01.01-.01 82.76 82.76-180.79 180.78zm271.28-271.28l-67.88 67.88-82.77-82.77 67.88-67.88c12.5-12.5 32.74-12.51 45.25 0l37.51 37.51c12.51 12.5 12.52 32.74.01 45.26z\"]\n};\nvar faPenFancy = {\n prefix: 'fal',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M424.86 0c-23.46 0-46.85 9.64-63.71 28.72L169.93 240 84.1 268.62a34.005 34.005 0 0 0-21.5 21.5L0 478l33.99 34 187.79-62.62a34.005 34.005 0 0 0 21.5-21.5l28.6-85.88 211.19-191.3C544.5 96.38 500.08 0 424.86 0zM212.93 417.75c-.2.59-145.42 49.34-145.42 49.34l68.63-68.66c2.56.66 5.03 1.57 7.8 1.57 17.67 0 31.99-14.33 31.99-32s-14.32-32-31.99-32-31.99 14.33-31.99 32c0 2.77.91 5.24 1.57 7.8l-68.64 68.67S93.6 299.18 94.2 298.98l88.54-29.53 59.69 59.71-29.5 88.59zM461.6 126.97L264.26 305.74l-58.09-58.11L385.11 49.92A53.057 53.057 0 0 1 424.86 32c29.1 0 55.87 25.55 54.91 56.61-.45 14.78-6.81 28.31-18.17 38.36z\"]\n};\nvar faPenNib = {\n prefix: 'fal',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M493.87 95.6L416.4 18.13C404.32 6.04 388.48 0 372.64 0c-15.84 0-31.68 6.04-43.76 18.13l-92.45 92.45-99.83 28.21a64.003 64.003 0 0 0-43.31 41.35L0 460l52 52 279.86-93.29a64.003 64.003 0 0 0 41.35-43.31l28.21-99.83 92.45-92.45c24.17-24.17 24.17-63.35 0-87.52zM342.42 366.7a31.985 31.985 0 0 1-20.68 21.66l-261.1 87.03-.7-.7L175.7 358.93c9.52 5.62 20.47 9.07 32.3 9.07 35.28 0 64-28.7 64-64s-28.72-64-64-64-64 28.7-64 64c0 11.83 3.45 22.79 9.07 32.31L37.32 452.06l-.71-.7 87.03-261.1a31.986 31.986 0 0 1 21.66-20.68l99.83-28.21 1.25-.36 124.6 124.6-.35 1.25-28.21 99.84zM176 304c0-17.64 14.34-32 32-32s32 14.36 32 32-14.34 32-32 32-32-14.36-32-32zm295.25-143.51l-80.06 80.06-119.75-119.73 80.07-80.06c11.67-11.67 30.58-11.69 42.27 0l77.47 77.47c11.65 11.65 11.65 30.61 0 42.26z\"]\n};\nvar faPenSquare = {\n prefix: 'fal',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zm-67.1-324.3c-15.6-15.6-40.9-15.6-56.6 0L72 328l-7.9 71.4C63 409 71.1 417 80.7 416l71.3-8 220.3-220.3c15.6-15.6 15.6-40.9 0-56.6l-23.4-23.4zM137.3 377.4l-39.1 4.3 4.3-39.1 162.7-162.7 34.7 34.7-162.6 162.8zm212.4-212.3l-27 27-34.7-34.7 27-27c3.1-3.1 8.2-3.1 11.3 0l23.4 23.4c3.1 3.1 3.1 8.2 0 11.3z\"]\n};\nvar faPencil = {\n prefix: 'fal',\n iconName: 'pencil',\n icon: [512, 512, [], \"f040\", \"M493.255 56.236l-37.49-37.49c-24.993-24.993-65.515-24.994-90.51 0L12.838 371.162.151 485.346c-1.698 15.286 11.22 28.203 26.504 26.504l114.184-12.687 352.417-352.417c24.992-24.994 24.992-65.517-.001-90.51zm-95.196 140.45L174 420.745V386h-48v-48H91.255l224.059-224.059 82.745 82.745zM126.147 468.598l-58.995 6.555-30.305-30.305 6.555-58.995L63.255 366H98v48h48v34.745l-19.853 19.853zm344.48-344.48l-49.941 49.941-82.745-82.745 49.941-49.941c12.505-12.505 32.748-12.507 45.255 0l37.49 37.49c12.506 12.506 12.507 32.747 0 45.255z\"]\n};\nvar faPencilAlt = {\n prefix: 'fal',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M493.255 56.236l-37.49-37.49c-24.993-24.993-65.515-24.994-90.51 0L12.838 371.162.151 485.346c-1.698 15.286 11.22 28.203 26.504 26.504l114.184-12.687 352.417-352.417c24.992-24.994 24.992-65.517-.001-90.51zM164.686 347.313c6.249 6.249 16.379 6.248 22.627 0L368 166.627l30.059 30.059L174 420.745V386h-48v-48H91.255l224.059-224.059L345.373 144 164.686 324.687c-6.249 6.248-6.249 16.378 0 22.626zm-38.539 121.285l-58.995 6.555-30.305-30.305 6.555-58.995L63.255 366H98v48h48v34.745l-19.853 19.853zm344.48-344.48l-49.941 49.941-82.745-82.745 49.941-49.941c12.505-12.505 32.748-12.507 45.255 0l37.49 37.49c12.506 12.506 12.507 32.747 0 45.255z\"]\n};\nvar faPencilPaintbrush = {\n prefix: 'fal',\n iconName: 'pencil-paintbrush',\n icon: [512, 512, [], \"f618\", \"M433.43 365.35c-20.56-54.19-55.01-73.83-93.93-79.66l158.43-158.45c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25C443.3 4.69 431 0 418.71 0s-24.59 4.69-33.97 14.07l-144.52 144.5-82.07-122.72C140.34 10.44 116.87 0 93.48 0 28.72 0-35.44 80.02 22.83 144.05l110.43 121.46L19.09 379.66.35 487.11c-2.72 15.63 11.22 26.9 24.59 24.56l107.44-18.84 93.71-93.72C232.1 444.02 260.26 512 368 512c101.33 0 144-81.42 144-174.07-11.01 7.52-49.66 38.65-62.15 38.65-7.42 0-13.77-4.24-16.42-11.23zM407.36 36.7c4.09-4.09 18.61-4.09 22.7 0l45.25 45.24c6.25 6.25 6.25 16.42 0 22.67l-46.03 46.03-67.94-67.94 46.02-46zM46.51 122.52c-14.84-16.31-18.33-33.68-10.39-51.64C45.92 48.71 70.58 32 93.48 32c15.2 0 28.14 7.47 38.47 22.22l85.2 127.42-61.23 61.22L46.51 122.52zm70.38 340.54L34.5 477.5l14.38-82.37 289.83-289.8 67.94 67.94-289.76 289.79zM368 480c-39.28 0-68.54-10.37-86.96-30.82-19.21-21.33-26.21-53.48-23.74-81.28l16.87-16.87 40.03-35.59c71.69 4.61 82.45 43.17 89.31 61.26 7.33 19.35 25.52 31.87 46.33 31.87 6.57 0 13.17-1.55 20.72-4.86C458.15 442.53 430.08 480 368 480z\"]\n};\nvar faPencilRuler = {\n prefix: 'fal',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M502.71 368.14L379.88 245.31l49.4-49.4 68.65-68.66c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25C443.3 4.69 431 0 418.71 0s-24.59 4.69-33.97 14.07l-68.65 68.64-49.4 49.4L143.87 9.29C137.68 3.1 129.56 0 121.44 0s-16.23 3.1-22.43 9.29L9.31 99c-12.38 12.39-12.39 32.47 0 44.86l122.8 122.8-113.01 113L.34 487.11c-2.72 15.63 11.22 26.9 24.59 24.56l107.44-18.84 112.94-112.96L368.14 502.7a31.621 31.621 0 0 0 22.42 9.29c8.12 0 16.24-3.1 22.43-9.29l89.72-89.7c12.39-12.39 12.39-32.47 0-44.86zM407.36 36.7c4.09-4.09 18.6-4.09 22.69 0l45.25 45.24c6.25 6.25 6.25 16.42 0 22.67l-46.03 46.03-67.94-67.94 46.03-46zM31.93 121.63l89.51-89.52L177.39 88l-39.03 39.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l39.04-39.04 44.1 44.05-89.5 89.49L31.93 121.63zm84.96 341.43L34.5 477.51l14.37-82.37 289.83-289.8 67.94 67.94-289.75 289.78zm273.88 17.02l-122.86-122.8 89.47-89.48 44.12 44.07-39.15 39.16c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l39.17-39.17 55.94 55.88-89.31 89.72z\"]\n};\nvar faPennant = {\n prefix: 'fal',\n iconName: 'pennant',\n icon: [576, 512, [], \"f456\", \"M552 191.3c-30 6.2-115.6 12.5-260.7-63.6-87-45.7-158.1-51.8-210-45.2 9-8.8 14.7-21 14.7-34.5C96 21.5 74.5 0 48 0S0 21.5 0 48c0 20.8 13.4 38.4 32 45.1V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-79.6c40.2-27.2 102-56.4 179.5-60.2 28.7-1.4 76-5.8 137.9-18.8 4.4-.9 109.4-23.8 190-121.7 11.8-14.3-.7-36.2-19.4-32.4zM48 32c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm326.9 282.1c-59.9 12.5-105.4 16.8-133 18.2-84.8 4.2-145.3 35.1-177.9 54.2V117.7c47.2-10.6 119.5-10.5 212.4 38.3 118.9 62.4 202.3 72.4 249.5 70.4-69.5 69.7-150.1 87.5-151 87.7z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fal',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm0-96a32,32,0,1,1-32,32A32,32,0,0,1,480,32Zm32,128H448a63.55,63.55,0,0,0-50.15,24.51,62.7,62.7,0,0,1,32.67,13.41c5.1-3.44,10.88-5.92,17.48-5.92h64a32,32,0,0,1,32,32V352H512V480H448V393.8l-12,11.81a65.12,65.12,0,0,1-20,13.44V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V384a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM128,393.81V480H64V352H32V224a32,32,0,0,1,32-32h64c6.6,0,12.39,2.49,17.49,5.92a62.6,62.6,0,0,1,32.71-13.34A63.57,63.57,0,0,0,128,160H64A64,64,0,0,0,0,224V352a32,32,0,0,0,32,32v96a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V419.07a65.42,65.42,0,0,1-20-13.46ZM96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0-96A32,32,0,1,1,64,64,32,32,0,0,1,96,32ZM472.89,304a32,32,0,0,0-9.55-22.8l-56.89-56C385.64,204.71,352,220.52,352,248v40H224V248c0-27.41-33.82-43.11-54.45-22.8l-56.89,56a32,32,0,0,0,0,45.6l56.89,56c21.3,21,54.45,4,54.45-22.8V320H352v40c0,27,33.36,43.57,54.45,22.8l56.89-56A32,32,0,0,0,472.89,304ZM192,360l-56.89-56L192,248Zm192,0V248l56.89,56Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fal',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M635.9 444.4l-52.2-117.3c19.4-22 25-48.2 19.4-72.4l-18.4-80.2c-5-21.7-19.3-40-38.4-51.1 24.5-24 28.4-60.4 11.4-88.6C542.8 10.2 517.7 0 496 0c-33.2 0-61.9 22.5-69.9 54.8-3.5 14.1-6.2 52.1 29.3 76.4-17.3 13.2-30.8 30.5-39.4 50.5V160c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v21.8c-8.5-20-22-37.3-39.4-50.5 35.4-24.3 32.8-62.2 29.3-76.4C206 22.5 177.2 0 144 0c-21.8 0-46.8 10.3-61.6 34.7-17 28.1-13.2 64.5 11.4 88.6-19.1 11.2-33.4 29.4-38.4 51.1L37 254.6c-5.5 24.1-.2 50.3 19.4 72.4L4.1 444.4c-10.7 24.1.2 52.6 24.3 63.3 29 12.8 54.9-5.2 63.4-24.3l29.7-66.7 6.9 53.3c1.1 8.6 13 46.1 53.3 41.5 26.7-3.5 45.3-27.6 42-53.8l-10.5-81.5c-1.6-12.7-7-24.6-15.5-34.2l-41.2-46.6 4.2-16.9c4.6 6 10.2 11.4 16.7 16.1 1.7 1.2-2.7-1.6 47.7 30.4 2.2 6.2 8 10.8 14.9 10.8h160c7 0 12.8-4.5 14.9-10.8 50.4-32.1 46.1-29.2 47.7-30.4 6.5-4.8 12.1-10.2 16.7-16.1l4.2 16.9-41.1 46.6c-8.5 9.6-13.9 21.5-15.5 34.2l-10.5 81.5c-3.4 26.2 15.2 50.3 42 53.8 40.5 4.6 52.1-32.7 53.3-41.5l6.9-53.3 29.7 66.7c8.5 19.1 34.4 37.1 63.4 24.3 24-10.8 34.9-39.2 24.2-63.3zm-178.7-382C461.6 44.2 478 32 496 32c24.4 0 45.4 22.8 38.9 49.5C530.3 99.8 514 112 496 112c-24.4 0-45.4-22.9-38.8-49.6zM144 32c18 0 34.3 12.2 38.8 30.4C189.5 89.6 168 112 144 112c-18 0-34.3-12.2-38.8-30.4C98.5 54.4 120 32 144 32zM62.6 470.4c-3.6 8.1-13 11.7-21.1 8.1s-11.7-13-8.1-21.1l46.2-103.9 23.3 26.4zm207.1-173.9c-5 7.8-15 9.4-22.1 4.9l-51.1-32.5c-9.1-6.6-15-14.7-18.1-24.1L167.1 211c-2.3-6.9-6-12.8-9.3-17.2-2.7-3.6-8.3-2.4-9.4 1.9L121.3 304l52.4 59.3c4.2 4.8 6.9 10.8 7.8 17.1l10.5 81.5c1.1 8.6-4.9 16.8-13.5 17.9-14.1 1.8-17.9-11-18.2-13.8l-9.2-71.8c-.8-6.3-3.5-12.3-7.8-17.1l-64.2-72.7c-10.3-11.6-14.3-27.5-10.8-42.6l18.4-80.2c3.5-15 14-27.7 28.2-33.8 23-9.9 41.1 2.1 41.7 2.4 19.4 11.4 33.9 29.4 41 50.7l11.7 34.9c1.8 2.3 3.5 4.5 5.3 6.8l50.2 31.8c7.4 4.7 9.7 14.6 4.9 22.1zm69.2 7.4h-37.7c7.3-20.6-.2-44.2-19.3-56.5L256 231.1V176h128v55l-25.8 16.4c-19.2 12.2-26.6 35.9-19.3 56.5zm158 73.1c-4.2 4.8-6.9 10.7-7.8 17.1l-9.2 71.8c-.4 2.8-4.2 15.6-18.2 13.8-8.6-1.1-14.6-9.2-13.5-17.9l10.5-81.5c.8-6.3 3.5-12.3 7.8-17.1l52.4-59.3-27.1-108.2c-1.1-4.4-6.7-5.5-9.4-1.9-3.3 4.4-7 10.3-9.3 17.2l-11.3 33.8c-3.1 9.4-9 17.5-17.9 24.1l-51.1 32.5c-7 4.4-17.1 3-22.1-4.9-4.7-7.5-2.5-17.3 4.9-22.1l50.2-31.8c1.8-2.3 3.5-4.5 5.3-6.8l11.7-34.9c7.1-21.3 21.6-39.3 41-50.7.5-.3 18.7-12.3 41.7-2.4 14.2 6.1 24.8 18.8 28.2 33.8l18.4 80.2c3.5 15.1-.6 30.9-10.8 42.6zm101.6 101.5c-8.1 3.6-17.5 0-21.1-8.1l-40.3-90.6 23.3-26.4 46.2 103.9c3.6 8.1 0 17.6-8.1 21.2z\"]\n};\nvar faPepperHot = {\n prefix: 'fal',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M452.4 135.6c43.74-64.2 25.25-112.11 13.43-131.86A7.69 7.69 0 0 0 459.19 0a7.86 7.86 0 0 0-5.57 2.32l-12 12a7.92 7.92 0 0 0-1.27 9.35c8.24 15.58 16.74 47.65-13.81 93C402.26 102 378.48 96 348.34 96c-29.43 0-58.78 8.66-84.87 25-12.06 7.59-9.55 23.21 1.47 27.93-22.94 24.82-35.7 58.31-48 93.47-10.74 30.6-21.71 61.62-40.23 88.54-25.17 36.56-68.77 52.64-113.16 53-41.41.33-59.58 35.09-62.58 52.88A64.06 64.06 0 0 0 64 512c185 0 341.43-87.14 416.23-195.48a15.1 15.1 0 0 0 10.82 4.62c6.23 0 12.54-4 14.89-13.11C510.06 292 512 278.2 512 264.72a169.7 169.7 0 0 0-59.6-129.12zM348.34 128C443 128 480 218.68 480 264.72c0 1.73 0 3.47-.13 5.24L452 241a32 32 0 0 0-23.07-9.82H368v-51.73A32 32 0 0 0 348.61 150L311 133.92a122.85 122.85 0 0 1 37.34-5.92zM64 480c-14 0-35.77-12.48-31.51-37.82.71-4.17 7.72-26 31.28-26.19 59.59-.47 110.35-24.83 139.27-66.85 21.13-30.69 33.31-65.43 44.06-96.09 24.07-68.62 36.32-76.9 48.46-90l40.44 16.4v51.71a32 32 0 0 0 32 32h60.94s14.62 15.9 28.24 30.41C370.7 418.86 211.88 480 64 480z\"]\n};\nvar faPercent = {\n prefix: 'fal',\n iconName: 'percent',\n icon: [384, 512, [], \"f295\", \"M96 224c53 0 96-43 96-96s-43-96-96-96S0 75 0 128s43 96 96 96zm0-156c33.1 0 60 26.9 60 60s-26.9 60-60 60-60-26.9-60-60 26.9-60 60-60zm192 220c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 156c-33.1 0-60-26.9-60-60s26.9-60 60-60 60 26.9 60 60-26.9 60-60 60zm59.8-412H378c5 0 7.8 5.7 4.8 9.6L41 477.6c-1.1 1.5-2.9 2.4-4.8 2.4H6c-5 0-7.8-5.7-4.8-9.6L343 34.4c1.1-1.5 2.9-2.4 4.8-2.4z\"]\n};\nvar faPercentage = {\n prefix: 'fal',\n iconName: 'percentage',\n icon: [320, 512, [], \"f541\", \"M317.66 132.28c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L296.5 153.44l21.16-21.16zM64 224c16.38 0 32.76-6.25 45.25-18.74 24.99-24.99 24.99-65.52 0-90.51C96.76 102.25 80.38 96 64 96s-32.76 6.25-45.26 18.75c-24.99 24.99-24.99 65.52 0 90.51C31.24 217.75 47.62 224 64 224zm-22.62-86.63C47.42 131.33 55.45 128 64 128s16.58 3.33 22.63 9.37c12.48 12.48 12.47 32.78 0 45.25C80.59 188.67 72.55 192 64 192c-8.55 0-16.58-3.33-22.62-9.37-12.48-12.48-12.48-32.78 0-45.26zM256 288c-16.38 0-32.76 6.25-45.26 18.75-24.99 24.99-24.99 65.52 0 90.51C223.24 409.75 239.62 416 256 416s32.76-6.25 45.25-18.74c24.99-24.99 24.99-65.52 0-90.51C288.76 294.25 272.38 288 256 288zm22.63 86.63c-6.04 6.04-14.08 9.37-22.63 9.37-8.55 0-16.58-3.33-22.62-9.37-12.48-12.48-12.48-32.78 0-45.26 6.04-6.04 14.08-9.37 22.62-9.37 8.55 0 16.58 3.33 22.63 9.37 12.48 12.48 12.47 32.78 0 45.26z\"]\n};\nvar faPersonBooth = {\n prefix: 'fal',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M224.1 504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V320h-32v184zM544 0H256.1c-17.7 0-32 14.3-32 32v128h32V32l79.2 205.1c-5.4 21.2-23.5 93.2-23.5 117.1 0 34.1 27.7 61.8 61.7 61.8 12.3 0 24-3.9 34-10.6 9.2 6.6 20.4 10.6 32.5 10.6 15.7 0 29.8-6.5 40-16.9 10.2 10.4 24.3 16.9 40 16.9 8.6 0 16.7-2.1 24-5.6V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V32c0-17.7-14.3-32-32-32zM373.5 384c-16.4 0-29.7-13.4-29.7-29.8 0-16.9 14.6-78.9 23.8-114 .8-3.2.7-6.7-.5-9.8L290.9 32h93.2v328c0 7 1.4 13.6 3.8 19.7-4.5 2.6-9.2 4.3-14.4 4.3zm90.5-24c0 13.3-10.7 24-24 24s-24-10.7-24-24V32h48v328zm80 0c0 13.3-10.7 24-24 24-13.2 0-24-10.7-24-24V32h48v328zM240.1 192h-44.3l-40.5-40.6c-8.5-8.5-18.6-14.6-29.6-18.5 20.4-12.7 34.1-35.2 34.1-60.9 0-39.7-32.3-72-72-72s-72 32.3-72 72c0 26.2 14.2 49 35.2 61.6-10.2 4-19.6 9.9-27.6 17.9C8.3 166.6 0 186.8.1 208.2L.2 304 0 463.9c0 26.5 21.5 48 47.9 48.1 25.5 0 46.4-19.9 48-45 1.6 25.1 22.4 45 47.9 45 26.5 0 48-21.5 48-48v-56.5c0-36.8-13.5-43.2-48-76.9v-55.8c11.1 8.4 24.8 13.1 38.8 13.1h57.6c26.5 0 48-21.5 48-48S266.6 192 240.1 192zM47.8 72c0-22.1 17.9-40 40-40s40 17.9 40 40-17.9 40-40 40-40-17.9-40-40zm192.3 184h-57.6c-8.4 0-16.6-3.4-22.6-9.4l-48.2-48.2v145.7c42.1 41.2 48 42.1 48 63.4V464c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-78.2 15.5-45.8-63.6-121.9L64 464c0 8.8-7.2 16-16 16s-16-7.2-16-16l.2-160-.2-95.9c0-26.2 21.2-48.1 48-48.1h18.7c12.8 0 24.9 5 33.9 14.1l49.9 49.9h57.6c8.8 0 16 7.2 16 16s-7.1 16-16 16z\"]\n};\nvar faPersonCarry = {\n prefix: 'fal',\n iconName: 'person-carry',\n icon: [384, 512, [], \"f4cf\", \"M368 96H208c-8.8 0-16 7.2-16 16v76.1l-52.7-52.7c-2.4-2.4-5.1-4.2-7.7-6.3 28.1-21.5 31.4-53.5 26.3-74.4C150 22.5 121.2 0 88 0 41.7 0 6.8 43.5 18.1 89.2c3.4 13.8 10.7 25.6 20.4 34.8C15.6 138.1 0 163.4 0 192v272c0 26.5 21.5 48 48 48s48-21.5 48-48v-66l3.6 3.1 13.1 71.5c4.4 23.8 27.8 43.8 56 38.5 25.7-4.7 43.3-29.5 38.4-55.8L193 378.7c-3.4-18.3-13-35.1-27.2-47.1L128 299.1v-39.2l28.1 28.1H368c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16zM88 32c18 0 34.3 12.2 38.8 30.5C133.5 89.6 112 112 88 112c-18 0-34.3-12.2-38.8-30.5C42.5 54.4 64 32 88 32zM64 464c0 8.8-7.2 16-16 16s-16-7.2-16-16V343.2l32 27.4V464zm105.4-208l-59.7-59.7c-1.6-1.6-3.6-2.4-5.6-2.4-4.1 0-8.1 3.2-8.1 8v111.9l49.2 42.1c8.6 7.3 14.4 17.5 16.5 28.6l14.1 76.6c1.6 8.7-4.2 17-12.8 18.6-1 .2-2 .3-2.9.3-7.6 0-14.3-5.4-15.7-13.1l-14.1-76.5c-.7-3.9-2.8-7.5-5.8-10.1l-75.6-64.7C38.1 306.3 32 293.1 32 279v-87c0-25.6 20.3-47.2 45.9-48H80c15.4 0 27.8 5.1 36.7 14.1l65.9 65.9H224c8.8 0 16 7.2 16 16s-7.2 16-16 16h-54.6zm182.6 0h-82.9c1.8-5 2.9-10.4 2.9-16 0-26.5-21.5-48-48-48v-64h128v128z\"]\n};\nvar faPersonDolly = {\n prefix: 'fal',\n iconName: 'person-dolly',\n icon: [512, 512, [], \"f4d0\", \"M507.6 391.8c-1.1-4.3-5.5-6.8-9.8-5.7l-20.3 5.4-40.7-151.8c-4.6-17.1-22.1-27.2-39.2-22.6l-127.1 34c.9-3.6 1.5-7.3 1.5-11.2 0-23.6-17.2-43.2-39.7-47.2L208 101.9c-1.1-4.3-5.5-6.8-9.8-5.7l-15.5 4.1c-4.3 1.1-6.8 5.5-5.7 9.8l21.8 81.8h-3l-56.6-56.6c-2.4-2.4-5.1-4.2-7.7-6.3 7.1-5.4 13.2-12 18-19.9 10-16.4 12.9-35.8 8.3-54.5C150 22.5 121.2 0 88 0 66.3 0 41.2 10.3 26.4 34.7c-10 16.4-12.9 35.8-8.3 54.5 3.4 13.8 10.7 25.6 20.4 34.8C15.6 138.1 0 163.4 0 192v272c0 26.5 21.5 48 48 48s48-21.5 48-48v-66l3.6 3.1 13.1 71.5c4.4 23.8 27.8 43.8 56 38.5 12.5-2.3 23.4-9.4 30.7-19.9 7.3-10.6 10-23.3 7.7-35.9L193 378.7c-3.4-18.3-13-35.1-27.2-47.1L128 299.1v-39.2l28.1 28.1H224c.2 0 .4-.1.6-.1l28.5 106.5C235.6 405.8 224 425.5 224 448c0 35.3 28.7 64 64 64 31.7 0 57.8-23.1 62.9-53.4L506.1 417c4.3-1.1 6.8-5.5 5.7-9.8l-4.2-15.4zM88 32c18 0 34.3 12.2 38.8 30.5C133.5 89.6 112 112 88 112c-18 0-34.3-12.2-38.8-30.5C42.5 54.4 64 32 88 32zM64 464c0 8.8-7.2 16-16 16s-16-7.2-16-16V343.2l32 27.4V464zm105.4-208l-59.7-59.7c-1.6-1.6-3.6-2.4-5.6-2.4-4.1 0-8.1 3.2-8.1 8v111.9l49.2 42.1c8.6 7.3 14.4 17.5 16.5 28.6l14.1 76.6c1.6 8.7-4.2 17-12.8 18.6-1 .2-2 .3-2.9.3-7.6 0-14.3-5.4-15.7-13.1l-14.1-76.5c-.7-3.9-2.8-7.5-5.8-10.1l-75.6-64.7C38.1 306.3 32 293.1 32 279v-87c0-25.6 20.3-47.2 45.9-48H80c15.4 0 27.8 5.1 36.7 14.1l65.9 65.9H224c8.8 0 16 7.2 16 16s-7.2 16-16 16h-54.6zM288 480c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm60-53.8c-8.9-24.6-32.3-42.3-60-42.3-1.5 0-2.9.3-4.4.4l-25.9-96.6L405.9 248l40.7 151.8-98.6 26.4z\"]\n};\nvar faPersonDollyEmpty = {\n prefix: 'fal',\n iconName: 'person-dolly-empty',\n icon: [512, 512, [], \"f4d1\", \"M507.6 391.8c-1.1-4.3-5.5-6.8-9.8-5.7L348 426.2c-8.9-24.6-32.3-42.3-60-42.3-1.5 0-2.9.3-4.4.4l-28.9-107.8c10.5-8.8 17.3-21.9 17.3-36.6 0-23.6-17.2-43.2-39.7-47.2l-25.1-90.9c-1.1-4.3-5.5-6.8-9.8-5.7l-15.5 4.1c-4.3 1.1-6.8 5.5-5.7 9.8l22.6 81.8h-3l-56.6-56.6c-2.4-2.4-5.1-4.2-7.7-6.3 7.1-5.4 13.2-12 18-19.9 10-16.4 12.9-35.8 8.3-54.5C150 22.5 121.2 0 88 0 66.3 0 41.2 10.3 26.4 34.7c-10 16.4-12.9 35.8-8.3 54.5 3.4 13.8 10.7 25.6 20.4 34.8C15.6 138.1 0 163.4 0 192v272c0 26.5 21.5 48 48 48s48-21.5 48-48v-66l3.6 3.1 13.1 71.5c4.4 23.8 27.8 43.8 56 38.5 12.5-2.3 23.4-9.4 30.7-19.9 7.3-10.6 10-23.3 7.7-35.9L193 378.7c-3.4-18.3-13-35.1-27.2-47.1L128 299.1v-39.2l28.1 28.1H224c.2 0 .4-.1.6-.1l28.5 106.5C235.6 405.8 224 425.5 224 448c0 35.3 28.7 64 64 64 31.7 0 57.8-23.1 62.9-53.4L506.1 417c4.3-1.1 6.8-5.5 5.7-9.8l-4.2-15.4zM88 32c18 0 34.3 12.2 38.8 30.5C133.5 89.6 112 112 88 112c-18 0-34.3-12.2-38.8-30.5C42.5 54.4 64 32 88 32zM64 464c0 8.8-7.2 16-16 16s-16-7.2-16-16V343.2l32 27.4V464zm105.4-208l-59.7-59.7c-1.6-1.6-3.6-2.4-5.6-2.4-4.1 0-8.1 3.2-8.1 8v111.9l49.2 42.1c8.6 7.3 14.4 17.5 16.5 28.6l14.1 76.6c1.6 8.7-4.2 17-12.8 18.6-1 .2-2 .3-2.9.3-7.6 0-14.3-5.4-15.7-13.1l-14.1-76.5c-.7-3.9-2.8-7.5-5.8-10.1l-75.6-64.7C38.1 306.3 32 293.1 32 279v-87c0-25.6 20.3-47.2 45.9-48H80c15.4 0 27.8 5.1 36.7 14.1l65.9 65.9H224c8.8 0 16 7.2 16 16s-7.2 16-16 16h-54.6zM288 480c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faPersonSign = {\n prefix: 'fal',\n iconName: 'person-sign',\n icon: [512, 512, [], \"f757\", \"M501.5 66.6l-71.7-26.1 9.5-23.2c1.7-4.1-.2-8.8-4.3-10.5L420.2.6c-4.1-1.7-8.8.2-10.5 4.3l-10 24.7L321.1 1c-8.9-3.2-18 2.7-20.5 9.6L264.1 111c-3 8.3 1.2 17.5 9.6 20.5l73.6 26.8-22.5 55.4c-3.7-1.8-7.3-3.9-11.5-4.8L253.6 197l-10.1-16.1c-11.9-19-28.8-33.5-48.4-42.5 12.8-13 20.7-30.8 20.7-50.4 0-39.7-32.3-72-72-72S72 48.3 72 88c0 20.8 9 39.4 23.1 52.6-22.8 11.3-41.9 29.7-53.8 53.5L5 266.5c-11.8 23.7-2.2 52.6 21.5 64.4.7.3 26.5 14.1 51-5L49.1 453.6c-5.7 25.8 10.6 51.5 36.4 57.3 3.6.8 7 1.1 10.4 1.1 22.3 0 42-15.8 46.8-37.6l17.2-77.5 15.9 19.9V464c0 26.5 21.5 48 48 48s48-21.5 48-48v-52.8c0-18.1-6.2-35.8-17.5-50l-46.5-58.1v-20.3c6.3 3.2 13.1 5.5 20.1 6.9l60.8 12.2-.3.8c-1.7 4.1.2 8.8 4.3 10.5l14.8 6.2c4.1 1.7 8.8-.2 10.5-4.3l6.7-16.6c13-6.4 23.1-18.1 26.2-33.1 1.8-8.8.9-17.8-2.1-26l28.6-70.2 76.6 27.9c8.9 3.3 18-2.8 20.5-9.6L511 87.1c3.1-8.3-1.2-17.4-9.5-20.5zM143.9 48c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm157.2 223.7h-.4l-66.4-13.3c-12.9-2.6-24.3-10.5-31.3-21.6-14.6-23.3-16.3-28-27.1-35.6v113.2l53.5 66.9c6.8 8.5 10.5 19.1 10.5 30V464c0 8.8-7.2 16-16 16s-16-7.2-16-16v-52.8c0-3.6-1.2-7.2-3.5-10L152.2 336h-11.5l-29.2 131.5c-1.7 7.7-9.6 14.2-19.1 12.2-8.6-1.9-14.1-10.5-12.2-19.1l31.6-142.3V206c-5.3 4.7-10.1 10-13.4 16.7l-36.2 72.5c-3.1 6.2-12.1 11.9-21.5 7.2-7.9-4-11.1-13.6-7.2-21.5l36.2-72.5c14.9-29.8 44.9-48.4 78.2-48.4 28 0 53.5 14.2 68.3 37.9l13.7 21.9c2.3 3.7 6.1 6.3 10.4 7.2l66.4 13.3c2.2.4 4.2 1.3 5.9 2.5l-11.5 28.9zm148.8-110.1l-150.3-54.7 25.6-70.4 150.3 54.7-25.6 70.4z\"]\n};\nvar faPhone = {\n prefix: 'fal',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M487.8 24.1L387 .8c-14.7-3.4-29.8 4.2-35.8 18.1l-46.5 108.5c-5.5 12.7-1.8 27.7 8.9 36.5l53.9 44.1c-34 69.2-90.3 125.6-159.6 159.6l-44.1-53.9c-8.8-10.7-23.8-14.4-36.5-8.9L18.9 351.3C5 357.3-2.6 372.3.8 387L24 487.7C27.3 502 39.9 512 54.5 512 306.7 512 512 307.8 512 54.5c0-14.6-10-27.2-24.2-30.4zM55.1 480l-23-99.6 107.4-46 59.5 72.8c103.6-48.6 159.7-104.9 208.1-208.1l-72.8-59.5 46-107.4 99.6 23C479.7 289.7 289.6 479.7 55.1 480z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fal',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M493.09 351.3L384.7 304.8a31.36 31.36 0 0 0-36.5 8.9l-44.1 53.9A350 350 0 0 1 144.5 208l53.9-44.1a31.35 31.35 0 0 0 8.9-36.49l-46.5-108.5A31.33 31.33 0 0 0 125 .81L24.2 24.11A31.05 31.05 0 0 0 0 54.51C0 307.8 205.3 512 457.49 512A31.23 31.23 0 0 0 488 487.7L511.19 387a31.21 31.21 0 0 0-18.1-35.7zM456.89 480C222.4 479.7 32.3 289.7 32.1 55.21l99.6-23 46 107.39-72.8 59.5C153.3 302.3 209.4 358.6 313 407.2l59.5-72.8 107.39 46z\"]\n};\nvar faPhoneLaptop = {\n prefix: 'fal',\n iconName: 'phone-laptop',\n icon: [640, 512, [], \"f87a\", \"M608 128H416a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32zm0 352H416V160h192zM96 32h384v64h32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v256H16a16 16 0 0 0-16 16v16a64.14 64.14 0 0 0 63.91 64H352v-32H63.91A32 32 0 0 1 32 320h320v-32H96z\"]\n};\nvar faPhoneOffice = {\n prefix: 'fal',\n iconName: 'phone-office',\n icon: [576, 512, [], \"f67d\", \"M352 320h-32c-17.66 0-32 14.36-32 32v32c0 17.64 14.34 32 32 32h32c17.66 0 32-14.36 32-32v-32c0-17.64-14.34-32-32-32zm0 64h-32v-32h32v32zm0-192h-32c-17.66 0-32 14.36-32 32v32c0 17.64 14.34 32 32 32h32c17.66 0 32-14.36 32-32v-32c0-17.64-14.34-32-32-32zm0 64h-32v-32h32v32zm128 64h-32c-17.66 0-32 14.36-32 32v32c0 17.64 14.34 32 32 32h32c17.66 0 32-14.36 32-32v-32c0-17.64-14.34-32-32-32zm0 64h-32v-32h32v32zm0-192h-32c-17.66 0-32 14.36-32 32v32c0 17.64 14.34 32 32 32h32c17.66 0 32-14.36 32-32v-32c0-17.64-14.34-32-32-32zm0 64h-32v-32h32v32zm32-224H237.06C230.45 13.4 212.87 0 192 0h-64c-20.87 0-38.45 13.4-45.06 32H64C28.65 32 0 60.65 0 96v352c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM320 64h160v64H320V64zM112 48c0-8.82 7.18-16 16-16h64c8.82 0 16 7.18 16 16v336c0 8.82-7.18 16-16 16h-64c-8.82 0-16-7.18-16-16V48zm432 400c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32V96c0-17.64 14.36-32 32-32h16v320c0 26.51 21.49 48 48 48h64c26.51 0 48-21.49 48-48V64h48v64c0 17.64 14.34 32 32 32h160c17.66 0 32-14.36 32-32V64c17.64 0 32 14.36 32 32v352z\"]\n};\nvar faPhonePlus = {\n prefix: 'fal',\n iconName: 'phone-plus',\n icon: [512, 512, [], \"f4d2\", \"M8 128h88v88c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-88h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-88V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v88H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zM487.8 24.1L387 .8c-14.7-3.4-29.8 4.2-35.8 18.1l-46.5 108.5c-5.5 12.7-1.8 27.7 8.9 36.5l53.9 44.1c-34 69.2-90.3 125.6-159.6 159.6l-44.1-53.9c-8.8-10.7-23.8-14.4-36.5-8.9L18.9 351.3c-13.9 6-21.5 21-18.1 35.8L24 487.9C27.3 502 39.9 512 54.5 512 306.7 512 512 307.8 512 54.5c0-14.6-10-27.2-24.2-30.4zM55.1 480l-23-99.6 107.4-46 59.5 72.8c103.6-48.6 159.7-104.9 208.1-208.1l-72.8-59.5 46-107.4 99.6 23C479.7 289.7 289.6 479.7 55.1 480z\"]\n};\nvar faPhoneRotary = {\n prefix: 'fal',\n iconName: 'phone-rotary',\n icon: [512, 512, [], \"f8d3\", \"M256 240a80 80 0 1 0 80 80 80 80 0 0 0-80-80zm0 128a48 48 0 1 1 48-48 48.05 48.05 0 0 1-48 48zm114.43-175.75A64 64 0 0 0 314.86 160H197.14a64 64 0 0 0-55.57 32.25L36.21 376.62A32 32 0 0 0 32 392.5V448a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-55.5a32 32 0 0 0-4.21-15.88zM448 448H64v-55.5l105.36-184.38A32.07 32.07 0 0 1 197.14 192h117.72a32.07 32.07 0 0 1 27.78 16.12L448 392.5zm52.27-329.8C431.72 63.21 344.81 32 256 32S80.28 63.21 11.73 118.2A32.17 32.17 0 0 0 0 143.29V208a16 16 0 0 0 16 16h70.11a16 16 0 0 0 14.31-8.85L128 152c39.9-17.28 83.23-24 128-24 44.77 0 88.08 6.72 128 24l27.58 63.15a16 16 0 0 0 14.31 8.85H496a16 16 0 0 0 16-16v-64.71a32.17 32.17 0 0 0-11.73-25.09zM480 192h-43.61l-23.07-52.81-5-11.55-11.57-5C355.33 104.71 309.3 96 256 96s-99.32 8.71-140.71 26.63l-11.57 5-5 11.55L75.61 192H31.94l-.18-48.84A359.7 359.7 0 0 1 256 64a357.89 357.89 0 0 1 224 79.29z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fal',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M637 485.2L462.6 347.9l-21.2-16.7-35.4-27.8-17.4-13.7L23 1.8C19.6-1 14.5-.4 11.8 3l-10 12.5C-1 19-.4 24 3 26.8l355.7 280.1 10.9 8.6 69 54.3 6.4 5 172 135.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.6 2.2-8.6-1.2-11.4zM431.6 208c-8.8 17.8-19 34.7-30.6 50.7l24.6 19.4c16.4-23.1 31.4-48.9 45.6-79l-72.8-59.5 46-107.4 99.6 23c-.1 94-31.1 180.6-82.8 251l25.1 19.8C542.4 249.9 576 156.4 576 54.5c0-14.6-10-27.2-24.2-30.4L451 .8c-14.7-3.4-29.8 4.2-35.8 18.1l-46.5 108.5c-5.5 12.7-1.8 27.7 8.9 36.5l54 44.1zM119.1 480l-23-99.6 107.4-46 59.5 72.8c38.1-17.9 69.6-36.8 96.8-58.7L334 328.1c-19.2 15.1-39.9 28.5-62 39.4l-44.1-53.9c-8.8-10.7-23.8-14.4-36.5-8.9L82.9 351.3c-13.9 6-21.5 21-18.1 35.7L88 487.7c3.3 14.3 15.8 24.2 30.4 24.2 116.1 0 222-43.7 302.8-115.1l-25.5-20C321.5 440.9 224.9 479.9 119.1 480z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fal',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zm-54.867-321.745l-58.499-13.493a29.473 29.473 0 0 0-33.748 17.123l-27.001 62.995c-5.146 12.012-1.678 26.179 8.435 34.451l24.129 19.742a192.006 192.006 0 0 1-75.376 75.375l-19.74-24.127c-8.273-10.115-22.44-13.582-34.453-8.435l-62.992 26.998c-13.138 5.63-20.34 19.824-17.125 33.748l13.494 58.501C81.363 406.597 93.184 416 107 416c153.033 0 277-123.819 277-277 0-13.818-9.403-25.639-22.867-28.745zM108.987 383.992l-12.579-54.518 59.348-25.435 34.601 42.288c61.893-29.035 94.185-60.484 123.973-123.971l-42.29-34.602 25.436-59.348 54.518 12.579c-1.057 133.704-109.058 241.949-243.007 243.007z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fal',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm16 400a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V80a16 16 0 0 1 16-16h352a16 16 0 0 1 16 16zm-49.89-131.12l-63-27a29.63 29.63 0 0 0-34.45 8.43l-19.74 24.13c-26.82-14.79-60.59-48.56-75.38-75.38l24.13-19.74a29.65 29.65 0 0 0 8.44-34.45l-27-63C174.89 104 162.75 96 152 96a35.39 35.39 0 0 0-6.65.76l-58.5 13.49A29.37 29.37 0 0 0 64 139c0 153.18 124 277 277 277a29.35 29.35 0 0 0 28.74-22.87l13.5-58.5a29.49 29.49 0 0 0-17.13-33.75zM339 384C205.06 382.93 97.06 274.69 96 141l54.51-12.58L176 187.75l-42.29 34.61c29.79 63.48 62.08 94.93 124 124L292.24 304l59.35 25.43z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fal',\n iconName: 'phone-volume',\n icon: [448, 512, [], \"f2a0\", \"M154.9 187.8c14.7 1.5 28.7-7 34.2-20.7l32.5-81c6-14.9.4-31.9-13.3-40.5l-65-40.5c-13.2-8.2-30.1-6.3-41.1 4.7C-34.3 146-34 366.4 102.2 502.3c11 11 27.9 12.9 41.1 4.7l65-40.5C222 458 227.5 441 221.6 426l-32.5-81c-5.5-13.6-19.5-22.1-34.2-20.7l-43.2 4.3c-14.5-47.2-14.5-97.9 0-145.1zM89.8 362.9l68.4-6.8c.5-.1 1 .2 1.2.7l32.5 81c.2.5 0 1.1-.5 1.4l-65 40.5c-.5.3-1.1.2-1.5-.2C1 356 1.1 155.9 124.9 32.4c.4-.4 1-.5 1.5-.2l65 40.5c.5.3.7.9.5 1.4l-32.5 81c-.2.5-.7.8-1.2.7L89.8 149c-28.7 79.1-27.6 137.9 0 213.9zm202.4-270l-6 5.7c-3.9 3.7-4.8 9.6-2.3 14.4 4.9 9.4 4.9 20.6 0 29.9-2.5 4.8-1.6 10.7 2.3 14.4l6 5.7c5.6 5.4 14.8 4.1 18.7-2.6 11.8-20 11.8-45 0-65.1-3.9-6.5-13-7.8-18.7-2.4zM357 49.2c-4.4-5.6-12.7-6.3-17.9-1.3l-5.8 5.6c-4.4 4.2-5 11.1-1.3 15.9 26.5 34.6 26.5 82.6 0 117.1-3.7 4.8-3.1 11.7 1.3 15.9l5.8 5.6c5.2 4.9 13.5 4.3 17.9-1.3 36.1-46.2 36.1-111.1 0-157.5zm45.9-44.9c-4.5-5.3-12.5-5.7-17.6-.9L379.5 9c-4.6 4.4-5 11.5-.9 16.4 49.7 59.5 49.6 145.9 0 205.4-4 4.8-3.6 12 .9 16.4l5.8 5.6c5 4.8 13.1 4.4 17.6-.9 60.2-71.8 60.1-176.1 0-247.6z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fal',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160c-17.67 0-32 13.13-32 29.33V128h128V32h256v288h-32v32h128c17.67 0 32-13.13 32-29.33V29.33C640 13.13 625.67 0 608 0zM224 96h-64V32h64zm384 224h-64v-64h64zm0-96h-64v-96h64zm0-128h-64V32h64zm-192 64H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zm0 320H32v-24l81.69-61.26 80 40 126.84-95.14L416 403.23zm0-115.23l-96.53-64.36-129.16 96.86-80-40L32 416V192h384zM112 320a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm0-64a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faPi = {\n prefix: 'fal',\n iconName: 'pi',\n icon: [448, 512, [], \"f67e\", \"M444.79 385.6l-12.82-9.6a7.997 7.997 0 0 0-11.2 1.61l-20.75 27.72C395 412.02 387 416 378.66 416c-14.69 0-26.66-11.97-26.66-26.67V128h88c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H27.33c-4.24 0-8.31 1.69-11.31 4.69L2.36 114.34C-2.68 119.38.89 128 8.02 128H128v131.46c0 32.99-9.27 65.31-26.75 93.28l-46.58 74.53a8 8 0 0 0 2.54 11.02l13.56 8.48a8.006 8.006 0 0 0 11.03-2.54l46.6-74.57A207.927 207.927 0 0 0 160 259.47V128h160v258.87c0 20.63 9.6 40.73 27.02 51.79 27.57 17.5 61.15 9.08 78.61-14.12l20.78-27.73c2.64-3.55 1.92-8.56-1.62-11.21z\"]\n};\nvar faPiano = {\n prefix: 'fal',\n iconName: 'piano',\n icon: [512, 512, [], \"f8d4\", \"M476.62,270.31l-57.24-28.62A64,64,0,0,1,384,184.45,184.45,184.45,0,0,0,199.55,0h-15.1A184.45,184.45,0,0,0,0,184.45H0V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V327.55A64,64,0,0,0,476.62,270.31ZM480,480H32V384H80v40a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V384h32v40a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V384h32v40a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V384h96v40a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V384h32v40a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V384h48Zm0-128H32V184.45C32,100.39,100.39,32,184.45,32h15.1C283.61,32,352,100.39,352,184.45a95.49,95.49,0,0,0,53.07,85.86l57.24,28.62A31.83,31.83,0,0,1,480,327.55Z\"]\n};\nvar faPianoKeyboard = {\n prefix: 'fal',\n iconName: 'piano-keyboard',\n icon: [576, 512, [], \"f8d5\", \"M544 64H32A32 32 0 0 0 0 96v320a32 32 0 0 0 32 32h512a32 32 0 0 0 32-32V96a32 32 0 0 0-32-32zM128 416H32V224h64v96a16 16 0 0 0 16 16h16zm144 0H160v-80h16a16 16 0 0 0 16-16v-96h48v96a16 16 0 0 0 16 16h16zM128 304v-80h32v80zm288 112H304v-80h16a16 16 0 0 0 16-16v-96h48v96a16 16 0 0 0 16 16h16zM272 304v-80h32v80zm272 112h-96v-80h16a16 16 0 0 0 16-16v-96h64zM416 304v-80h32v80zm128-112H32V96h512z\"]\n};\nvar faPie = {\n prefix: 'fal',\n iconName: 'pie',\n icon: [576, 512, [], \"f705\", \"M528.49 228.23C490.58 129.67 394.93 64 288 64S85.41 129.67 47.53 228.23C5 229.87 0 265.64 0 274.14A46.09 46.09 0 0 0 46.22 320c2.72 0 4.77-.6 7.32-.76L86 416.56A46 46 0 0 0 129.63 448h316.74A46 46 0 0 0 490 416.55l32.43-97.31c2.54.17 4.6.76 7.32.76A46.09 46.09 0 0 0 576 274.14c0-8.77-5.15-44.14-47.51-45.91zm-68.84 178.18a14 14 0 0 1-13.28 9.59H129.62a14 14 0 0 1-13.28-9.58l-31.26-93.79a127.07 127.07 0 0 0 29.2-16.69c9.09-6.74 12.6-9.43 25.41.06 12.12 9 32.47 24 67.94 24s55.84-15.06 68-24.08c9.07-6.71 12.51-9.4 25.21.05 12.15 9 32.46 24 67.93 24s55.81-15.06 67.94-24.06c10.88-8.07 14.12-8.2 25.12 0a126.91 126.91 0 0 0 29.08 16.69l-31.26 93.8zM529.77 288c-24.94 0-38.19-9.84-48.91-17.81-29.71-22-50.06-9.69-63.22.06C407 278.16 393.74 288 368.77 288s-38.22-9.84-48.94-17.77c-31.82-23.68-53.5-7.25-63.3 0-10.66 7.93-23.91 17.77-48.91 17.77s-38.25-9.84-49-17.77c-6.78-5-29.71-25-63.47 0-10.68 7.9-24 17.74-49 17.74a13.87 13.87 0 1 1 0-27.74c5.39 0 11.08.48 26.75-8.17C126.23 98.14 271.72 96 288 96c16 0 161.72 2 215 156 15.75 8.91 20.57 8.31 26.78 8.31a13.87 13.87 0 1 1 0 27.74zM199.16 145.69a16.07 16.07 0 0 0-21.47 7.16l-16 32a16 16 0 0 0 7.16 21.47c9.54 4.7 18.36-1 21.47-7.16l16-32a16 16 0 0 0-7.16-21.47zm199.14 7.15a16 16 0 1 0-28.63 14.31l16 32c3.1 6.17 11.93 11.86 21.47 7.16a16 16 0 0 0 7.16-21.47zM288 144a16 16 0 0 0-16 16v32a16 16 0 1 0 32 0v-32a16 16 0 0 0-16-16z\"]\n};\nvar faPig = {\n prefix: 'fal',\n iconName: 'pig',\n icon: [576, 512, [], \"f706\", \"M560 192h-29.5c-11.1-25.3-28.7-46.9-50.5-63.4V64h-16c-46.68 0-83.15 27.22-89.39 32H223.99c-41.32 0-82.57 17.33-111.74 45.92-22.43 21.87-38.56 50.15-45.07 82.08h-11.2c-14.8 0-26.5-13.5-23.5-28.8 2.2-11.4 12.9-19.2 24.5-19.2h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6-4.4 34.2 22.2 63.4 55.5 63.4h8c0 52.2 25.4 98.1 64 127.3V464c0 8.8 7.2 16 16 16h112c8.8 0 16-7.2 16-16v-48h64v48c0 8.8 7.2 16 16 16h112c8.8 0 16-7.2 16-16v-80.9c11.7-9 22.4-19.3 31.3-31.1H560c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16zm-16 128h-48.7c-17 22.4-17 24.1-47.3 47.3V448h-80v-64H239.99v64h-80v-80.7c-64.9-49-64-93.5-64-111.3 0-70.6 57.4-128 128.01-128h161.71c16.9-13.5 33.2-26.5 62.3-30.8v47.3c39.7 30.1 44 39.3 61.6 79.5H544v96zm-112.01-96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.19-16-16-16z\"]\n};\nvar faPiggyBank = {\n prefix: 'fal',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M432 256c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm128-32h-29.5c-11.1-25.3-28.7-46.9-50.5-63.4V96h-16c-30.3 0-57.8 10.1-80.9 26.2.4-3.4.9-6.7.9-10.2C384 50.1 333.9 0 272 0S160 50.1 160 112c0 9.7 1.6 18.9 4 27.9C115 159.7 78 203 67.2 256H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h8c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h112c8.8 0 16-7.2 16-16v-48h64v48c0 8.8 7.2 16 16 16h112c8.8 0 16-7.2 16-16v-80.9c11.7-9 22.4-19.3 31.3-31.1H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zM272 32c44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16H224c-10.1 0-19.9 1.2-29.5 3-1.6-6.1-2.5-12.4-2.5-19 0-44.2 35.8-80 80-80zm272 320h-48.7c-17 22.4-17 24.1-47.3 47.3V480h-80v-64H240v64h-80v-80.7c-64.9-49-64-93.5-64-111.3 0-70.6 57.4-128 128-128h161.7c16.9-13.5 33.2-26.5 62.3-30.8v47.3c39.7 30.1 44 39.3 61.6 79.5H544v96z\"]\n};\nvar faPills = {\n prefix: 'fal',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.2 32 0 82.2 0 144v224c0 61.8 50.2 112 112 112s112-50.2 112-112V144c0-61.8-50.2-112-112-112zm80 336c0 44.1-35.9 80-80 80s-80-35.9-80-80v-80h160v80zm0-112H32V144c0-44.1 35.9-80 80-80s80 35.9 80 80v112zm224-96c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 288c-70.7 0-128-57.3-128-128 0-29.6 10.4-56.4 27.3-78.1l178.9 178.9C472.4 437.6 445.6 448 416 448zm100.7-49.9L337.9 219.3c21.7-16.8 48.5-27.3 78.1-27.3 70.7 0 128 57.3 128 128 0 29.6-10.4 56.4-27.3 78.1z\"]\n};\nvar faPizza = {\n prefix: 'fal',\n iconName: 'pizza',\n icon: [576, 512, [], \"f817\", \"M523.2 100.13a15.43 15.43 0 0 0-12.36-6 16.42 16.42 0 0 0-11.61 4.78L342.17 256l157.06 157.06a16.42 16.42 0 0 0 11.61 4.78 15.4 15.4 0 0 0 12.36-6 256.47 256.47 0 0 0 0-311.71zm-62 229.69L387.42 256l73.87-73.87A157.51 157.51 0 0 1 480 256a155.93 155.93 0 0 1-18.76 73.82zm47.31 47.3l-23.61-23.6A190.2 190.2 0 0 0 512 256c0-35.68-10.2-68.79-27.17-97.41l23.72-23.71a224.58 224.58 0 0 1 0 242.24zM256.45 256L425.6 86.85c6.46-6.46 6.45-17.36-.42-23.39A255.13 255.13 0 0 0 256.46 0C175.37 0 94.29 38.28 42.65 114.84c-56.87 84.3-56.87 198 0 282.34C94.3 473.72 175.38 512 256.45 512a255.14 255.14 0 0 0 168.73-63.46c6.87-6 6.88-16.93.42-23.39zm7.55-64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm44.61-33.41a47.93 47.93 0 1 0-62 62L211.2 256l132.42 132.42c-25.23 17-55 27.58-87.62 27.58-18.23 0-35.46-3.71-51.8-9.35a47.87 47.87 0 1 0-73.84-52.77C109.16 326.73 96 293 96 256c0-88.22 71.78-160 160-160 32.64 0 62.5 10.49 87.73 27.47zM192 368a16 16 0 1 1-16-16 16 16 0 0 1 16 16zm64.45 112c-75.82 0-144.08-36.71-187.27-100.72-49.74-73.73-49.75-172.8 0-246.54C112.36 68.72 180.62 32 256.46 32a223.62 223.62 0 0 1 134.15 44.59l-23.74 23.74C335.48 77.87 297.55 64 256 64 150 64 64 150 64 256s86 192 192 192c41.55 0 79.58-13.77 111-36.21l23.62 23.62A223.65 223.65 0 0 1 256.45 480z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fal',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-1.09-.1-2.18-.15-3.26-.15a32.85 32.85 0 0 0-32.07 24.27L.55 491.63A16.24 16.24 0 0 0 16.15 512a16.54 16.54 0 0 0 4.4-.61l467.6-129.66c15.72-4.35 25.49-19.67 23.62-35.89C490.89 165.08 340.78 17.32 158.87.15zM38.49 473.21L133 113.91c148.3 14 248.38 112.63 264.45 259.75zM428.65 365C409.38 206.37 301.13 99.81 141.26 82.67l13.24-50.31a1.54 1.54 0 0 1 1.11-.36h.25c165.67 15.63 305 152.13 323.74 318.89zM192 176a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48zm0 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm-48 80a48 48 0 1 0 48 48 48.05 48.05 0 0 0-48-48zm0 64a16 16 0 1 1 16-16 16 16 0 0 1-16 16zm96-64a48 48 0 1 0 48-48 48.05 48.05 0 0 0-48 48zm64 0a16 16 0 1 1-16-16 16 16 0 0 1 16 16z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fal',\n iconName: 'place-of-worship',\n icon: [576, 512, [], \"f67f\", \"M558.57 355.99L448 303.26v-29.14c0-11.24-5.9-21.65-15.53-27.44L384 217.6V102.63c0-8.49-3.37-16.63-9.38-22.63L299.31 4.69C296.19 1.56 292.09 0 288 0s-8.19 1.56-11.31 4.69L201.37 80c-6 6-9.37 14.14-9.37 22.62V217.6l-48.47 29.08A31.988 31.988 0 0 0 128 274.12v29.15L17.43 355.99C6.96 360.99 0 373.89 0 388.32V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8 0 0-.35-119.22 0-120l96-45.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V274.12l64-38.4V102.63l64-64 64 64v133.09l64 38.4V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V338.71L544 384c.35.78 0 120 0 120 0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V388.32c0-14.43-6.96-27.33-17.43-32.33zM281.71 320.3c-33.28 3.17-57.71 33.02-57.71 66.45V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V385.8c0-15.95 10.86-30.76 26.59-33.36C302.61 349.15 320 364.58 320 384v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V384c0-37.42-32.12-67.34-70.29-63.7z\"]\n};\nvar faPlane = {\n prefix: 'fal',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-88.36c-10.63 0-18.3 10.17-15.38 20.39L192 192h-64l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H72c5.04 0 9.78-2.37 12.8-6.4L128 320h64l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h88.36c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64zm0 96H347.14L237.43 480h-57.86l54.86-192H112l-48 64H37.35l27.98-96-28-96H64l48 64h122.42L179.57 32h57.87l109.71 192H480c26.24 0 62.61 21.75 64 31.91-1.39 10.34-37.76 32.09-64 32.09z\"]\n};\nvar faPlaneAlt = {\n prefix: 'fal',\n iconName: 'plane-alt',\n icon: [576, 512, [], \"f3de\", \"M462.5 192.319H353.904l-33.695-64.33c6.53-.113 11.79-5.433 11.79-11.99V76c0-6.627-5.373-12-12-12h-33.307l-26.298-50.208C255.257 4.858 245.982 0 236.714 0h-54.175c-17.549 0-30.473 16.313-26.563 33.331l27.989 160.119c-20.696 1.057-40.83 2.827-58.722 5.169l-31.987-57.441-.259-.447c-4.896-8.161-13.85-13.23-23.366-13.23H29.723c-17.213 0-30.09 15.749-26.721 32.594l13.41 67.052C5.51 235.553 0 245.225 0 256.001c0 10.775 5.51 20.447 16.412 28.854l-13.41 67.049c-3.375 16.877 9.542 32.597 26.722 32.595l39.911-.001c9.516-.002 18.467-5.072 23.362-13.23l32.245-57.887c17.892 2.342 38.025 4.112 58.723 5.169l-27.989 160.119C152.064 495.694 164.999 512 182.539 512h54.175c9.003 0 18.012-4.512 23.456-13.372L286.689 448H320c6.627 0 12-5.373 12-12v-40c0-6.558-5.262-11.878-11.793-11.99l33.697-64.332 108.596.002c48.364 0 113.5-16.362 113.5-63.68 0-47.602-65.772-63.681-113.5-63.681zm0 95.361l-128.441-.001L233.849 480h-45.621l33.588-192.14c-45.335-1.352-67.17-2.232-113.778-9.356l-41.205 73.994-31.315.001L55 256.001 35.517 159.5h31.315l41.206 73.996c46.89-7.168 68.859-8.017 113.777-9.356L188.228 32h45.621l100.21 192.319H462.5c32.513 0 81.5 10.7 81.5 31.681 0 23.203-56.152 31.68-81.5 31.68z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fal',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M632 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-51.56-177.46c-19.46-20.21-45.93-35.35-76.55-43.77l-96.94-26.68L310.5 46.83c-2.19-4.23-4.15-8.58-6.18-12.89-3.14-6.64-8.97-11.67-16.05-13.62C269.1 15.05 216.78 0 216.78 0c-.28 0-10.77-.48-18.69 8.65-5.41 6.25-7.37 16.41-5.09 24.35l42.32 151.85-87.29-24.02-26.88-67.79c-2.92-7.47-9.18-13.18-16.75-15.26C59.87 65.53 61.43 65.64 57 65.64c-13.55 0-24.77 11.34-25 25.29l.29 107.22c.25 11.54 5.21 22.55 13.62 30.21l93.32 83.17c8.42 7.67 18.62 13.31 29.49 16.3l295.95 81.45c16.21 4.46 32.32 6.73 47.88 6.73 13.79 0 27.15-1.79 39.71-5.33 30.87-8.69 49.14-23.15 54.31-43 5.17-19.85-3.61-41.76-26.13-65.14zm-4.86 57.07c-2.01 7.72-13.67 15.1-32.01 20.26-30.85 8.68-60.03 1.41-70.42-1.45L177.2 296.97c-6.03-1.66-11.72-4.81-16.43-9.1L67.45 204.7c-1.93-1.76-3.11-4.46-3.17-7.23l-.1-97.57 28.35 7.8 31.54 79.72 157.85 43.44-54.51-194.65 48.8 13.98 108.76 209.03 110.44 30.4c25.08 6.9 46.51 19.04 61.99 35.11 13.64 14.18 20.28 26.88 18.18 34.88z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fal',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M80.52 339.28A40.69 40.69 0 0 0 110.06 352l127.06-.17a73.86 73.86 0 0 0 32.45-7.61l283.1-140.31c29.18-14.46 52.82-34.58 68.36-58.18 18-27.27 22.38-50.28 13.16-68.4-11.59-22.86-42-30.76-72.7-30.76-26 0-52.45 6.61-78.76 19.64l-92.71 46-208.71-76.54A25.67 25.67 0 0 0 168 32a26 26 0 0 0-11.45 2.68l-64 31.7a25.07 25.07 0 0 0-13.8 19.32A24 24 0 0 0 90.2 109l136.53 84.1-83.95 41.61L76 201.83a25.86 25.86 0 0 0-22.84 0l-39.07 19.38A25.11 25.11 0 0 0 .51 238.8a24.87 24.87 0 0 0 5.67 21.41zM64.6 231.87l78.22 38.51 149.94-74.31L118.54 89.23l49.28-24.42 224.09 82.12 105-52c21.85-10.83 43.58-16.32 64.59-16.32 16.3 0 39.32 3.6 44.23 13.28 3.41 6.71-.84 20.26-11.36 36.26-12.43 18.87-31.74 35.17-55.85 47.12L255.41 315.54a41.63 41.63 0 0 1-18.32 4.29l-127 .17a8.77 8.77 0 0 1-6.29-2.66l-67.3-71.53 28.1-13.94zM632 448H9.1a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8H632a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fal',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M269.44,480H211.56l53.18-186.06L257.2,288H144L96,352H69.34l28-96-28-96H94.66L54,128H48a16,16,0,0,0-15.54,19.88L64,256,32.48,364.13A16,16,0,0,0,48,384h56a16,16,0,0,0,12.8-6.41L160,320h64L175,491.59A16,16,0,0,0,190.34,512H278.7a16,16,0,0,0,13.89-8.06l74.12-129.71-25.41-20ZM189.72,72l42.94,33.81L211.56,32h57.88L376.23,218.89l6.5,5.11H512c26.23,0,62.61,21.75,64,31.91C574.61,266.25,538.23,288,512,288H464l40.64,32H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.72,0H190.34A16,16,0,0,0,175,20.39ZM637,485.32,23,1.8A7.88,7.88,0,0,0,11.77,3l-10,12.5A7.94,7.94,0,0,0,3,26.71L617,510.23A8,8,0,0,0,628.2,509l10-12.5A7.86,7.86,0,0,0,637,485.32Z\"]\n};\nvar faPlanetMoon = {\n prefix: 'fal',\n iconName: 'planet-moon',\n icon: [576, 512, [], \"e01f\", \"M224,64C100.28711,64,0,164.28516,0,288,0,411.71289,100.28711,512,224,512S448,411.71289,448,288C448,164.28516,347.71289,64,224,64ZM55.03906,202.86133A168.37236,168.37236,0,0,1,208,104c16.42969.23242,24,9.5918,24,20.62109a55.68,55.68,0,0,1-8.79492,30.26368l-47.916,55.26562c-14.0332,16.18555-14.373,43.09961,1.29492,57.707A44.99741,44.99741,0,0,0,207.45312,280H272a24.02624,24.02624,0,0,1,24,24v16.89062a56.29763,56.29763,0,0,1-5.91406,25.04883l-40.32227,64.64844a20.736,20.736,0,0,1-15.0625,11.14063c-3.28515.55273-6.60156,1.01171-10.7832,1.41406a8.10651,8.10651,0,0,1-7.91992-8.07422c-.00586-70.99024-.01172-44.60742.04492-55.06836H208a24.0275,24.0275,0,0,1-24-24V300.68555L127.0332,243.7168A40.0085,40.0085,0,0,0,98.74609,232l-25.02539-.00195C58.207,231.99805,49.11133,215.93945,55.03906,202.86133ZM224,480C118.13086,480,32,393.86914,32,288a191.85276,191.85276,0,0,1,4.28516-40.10742A51.99721,51.99721,0,0,0,73.7207,263.99805L98.74609,264a7.94986,7.94986,0,0,1,5.65821,2.34375L152,313.94141V336a56.07819,56.07819,0,0,0,31.99805,50.5918c-.002,1.70312-.002.41992,0,28.47851A40.04816,40.04816,0,0,0,223.918,455.14258c4.89062,0,14.47656-1.58594,16.082-1.85547a52.83521,52.83521,0,0,0,38.38281-28.38672L318.709,360.252A88.49462,88.49462,0,0,0,328,320.89062V304a56.0629,56.0629,0,0,0-56-56H207.45312a13.22277,13.22277,0,0,1-9.4121-3.90039,8.02588,8.02588,0,0,1-.38477-10.89649l49.72656-57.35546.99414-1.14649.8418-1.26172A87.73535,87.73535,0,0,0,264,124.62109,52.59039,52.59039,0,0,0,257.25781,99.082C347.30273,114.90039,416,193.49219,416,288,416,393.86914,329.86914,480,224,480ZM512,0a64,64,0,1,0,64,64A64.00067,64.00067,0,0,0,512,0Zm0,96a32,32,0,1,1,32-32A32.03667,32.03667,0,0,1,512,96Z\"]\n};\nvar faPlanetRinged = {\n prefix: 'fal',\n iconName: 'planet-ringed',\n icon: [512, 512, [], \"e020\", \"M500.46078,11.36064c-28.37693-28.41319-93.93158-.6778-167.29286,51.54847A207.12926,207.12926,0,0,0,256,47.95048c-114.87493,0-207.99987,93.13494-207.99987,208.0222a207.22913,207.22913,0,0,0,15.09765,77.563c-9.41992,13.29049-18.27733,26.34657-25.84373,38.79711C-1.36507,435.89032-9.99788,479.04336,11.53922,500.59449,19.35757,508.41759,29.97085,512,42.81264,512c33.78513,0,82.90424-25.01634,136.12882-62.92273A207.12538,207.12538,0,0,0,256,463.99488c114.87493,0,207.99987-93.13494,207.99987-208.0222a207.20185,207.20185,0,0,0-15.043-77.41256c9.459-13.35689,18.18163-26.41883,25.789-38.93579C513.36507,76.06676,521.99788,32.91372,500.46078,11.36064ZM256,79.9539c67.666,0,126.43937,38.43965,155.88271,94.58431-30.19529,40.71528-67.73042,84.216-110.41985,126.93347-46.56442,46.60458-89.31635,83.001-126.4921,110.59188-56.34958-29.37814-94.97065-88.26138-94.97065-156.09088C80.00011,158.91545,158.95319,79.9539,256,79.9539ZM34.27163,477.84792c-4.082-4.06684-6.53125-27.94439,30.45506-88.80049,4.57031-7.51838,9.60546-15.2653,14.92577-23.14114a208.7054,208.7054,0,0,0,66.53706,66.50123C84.69347,473.74006,43.38686,486.888,34.27163,477.84792ZM431.99989,255.97268c0,97.05723-78.95308,176.01878-175.99989,176.01878a175.07568,175.07568,0,0,1-45.74606-6.24285c38.29294-29.91921,77.56635-65.12218,113.94133-101.53232,38.1074-38.131,72.5898-77.1,101.48235-114.30712A175.20682,175.20682,0,0,1,431.99989,255.97268ZM366.01165,79.6609c49-32.92734,85.38276-48.302,102.48626-48.302,4.30078,0,7.41015.94151,9.23046,2.74834,4.082,4.06879,6.53125,27.94634-30.45506,88.80244-4.42968,7.28789-10.04491,15.13638-15.15428,22.75243A208.73991,208.73991,0,0,0,366.01165,79.6609Z\"]\n};\nvar faPlay = {\n prefix: 'fal',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6zm-16.2 55.1l-352 208C45.6 483.9 32 476.6 32 464V47.9c0-16.3 16.4-18.4 24.1-13.8l352 208.1c10.5 6.2 10.5 21.4.1 27.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fal',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zM40 256c0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216zm331.7-18l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM192 335.8V176.9c0-4.7 5.1-7.6 9.1-5.1l134.5 81.7c3.9 2.4 3.8 8.1-.1 10.3L201 341c-4 2.3-9-.6-9-5.2z\"]\n};\nvar faPlug = {\n prefix: 'fal',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M352,128H304V16a16,16,0,0,0-32,0V128H112V16a16,16,0,0,0-32,0V128H32A32,32,0,0,0,0,160v32a32,32,0,0,0,32,32v32c0,82.75,63.37,150.22,144,158.38V512h32V414.38c80.63-8.16,144-75.63,144-158.38V224a32,32,0,0,0,32-32V160A32,32,0,0,0,352,128ZM320,256a128,128,0,0,1-256,0V224H320Zm32-64H32V160H352Z\"]\n};\nvar faPlus = {\n prefix: 'fal',\n iconName: 'plus',\n icon: [384, 512, [], \"f067\", \"M376 232H216V72c0-4.42-3.58-8-8-8h-32c-4.42 0-8 3.58-8 8v160H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h160v160c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V280h160c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z\"]\n};\nvar faPlusCircle = {\n prefix: 'fal',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M384 250v12c0 6.6-5.4 12-12 12h-98v98c0 6.6-5.4 12-12 12h-12c-6.6 0-12-5.4-12-12v-98h-98c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h98v-98c0-6.6 5.4-12 12-12h12c6.6 0 12 5.4 12 12v98h98c6.6 0 12 5.4 12 12zm120 6c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-32 0c0-119.9-97.3-216-216-216-119.9 0-216 97.3-216 216 0 119.9 97.3 216 216 216 119.9 0 216-97.3 216-216z\"]\n};\nvar faPlusHexagon = {\n prefix: 'fal',\n iconName: 'plus-hexagon',\n icon: [576, 512, [], \"f300\", \"M441.5 39.8C432.9 25.1 417.1 16 400 16H176c-17.1 0-32.9 9.1-41.5 23.8l-112 192c-8.7 14.9-8.7 33.4 0 48.4l112 192c8.6 14.7 24.4 23.8 41.5 23.8h224c17.1 0 32.9-9.1 41.5-23.8l112-192c8.7-14.9 8.7-33.4 0-48.4l-112-192zm84.3 224.3l-112 192c-2.9 4.9-8.2 7.9-13.8 7.9H176c-5.7 0-11-3-13.8-7.9l-112-192c-2.9-5-2.9-11.2 0-16.1l112-192c2.8-5 8.1-8 13.8-8h224c5.7 0 11 3 13.8 7.9l112 192c2.9 5 2.9 11.2 0 16.2zM416 250v12c0 6.6-5.4 12-12 12h-98v98c0 6.6-5.4 12-12 12h-12c-6.6 0-12-5.4-12-12v-98h-98c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h98v-98c0-6.6 5.4-12 12-12h12c6.6 0 12 5.4 12 12v98h98c6.6 0 12 5.4 12 12z\"]\n};\nvar faPlusOctagon = {\n prefix: 'fal',\n iconName: 'plus-octagon',\n icon: [512, 512, [], \"f301\", \"M361.5 14.1c-9-9-21.2-14.1-33.9-14.1H184.5c-12.7 0-24.9 5.1-33.9 14.1L14.1 150.5c-9 9-14.1 21.2-14.1 33.9v143.1c0 12.7 5.1 24.9 14.1 33.9l136.5 136.5c9 9 21.2 14.1 33.9 14.1h143.1c12.7 0 24.9-5.1 33.9-14.1L498 361.4c9-9 14.1-21.2 14.1-33.9v-143c0-12.7-5.1-24.9-14.1-33.9L361.5 14.1zM480 327.5c0 4.3-1.7 8.3-4.7 11.3L338.9 475.3c-3 3-7 4.7-11.3 4.7H184.5c-4.3 0-8.3-1.7-11.3-4.7L36.7 338.9c-3-3-4.7-7-4.7-11.3V184.5c0-4.3 1.7-8.3 4.7-11.3L173.1 36.7c3-3 7-4.7 11.3-4.7h143.1c4.3 0 8.3 1.7 11.3 4.7l136.5 136.5c3 3 4.7 7 4.7 11.3v143zM384 250v12c0 6.6-5.4 12-12 12h-98v98c0 6.6-5.4 12-12 12h-12c-6.6 0-12-5.4-12-12v-98h-98c-6.6 0-12-5.4-12-12v-12c0-6.6 5.4-12 12-12h98v-98c0-6.6 5.4-12 12-12h12c6.6 0 12 5.4 12 12v98h98c6.6 0 12 5.4 12 12z\"]\n};\nvar faPlusSquare = {\n prefix: 'fal',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 64c8.8 0 16 7.2 16 16v352c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352m0-32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-60 206h-98v-98c0-6.6-5.4-12-12-12h-12c-6.6 0-12 5.4-12 12v98h-98c-6.6 0-12 5.4-12 12v12c0 6.6 5.4 12 12 12h98v98c0 6.6 5.4 12 12 12h12c6.6 0 12-5.4 12-12v-98h98c6.6 0 12-5.4 12-12v-12c0-6.6-5.4-12-12-12z\"]\n};\nvar faPodcast = {\n prefix: 'fal',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M326.011 313.366a81.658 81.658 0 0 0-11.127-16.147c-1.855-2.1-1.913-5.215-.264-7.481C328.06 271.264 336 248.543 336 224c0-63.221-52.653-114.375-116.41-111.915-57.732 2.228-104.69 48.724-107.458 106.433-1.278 26.636 6.812 51.377 21.248 71.22 1.648 2.266 1.592 5.381-.263 7.481a81.609 81.609 0 0 0-11.126 16.145c-2.003 3.816-7.25 4.422-9.961 1.072C92.009 289.7 80 258.228 80 224c0-79.795 65.238-144.638 145.178-143.995 77.583.624 141.19 63.4 142.79 140.969.73 35.358-11.362 67.926-31.928 93.377-2.738 3.388-8.004 2.873-10.029-.985zM224 0C100.206 0 0 100.185 0 224c0 82.003 43.765 152.553 107.599 191.485 4.324 2.637 9.775-.93 9.078-5.945-1.244-8.944-2.312-17.741-3.111-26.038a6.025 6.025 0 0 0-2.461-4.291c-48.212-35.164-79.495-92.212-79.101-156.409.636-103.637 84.348-188.625 187.964-190.76C327.674 29.822 416 116.79 416 224c0 63.708-31.192 120.265-79.104 155.21a6.027 6.027 0 0 0-2.462 4.292c-.799 8.297-1.866 17.092-3.11 26.035-.698 5.015 4.753 8.584 9.075 5.947C403.607 376.922 448 306.75 448 224 448 100.204 347.814 0 224 0zm64 355.75c0 32.949-12.871 104.179-20.571 132.813C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.438C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75 32.858 0 64 8.594 64 43.75zm-32 0c0-16.317-64-16.3-64 0 0 27.677 11.48 93.805 19.01 122.747 6.038 2.017 19.948 2.016 25.981 0C244.513 449.601 256 383.437 256 355.75zM288 224c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zm-32 0c0-17.645-14.355-32-32-32s-32 14.355-32 32 14.355 32 32 32 32-14.355 32-32z\"]\n};\nvar faPodium = {\n prefix: 'fal',\n iconName: 'podium',\n icon: [448, 512, [], \"f680\", \"M440 160H96v-16c0-39.77 29.25-72.6 67.34-78.72C170.29 83.22 187.6 96 208 96h64c26.51 0 48-21.49 48-48S298.51 0 272 0h-64c-21.37 0-39.27 14.06-45.48 33.36C107.17 40.12 64 86.87 64 144v16H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56.09l.01 1.77L96 480H40c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h368c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-55.9L384 192h56c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM208 32h64c8.82 0 16 7.18 16 16s-7.18 16-16 16h-64c-8.82 0-16-7.18-16-16s7.18-16 16-16zm112 448H127.91l-.01-1.77L96 192h255.9L320 480z\"]\n};\nvar faPodiumStar = {\n prefix: 'fal',\n iconName: 'podium-star',\n icon: [448, 512, [], \"f758\", \"M440 160H96v-16c0-39.8 29.2-72.6 67.3-78.7 7 17.9 24.3 30.7 44.7 30.7h64c26.5 0 48-21.5 48-48S298.5 0 272 0h-64c-21.4 0-39.3 14.1-45.5 33.4C107.2 40.1 64 86.9 64 144v16H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56.1v1.8L96 480H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-55.9L384 192h56c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM208 32h64c8.8 0 16 7.2 16 16s-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 448H127.9v-1.8L96 192h255.9L320 480zM164.1 346.1l-5.6 32.7c-1.6 9.5 2.2 18.9 10.1 24.5 4.4 3.2 9.5 4.8 14.6 4.8 4 0 7.9-1 11.6-2.9l29.3-15.4 29.2 15.4c8.4 4.4 18.5 3.8 26.3-1.9 7.8-5.6 11.6-15 10-24.5l-5.6-32.6 23.7-23.1c6.9-6.7 9.3-16.5 6.3-25.7-3-9.1-10.7-15.6-20.2-17l-32.7-4.8-14.6-29.7c-4.2-8.6-12.8-13.9-22.4-13.9-9.6 0-18.2 5.3-22.4 13.9L187 275.6l-32.7 4.8c-9.5 1.4-17.2 7.9-20.2 17s-.5 19 6.3 25.6l23.7 23.1zm44.1-41.3l15.8-32 15.8 32 35.3 5.2-25.6 25 6 35.2-31.5-16.7-31.6 16.6 6-35.2-25.6-25 35.4-5.1z\"]\n};\nvar faPoliceBox = {\n prefix: 'fal',\n iconName: 'police-box',\n icon: [384, 512, [], \"e021\", \"M97.59961,336h76.80078A9.60081,9.60081,0,0,0,184,326.40039V249.59961A9.60081,9.60081,0,0,0,174.40039,240H97.59961A9.60081,9.60081,0,0,0,88,249.59961v76.80078A9.60081,9.60081,0,0,0,97.59961,336ZM112,264h48v48H112ZM97.59961,448h76.80078A9.60081,9.60081,0,0,0,184,438.40039V361.59961A9.60081,9.60081,0,0,0,174.40039,352H97.59961A9.60081,9.60081,0,0,0,88,361.59961v76.80078A9.60081,9.60081,0,0,0,97.59961,448ZM112,376h48v48H112Zm97.59961,72h76.80078A9.60081,9.60081,0,0,0,296,438.40039V361.59961A9.60081,9.60081,0,0,0,286.40039,352H209.59961A9.60081,9.60081,0,0,0,200,361.59961v76.80078A9.60081,9.60081,0,0,0,209.59961,448ZM224,376h48v48H224ZM97.59961,224h76.80078A9.60081,9.60081,0,0,0,184,214.40039V137.59961A9.60081,9.60081,0,0,0,174.40039,128H97.59961A9.60081,9.60081,0,0,0,88,137.59961v76.80078A9.60081,9.60081,0,0,0,97.59961,224ZM140,152h20v20H140Zm0,28h20v20H140Zm-28-28h20v20H112Zm0,28h20v20H112Zm97.59961,44h76.80078A9.60081,9.60081,0,0,0,296,214.40039V137.59961A9.60081,9.60081,0,0,0,286.40039,128H209.59961A9.60081,9.60081,0,0,0,200,137.59961v76.80078A9.60081,9.60081,0,0,0,209.59961,224ZM252,152h20v20H252Zm0,28h20v20H252Zm-28-28h20v20H224Zm0,28h20v20H224ZM209.59961,336h76.80078A9.60081,9.60081,0,0,0,296,326.40039V249.59961A9.60081,9.60081,0,0,0,286.40039,240H209.59961A9.60081,9.60081,0,0,0,200,249.59961v76.80078A9.60081,9.60081,0,0,0,209.59961,336ZM224,264h48v48H224ZM376,480H352V88a23.99993,23.99993,0,0,0-24-24h-8.02148V48a15.99829,15.99829,0,0,0-16-16H208V16a16,16,0,0,0-32,0V32H80A15.99954,15.99954,0,0,0,64,48V64H56A23.99993,23.99993,0,0,0,32,88V480H8a8.00039,8.00039,0,0,0-8,8v16a8.00039,8.00039,0,0,0,8,8H376a8.00039,8.00039,0,0,0,8-8V488A8.00039,8.00039,0,0,0,376,480Zm-56,0H64V96H320Z\"]\n};\nvar faPoll = {\n prefix: 'fal',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V80c0-8.82 7.18-16 16-16h352c8.82 0 16 7.18 16 16v352zM136 224h-16c-4.42 0-8 3.58-8 8v144c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V232c0-4.42-3.58-8-8-8zm96-96h-16c-4.42 0-8 3.58-8 8v240c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V136c0-4.42-3.58-8-8-8zm96 160h-16c-4.42 0-8 3.58-8 8v80c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-80c0-4.42-3.58-8-8-8z\"]\n};\nvar faPollH = {\n prefix: 'fal',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM48 448c-8.82 0-16-7.18-16-16V80c0-8.82 7.18-16 16-16h352c8.82 0 16 7.18 16 16v352c0 8.82-7.18 16-16 16H48zm208-280v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h144c4.42 0 8-3.58 8-8zm96 96v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8zm-160 96v-16c0-4.42-3.58-8-8-8h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h80c4.42 0 8-3.58 8-8z\"]\n};\nvar faPollPeople = {\n prefix: 'fal',\n iconName: 'poll-people',\n icon: [640, 512, [], \"f759\", \"M145.8 391.7c8.8-11 14.2-24.7 14.2-39.7 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 15.1 5.5 28.8 14.2 39.7C19 404.5 0 432 0 464v17.6C0 498.4 13.6 512 30.4 512h131.2c16.8 0 30.4-13.6 30.4-30.4V464c0-32-19-59.5-46.2-72.3zM96 320c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.3-32 32-32zM32 481.6V464c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48l1.6 16L32 481.6zm113.8-377.9C154.6 92.7 160 79 160 64c0-35.3-28.7-64-64-64S32 28.7 32 64c0 15.1 5.5 28.8 14.2 39.7C19 116.5 0 144 0 176v17.6C0 210.4 13.6 224 30.4 224h131.2c16.8 0 30.4-13.6 30.4-30.4V176c0-32-19-59.5-46.2-72.3zM96 32c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.3-32 32-32zM32 193.6V176c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48l1.6 16L32 193.6zM616 32H248c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24h368c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24zM480 160H256V64h224v96zm128 0h-96V64h96v96zm8 160H248c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24h368c13.3 0 24-10.7 24-24V344c0-13.3-10.7-24-24-24zM320 448h-64v-96h64v96zm288 0H352v-96h256v96z\"]\n};\nvar faPoo = {\n prefix: 'fal',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M343.7 368H168.3c-5.8 0-9.8 5.7-7.8 11 10.5 27.9 58.4 53 95.5 53s85-25.1 95.5-53c2-5.3-2-11-7.8-11zM192 320c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm128-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm156.2 86.7c5.1-11.7 7.8-24.5 7.8-37.7 0-39.2-23.9-72.9-57.8-87.4 1.2-5.7 1.8-11.6 1.8-17.6 0-37.2-23.3-69.2-56-82v-2C372 52 320 0 256 0c-6.8 0-12.7.9-18.2 1.7-11 1.7-20.2 9-24.5 19.3-4.3 10.2-2.9 22 3.5 31 3.3 4.6 7.2 12.1 7.2 22 0 21-17 38-38 38h-14c-48.5 0-88 39.5-88 88 0 5.9.6 11.8 1.8 17.6C51.9 232.1 28 265.8 28 305c0 13.2 2.7 26 7.8 37.7C13.8 360.1 0 387 0 417c0 52.4 42.6 95 95 95h322c52.4 0 95-42.6 95-95 0-30-13.8-56.9-35.8-74.3zM417 480H95c-34.8 0-63-28.2-63-63 0-31.4 23-57.2 53.1-62C69.9 343.5 60 325.5 60 305c0-34.8 28.2-63 63-63h12.3c-11.7-10.3-19.3-25.2-19.3-42 0-30.9 25.1-56 56-56h14c38.7 0 70-31.3 70-70 0-15.2-5-29.2-13.2-40.7 4.3-.7 8.7-1.3 13.2-1.3 46.4 0 84 37.6 84 84 0 9.9-2 19.2-5.1 28h5.1c30.9 0 56 25.1 56 56 0 16.8-7.6 31.7-19.3 42H389c34.8 0 63 28.2 63 63 0 20.5-9.9 38.5-25.1 50 30 4.8 53.1 30.6 53.1 62 0 34.8-28.2 63-63 63z\"]\n};\nvar faPooStorm = {\n prefix: 'fal',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M351.9 208.8zM320 304h-59.5l11-44.1c1.2-4.8.1-9.8-2.9-13.7s-7.7-6.2-12.6-6.2h-80c-7.3 0-13.8 5-15.5 12.1l-32 128C126 390.3 133.7 400 144 400h61.6l-13.4 93.7c-1.6 11.1 7.7 18.2 15.8 18.2 8.5 0 12.7-6.2 13.6-7.6 3.4-5.3 111.9-175.8 111.9-175.8 6.8-10.7-1-24.5-13.5-24.5zm-85.7 121.2l5.6-38.9c.7-4.6-.7-9.2-3.8-12.7-3-3.5-7.5-5.5-12.1-5.5h-59.5l24-96h47l-11 44.1c-2.5 10.2 5.2 19.9 15.5 19.9h50.8c-24.1 37.9-42.6 66.9-56.5 89.1zm158.6-227.4c.1-1.9.2-3.8.2-5.8 0-36-22.8-66.8-54.9-79.3v-.7C338.3 50.2 287 0 224 0c-6.5 0-12.4.8-17.8 1.6-11.1 1.7-20.5 9.1-24.7 19.4s-2.8 22.2 3.8 31.2c3.1 4.1 6.7 10.9 6.7 19.7 0 19.1-16.4 34.7-36.6 34.7h-13.7c-47.9 0-86.9 38.3-86.9 85.3 0 1.9.1 3.8.2 5.8-32.6 16.5-55 49.9-55 87.6 0 52.9 42.7 95.8 96 98.2 0-3.7.5-7.5 1.4-11.2l5.1-20.4h-1.9C62.9 352 32 322 32 285.3c0-34.8 27.9-63.3 63-66.1-5-8-8.2-17.2-8.2-27.2 0-29.5 24.6-53.3 54.9-53.3h13.7c37.9 0 68.6-29.8 68.6-66.7 0-14.5-4.9-27.8-12.9-38.7 4.2-.6 8.5-1.3 12.9-1.3 45.4 0 82.3 35.8 82.3 80 0 9.4-2 18.3-5 26.7h5c30.3 0 54.9 23.9 54.9 53.3 0 10.1-3.2 19.2-8.2 27.2 35.1 2.8 63 31.3 63 66.1 0 33.4-25.7 61-58.9 65.7-4 6.3-11.5 18.1-21 33h11.3c55.5 0 100.6-44.3 100.6-98.7 0-37.7-22.4-71.1-55.1-87.5z\"]\n};\nvar faPoop = {\n prefix: 'fal',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M476.17 342.71C481.28 331 484 318.22 484 305c0-39.19-23.86-72.92-57.81-87.42A86.68 86.68 0 0 0 428 200c0-37.25-23.26-69.16-56.02-81.99.01-.67.02-1.34.02-2.01C372 52.04 319.96 0 256 0c-6.79 0-12.73.85-18.24 1.73a31.995 31.995 0 0 0-24.51 19.28 32.005 32.005 0 0 0 3.53 30.98C220.08 56.58 224 64.12 224 74c0 20.95-17.05 38-38 38h-14c-48.52 0-88 39.48-88 88 0 5.95.62 11.84 1.81 17.58C51.86 232.08 28 265.81 28 305c0 13.22 2.71 25.99 7.83 37.71C13.77 360.14 0 387.04 0 417c0 52.38 42.62 95 95 95h322c52.38 0 95-42.62 95-95 0-29.96-13.77-56.86-35.83-74.29zM417 480H95c-34.79 0-63-28.21-63-63 0-31.39 23.02-57.21 53.06-62C69.93 343.49 60 325.48 60 305c0-34.79 28.21-63 63-63h12.31C123.57 231.74 116 216.82 116 200c0-30.93 25.07-56 56-56h14c38.66 0 70-31.34 70-70 0-15.21-4.98-29.19-13.22-40.67 4.34-.69 8.69-1.33 13.22-1.33 46.39 0 84 37.61 84 84 0 9.87-2.02 19.2-5.14 28H340c30.93 0 56 25.07 56 56 0 16.82-7.57 31.74-19.31 42H389c34.79 0 63 28.21 63 63 0 20.48-9.93 38.49-25.06 50 30.04 4.79 53.06 30.61 53.06 62 0 34.79-28.21 63-63 63z\"]\n};\nvar faPopcorn = {\n prefix: 'fal',\n iconName: 'popcorn',\n icon: [512, 512, [], \"f819\", \"M440.17 138.22a68 68 0 0 0-19.8-22.31 66.9 66.9 0 0 0-49.47-61.38 67.33 67.33 0 0 0-68-35.65A67.69 67.69 0 0 0 255.94 0a65.92 65.92 0 0 0-46.47 18.89 67.18 67.18 0 0 0-68 35.64C110.7 62.78 93 90 91.74 116a65.84 65.84 0 0 0-19.83 22.78 64.67 64.67 0 0 0-3.37 54.86l39.76 290.68A32 32 0 0 0 140 512h232.35a32 32 0 0 0 31.73-27.68l40.08-293c5.92-17.13 5.3-36.23-3.99-53.1zM140 480l-39.28-288H176l16.22 288zm148.06 0h-63.78l-16.21-288h96.24zm84.26 0h-52.16l16.21-288h75.28zM98 160c4.42-15.78 17.82-23.38 29.78-24.57-13.9-26.22 9.64-56.43 38.11-50.43.55-29.22 34.33-44.9 56.37-27.17 11.74-41.86 67.59-25.63 67.59 0C312.6 40 345.94 56 346.49 85c28.57-6 51.45 23.81 38.15 50.45 12 1.2 25.44 9.11 29.74 24.57z\"]\n};\nvar faPortalEnter = {\n prefix: 'fal',\n iconName: 'portal-enter',\n icon: [512, 512, [], \"e022\", \"M448,0c-49.10352,0-60.52539,142.78711-63.17578,216h-3.35547l-9.03126-27.125c-8.125-24.3125-24.18749-44-44.5-58.03125C347,117.90625,360,96.73438,360,72a72,72,0,0,0-144,0,71.00847,71.00847,0,0,0,4.18749,23.71875A112.98756,112.98756,0,0,0,135.4375,108.5L89.25,132.5625a52.01084,52.01084,0,0,0,52.4375,89.82812l18.9375-9.84374L101.75,344H52a52,52,0,0,0,0,104h62.90625A83.90044,83.90044,0,0,0,192.125,397.07812l19.31249-39.73437,43.68751,19.625L235.5,445.70312A52.05212,52.05212,0,0,0,271.18749,510,52.89215,52.89215,0,0,0,285.5,512a52.24717,52.24717,0,0,0,50-37.6875l24.375-85.40625a84.15978,84.15978,0,0,0-12-71.10937A85.07673,85.07673,0,0,0,367.09375,320H396a51.95957,51.95957,0,0,0,20.75977-99.60938C419.97852,111.33594,437.041,48.01172,448,33.875,460.125,49.51562,480,124.45312,480,256s-19.875,206.48438-32,222.125c-8.75586-11.29492-21.46094-53.98438-27.89648-126.125H388.168c6.18359,73.043,21.54687,160,59.832,160,62.21875,0,64-229.79688,64-256S510.21875,0,448,0ZM288,32a40,40,0,1,1-40,40A39.997,39.997,0,0,1,288,32ZM162.6875,384.48438C155.25,401.875,133.875,416,114.9375,416H52a20,20,0,0,1,0-40h62.90625a11.9977,11.9977,0,0,0,11.03125-7.28125l26.71875-56.875A83.10126,83.10126,0,0,0,182.625,343.26562ZM396,288H367.03125c-20.6875,0-42.78125-15.92188-49.3125-35.54688L304.125,211.65625a43.28918,43.28918,0,0,0-15-20.67187l-41.46875,103.6875,52.78124,23.71874A52.30819,52.30819,0,0,1,329.125,380.125L304.71875,465.5c-7.22492,25.37752-45.81231,14.7403-38.46875-11l24.40625-85.375a12.07949,12.07949,0,0,0-6.625-14.25s-85.8125-39.04688-88.71875-41.17188a52.12113,52.12113,0,0,1-18.5-57.875l37.75-87.5625s-16.90624-3.78124-20.5-3.78124a43.34675,43.34675,0,0,0-22.5,6.3125l-45.25,23.51562a23.5854,23.5854,0,0,1-10.28125,2.84375,19.9989,19.9989,0,0,1-10.3125-37.14063l45.25-23.53124A83.78091,83.78091,0,0,1,194.09375,124.5a85.03565,85.03565,0,0,1,20.5,2.53125l68.1875,17.04687A83.59572,83.59572,0,0,1,342.09375,199l13.59374,40.79688A11.979,11.979,0,0,0,367.06249,248H396a20,20,0,0,1,0,40Z\"]\n};\nvar faPortalExit = {\n prefix: 'fal',\n iconName: 'portal-exit',\n icon: [512, 512, [], \"e023\", \"M460,216H445.46875l-9.03125-27.125c-8.125-24.3125-24.1875-44-44.5-58.03125C411,117.90625,424,96.73438,424,72a72,72,0,0,0-144,0,71.00848,71.00848,0,0,0,4.1875,23.71875A112.98758,112.98758,0,0,0,199.4375,108.5L153.25,132.5625a51.63613,51.63613,0,0,0-15.418,14.24414C129.09766,71.17773,109.79688,0,72,0,15.15625,0,0,160.92188,0,256S15.15625,512,72,512c22.94727,0,38.99023-26.44922,50.082-64h56.82422A83.90044,83.90044,0,0,0,256.125,397.07812l19.3125-39.73437,43.6875,19.625L299.5,445.70312A52.05212,52.05212,0,0,0,335.1875,510,52.892,52.892,0,0,0,349.5,512a52.24717,52.24717,0,0,0,50-37.6875l24.375-85.40625a84.15978,84.15978,0,0,0-12-71.10937A85.07673,85.07673,0,0,0,431.09375,320H460a52,52,0,0,0,0-104ZM352,32a40,40,0,1,1-40,40A39.997,39.997,0,0,1,352,32ZM72.65625,480.09375C58.46875,474.60938,32,392.79688,32,256,32,121.32812,57.65625,39.95312,72,32.21875,86.34375,39.95312,112,121.32812,112,256c0,16.86133-.418,32.84961-1.14648,48h31.9082C143.582,287.01562,144,270.67969,144,256c0-13.10352-.32422-27.51758-.96875-42.5293a51.69161,51.69161,0,0,0,62.65625,8.91992l18.9375-9.84374L165.75,344H116a51.81787,51.81787,0,0,0-24.86914,97.377C84.47656,464.63086,77.57812,477.99805,72.65625,480.09375ZM226.6875,384.48438C219.25,401.875,197.875,416,178.9375,416H116a20,20,0,0,1,0-40h62.90625a11.9977,11.9977,0,0,0,11.03125-7.28125l26.71875-56.875A83.10126,83.10126,0,0,0,246.625,343.26562ZM460,288H431.03125c-20.6875,0-42.78125-15.92188-49.3125-35.54688L368.125,211.65625a43.28905,43.28905,0,0,0-15-20.67187l-41.46875,103.6875,52.78125,23.71874A52.3082,52.3082,0,0,1,393.125,380.125L368.71875,465.5A19.97861,19.97861,0,0,1,349.5,480a20.38928,20.38928,0,0,1-5.5-.76562A20.014,20.014,0,0,1,330.25,454.5l24.40625-85.375a12.07948,12.07948,0,0,0-6.625-14.25s-85.8125-39.04688-88.71875-41.17188a52.12113,52.12113,0,0,1-18.5-57.875l37.75-87.5625s-16.90625-3.78124-20.5-3.78124a43.34675,43.34675,0,0,0-22.5,6.3125l-45.25,23.51562a23.5854,23.5854,0,0,1-10.28125,2.84375,19.9989,19.9989,0,0,1-10.3125-37.14063l45.25-23.53124A83.78091,83.78091,0,0,1,258.09375,124.5a85.03559,85.03559,0,0,1,20.5,2.53125l68.1875,17.04687A83.59571,83.59571,0,0,1,406.09375,199l13.59375,40.79688A11.979,11.979,0,0,0,431.0625,248H460a20,20,0,0,1,0,40Z\"]\n};\nvar faPortrait = {\n prefix: 'fal',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M320 0H64C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 448c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V64c0-17.6 14.4-32 32-32h256c17.6 0 32 14.4 32 32v384zM192 288c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm46.8 144c-19.5 0-24.4 7-46.8 7s-27.3-7-46.8-7c-21.2 0-41.8 9.4-53.8 27.4C84.2 342.1 80 355 80 368.9V408c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-39.1c0-14 9-32.9 33.2-32.9 12.4 0 20.8 7 46.8 7 25.9 0 34.3-7 46.8-7 24.3 0 33.2 18.9 33.2 32.9V408c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-39.1c0-13.9-4.2-26.8-11.4-37.5-12.1-18-32.7-27.4-53.8-27.4z\"]\n};\nvar faPoundSign = {\n prefix: 'fal',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 368h-16.101c-6.627 0-12 5.373-12 12v62.406H97.556V288H204c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H97.556V150.423c0-41.981 30.702-78.322 85.84-78.322 27.902 0 51.392 12.351 63.42 20.131 5.111 3.306 11.893 2.213 15.753-2.494l10.665-13.006c4.488-5.474 3.283-13.605-2.583-17.568C255.331 48.814 224.167 32 183.396 32 107.58 32 53.695 82.126 53.695 147.916V256H20c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h33.695v155.032H12c-6.627 0-12 5.373-12 12V468c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12v-88c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fal',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M388.5 46.3C457.9 90.3 504 167.8 504 256c0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 168 54 90.3 123.5 46.3c5.8-3.7 13.5-1.8 16.9 4.2l3.9 7c3.1 5.6 1.3 12.6-4.1 16C79.9 112 40 179.6 40 256c0 119.9 97.3 216 216 216 119.9 0 216-97.3 216-216 0-77-40.1-144.2-100.3-182.4-5.4-3.4-7.2-10.5-4.1-16l3.9-7c3.4-6.1 11.2-7.9 17-4.3zM272 276V12c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v264c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12z\"]\n};\nvar faPray = {\n prefix: 'fal',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M240 144c39.7 0 72-32.3 72-72S279.7 0 240 0s-72 32.3-72 72 32.3 72 72 72zm0-112c22.05 0 40 17.95 40 40s-17.95 40-40 40-40-17.95-40-40 17.95-40 40-40zm-20.75 294.89c20.49 24.41 55.05 20.13 70.56 3.05l80.13-88c18.74-18.75 18.74-49.14 0-67.88-18.75-18.75-49.14-18.75-67.88 0l-42.31 49.69-31.31-35.16C213.2 170.43 190.46 160 166.06 160c-38.53 0-61.85 24.24-71.17 41.53l-49.38 92.04C22.5 336.5 31.8 385.77 66.94 416H48c-26.47 0-48 21.53-48 48s21.53 48 48 48h202.03c20.84 0 39.37-13.29 46.1-33.07 6.47-19.02.51-39.11-15.18-51.19L178.2 352.79l24.49-45.62 16.56 19.72zm-82.44 35.33l124.61 90.88c11.1 8.54 3.3 26.9-11.4 26.9H48c-8.81 0-16-7.17-16-16s7.19-16 16-16h138.25l-90.03-50.02c-32-20.44-39.72-57.17-22.5-89.28l49.34-91.98c13.71-25.43 56.55-36.54 80.88-7.55l54.34 64.67 66.4-77.16c6.25-6.25 16.38-6.25 22.63 0s6.25 16.38 0 22.63l-81.19 89.11c-7.66 6.34-17.61 3.55-22.38-2.12l-46.94-55.84-59.99 111.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fal',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M502.58 340.23l127.06 39.99c5.14 1.58 10.35-2.26 10.35-7.65v-16.74c0-3.51-2.29-6.61-5.65-7.65L512 309.64v-66.51c0-22.28-5.81-44.17-16.87-63.51L408.65 28.26C398.71 10.83 380.07 0 359.99 0 345.2 0 330.73 6.01 320 16.94 309.27 6.01 294.8 0 280.01 0c-20.08 0-38.72 10.83-48.66 28.26l-86.49 151.37A128.015 128.015 0 0 0 128 243.14v66.51L5.65 348.18A8.011 8.011 0 0 0 0 355.83v16.74c0 5.38 5.21 9.23 10.35 7.65l127.06-39.99c13.42-4.13 22.58-16.54 22.58-30.58v-66.51c0-16.71 4.36-33.13 12.65-47.63l86.51-151.4c6.93-12.16 21.84-15.16 32.75-8.94 11.5 6.58 15.5 21.25 8.94 32.75l-64.19 112.33A96.022 96.022 0 0 0 224 227.88v84.13c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64c0-13.25 10.75-24 24-24s24 10.75 24 24v86.08c0 35.86-23.87 67.34-58.39 77.03L5.84 479.68a8.008 8.008 0 0 0-5.84 7.7V504c0 5.3 5.06 9.13 10.16 7.7l244.09-69.77c28.41-7.97 51.4-26.63 65.75-50.73 14.35 24.09 37.34 42.76 65.75 50.73l244.09 69.77c5.1 1.43 10.16-2.4 10.16-7.7v-16.62c0-3.59-2.39-6.73-5.84-7.7l-239.77-68.56c-34.53-9.69-58.39-41.17-58.39-77.03v-86.08c0-13.25 10.75-24 24-24s24 10.75 24 24v64c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-84.13c0-16.71-4.36-33.13-12.65-47.63L339.16 67.92c-6.56-11.5-2.56-26.17 8.94-32.75 10.97-6.26 25.87-3.14 32.75 8.94l86.51 151.4a95.994 95.994 0 0 1 12.65 47.63v66.51c-.01 14.04 9.15 26.44 22.57 30.58zM374.27 193.85c-6.35-1.68-13.14-2.26-20.16-1.54-13.66 1.4-25.37 8.22-34.11 17.95-8.73-9.73-20.45-16.55-34.11-17.95-7.01-.72-13.8-.14-20.16 1.54L320 98.89l54.27 94.96z\"]\n};\nvar faPrescription = {\n prefix: 'fal',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M278.63 352l103.03-103.03c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0L256 329.37 150.63 224H160c53.02 0 96-42.98 96-96s-42.98-96-96-96H8c-4.42 0-8 3.58-8 8v272c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88h73.37l128 128-103.03 103.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L256 374.63l103.03 103.03c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L278.63 352zM32 192V64h128c35.29 0 64 28.71 64 64s-28.71 64-64 64H32z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fal',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M360 0H24C10.8 0 0 10.8 0 24v80c0 13.2 10.8 24 24 24h8v352c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128h8c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zm-40 480H64v-64h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H64v-64h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H64v-64h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H64v-64h256v352zm32-384H32V32h320v64z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fal',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M104 320h56v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h56c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-56v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h-56c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM360 0H24C10.8 0 0 10.8 0 24v80c0 13.2 10.8 24 24 24h8v352c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128h8c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zm-40 480H64V128h256v352zm32-384H32V32h320v64z\"]\n};\nvar faPresentation = {\n prefix: 'fal',\n iconName: 'presentation',\n icon: [576, 512, [], \"f685\", \"M568 0H8C3.58 0 0 3.59 0 8.02v16.04c0 4.43 3.58 8.02 8 8.02h24v287.78c0 17.69 14.34 32.09 32 32.09h208v49.13l-85.66 85.89c-3.12 3.13-3.12 8.21 0 11.34l11.31 11.34a7.985 7.985 0 0 0 11.31 0L288 430.41l79.03 79.24a7.985 7.985 0 0 0 11.31 0l11.31-11.34c3.12-3.13 3.12-8.21 0-11.34L304 401.08v-49.13h208c17.66 0 32-14.4 32-32.09V32.09h24c4.42 0 8-3.59 8-8.02V8.02c0-4.43-3.58-8.02-8-8.02zm-56 320H64V32h448v288z\"]\n};\nvar faPrint = {\n prefix: 'fal',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M432 192h-16v-82.75c0-8.49-3.37-16.62-9.37-22.63L329.37 9.37c-6-6-14.14-9.37-22.63-9.37H126.48C109.64 0 96 14.33 96 32v160H80c-44.18 0-80 35.82-80 80v96c0 8.84 7.16 16 16 16h80v112c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16V384h80c8.84 0 16-7.16 16-16v-96c0-44.18-35.82-80-80-80zM320 45.25L370.75 96H320V45.25zM128.12 32H288v64c0 17.67 14.33 32 32 32h64v64H128.02l.1-160zM384 480H128v-96h256v96zm96-128H32v-80c0-26.47 21.53-48 48-48h352c26.47 0 48 21.53 48 48v80zm-80-88c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faPrintSearch = {\n prefix: 'fal',\n iconName: 'print-search',\n icon: [640, 512, [], \"f81a\", \"M637.66 487l-89-89c39-50.21 35.94-122.46-10.17-168.57a128 128 0 0 0-181 181c46.11 46.11 118.36 49.13 168.57 10.17l89 89a8 8 0 0 0 11.32 0l11.31-11.31a8 8 0 0 0-.03-11.29zM448 416a96 96 0 1 1 96-96 96 96 0 0 1-96 96zm-64 64H128v-96h173.75a159.68 159.68 0 0 1-10.33-32H32v-80a48.05 48.05 0 0 1 48-48h240.88c11.62-15.39 13.51-18.17 32.06-32H128l.1-160H288v64a32 32 0 0 0 32 32h64v45.56a157.9 157.9 0 0 1 32-10.32v-54a32 32 0 0 0-9.37-22.63L329.37 9.37A32 32 0 0 0 306.74 0H126.48C109.64 0 96 14.33 96 32v160H80a80 80 0 0 0-80 80v96a16 16 0 0 0 16 16h80v112a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-19.24a157.9 157.9 0 0 1-32-10.32zM320 45.25L370.75 96H320z\"]\n};\nvar faPrintSlash = {\n prefix: 'fal',\n iconName: 'print-slash',\n icon: [640, 512, [], \"f686\", \"M637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM192.1 32H352v64c0 17.7 14.3 32 32 32h64v64H316.3l40.6 32h139c26.5 0 48 21.5 48 48v80h-24.5l40.6 32c8.8-.1 15.9-7.2 15.9-16v-96c0-44.2-35.8-80-80-80h-16v-82.8c0-8.5-3.4-16.6-9.4-22.6L393.4 9.4c-6-6-14.1-9.4-22.6-9.4H190.5C173.6 0 160 14.3 160 32v36.9l32.1 25.3zM384 45.2L434.8 96H384zM448 480H192v-96h213l-40.6-32H96v-80c0-26.5 21.5-48 48-48h57.8L160 191.1v.9h-16c-44.2 0-80 35.8-80 80v96c0 8.8 7.2 16 16 16h80v112c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16v-52.9l-32-25.2zm-8-192c0 .6.3 1.1.3 1.6l27.4 21.6c11.4-1.9 20.2-11.3 20.2-23.2 0-13.3-10.8-24-24-24S440 274.7 440 288z\"]\n};\nvar faProcedures = {\n prefix: 'fal',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M144 384c44.1 0 80-35.9 80-80s-35.9-80-80-80-80 35.9-80 80 35.9 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm384-32H272c-8.8 0-16 7.2-16 16v176H32V136c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v368c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56h576v56c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V336c0-61.9-50.1-112-112-112zm80 192H288V256h240c44.2 0 80 35.8 80 80v80zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fal',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M592 0h-96c-26.51 0-48 21.49-48 48v32H192V48c0-26.51-21.49-48-48-48H48C21.49 0 0 21.49 0 48v96c0 26.51 21.49 48 48 48h94.86l88.76 150.21c-4.77 7.46-7.63 16.27-7.63 25.79v96c0 26.51 21.49 48 48 48h96c26.51 0 48-21.49 48-48v-96c0-26.51-21.49-48-48-48h-96c-5.2 0-10.11 1.04-14.8 2.57l-83.43-141.18C184.8 172.59 192 159.2 192 144v-32h256v32c0 26.51 21.49 48 48 48h96c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM32 144V48c0-8.82 7.18-16 16-16h96c8.82 0 16 7.18 16 16v96c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16zm336 208c8.82 0 16 7.18 16 16v96c0 8.82-7.18 16-16 16h-96c-8.82 0-16-7.18-16-16v-96c0-8.82 7.18-16 16-16h96zm240-208c0 8.82-7.18 16-16 16h-96c-8.82 0-16-7.18-16-16V48c0-8.82 7.18-16 16-16h96c8.82 0 16 7.18 16 16v96z\"]\n};\nvar faProjector = {\n prefix: 'fal',\n iconName: 'projector',\n icon: [640, 512, [], \"f8d6\", \"M337.54 136.17a8 8 0 0 0 11.31 0l11.31-11.32a8 8 0 0 0 0-11.31L281 34.34a8 8 0 0 0-11.31 0l-11.35 11.32a8 8 0 0 0 0 11.31zm177.61 0a8 8 0 0 0 11.31 0L605.66 57a8 8 0 0 0 0-11.31l-11.32-11.35a8 8 0 0 0-11.31 0l-79.19 79.2a8 8 0 0 0 0 11.31zM424 128h16a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8zm168 64H480.68c-19.52-9.89-41.29-16-64.68-16s-45.16 6.11-64.68 16H48a48 48 0 0 0-48 48v160a48 48 0 0 0 48 48h48v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h223.32c19.52 9.89 41.29 16 64.68 16s45.16-6.11 64.68-16H512v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56h48a48 48 0 0 0 48-48V240a48 48 0 0 0-48-48zM48 416a16 16 0 0 1-16-16V240a16 16 0 0 1 16-16h261.37C286.38 249.52 272 283 272 320s14.38 70.48 37.37 96zm368 16a112 112 0 1 1 112-112 112.16 112.16 0 0 1-112 112zm192-32a16 16 0 0 1-16 16h-69.37c23-25.52 37.37-58.95 37.37-96s-14.38-70.48-37.37-96H592a16 16 0 0 1 16 16zM104 296a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm80 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faPumpMedical = {\n prefix: 'fal',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M226.67,277.33h-40v-40A13.33,13.33,0,0,0,173.33,224H146.67a13.33,13.33,0,0,0-13.34,13.33v40h-40A13.33,13.33,0,0,0,80,290.67v26.66a13.33,13.33,0,0,0,13.33,13.34h40v40A13.33,13.33,0,0,0,146.67,384h26.66a13.33,13.33,0,0,0,13.34-13.33v-40h40A13.33,13.33,0,0,0,240,317.33V290.67A13.33,13.33,0,0,0,226.67,277.33ZM379.31,100.69l-48-48A16,16,0,0,0,320,48H240V32A32,32,0,0,0,208,0H112A32,32,0,0,0,80,32v96.41a63.83,63.83,0,0,0-59.37,57.8L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-256A63.83,63.83,0,0,0,240,128.41V80h73.38l43.31,43.31a16,16,0,0,0,22.62-22.62ZM112,32h96v96H112ZM267.47,188.74,287.86,445.1A32,32,0,0,1,256,480H64a32,32,0,0,1-31.84-35.26L52.5,189.1A32,32,0,0,1,82.19,160H237.81A32,32,0,0,1,267.47,188.74Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fal',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M379.31,100.69l-48-48A16,16,0,0,0,320,48H240V32A32,32,0,0,0,208,0H112A32,32,0,0,0,80,32v96.41a63.83,63.83,0,0,0-59.37,57.8L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-256A63.83,63.83,0,0,0,240,128.41V80h73.38l43.31,43.31a16,16,0,0,0,22.62-22.62ZM112,32h96v96H112ZM267.47,188.74,287.86,445.1A32,32,0,0,1,256,480H64a32,32,0,0,1-31.84-35.26L52.5,189.1A32,32,0,0,1,82.19,160H237.81A32,32,0,0,1,267.47,188.74ZM139.22,234.39C102.58,283.31,84,319.27,84,341.25,84,382.47,118.09,416,160,416s76-33.53,76-74.75c0-22-18.58-57.94-55.23-106.86C170.86,221.17,149.16,221.17,139.22,234.39ZM160,384c-24.27,0-44-19.17-44-42.75,0-9.89,11.64-36.91,44-81.14,32.36,44.23,44,71.25,44,81.14C204,364.83,184.27,384,160,384Z\"]\n};\nvar faPumpkin = {\n prefix: 'fal',\n iconName: 'pumpkin',\n icon: [576, 512, [], \"f707\", \"M494.75 110.52C460.24 77.96 409.33 71.33 368 90.9V51.8c0-12.2-6.78-23.17-17.69-28.62L310.69 3.36c-7.97-3.97-17.38-4.45-25.66-1.27-8.31 3.16-15 9.72-18.34 18.03l-28.7 71.75c-4.78 2.44-9.4 5.19-13.74 8.38-43.41-30.29-103.78-26.76-143 10.26C28.84 159.92 0 225.78 0 295.95c0 70.16 28.84 136 81.25 185.4 39.19 36.98 99.53 40.6 143 10.28C252.04 512.08 286.62 512 288 512c6.57 0 37.2-.83 63.75-20.37 19.5 13.59 42.38 20.36 65.22 20.36 28.12 0 56.16-10.23 77.78-30.63C547.16 431.96 576 366.11 576 295.94s-28.84-136.02-81.25-185.42zM288 479.9c-121.09 0-124.26-367.9 0-367.9 121.22 0 124.21 367.9 0 367.9zm8.41-447.91L336 51.8v39.11c-18.21-8.78-38.95-11.99-59.17-10.01l19.58-48.91zM103.19 458.08C57.28 414.79 32 357.21 32 295.94s25.28-118.85 71.19-162.15c27.8-26.21 72.02-28.34 102.97-6.68-28.62 41.25-42.21 104.24-42.21 167.23 0 52.79 9.19 102.67 25.88 140.47 5.17 11.71 10.89 21.14 16.78 29.63-30.94 21.97-75.46 19.99-103.42-6.36zm369.62 0c-27.75 26.15-71.82 28.31-102.74 6.86 28.51-41.31 41.97-104.37 41.97-167.27 0-64.23-13.7-128.43-42.56-170.31 30.92-21.91 75.37-19.93 103.33 6.44C518.72 177.09 544 234.67 544 295.94s-25.28 118.85-71.19 162.14z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fal',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M506.584 256c-52.307 0-72.012 46.513-87.263 27.506-20.125-25.082-2.028-107.233 3.475-131.942-34.229 6.371-137.243 24.274-163.836 2.178-16.619-13.81 31.313-43.496 31.313-86.443C290.272 26.025 256.447 0 214.842 0c-43.559 0-84.792 25.609-84.792 68.824 0 53.02 45.898 71.605 24.351 88.606C125.985 179.846 35.346 160.524 0 152.041v345.313c33.315 8.012 70.681 14.649 106.163 14.646 42.28 0 85.837-11.839 85.837-54.125 0-29.344-32-40.832-32-73.875 0-24.437 22.534-32 46.978-32C245.675 352 256 372.114 256 384c0 28.783-34.272 36.348-34.272 76.58 0 13.748 5.013 25.445 14.498 33.828 35.153 31.069 106.717 6.319 187.085 6.285-.958-3.426-26.807-86.724-7.702-111.907 16.715-22.023 48.578 29.106 92.52 29.106C550.227 417.893 576 377.616 576 336c0-42.835-26.227-80-69.416-80zm1.544 129.893c-30.002 0-41.364-33.893-81.513-33.893-53.566 0-54.841 64.979-44.272 117.816-36.396 3.424-107.025 16.434-124.926.614C237.293 452.645 288 428.279 288 384c0-37.683-33.317-64-81.022-64-74.981 0-102.885 59.829-56.167 122.037 4.726 6.293 9.189 12.237 9.189 15.838 0 33.69-94.005 20.629-128 13.925V191.971c63.255 11.657 160 18.136 160-46.505 0-28.567-29.95-42.982-29.95-76.642C162.05 44.146 190.265 32 214.842 32c20.035 0 43.43 9.244 43.43 35.298 0 29.426-34.272 40.752-34.272 80.61 0 57.828 100.845 50.931 158.22 43.093C374.142 245.294 373.959 320 429.086 320c29.143 0 43.674-32 77.498-32C531.543 288 544 311.301 544 336c0 34.413-20.977 49.893-35.872 49.893z\"]\n};\nvar faQrcode = {\n prefix: 'fal',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM32 64h128v128H32V64zm224-32v192h192V32H256zm160 160H288V64h128v128zM0 480h192V288H0v192zm32-160h128v128H32V320zM64 96h64v64H64V96zm320 64h-64V96h64v64zM64 352h64v64H64v-64zm352-64h32v128H320v-32h-32v96h-32V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fal',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M200.343 0C124.032 0 69.761 31.599 28.195 93.302c-14.213 21.099-9.458 49.674 10.825 65.054l42.034 31.872c20.709 15.703 50.346 12.165 66.679-8.51 21.473-27.181 28.371-31.96 46.132-31.96 10.218 0 25.289 6.999 25.289 18.242 0 25.731-109.3 20.744-109.3 122.251V304c0 16.007 7.883 30.199 19.963 38.924C109.139 360.547 96 386.766 96 416c0 52.935 43.065 96 96 96s96-43.065 96-96c0-29.234-13.139-55.453-33.817-73.076 12.08-8.726 19.963-22.917 19.963-38.924v-4.705c25.386-18.99 104.286-44.504 104.286-139.423C378.432 68.793 288.351 0 200.343 0zM192 480c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm50.146-186.406V304c0 8.837-7.163 16-16 16h-68.292c-8.836 0-16-7.163-16-16v-13.749c0-86.782 109.3-57.326 109.3-122.251 0-32-31.679-50.242-57.289-50.242-33.783 0-49.167 16.18-71.242 44.123-5.403 6.84-15.284 8.119-22.235 2.848l-42.034-31.872c-6.757-5.124-8.357-14.644-3.62-21.677C88.876 60.499 132.358 32 200.343 32c70.663 0 146.089 55.158 146.089 127.872 0 96.555-104.286 98.041-104.286 133.722z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fal',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M256 340c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28zm7.67-24h-16c-6.627 0-12-5.373-12-12v-.381c0-70.343 77.44-63.619 77.44-107.408 0-20.016-17.761-40.211-57.44-40.211-29.144 0-44.265 9.649-59.211 28.692-3.908 4.98-11.054 5.995-16.248 2.376l-13.134-9.15c-5.625-3.919-6.86-11.771-2.645-17.177C185.658 133.514 210.842 116 255.67 116c52.32 0 97.44 29.751 97.44 80.211 0 67.414-77.44 63.849-77.44 107.408V304c0 6.627-5.373 12-12 12zM256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8z\"]\n};\nvar faQuestionSquare = {\n prefix: 'fal',\n iconName: 'question-square',\n icon: [448, 512, [], \"f2fd\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zm-192-92c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28zm7.67-24h-16c-6.627 0-12-5.373-12-12v-.381c0-70.343 77.44-63.619 77.44-107.408 0-20.016-17.761-40.211-57.44-40.211-29.144 0-44.265 9.649-59.211 28.692-3.908 4.98-11.054 5.995-16.248 2.376l-13.134-9.15c-5.625-3.919-6.86-11.771-2.645-17.177C153.658 133.514 178.842 116 223.67 116c52.32 0 97.44 29.751 97.44 80.211 0 67.414-77.44 63.849-77.44 107.408V304c0 6.627-5.373 12-12 12z\"]\n};\nvar faQuidditch = {\n prefix: 'fal',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M638.3 15.5L628.3 3c-2.8-3.5-7.8-4-11.2-1.3l-244.2 193-45.4-57.1c-5-6.3-14.6-6-19.2.5l-48.6 68.6c-28.5.3-107.2 5-158 45.4C38.8 302.1 0 511.4 0 511.4c15.4.7 215.1 6.8 275.6-41.3 50.9-40.5 73.3-116.2 80-143.8l77.5-31.3c7.4-3 9.9-12.3 4.9-18.6l-45.2-56.7L637 26.8c3.4-2.8 4-7.8 1.3-11.3zM255.7 445.6C229 466.8 146.3 480 39.8 480h-.6c4.1-17.8 9-36.8 14.4-55.9l68.8-54.7c5-3.9 1.2-11.9-5-10.6l-46 9.7c15-41.6 32.3-77.3 50.1-91.5 33.6-26.7 89.7-37.2 133.9-38.4l67.8 85.1c-7.1 27.7-27.1 89.8-67.5 121.9zm87.1-148.8l-56.9-71.5 28.4-40.5c2.3-3.3 7.1-3.4 9.6-.3l67.6 84.9c2.5 3.2 1.3 7.9-2.5 9.3l-46.2 18.1zM496 351.5c-44.1 0-80 35.8-80 79.9s35.9 80.6 80 80.6 80-36.5 80-80.6-35.8-79.9-80-79.9zm0 127.9c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fal',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M448 224h-64v-24c0-30.9 25.1-56 56-56h16c22.1 0 40-17.9 40-40V72c0-22.1-17.9-40-40-40h-16c-92.6 0-168 75.4-168 168v216c0 35.3 28.7 64 64 64h112c35.3 0 64-28.7 64-64V288c0-35.3-28.7-64-64-64zm32 192c0 17.7-14.3 32-32 32H336c-17.7 0-32-14.3-32-32V200c0-75.1 60.9-136 136-136h16c4.4 0 8 3.6 8 8v32c0 4.4-3.6 8-8 8h-16c-48.6 0-88 39.4-88 88v56h96c17.7 0 32 14.3 32 32v128zM176 224h-64v-24c0-30.9 25.1-56 56-56h16c22.1 0 40-17.9 40-40V72c0-22.1-17.9-40-40-40h-16C75.4 32 0 107.4 0 200v216c0 35.3 28.7 64 64 64h112c35.3 0 64-28.7 64-64V288c0-35.3-28.7-64-64-64zm32 192c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V200c0-75.1 60.9-136 136-136h16c4.4 0 8 3.6 8 8v32c0 4.4-3.6 8-8 8h-16c-48.6 0-88 39.4-88 88v56h96c17.7 0 32 14.3 32 32v128z\"]\n};\nvar faQuoteRight = {\n prefix: 'fal',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M176 32H64C28.7 32 0 60.7 0 96v128c0 35.3 28.7 64 64 64h64v24c0 30.9-25.1 56-56 56H56c-22.1 0-40 17.9-40 40v32c0 22.1 17.9 40 40 40h16c92.6 0 168-75.4 168-168V96c0-35.3-28.7-64-64-64zm32 280c0 75.1-60.9 136-136 136H56c-4.4 0-8-3.6-8-8v-32c0-4.4 3.6-8 8-8h16c48.6 0 88-39.4 88-88v-56H64c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h112c17.7 0 32 14.3 32 32v216zM448 32H336c-35.3 0-64 28.7-64 64v128c0 35.3 28.7 64 64 64h64v24c0 30.9-25.1 56-56 56h-16c-22.1 0-40 17.9-40 40v32c0 22.1 17.9 40 40 40h16c92.6 0 168-75.4 168-168V96c0-35.3-28.7-64-64-64zm32 280c0 75.1-60.9 136-136 136h-16c-4.4 0-8-3.6-8-8v-32c0-4.4 3.6-8 8-8h16c48.6 0 88-39.4 88-88v-56h-96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h112c17.7 0 32 14.3 32 32v216z\"]\n};\nvar faQuran = {\n prefix: 'fal',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M246.25 338.38c15.03 0 29.97-2.72 44.03-7.97a18.75 18.75 0 0 0 12.78-17.8c0-10.34-8.44-18.77-18.81-18.77l-4.12.2c-45.69 0-82.88-37.17-82.88-82.86s37.19-82.86 82.84-82.86l4.16.2c8.94 0 16.66-6.34 18.38-15.06 1.84-9.12-3.12-18.08-11.78-21.28-14.5-5.44-29.5-8.19-44.59-8.19-70.12 0-127.19 57.06-127.19 127.19s57.05 127.2 127.18 127.2zm0-230.38c1.84 0 3.66.05 5.5.16-45.19 12.45-78.5 53.94-78.5 103.03 0 49.11 33.28 90.58 78.5 103.03-58.72 3.66-108.69-44.3-108.69-103.03 0-56.89 46.28-103.19 103.19-103.19zM448 392V24c0-13.3-10.7-24-24-24H80C35.8 0 0 35.8 0 80v368c0 35.35 28.65 64 64 64h372c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-3.3c-4-20.2-3.2-49.7.4-65.8 8.7-3.6 14.9-12.2 14.9-22.2zm-43.7 88H64c-17.67 0-32-14.33-32-32s14.33-32 32-32h340.3c-2.9 18.8-3.1 43.6 0 64zm11.7-96H64c-11.72 0-22.55 3.38-32 8.88V80c0-26.5 21.5-48 48-48h336v352zM292.72 155.27l-10.16 20.58-22.72 3.3c-6.03.86-11.06 5.09-12.94 10.89s-.31 12.16 4.06 16.41l16.47 16.03-3.91 22.62c-1.03 6 1.44 12.06 6.38 15.66 4.94 3.58 11.5 4.05 16.88 1.2l20.28-10.69 20.28 10.69a16.055 16.055 0 0 0 16.88-1.21c4.94-3.59 7.41-9.66 6.38-15.66l-3.91-22.62 16.47-16.03c4.38-4.25 5.94-10.61 4.06-16.41s-6.91-10.03-12.94-10.89l-22.72-3.3-10.16-20.58c-5.37-10.93-23.31-10.93-28.68.01zm24.22 39.41l22.12 3.2-16.03 15.6 3.78 22.02-19.75-10.41-19.75 10.41 3.78-22.02-16.03-15.6 22.12-3.2 9.88-20.03 9.88 20.03z\"]\n};\nvar faRabbit = {\n prefix: 'fal',\n iconName: 'rabbit',\n icon: [512, 512, [], \"f708\", \"M505.92 450.8a33.63 33.63 0 0 0-2.09-2.96L389.44 304h1.92c48.89 0 88.66-39.77 88.66-88.65 0-28.56-13.88-55.53-37.12-72.14-.61-.43-1.23-.85-1.87-1.24l-24.69-15.15c.27-.97.54-1.94.8-2.91C431.04 71.99 431.09 12.54 389.5 1.4 386.03.47 382.45 0 378.84 0 361.27 0 347.12 10.35 336 24.48 324.88 10.35 310.74.01 293.17 0h-.02c-3.6 0-7.19.47-10.65 1.4-41.6 11.14-41.55 70.59-27.64 122.52 2.3 8.58 5.03 16.98 8.17 25.11-2.69 6.53-4.63 13.43-5.81 20.63-.82 5.04-1.24 10.2-1.24 15.34v41.67c-67.32 11.34-122.72 57.92-146.87 119.97C98.03 339.8 85.33 336 71.97 336c-19.23 0-37.32 7.49-50.92 21.09-28.07 28.07-28.07 73.75 0 101.82C34.65 472.51 52.74 480 71.97 480c10.32 0 19.99-2.86 29.12-6.96 9.77 22.88 32.48 38.96 58.89 38.96H320c17.68 0 32-14.33 32-32 0-23.25-12.46-43.64-31.06-54.85l15.81-9.88 65.11 80.17c7.51 10.42 19.44 16.56 32.42 16.56H472c14.54 0 27.94-7.9 34.99-20.61 7.05-12.71 6.63-28.27-1.07-40.59zM95.97 416v23.03c-7.13 5.55-15.41 8.97-24 8.97-10.24 0-20.48-3.91-28.29-11.72-15.62-15.62-15.62-40.95 0-56.57C51.5 371.9 61.73 368 71.97 368c10 0 19.95 3.86 27.69 11.32-2.32 11.89-3.69 24.12-3.69 36.68zM472 480h-37.72c-2.76 0-5.32-1.42-6.79-3.76l-83.73-103.09L223.99 448H288c17.66 0 32 14.36 32 32H159.98c-17.68 0-32-14.33-32-32v-32c0-88.37 71.64-160 160.02-160v-71.01c0-3.47.28-6.87.82-10.19 1.53-9.35 4.93-17.49 9.61-24.3-4.77-10.19-9.16-21.9-12.64-34.87-11.32-42.25-9.08-79.55 5-83.32.77-.21 1.56-.31 2.37-.31 13.62 0 32.03 28.8 42.84 67.4C346.82 60.8 365.22 32 378.84 32c.81 0 1.6.1 2.37.31 14.08 3.77 16.32 41.08 5 83.32-2.41 9-5.3 17.34-8.41 25.11l46.48 28.51a56.632 56.632 0 0 1 23.72 46.1c0 31.29-25.37 56.65-56.66 56.65H352v36.34l126.78 159.42c3.33 5.33-.5 12.24-6.78 12.24zM368 192c0-8.84-7.16-16-16-16s-16 7.16-16 16 7.16 16 16 16 16-7.16 16-16z\"]\n};\nvar faRabbitFast = {\n prefix: 'fal',\n iconName: 'rabbit-fast',\n icon: [640, 512, [], \"f709\", \"M511.99 223.99c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16c0-8.83-7.16-16-16-16zm90.89-32.78c-.61-.43-58.52-35.99-58.52-35.99-2.54-1.57-9.73-5.07-18.35-7.52a261.57 261.57 0 0 0-4.89-22.02c-5.89-21.97-28.67-93.67-74.52-93.68h-.01c-37.96 0-44.2 41.84-44.49 43.33-32.09-17.15-55.46-13.15-69.7 1.09-8.71 8.71-20.55 28.35-4.36 63.28-31.09-16.38-61.55-27.7-88.06-27.7-45.73 0-86.28 18.33-117.89 52.43C108.58 151.29 90.85 144 71.97 144c-19.23 0-37.32 7.49-50.91 21.09-28.07 28.07-28.07 73.75 0 101.82C34.66 280.51 52.74 288 71.98 288c12.73 0 24.8-3.57 35.51-9.8 3.59 6.33 7.69 12.45 12.83 18.02l54.04 58.54-25.01 13.52a47.925 47.925 0 0 0-21.38 39.94v23.73c0 17.3 8.94 32.83 23.91 41.51 7.53 4.36 15.81 6.55 24.1 6.55 8.16 0 16.34-2.12 23.81-6.39l55.19-31.53 25.49 27.61a32.008 32.008 0 0 0 23.52 10.29H464c17.68 0 32-14.33 32-32 0-35.29-28.71-64-64-64h-48l70.4-32h96.96c48.88 0 88.65-39.77 88.65-88.65-.01-28.56-13.89-55.53-37.13-72.13zM96.26 246.93c-24.53 19.16-46.88 3.04-52.58-2.65-15.62-15.62-15.62-40.95 0-56.57 15.61-15.61 40.95-15.63 56.57 0 1.31 1.31 2.21 2.83 3.25 4.27-7.81 17.43-10.34 36.49-7.24 54.95zm87.65 198.9c-10.53 6.09-23.94-1.52-23.94-13.89v-23.73c0-5.36 2.66-10.34 5.84-12.55L196.74 379l35.96 38.96-48.79 27.87zm367.44-125.84H447.99l-64 26.67v-2.26c0-49.75-33.41-94.03-81.22-107.68l-42.38-12.11c-20.46-5.8-29.09 24.97-8.81 30.78l42.38 12.11c34.19 9.75 58.04 41.37 58.04 76.9v71.59h80c17.66 0 32 14.36 32 32H303.98L143.83 274.51c-22.36-24.22-22.66-61.37-.81-86.06 20.15-22.76 51.33-44.45 96.96-44.45 57.33 0 152.74 75.22 208.01 111.99 0-31.16-.53-30.77 3.54-43.01-15.31-3.53-37.75-17.86-59.17-39.28-30.93-30.92-47.64-64.35-37.33-74.65 10.74-10.74 45.14 7.8 74.66 37.33 3.25 3.25 6.25 6.54 9.18 9.81-11.63-44.51-8.08-82.19 7.72-82.19 13.94 0 32.92 30.05 43.61 69.97 4.1 15.28 6.36 29.86 6.98 42.49 14.17-1.01 24.77 3.23 30.44 6.03l56.65 34.75a56.632 56.632 0 0 1 23.72 46.1c.01 31.29-25.36 56.65-56.64 56.65z\"]\n};\nvar faRacquet = {\n prefix: 'fal',\n iconName: 'racquet',\n icon: [640, 512, [], \"f45a\", \"M615.5 59.6C560.6-17.9 433.3-19.2 332.7 52c-57.2 40.5-94.4 96-106.5 150.6-10.7 48.2-34.6 91.7-66.1 129.2-17.9-10-32.2.2-33.9 1.4L13.6 412c-14.4 10.1-18 30-7.8 44.5l29.4 41.9c9.9 14.1 29.7 18.2 44.5 7.8l112.6-78.8c9.5-6.7 13.7-17.6 13-28.4 36-13.7 73.8-21.7 112.3-21.7 31.6 0 112.3 21.8 211.5-48.4 101.8-72.2 140.6-192.8 86.4-269.3zM61.3 480l-29.4-41.8 112.6-78.8 29.4 41.9L61.3 480zm130-109.6l-9.7-13.9c18.7-21.7 34.8-44.9 47.4-69.6 11 33.1 29.1 49.8 44.4 61.5-27.6 3.9-55.2 11.5-82.1 22zm319.2-67.6c-85.6 60.6-194 62.4-238.3-.1-43.9-62-8.5-162.7 79-224.7 84.7-60 193.6-63.1 238.3 0 42 59.4 11.1 161.1-79 224.8z\"]\n};\nvar faRadar = {\n prefix: 'fal',\n iconName: 'radar',\n icon: [512, 512, [], \"e024\", \"M503.99585,264.19238C499.67236,397.36719,390.32422,504,256.06445,504,113.42725,504-1.092,383.64551,8.56958,238.97461c8.21411-122.999,108.14771-222.498,231.19507-230.44727,69.12842-4.46582,132.34009,19.71875,179.76977,61.42188l35.61524-35.60547a8.00327,8.00327,0,0,1,11.31689,0L477.78,45.65625a7.99914,7.99914,0,0,1-.00049,11.31348L265.03735,269.65625a8.003,8.003,0,0,1-11.31738,0L242.40649,258.3457a7.999,7.999,0,0,1,0-11.31445l45.89478-45.88281A62.51727,62.51727,0,0,0,256.06445,192a64.02183,64.02183,0,1,0,63.63306,71.02637A7.92009,7.92009,0,0,1,327.59277,256h16.08716a8.07465,8.07465,0,0,1,8.00928,8.82227,96.02921,96.02921,0,0,1-191.6311-10.73633c.93481-47.99121,38.821-88.7041,86.584-93.60156,24.45117-2.50684,46.55884,4.9082,64.52832,17.80078L345.228,144.23633C320.63379,124.48633,289.99316,112,256.06445,112c-70.7351,0-129.41064,51.33594-141.47021,118.63477,7.9414,5.82421,13.437,14.76367,13.437,25.36523,0,10.59961-5.49561,19.541-13.437,25.36523A143.92586,143.92586,0,0,0,230.69263,397.43359C236.51831,389.49414,245.46,384,256.06445,384c10.60425,0,19.5459,5.49414,25.37183,13.43359,64.83618-11.6123,114.85986-66.457,118.45776-133.668A8.05439,8.05439,0,0,1,407.866,256h16.031a7.97388,7.97388,0,0,1,8.02442,8.21484c-3.84912,83.64551-66.17969,151.876-147.02735,165.22461a31.67056,31.67056,0,0,1-57.65942,0A175.8776,175.8776,0,0,1,82.58008,284.82227a31.65708,31.65708,0,0,1,0-57.64649C96.3667,143.7168,168.68042,80,256.06445,80c42.8274,0,81.55811,15.9082,112.06226,41.34375l28.65576-28.64844C358.93091,60.02539,309.87915,40,256.06445,40,128.794,40,26.87354,150.583,41.38818,280.68848c11.05469,99.09082,90.85987,178.87695,189.97608,189.93164C358.82837,484.83594,467.561,387.37988,471.98071,263.81934A8.00326,8.00326,0,0,1,479.93213,256h16.01269A8.02725,8.02725,0,0,1,503.99585,264.19238Z\"]\n};\nvar faRadiation = {\n prefix: 'fal',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M247.9 320c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm0-96c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32zm51.2 113.2c-14.9 9.2-32.4 14.8-51.2 14.8s-36.3-5.6-51.2-14.8L133.8 437c-10.2 16.2-4.2 38.2 13.5 45.9C178 496.4 212 504 247.9 504s69.9-7.6 100.7-21.1c17.6-7.7 23.7-29.7 13.5-45.9l-63-99.8zM247.9 472c-30.4 0-59.8-6.2-86.8-18.1l47.9-76c12.6 4 25.7 6.1 38.8 6.1 13.3 0 26.4-2.1 39-6.1l48.6 75.8c-27.7 12.1-57.1 18.3-87.5 18.3zM32.5 256H151c0-34.3 18.3-64.2 45.7-81.2l-62.8-99.6c-6.2-9.8-17-15.3-27.8-15.3-7.1 0-14.2 2.3-20.1 7.3-45.2 38-76.7 91.7-85.7 152.5-2.9 19.2 12.6 36.3 32.2 36.3zm73.9-163.8l47.9 75.8c-15.2 15.7-26 35-31.5 56H32.5l-.3.4c7.6-51.6 34.2-98.7 74.2-132.2zM344.8 256h118.5c19.6 0 35.1-17.1 32.3-36.3-9-60.9-40.5-114.5-85.7-152.5-5.9-4.9-13-7.3-20.1-7.3-10.8 0-21.6 5.4-27.8 15.3l-62.8 99.6c27.3 17 45.6 46.9 45.6 81.2zm44.1-164.4c40.5 34.1 67 81.2 74.4 132.4H373c-5.5-21.1-16.4-40.3-31.6-56.1l47.5-76.3z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fal',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M217 256c0 17.1 13.9 31 31 31s31-13.9 31-31-13.9-31-31-31-31 13.9-31 31zm31 248c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-464c119.1 0 216 96.9 216 216s-96.9 216-216 216S32 375.1 32 256 128.9 40 248 40zM69.3 264.2c4.4 4.6 10.6 7.3 17 7.3h99.8c-1.2-5-2.1-10.1-2.1-15.5 0-28.4 18.7-52.3 44.4-60.6l-52.7-84.3c-3.4-5.4-9-9.2-15.2-10.5-1.5-.3-3.1-.5-4.7-.5-4.7 0-9.3 1.4-13.2 4.1-47.9 33.2-76.9 85.3-79.7 142.9-.3 6.3 2 12.5 6.4 17.1zm84.2-128.3l30.5 48.8c-15.9 14.2-26.8 33.4-30.5 54.8H95.7c4.3-40.9 24.9-77.8 57.8-103.6zM312 256c0 5.4-.9 10.5-2.1 15.5h99.8c6.4 0 12.6-2.7 17-7.3s6.7-10.8 6.4-17.1c-2.8-57.5-31.8-109.6-79.7-142.9-3.9-2.7-8.5-4.1-13.2-4.1-1.5 0-3.1.2-4.7.5-6.3 1.3-11.8 5.1-15.2 10.5l-52.7 84.3c25.7 8.3 44.4 32.1 44.4 60.6zm30.5-120.1c32.8 25.7 53.5 62.7 57.9 103.5h-57.8c-3.7-21.4-14.6-40.6-30.5-54.8l30.4-48.7zM294 300.4c-11.6 12.1-27.9 19.6-46 19.6s-34.4-7.6-46-19.7l-52.5 84.1c-3.4 5.4-4.5 12.1-2.9 18.2 1.5 6.1 5.6 11.4 11 14.5 27.8 15.9 59.1 23.7 90.4 23.7s62.6-7.9 90.5-23.7c5.4-3.1 9.4-8.3 10.9-14.4 1.6-6.2.5-12.8-2.8-18.2L294 300.4zm-46 108.4c-23.1 0-45.9-5.2-66.5-15.2l30.4-48.6c11.3 4.6 23.5 7 36.1 7s24.8-2.4 36.1-7l30.4 48.6c-20.5 10-43.4 15.2-66.5 15.2z\"]\n};\nvar faRadio = {\n prefix: 'fal',\n iconName: 'radio',\n icon: [512, 512, [], \"f8d7\", \"M216 304H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-16 64H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM88 272h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm360-144H184.51L506.3 31a8 8 0 0 0 5.36-10L507 5.69a8 8 0 0 0-10-5.35L73.56 128H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm32 320a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V192a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32zM352 224a96 96 0 1 0 96 96 96 96 0 0 0-96-96zm0 160a64 64 0 1 1 64-64 64.07 64.07 0 0 1-64 64z\"]\n};\nvar faRadioAlt = {\n prefix: 'fal',\n iconName: 'radio-alt',\n icon: [512, 512, [], \"f8d8\", \"M448 128H184.51L506.3 31a8 8 0 0 0 5.36-10L507 5.69a8 8 0 0 0-10-5.35L73.56 128H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm32 320a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V256h448zm0-224H32v-32a32 32 0 0 1 32-32h384a32 32 0 0 1 32 32zM216 384H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm152 64a80 80 0 1 0-80-80 80 80 0 0 0 80 80zm0-128a48 48 0 1 1-48 48 48.05 48.05 0 0 1 48-48zM72 352h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\"]\n};\nvar faRainbow = {\n prefix: 'fal',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M288 224.4c-52.9.1-96 42.6-96 95.5V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V319.9c0-35.3 28.8-63.6 64-63.7 35.2 0 64 28.4 64 63.7V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V319.9c0-53-43.1-95.5-96-95.5zM288 32C129.2 32 0 161 0 319.9V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V319.9C32 178.6 146.9 64.1 288 64c141.1 0 256 114.6 256 255.9V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V319.9C576 161 446.8 32 288 32zm0 95.8c-105.9 0-192 86.1-192 192V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V319.9c0-88.3 71.8-159.9 160-159.9s160 71.6 160 159.9V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V319.9c0-106-86.1-192-192-192.1z\"]\n};\nvar faRaindrops = {\n prefix: 'fal',\n iconName: 'raindrops',\n icon: [448, 512, [], \"f75c\", \"M406.6 252.7c-18.4-25.7-39.2-55-52.6-99.4-4.3-15-17.8-25.1-33.6-25.3-14.4-.3-29.6 10-34.2 25.2-13.4 44.3-34.2 73.6-52.6 99.5-21.3 30-41.5 58.4-41.5 100 0 70.2 57.4 127.3 128 127.3s128-57.1 128-127.3c-.1-41.8-20.2-70.1-41.5-100zM320 448c-52.9 0-96-42.7-96-95.3 0-31.4 15.7-53.5 35.6-81.5 18.8-26.5 42.2-59.4 57.1-108.7.2-.8.8-2.5 3.2-2.5 1.3.5 2.8.7 3.2 2.1l.1.3c15 49.5 38.4 82.4 57.2 108.8 20.6 28.9 35.5 49.8 35.5 81.4.1 52.7-43 95.4-95.9 95.4zm-80-306.1c0-21.4-9.8-35.8-19.2-49.8-7.9-11.6-16-23.6-21.4-42.2-2.9-10.6-12.2-17.8-23.1-17.9-12.4-.1-20.5 7-23.6 17.8-5.3 18.6-13.5 30.7-21.4 42.3-9.5 14-19.3 28.5-19.3 49.8 0 36.4 28.7 66.1 64 66.1s64-29.7 64-66.1zM176 176c-17.7 0-32-15.3-32-34.1 0-11 4.7-18.5 13.8-31.9 5.7-8.5 12.4-18.3 18.2-31.2 5.8 12.9 12.5 22.8 18.3 31.2 9 13.3 13.7 20.7 13.7 31.8 0 18.9-14.3 34.2-32 34.2zm-88.6 49.9c-2.9-10.6-12.2-17.8-23.1-17.9-10.1 1.2-20.5 7-23.6 17.8-5.3 18.6-13.5 30.7-21.4 42.3C9.8 282.1 0 296.6 0 317.9 0 354.3 28.7 384 64 384s64-29.7 64-66.1c0-21.4-9.8-35.8-19.2-49.8-7.9-11.6-16-23.6-21.4-42.2zM64 352c-17.7 0-32-15.3-32-34.1 0-11 4.7-18.5 13.8-31.9 5.7-8.5 12.4-18.3 18.2-31.2 5.8 12.9 12.5 22.8 18.3 31.2 9 13.3 13.7 20.7 13.7 31.8 0 18.9-14.3 34.2-32 34.2z\"]\n};\nvar faRam = {\n prefix: 'fal',\n iconName: 'ram',\n icon: [640, 512, [], \"f70a\", \"M496 96c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm117.31 11.61L576 89.27V80c0-26.47-21.53-48-48-48h-83.92C421.67 12.19 392.6 0 360.94 0c-55.25 0-100.16 43.04-104.16 97.29-13.17-1.89-26.9.05-38.37 6.79-18.31-10.89-43.09-10.45-61.16 1-12.28-6.66-26.56-8.7-40.88-5.67-17.03 3.84-31.41 14.97-39.62 30.16-16.94.88-33.06 9.11-44.12 23.12-10.81 13.95-15.06 31.86-12.12 48.95C7.62 213.09 0 229.81 0 247.69c0 17.91 7.5 34.59 20.19 46-3.06 17.3 1.25 35.27 12.12 48.98 10.78 14.02 26.78 22.3 43.78 23.16 4.83 9.1 11.99 16.48 20.41 21.98.14 3.96.33 7.93 1.26 11.81l21.12 87.86C122.34 501.86 135.21 512 150 512h57.53c20.95 0 36.12-19.76 31.02-39.86l-20.29-80.07a57.854 57.854 0 0 0 29.3 7.93c10.62 0 20.88-2.84 29.91-8.17 9.16 5.31 20.62 8.56 31.84 8.02 3.67-.12 7.17-1 10.69-1.77V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V356.83c5.69-3.63 11.01-7.98 15.38-13.51 10.81-13.95 15.06-31.86 12.12-48.95 12.88-11.45 20.5-28.17 20.5-46.05 0-8.54-1.81-16.77-4.97-24.31h92.63c14.91 0 28.81-8.03 36.28-21.02 17.97-31.55 20.06-45.08 20.06-52.52 0-18.35-10.22-34.77-26.69-42.86zM150 480l-19.82-82.44c9.14-.19 18.15-2.34 26.38-6.72 9.03 5.79 19.79 8.77 30.64 8.92L207.53 480H150zm266 0h-64v-84.09c8.85 2.29 18.22 2.72 27.62.68 15.13-3.41 27.89-12.78 36.38-25.42V480zm176.16-292.92c-1.75 3.08-4.94 4.92-8.5 4.92H444.55c-.06 3.56-.52 7.18-1.95 10.81l-5.16 13.02 12.22 6.84c18.61 10.44 19.64 40.06-.31 51.28l-12.22 6.84 5.16 13.02c8.51 21.38-9.05 44.04-30.59 40.3l-14.16-2.52-4.03 13.78c-5.48 18.83-28.59 28.04-44.84 13.67l-11.44-10.14-10.66 10.95c-8.68 8.94-25.64 12.3-38.12.45l-11.06-10.53-11.03 10.58c-10.31 9.92-27.25 9.91-37.16.16l-11.06-10.92-11.22 10.77c-10.59 10.09-28.12 9.72-38-.47l-10.44-10.83-11.44 9.77c-17.44 14.83-39.91 4.28-45.06-13.95L98 330.92l-14.25 2.56c-21.2 3.8-38.89-18.69-30.34-40.3l5.16-13.02-12.22-6.84c-18.61-10.44-19.64-40.06.31-51.28l12.22-6.84-5.16-13.02c-8.56-21.51 9.19-44.04 30.59-40.3l14.16 2.52 4.03-13.78c5.54-19.02 28.75-27.9 44.84-13.67l11.44 10.14 10.66-10.95c9.91-10.23 27.62-10.58 37.56-.69l11.09 10.97 11.25-10.77c8.42-8.09 21.16-9.19 31.28-4.01 11.35 34.96 43.84 60.46 82.54 60.46 39.98 0 72.5-32.39 72.84-72.3v-1.33c-.34-28.95-20.7-53.18-47.9-59.32-.12-.03-2.69-.6-4.26-.84-4.99-.78-9.59 2.87-9.59 7.92V82.5c0 3.68 2.5 6.94 6.1 7.69.04.01.07 0 .11 0 .01 0 0 .04.01.05 13.44 2.76 23.59 14.69 23.59 28.95 0 22.56-18.34 40.92-40.91 40.92-30.41 0-55.16-24.75-55.16-55.16C288 64.72 320.72 32 360.94 32c27.84 0 53.29 12.34 70.88 32H528c8.81 0 16 7.17 16 16v29.17l55.19 27.16c5.44 2.67 8.81 8.09 8.81 14.14 0 3.28-3.34 14.7-15.84 36.61z\"]\n};\nvar faRampLoading = {\n prefix: 'fal',\n iconName: 'ramp-loading',\n icon: [384, 512, [], \"f4d4\", \"M384 352V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32v320c0 17.7 14.3 32 32 32h6.9L3.2 467.4C-5.9 488.5 9.6 512 32.6 512h318.9c23 0 38.5-23.5 29.4-44.6L345.1 384h6.9c17.7 0 32-14.3 32-32zm-32.6 128H32.6l68.6-160h181.7l68.5 160zm-20-128l-19.1-44.6c-5-11.8-16.6-19.4-29.4-19.4H101.1c-12.8 0-24.4 7.6-29.4 19.4L52.6 352H32V32h320v320h-20.6z\"]\n};\nvar faRandom = {\n prefix: 'fal',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M0 128v-8c0-6.6 5.4-12 12-12h105.8c3.3 0 6.5 1.4 8.8 3.9l89.7 97-21.8 23.6L109 140H12c-6.6 0-12-5.4-12-12zm502.6 278.6l-64 64c-20.1 20.1-54.6 5.8-54.6-22.6v-44h-25.7c-3.3 0-6.5-1.4-8.8-3.9l-89.7-97 21.8-23.6L367 372h17v-52c0-28.5 34.5-42.7 54.6-22.6l64 64c12.5 12.5 12.5 32.7 0 45.2zm-19.8-25.4l-64-64c-2.5-2.5-6.8-.7-6.8 2.8v128c0 3.6 4.3 5.4 6.8 2.8l64-64c1.6-1.5 1.6-4.1 0-5.6zm19.8-230.6l-64 64c-20.1 20.1-54.6 5.8-54.6-22.6v-52h-17L126.6 400.1c-2.3 2.5-5.5 3.9-8.8 3.9H12c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h97l240.4-260.1c2.3-2.5 5.5-3.9 8.8-3.9H384V64c0-28.5 34.5-42.7 54.6-22.6l64 64c12.5 12.5 12.5 32.7 0 45.2zm-19.8-25.4l-64-64c-2.5-2.5-6.8-.7-6.8 2.8v128c0 3.6 4.3 5.4 6.8 2.8l64-64c1.6-1.5 1.6-4.1 0-5.6z\"]\n};\nvar faRaygun = {\n prefix: 'fal',\n iconName: 'raygun',\n icon: [576, 512, [], \"e025\", \"M112,159.99684A16.00015,16.00015,0,1,0,128,175.997,16.00087,16.00087,0,0,0,112,159.99684ZM552.84375,97.69941l-96,47.99457A16.03507,16.03507,0,0,0,448,160.00661v-.00977H416V79.99613a16,16,0,1,0-32,0v80.00071H352V47.99584a16,16,0,1,0-32,0v49.7856A111.56316,111.56316,0,0,0,239.98047,63.996H195.40625L54.5,1.37042A15.99873,15.99873,0,0,0,32,15.99555l-.02734,81.8191A111.51592,111.51592,0,0,0,0,175.997c0,60.4771,48.03125,109.42481,107.99219,111.59475L38.4668,407.962a47.9323,47.9323,0,0,0,17.59375,65.57871l55.40625,31.99248a47.91657,47.91657,0,0,0,65.59375-17.59L304.377,267.41187A112.314,112.314,0,0,0,320,254.21253v49.78561a16,16,0,1,0,32,0v-112.001h32v80.00072a16,16,0,1,0,32,0V191.99713h32v-.041a15.97529,15.97529,0,0,0,8.84375,14.31067l96,48.0434A16.01141,16.01141,0,0,0,576,239.99951V112.01009A16.01117,16.01117,0,0,0,552.84375,97.69941ZM64,40.60515,116.61328,63.996h-4.59375A110.97556,110.97556,0,0,0,63.98438,75.20116Zm85.35742,431.32613a15.91027,15.91027,0,0,1-21.88672,5.89849L72.07617,445.84316a15.93689,15.93689,0,0,1-5.89844-21.883L144.71094,287.998h95.26953c.02734,0,.05078-.00781.07812-.00781h15.49024Zm90.62305-215.93357H112.01953a80.00072,80.00072,0,1,1,0-160.00144H239.98047a80.00072,80.00072,0,1,1,0,160.00144ZM544,214.095l-64-32.02764v-12.172L544,137.899ZM176,159.99684A16.00015,16.00015,0,1,0,192,175.997,16.00087,16.00087,0,0,0,176,159.99684Zm64,0A16.00015,16.00015,0,1,0,256,175.997,16.00087,16.00087,0,0,0,240,159.99684Z\"]\n};\nvar faReceipt = {\n prefix: 'fal',\n iconName: 'receipt',\n icon: [448, 512, [], \"f543\", \"M344 240H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0 96H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM418.1 0c-5.8 0-11.8 1.8-17.3 5.7L357.3 37 318.7 9.2c-8.4-6-18.2-9.1-28.1-9.1-9.8 0-19.6 3-28 9.1L224 37 185.4 9.2C177 3.2 167.1.1 157.3.1s-19.6 3-28 9.1L90.7 37 47.2 5.7C41.8 1.8 35.8 0 29.9 0 14.4.1 0 12.3 0 29.9v452.3C0 499.5 14.3 512 29.9 512c5.8 0 11.8-1.8 17.3-5.7L90.7 475l38.6 27.8c8.4 6 18.2 9.1 28.1 9.1 9.8 0 19.6-3 28-9.1L224 475l38.6 27.8c8.4 6 18.3 9.1 28.1 9.1s19.6-3 28-9.1l38.6-27.8 43.5 31.3c5.4 3.9 11.4 5.7 17.3 5.7 15.5 0 29.8-12.2 29.8-29.8V29.9C448 12.5 433.7 0 418.1 0zM416 477.8L376 449l-18.7-13.5-18.7 13.5-38.6 27.8c-2.8 2-6 3-9.3 3-3.4 0-6.6-1.1-9.4-3.1L242.7 449 224 435.5 205.3 449l-38.6 27.8c-2.8 2-6 3-9.4 3-3.4 0-6.6-1.1-9.4-3.1L109.3 449l-18.7-13.5L72 449l-40 29.4V34.2L72 63l18.7 13.5L109.4 63 148 35.2c2.8-2 6-3 9.3-3 3.4 0 6.6 1.1 9.4 3.1L205.3 63 224 76.5 242.7 63l38.6-27.8c2.8-2 6-3 9.4-3 3.4 0 6.6 1.1 9.4 3.1L338.7 63l18.7 13.5L376 63l40-28.8v443.6zM344 144H104c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fal',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 464c-119.1 0-216-96.9-216-216S136.9 40 256 40s216 96.9 216 216-96.9 216-216 216zm0-320a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 176a72 72 0 1 1 72-72 72.08 72.08 0 0 1-72 72zm0-96a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faRectangleLandscape = {\n prefix: 'fal',\n iconName: 'rectangle-landscape',\n icon: [512, 512, [], \"f2fa\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm16 336c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16v288z\"]\n};\nvar faRectanglePortrait = {\n prefix: 'fal',\n iconName: 'rectangle-portrait',\n icon: [384, 512, [], \"f2fb\", \"M384 464V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48zM48 480c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v416c0 8.8-7.2 16-16 16H48z\"]\n};\nvar faRectangleWide = {\n prefix: 'fal',\n iconName: 'rectangle-wide',\n icon: [640, 512, [], \"f2fc\", \"M592 96H48c-26.5 0-48 21.5-48 48v224c0 26.5 21.5 48 48 48h544c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48zm16 272c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h544c8.8 0 16 7.2 16 16v224z\"]\n};\nvar faRecycle = {\n prefix: 'fal',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M201.728 62.049l-43.385 69.459c-3.511 5.622-10.916 7.332-16.537 3.819l-6.781-4.237c-5.619-3.511-7.329-10.912-3.819-16.533l43.387-69.48c37.575-60.12 125.263-60.084 162.816 0l46.217 74.015 12.037-52.14c1.491-6.458 7.934-10.484 14.392-8.993l7.794 1.799c6.458 1.491 10.484 7.934 8.993 14.392l-21.633 93.702c-1.491 6.458-7.934 10.484-14.392 8.993l-93.702-21.633c-6.458-1.491-10.484-7.934-8.993-14.392l1.799-7.794c1.491-6.458 7.934-10.484 14.392-8.993l52.202 12.052-46.251-74.047c-25.002-40.006-83.467-40.099-108.536.011zm295.56 239.071l-52.939-84.78c-3.511-5.623-10.916-7.334-16.538-3.821l-6.767 4.228c-5.62 3.512-7.329 10.913-3.819 16.534l52.966 84.798c26.605 42.568-4.054 97.92-54.272 97.92H310.627l37.858-37.858c4.686-4.686 4.686-12.284 0-16.97l-5.656-5.656c-4.686-4.686-12.284-4.686-16.97 0l-68 68c-4.686 4.686-4.686 12.284 0 16.971l68 68c4.686 4.686 12.284 4.686 16.97 0l5.656-5.657c4.686-4.686 4.686-12.284 0-16.971L310.627 448H415.88c75.274 0 121.335-82.997 81.408-146.88zM41.813 318.069l55.803-89.339 12.044 52.166c1.491 6.458 7.934 10.484 14.392 8.993l7.794-1.799c6.458-1.491 10.484-7.934 8.993-14.392l-21.633-93.702c-1.491-6.458-7.934-10.484-14.392-8.993l-93.702 21.633c-6.458 1.491-10.484 7.934-8.993 14.392l1.799 7.794c1.491 6.458 7.934 10.484 14.392 8.993l52.193-12.05-55.796 89.355C-25.188 364.952 20.781 448 96.115 448H196c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12H96.078c-50.199 0-80.887-55.335-54.265-97.931z\"]\n};\nvar faRedo = {\n prefix: 'fal',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M492 8h-10c-6.627 0-12 5.373-12 12v110.625C426.804 57.047 346.761 7.715 255.207 8.001 118.82 8.428 7.787 120.009 8 256.396 8.214 393.181 119.166 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-7.069-7.069c-4.503-4.503-11.749-4.714-16.482-.454C361.218 449.238 311.065 470 256 470c-117.744 0-214-95.331-214-214 0-117.744 95.331-214 214-214 82.862 0 154.737 47.077 190.289 116H332c-6.627 0-12 5.373-12 12v10c0 6.627 5.373 12 12 12h160c6.627 0 12-5.373 12-12V20c0-6.627-5.373-12-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fal',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M457.4 9.4l-50.1 50.1C365.4 27.2 312.8 8 255.8 8 119.2 8.1 7.7 119.8 8 256.5S119.2 504 256 504c63.9 0 122.2-24.2 166.2-63.9 5.1-4.6 5.4-12.6.5-17.4l-7.1-7.1c-4.5-4.5-11.7-4.7-16.5-.5-39 35.1-89.4 54.9-143.1 54.9-118 0-214-95.6-214-214 0-118 95.6-214 214-214 46.5 0 90.7 14.9 127 41.7l-53.6 53.6c-20.1 20.1-5.9 54.6 22.6 54.6h128c17.7 0 32-14.3 32-32V32c0-28.5-34.6-42.7-54.6-22.6zM480 160H352L480 32z\"]\n};\nvar faRefrigerator = {\n prefix: 'fal',\n iconName: 'refrigerator',\n icon: [384, 512, [], \"e026\", \"M336,0H48A48,48,0,0,0,0,48V464a48,48,0,0,0,48,48H336a48,48,0,0,0,48-48V48A48,48,0,0,0,336,0Zm16,464a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V192H256V376a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V192h64Zm0-304H288V104a8,8,0,0,0-8-8H264a8,8,0,0,0-8,8v56H32V48A16,16,0,0,1,48,32H336a16,16,0,0,1,16,16Z\"]\n};\nvar faRegistered = {\n prefix: 'fal',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm216 248c0 118.663-96.055 216-216 216-118.663 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.663 0 216 96.055 216 216zM359.387 374.293c-56.637-104.76-51.795-95.919-53.681-99.047 27.113-11.899 44.118-39.432 44.118-72.825 0-57.934-36.794-80.198-93.917-80.198h-71.086c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h16.908c6.617 0 12-5.383 12-12v-94.854h51.111l54.004 100.532a11.983 11.983 0 0 0 10.57 6.321h19.416c9.1.001 14.878-9.717 10.557-17.706zm-93.371-127.528H213.73v-86.161h43.261c20.716 0 51.203 1.092 51.203 42.539-.001 27.314-15.768 43.622-42.178 43.622z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fal',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M192 64h176l-44.56 133.68 25.35 20L400 64h176v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v21l32 25.19zm152 384h-72l44.55-133.64-25.35-20L240 448h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm293 37.31L23 1.8A7.86 7.86 0 0 0 11.79 3l-10 12.5A7.92 7.92 0 0 0 3 26.71l614 483.52a7.91 7.91 0 0 0 11.18-1.23l10-12.5a7.83 7.83 0 0 0-1.18-11.18z\"]\n};\nvar faRepeat = {\n prefix: 'fal',\n iconName: 'repeat',\n icon: [512, 512, [], \"f363\", \"M512 256c0 88.225-71.775 160-160 160H110.628l68.201 68.201c4.686 4.686 4.686 12.284 0 16.971l-5.656 5.656c-4.686 4.686-12.284 4.686-16.971 0l-98.343-98.343c-4.686-4.686-4.686-12.284 0-16.971l98.343-98.343c4.686-4.686 12.284-4.686 16.971 0l5.656 5.656c4.686 4.686 4.686 12.284 0 16.971L110.628 384H352c70.579 0 128-57.421 128-128 0-28.555-9.403-54.952-25.271-76.268-3.567-4.792-3.118-11.462 1.106-15.686l5.705-5.705c5.16-5.16 13.678-4.547 18.083 1.271C499.935 186.438 512 219.835 512 256zM57.271 332.268C41.403 310.952 32 284.555 32 256c0-70.579 57.421-128 128-128h241.372l-68.201 68.201c-4.686 4.686-4.686 12.284 0 16.971l5.656 5.656c4.686 4.686 12.284 4.686 16.971 0l98.343-98.343c4.686-4.686 4.686-12.284 0-16.971L355.799 5.172c-4.686-4.686-12.284-4.686-16.971 0l-5.656 5.656c-4.686 4.686-4.686 12.284 0 16.971L401.372 96H160C71.775 96 0 167.775 0 256c0 36.165 12.065 69.562 32.376 96.387 4.405 5.818 12.923 6.432 18.083 1.271l5.705-5.705c4.225-4.224 4.674-10.893 1.107-15.685z\"]\n};\nvar faRepeat1 = {\n prefix: 'fal',\n iconName: 'repeat-1',\n icon: [512, 512, [], \"f365\", \"M512 256c0 88.225-71.775 160-160 160H110.628l68.201 68.201c4.686 4.686 4.686 12.284 0 16.971l-5.656 5.656c-4.686 4.686-12.284 4.686-16.971 0l-98.343-98.343c-4.686-4.686-4.686-12.284 0-16.971l98.343-98.343c4.686-4.686 12.284-4.686 16.971 0l5.656 5.656c4.686 4.686 4.686 12.284 0 16.971L110.628 384H352c70.579 0 128-57.421 128-128 0-28.555-9.403-54.952-25.271-76.268-3.567-4.792-3.118-11.462 1.106-15.686l5.705-5.705c5.16-5.16 13.678-4.547 18.083 1.271C499.935 186.438 512 219.835 512 256zM57.271 332.268C41.403 310.952 32 284.555 32 256c0-70.579 57.421-128 128-128h241.372l-68.201 68.201c-4.686 4.686-4.686 12.284 0 16.971l5.656 5.656c4.686 4.686 12.284 4.686 16.971 0l98.343-98.343c4.686-4.686 4.686-12.284 0-16.971L355.799 5.172c-4.686-4.686-12.284-4.686-16.971 0l-5.656 5.656c-4.686 4.686-4.686 12.284 0 16.971L401.372 96H160C71.775 96 0 167.775 0 256c0 36.165 12.065 69.562 32.376 96.387 4.405 5.818 12.923 6.432 18.083 1.271l5.705-5.705c4.225-4.224 4.674-10.893 1.107-15.685zm172.224-29.275c0-6.444 3.401-9.847 9.847-9.847h17.365v-53.348c0-4.834.179-9.847.179-9.847h-.359s-1.79 3.939-3.938 5.729l-1.611 1.432c-4.655 4.298-9.489 4.117-13.786-.537l-4.654-5.013c-4.475-4.654-4.297-9.487.358-13.963l22.2-20.767c3.759-3.401 7.161-4.833 12.173-4.833h10.205c6.444 0 9.846 3.4 9.846 9.846v91.301h17.544c6.444 0 9.847 3.402 9.847 9.847v7.162c0 6.444-3.402 9.846-9.847 9.846h-65.522c-6.445 0-9.847-3.402-9.847-9.846v-7.162z\"]\n};\nvar faRepeat1Alt = {\n prefix: 'fal',\n iconName: 'repeat-1-alt',\n icon: [512, 512, [], \"f366\", \"M54.027 327.713C40.129 307.242 32 282.553 32 256c0-70.579 57.421-128 128-128h160v63.969c0 29.239 36.192 43.177 55.785 21.407l72-79.968c10.952-12.169 10.953-30.644 0-42.814l-72-79.974C356.226-11.114 320 2.738 320 32.026V96H160C71.775 96 0 167.775 0 256c0 33.913 10.612 65.391 28.683 91.299 4.427 6.348 13.606 6.936 18.785 1.185l5.488-6.096c3.667-4.073 4.149-10.14 1.071-14.675zM352 32l72 80-72 80V32zm131.317 132.701c-4.427-6.348-13.606-6.936-18.785-1.185l-5.488 6.096c-3.667 4.073-4.149 10.14-1.071 14.675C471.871 204.758 480 229.447 480 256c0 70.579-57.421 128-128 128H192v-63.969c0-29.239-36.192-43.177-55.785-21.407l-72 79.969c-10.952 12.169-10.953 30.644 0 42.814l72 79.974C155.774 523.113 192 509.264 192 479.974V416h160c88.225 0 160-71.775 160-160 0-33.913-10.612-65.391-28.683-91.299zM160 480l-72-80 72-80v160zm69.495-177.007c0-6.444 3.401-9.847 9.847-9.847h17.365v-53.348c0-4.834.179-9.847.179-9.847h-.359s-1.79 3.939-3.938 5.729l-1.611 1.432c-4.655 4.298-9.489 4.117-13.786-.537l-4.654-5.013c-4.475-4.654-4.297-9.487.358-13.963l22.2-20.767c3.759-3.401 7.161-4.833 12.173-4.833h10.205c6.444 0 9.846 3.4 9.846 9.846v91.301h17.544c6.444 0 9.847 3.402 9.847 9.847v7.162c0 6.443-3.402 9.846-9.847 9.846h-65.522c-6.445 0-9.847-3.402-9.847-9.846v-7.162z\"]\n};\nvar faRepeatAlt = {\n prefix: 'fal',\n iconName: 'repeat-alt',\n icon: [512, 512, [], \"f364\", \"M54.027 327.713C40.129 307.242 32 282.553 32 256c0-70.579 57.421-128 128-128h160v63.969c0 29.239 36.192 43.177 55.785 21.407l72-79.968c10.952-12.169 10.953-30.644 0-42.814l-72-79.974C356.226-11.114 320 2.738 320 32.026V96H160C71.775 96 0 167.775 0 256c0 33.913 10.612 65.391 28.683 91.299 4.427 6.348 13.606 6.936 18.785 1.185l5.488-6.096c3.667-4.073 4.149-10.14 1.071-14.675zM352 32l72 80-72 80V32zm131.317 132.701c-4.427-6.348-13.606-6.936-18.785-1.185l-5.488 6.096c-3.667 4.073-4.149 10.14-1.071 14.675C471.871 204.758 480 229.447 480 256c0 70.579-57.421 128-128 128H192v-63.969c0-29.239-36.192-43.177-55.785-21.407l-72 79.969c-10.952 12.169-10.953 30.644 0 42.814l72 79.974C155.774 523.113 192 509.264 192 479.974V416h160c88.225 0 160-71.775 160-160 0-33.913-10.612-65.391-28.683-91.299zM160 480l-72-80 72-80v160z\"]\n};\nvar faReply = {\n prefix: 'fal',\n iconName: 'reply',\n icon: [576, 512, [], \"f3e5\", \"M11.093 251.65l175.998 184C211.81 461.494 256 444.239 256 408v-87.84c154.425 1.812 219.063 16.728 181.19 151.091-8.341 29.518 25.447 52.232 49.68 34.51C520.16 481.421 576 426.17 576 331.19c0-171.087-154.548-201.035-320-203.02V40.016c0-36.27-44.216-53.466-68.91-27.65L11.093 196.35c-14.791 15.47-14.791 39.83 0 55.3zm23.127-33.18l176-184C215.149 29.31 224 32.738 224 40v120c157.114 0 320 11.18 320 171.19 0 74.4-40 122.17-76.02 148.51C519.313 297.707 395.396 288 224 288v120c0 7.26-8.847 10.69-13.78 5.53l-176-184a7.978 7.978 0 0 1 0-11.06z\"]\n};\nvar faReplyAll = {\n prefix: 'fal',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M105.368 246.631l160.002 159.98c20.02 20.01 54.63 5.98 54.63-22.63v-71.15c121.58 4.36 148.9 28.23 121.2 126.42-8.35 29.59 25.5 52.21 49.69 34.51 51.57-37.71 85.11-90.99 85.11-155.97 0-152.9-140.5-177.23-256-181.07v-72.69c0-28.59-34.59-42.67-54.63-22.63l-160.002 159.97c-12.491 12.5-12.491 32.76 0 45.26zM128 224.001l160-160v104.1c130.165 1.345 256 18.265 256 149.69 0 65.1-40.49 107.16-72 130.21 40.979-145.267-38.329-166.574-184-167.9v103.9l-160-160zM9.372 201.373l160-159.974c13.467-13.467 33.495-11.506 45.189-.105L32 224.001l182.564 182.712c-11.699 11.403-31.738 13.347-45.191-.106l-160-159.978c-12.497-12.498-12.497-32.759-.001-45.256z\"]\n};\nvar faRepublican = {\n prefix: 'fal',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M173 160.2l-27.4-4-12.2-24.8c-2.2-4.4-8.5-4.5-10.7 0l-12.2 24.8-27.4 4c-4.9.7-6.9 6.8-3.3 10.2l19.8 19.3-4.8 27.3c-.8 4.9 4.3 8.6 8.7 6.3l24.5-12.9 24.5 12.9c4.3 2.3 9.5-1.4 8.7-6.3l-4.7-27.3 19.8-19.3c3.5-3.5 1.6-9.5-3.3-10.2zm128 0l-27.4-4-12.2-24.8c-2.2-4.4-8.5-4.5-10.7 0l-12.2 24.8-27.4 4c-4.9.7-6.9 6.8-3.3 10.2l19.8 19.3-4.7 27.3c-.8 4.9 4.3 8.6 8.7 6.3l24.5-12.9 24.5 12.9c4.3 2.3 9.5-1.4 8.7-6.3l-4.7-27.3 19.8-19.3c3.4-3.5 1.5-9.5-3.4-10.2zM608 256h-32c-17.7 0-32 14.3-32 32v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48v-48h128v48c0 26.5 21.5 48 48 48h64c22.3 0 40.9-15.3 46.3-35.9 24.4 26.2 60.9 41.1 100.9 34.3 54.6-9.2 92.9-59.6 92.9-115V288c-.1-17.7-14.4-32-32.1-32zM32 192c0-70.6 57.4-128 128-128h192c70.6 0 128 57.4 128 128v64H32v-64zm576 176c0 44.1-35.9 80-80 80s-80-35.9-80-80v-16h-32v80c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-80H128v80c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V288h448v80c0 26.5 21.5 48 48 48s48-21.5 48-48v-80h32v80zM429 160.2l-27.4-4-12.2-24.8c-2.2-4.4-8.5-4.5-10.7 0l-12.2 24.8-27.4 4c-4.9.7-6.9 6.8-3.3 10.2l19.8 19.3-4.7 27.3c-.8 4.9 4.3 8.6 8.7 6.3l24.5-12.9 24.5 12.9c4.3 2.3 9.5-1.4 8.7-6.3l-4.7-27.3 19.8-19.3c3.4-3.5 1.5-9.5-3.4-10.2z\"]\n};\nvar faRestroom = {\n prefix: 'fal',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M328 0h-16c-4.4 0-8 3.6-8 8v496c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zM128 160c44.2 0 80-35.8 80-80S172.2 0 128 0 48 35.8 48 80s35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm32 144H96c-44.2 0-80 35.8-80 80v101.3C16 372 27.9 384 42.7 384H56v96c0 17.7 14.3 32 32 32h80c17.7 0 32-14.3 32-32v-96h13.3c14.7 0 26.7-11.9 26.7-26.7V256c0-44.2-35.8-80-80-80zm48 176h-40v128H88V352H48v-96c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v96zm304-192c44.2 0 80-35.8 80-80S556.2 0 512 0s-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm126.1 327l-44.9-121.4C583.1 201.3 549.7 176 512 176s-71.1 25.3-81.2 61.6L385.9 359c-3.5 9.4-2.2 20 3.6 28.3 5.8 8.3 15.2 13.2 25.3 13.2H440v79.6c0 17.6 14.3 31.9 31.9 31.9H552c17.6 0 31.9-14.3 31.9-31.9v-79.6h25.2c10.1 0 19.5-4.9 25.3-13.2 5.8-8.3 7.2-18.9 3.7-28.3zm-86.1 9.5l.1 111.5h-80.2l.1-111.5h-56l45.3-121c6.7-23.8 27.4-39.5 50.8-39.5s44.1 15.7 50.8 39.5l45.3 121H552z\"]\n};\nvar faRetweet = {\n prefix: 'fal',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M634.828 363.799l-98.343 98.343c-4.686 4.686-12.284 4.686-16.971 0l-98.343-98.343c-4.686-4.686-4.686-12.284 0-16.971l5.656-5.656c4.686-4.686 12.284-4.686 16.971 0l68.202 68.2V128H260.024a11.996 11.996 0 0 1-8.485-3.515l-8-8c-7.56-7.56-2.206-20.485 8.485-20.485H520c13.255 0 24 10.745 24 24v289.372l68.201-68.201c4.686-4.686 12.284-4.686 16.971 0l5.656 5.656c4.686 4.687 4.686 12.285 0 16.972zm-246.367 23.716a12.002 12.002 0 0 0-8.485-3.515H128V102.628l68.201 68.2c4.686 4.686 12.284 4.686 16.97 0l5.657-5.657c4.686-4.686 4.687-12.284 0-16.971l-98.343-98.343c-4.686-4.686-12.284-4.686-16.971 0L5.172 148.201c-4.686 4.686-4.686 12.285 0 16.971l5.657 5.657c4.686 4.686 12.284 4.686 16.97 0L96 102.628V392c0 13.255 10.745 24 24 24h267.976c10.691 0 16.045-12.926 8.485-20.485l-8-8z\"]\n};\nvar faRetweetAlt = {\n prefix: 'fal',\n iconName: 'retweet-alt',\n icon: [640, 512, [], \"f361\", \"M607.974 320H544V120c0-13.255-10.745-24-24-24H252.024c-10.998 0-16.202 13.562-8.028 20.919l8.889 8a12 12 0 0 0 8.028 3.081H512v192h-63.968c-29.239 0-43.177 36.192-21.407 55.785l79.969 72c12.169 10.952 30.644 10.953 42.814 0l79.974-72C651.113 356.226 637.264 320 607.974 320zM528 424l-80-72h160l-80 72zm-131.997-28.92l-8.889-8a12 12 0 0 0-8.028-3.08H128V192h63.968c29.239 0 43.177-36.192 21.407-55.785l-79.968-72c-12.169-10.952-30.644-10.953-42.814 0l-79.974 72C-11.114 155.774 2.738 192 32.026 192H96v200c0 13.255 10.745 24 24 24h267.976c10.998 0 16.202-13.562 8.027-20.92zM32 160l80-72 80 72H32z\"]\n};\nvar faRibbon = {\n prefix: 'fal',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M439.5 407.7L323.7 285.9l42.4-45.4c33.4-35.7 37.4-87.3 10.2-131.5l-39.5-64.1c-5.5-9-12.8-16.3-21.5-21.9C299.1 12.5 270.2 0 224 0c-46.1 0-75.1 12.5-91.2 22.9-8.8 5.6-16 13.1-21.5 22.1l-42.2 68.5c-25.1 40.7-19.9 91.8 13 127l44.2 47.3L8.4 407.9c-14.9 16.1-8.1 38.8 5.1 47.2l66.9 51.5c16.5 10.7 33.8 3.6 41.9-5l101.7-109 101.7 109c15.6 16.7 35.7 9 43 4.3l64.8-50c16.3-10.7 19.7-33.4 6-48.2zM328.4 92.3l20.6 33.4c19.7 32 17.3 67.6-6.3 92.9l-41.1 44-54.8-57.6 52-56.3c16-15.5 24.7-37 29.6-56.4zm-103.6 89.5l-45.1-47.4c26.7-8 62.2-8 88.9 0l-43.8 47.4zm-74.6-132C162.7 41.6 185.7 32 224 32s61.3 9.7 73.9 17.8c1.9 1.2 3 3.2 4.6 4.7-1 13.7-4.5 35.3-13.5 53.3-18.6-7.7-40.2-11.8-65-11.8-24.8 0-46.5 4.1-65.2 11.9-9.7-19.4-12.5-43-13.3-54.6 1.5-1.3 3-2.5 4.7-3.5zM98.9 480.5L31.6 430l116.5-118.8 54.1 58L98.9 480.5zm250.2-.8L105.4 218.6c-22.9-24.5-26.6-60-9.1-88.4l23.2-37.6c4.9 19.2 13.7 40.5 29.3 55.6L415 429.8l-65.9 49.9z\"]\n};\nvar faRing = {\n prefix: 'fal',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C87.93 64 0 128.39 0 192v114.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V192c0-63.61-87.93-128-256-128zm224 242.13C480 358.1 388.01 416 256 416S32 358.1 32 306.13v-50.12C71.33 292.63 146.55 320 256 320s184.67-27.37 224-63.99v50.12zM89.32 255.97C130.3 236.37 189.74 224 256 224s125.7 12.37 166.68 31.97C381.67 275.59 322.29 288 256 288s-125.67-12.41-166.68-32.03zm364.88-19.31C411.3 210.2 345.06 192 256 192s-155.3 18.2-198.2 44.66C41.39 223.32 32 208.14 32 192c0-53.02 100.29-96 224-96s224 42.98 224 96c0 16.14-9.39 31.32-25.8 44.66z\"]\n};\nvar faRingsWedding = {\n prefix: 'fal',\n iconName: 'rings-wedding',\n icon: [512, 512, [], \"f81b\", \"M351.64 160.79a206.88 206.88 0 0 1 18 35.6C432.81 211.65 480 268.25 480 336c0 79.4-64.6 144-144 144s-144-64.6-144-144c0-66.45 45.53-121.62 106.86-138C312 219.67 320 244.83 320 272c0 55-31.37 102.36-76.83 126.59a112.52 112.52 0 0 0 23.06 24.32C317.54 392.16 352 336.17 352 272c0-76.38-48.75-141.22-116.76-165.56L278 44.22 217.19 0h-82.38L74 44.22l42.76 62.22C48.75 130.78 0 195.62 0 272a176 176 0 0 0 176 176 169.3 169.3 0 0 0 23-1.64A175.93 175.93 0 0 0 512 336c0-91.92-70.5-167.28-160.36-175.21zM118 51.78L145.22 32h61.56L234 51.78l-31.89 46.37A175.63 175.63 0 0 0 176 96a175.63 175.63 0 0 0-26.11 2.15zM176 416c-79.4 0-144-64.6-144-144s64.6-144 144-144a143.52 143.52 0 0 1 101.89 42.37C209.35 194.42 160 259.24 160 336a175.09 175.09 0 0 0 19.21 79.68c-1.09.03-2.11.32-3.21.32z\"]\n};\nvar faRoad = {\n prefix: 'fal',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M279.47 192h17.06c5.81 0 10.35-6.17 9.73-13.26l-3.75-43.58c-.35-4.07-3.15-7.16-6.49-7.16h-16.05c-3.34 0-6.14 3.09-6.49 7.16l-3.75 43.58c-.61 7.09 3.93 13.26 9.74 13.26zm-6.02 112h29.1c7.75 0 13.79-8.23 12.98-17.68l-4.13-48c-.7-8.14-6.3-14.32-12.98-14.32h-20.83c-6.68 0-12.28 6.18-12.98 14.32l-4.13 48c-.82 9.45 5.22 17.68 12.97 17.68zm10.66-208h7.79c3.88 0 6.9-4.12 6.49-8.84l-1.38-16c-.35-4.07-3.15-7.16-6.49-7.16h-5.03c-3.34 0-6.14 3.09-6.49 7.16l-1.38 16c-.41 4.72 2.61 8.84 6.49 8.84zm23.95 240h-40.12c-6.68 0-12.28 6.18-12.98 14.32l-6.89 80c-.81 9.45 5.23 17.68 12.98 17.68h53.89c7.75 0 13.79-8.23 12.98-17.68l-6.89-80c-.69-8.14-6.29-14.32-12.97-14.32zM157.35 64a7.99 7.99 0 0 0-7.38 4.92L1.25 425.85C-3.14 436.38 4.6 448 16.02 448h28c7.11 0 13.37-4.69 15.36-11.52L165.03 74.24c1.49-5.12-2.35-10.24-7.68-10.24zm417.4 361.85L426.04 68.92a8 8 0 0 0-7.38-4.92c-5.33 0-9.17 5.12-7.68 10.24l105.65 362.24A15.996 15.996 0 0 0 531.99 448h28c11.41 0 19.16-11.62 14.76-22.15z\"]\n};\nvar faRobot = {\n prefix: 'fal',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M192,416h64V384H192ZM576,224H544V192a95.99975,95.99975,0,0,0-96-96H336V16a16,16,0,0,0-32,0V96H192a95.99975,95.99975,0,0,0-96,96v32H64a31.99908,31.99908,0,0,0-32,32V384a32.00033,32.00033,0,0,0,32,32H96a95.99975,95.99975,0,0,0,96,96H448a95.99975,95.99975,0,0,0,96-96h32a32.00033,32.00033,0,0,0,32-32V256A31.99908,31.99908,0,0,0,576,224ZM96,384H64V256H96Zm416,32a64.18916,64.18916,0,0,1-64,64H192a64.18916,64.18916,0,0,1-64-64V192a63.99942,63.99942,0,0,1,64-64H448a63.99942,63.99942,0,0,1,64,64Zm64-32H544V256h32ZM416,192a64,64,0,1,0,64,64A64.07333,64.07333,0,0,0,416,192Zm0,96a32,32,0,1,1,32-32A31.97162,31.97162,0,0,1,416,288ZM384,416h64V384H384Zm-96,0h64V384H288ZM224,192a64,64,0,1,0,64,64A64.07333,64.07333,0,0,0,224,192Zm0,96a32,32,0,1,1,32-32A31.97162,31.97162,0,0,1,224,288Z\"]\n};\nvar faRocket = {\n prefix: 'fal',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.07337,19.34375C503.85462,13.73438,498.32338,8.20312,492.72964,7c-32.62885-7-58.162-7-83.57017-7C305.39988,0,242.95858,55.09375,196.236,128H94.82015c-16.34567.01562-35.53314,11.875-42.87883,26.48438L2.53125,253.29688A28.125,28.125,0,0,0,0,264a24.00659,24.00659,0,0,0,24.00191,24h92.63266l-10.59373,21.42188c-9.33592,18.91015,4.27733,34.77539,6.15624,36.625l53.75381,53.71874c1.85352,1.86329,17.789,15.47852,36.62885,6.14063l21.37692-10.57813V488a24.14815,24.14815,0,0,0,24.00191,24,28.02956,28.02956,0,0,0,10.625-2.53125l98.72835-49.39063c14.625-7.3125,26.50191-26.5,26.50191-42.85937V315.70312C456.6008,268.9375,511.98156,206.25,511.98156,103,512.07531,77.46875,512.07531,52,505.07337,19.34375ZM36.94134,256l43.59759-87.20312c2.46874-4.82813,8.84373-8.78126,14.28122-8.79688h85.19517c-13.93943,28.0625-31.72065,64-47.56632,96ZM351.84316,417.1875c-.03125,5.4375-4.002,11.84375-8.87694,14.26562L255.95855,475V379.48438c32.00386-15.82813,67.81825-33.59376,95.88461-47.54688Zm14.625-128.28125c-39.50383,19.78125-135.88649,67.4375-177.92157,88.23437l-53.81632-53.54687c20.87692-42.23437,68.537-138.59375,88.22642-178.1875C273.17923,67,330.65374,32,409.15947,32c21.53317,0,42.00384,0,66.63075,4.29688,4.34374,24.85937,4.25,45.20312,4.18749,66.6875C479.97771,181.0625,444.97582,238.45312,366.46813,288.90625ZM367.98962,88.0293a55.99512,55.99512,0,1,0,55.99209,55.99414A56.01691,56.01691,0,0,0,367.98962,88.0293Zm0,79.99218a23.998,23.998,0,1,1,23.99605-23.998A24.02247,24.02247,0,0,1,367.98962,168.02148Z\"]\n};\nvar faRocketLaunch = {\n prefix: 'fal',\n iconName: 'rocket-launch',\n icon: [512, 512, [], \"e027\", \"M368.05829,88.0293a55.99512,55.99512,0,1,0,55.99215,55.99414A56.01694,56.01694,0,0,0,368.05829,88.0293Zm0,79.99218a23.998,23.998,0,1,1,23.99608-23.998A24.02247,24.02247,0,0,1,368.05829,168.02148ZM505.1656,19.29492C503.98982,13.832,498.18123,8.0293,492.71835,6.86133,460.63244,0,435.48793,0,410.45084,0,307.26342,0,245.38261,55.19727,199.18734,127.98828H95.01555c-16.293,0-35.58786,11.92188-42.87692,26.4961L2.73242,253.27344A28.4,28.4,0,0,0,.2168,263.97656a24.00493,24.00493,0,0,0,23.99607,23.998H128.13466a95.98845,95.98845,0,0,1,95.98625,95.99023V487.95508a24.00243,24.00243,0,0,0,23.99608,23.998,28.53884,28.53884,0,0,0,10.70116-2.51562l98.71671-49.40039c14.55663-7.28516,26.46678-26.5625,26.46678-42.83984V312.76758C456.568,266.46094,511.982,204.37109,511.982,101.69336,512.0738,76.54492,512.0738,51.39648,505.1656,19.29492ZM37.15427,255.97656l43.60152-87.18164c1.85156-3.70508,10.11523-8.81054,14.25976-8.81054h85.08c-13.93554,28.06054-31.71287,63.99609-47.55465,95.99218l.0664.45313C131.08778,256.377,61.01753,255.97656,37.15427,255.97656Zm314.8513,161.22071c0,4.13085-5.09179,12.375-8.789,14.22461L256.115,475.01172c0-23.90234-.4043-94.06055-.46094-95.60938l.36719.04688c31.99606-15.82617,67.80267-33.58984,95.85929-47.541l.125.002Zm-102.078-70.51368a127.62739,127.62739,0,0,0-84.6347-84.55468c52.02731-103.98633,99.76945-230.13282,245.158-230.13282,21.164,0,41.29684,0,65.41987,4.1875,4.26562,24.377,4.1914,44.38477,4.11523,65.50977C479.98594,246.66406,353.00752,295.1543,249.92753,346.68359Zm-147.494-26.71289C54.35347,319.9707,2.03125,359.31836.168,480H0v32H32v-.23242C203.617,508.42969,216.8885,396.74414,165.80065,345.40039,150.85925,330.38477,127.22255,319.9707,102.43351,319.9707Zm52.914,109.39844c-12.83593,31.14844-57.63667,49.42969-123.36709,50.55078.06446-3.55469-1.11914-127.88867,70.45307-127.88867,15.09569,0,31.11521,6.29492,40.81051,16.03906C156.05456,380.94336,164.6483,406.80273,155.34753,429.36914Z\"]\n};\nvar faRoute = {\n prefix: 'fal',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M432 352H320c-26.5 0-48-21.5-48-48s21.5-48 48-48h96s96-107 96-160-43-96-96-96-96 43-96 96c0 34.6 40.9 92.2 69.3 128H320c-44.1 0-80 35.9-80 80s35.9 80 80 80h112c26.5 0 48 21.5 48 48s-21.5 48-48 48H122.7c28.4-35.8 69.3-93.4 69.3-128 0-53-43-96-96-96S0 299 0 352s96 160 96 160h336c44.1 0 80-35.9 80-80s-35.9-80-80-80zM352 96c0-35.3 28.7-64 64-64s64 28.7 64 64c0 20.4-30.1 68-64 110.4-34-42.6-64-90.6-64-110.4zM32 352c0-35.3 28.7-64 64-64s64 28.7 64 64c0 20.4-30.1 68-64 110.4-34-42.6-64-90.6-64-110.4zm64-16c-21.2 0-21.1 32 0 32 21.2 0 21.1-32 0-32zM416 80c-21.2 0-21.1 32 0 32 21.2 0 21.1-32 0-32z\"]\n};\nvar faRouteHighway = {\n prefix: 'fal',\n iconName: 'route-highway',\n icon: [448, 512, [], \"f61a\", \"M428.4 269.21c-30.48-45.42-11.8-104.47 13-155.4 3.96-8.13 3.34-17.75-1.87-25.13l-41.17-58.36c-4.56-6.47-11.8-10.14-19.28-10.14-2.74 0-5.52.49-8.21 1.52-15.37 5.88-32.67 8.89-50.26 8.89-29.51 0-59.81-8.47-83.16-26.11C233.48 1.5 228.74 0 224 0s-9.48 1.5-13.44 4.49C187.21 22.13 156.9 30.6 127.39 30.6c-17.59 0-34.89-3.01-50.25-8.89a22.929 22.929 0 0 0-8.21-1.52c-7.48 0-14.72 3.67-19.28 10.13L8.47 88.69c-5.21 7.38-5.83 16.99-1.87 25.13 24.8 50.92 43.47 109.97 13 155.4-37.94 56.52-18.55 139.43 38.81 166.03L223.97 512l165.62-76.76c57.37-26.6 76.75-109.51 38.81-166.03zM72.17 53.91c17.17 5.7 36.12 8.69 55.22 8.69 35.63 0 69.64-10.04 96.61-28.38 26.97 18.35 60.97 28.38 96.61 28.38 19.11 0 38.06-2.99 55.23-8.69l35 49.62c-8.03 16.78-16.01 36.09-21.86 56.48H59.03c-5.86-20.38-13.83-39.7-21.86-56.48l35-49.62zm340.44 306.03c-6 21.44-19.29 38.3-36.47 46.27l-152.16 70.52-152.1-70.52c-17.19-7.97-30.48-24.83-36.48-46.27-7.03-25.12-3-52.37 10.78-72.89 20.25-30.18 24.07-63.23 19.87-95.04h315.92c-4.21 31.81-.38 64.86 19.87 95.05 13.77 20.51 17.79 47.76 10.77 72.88z\"]\n};\nvar faRouteInterstate = {\n prefix: 'fal',\n iconName: 'route-interstate',\n icon: [480, 512, [], \"f61b\", \"M464.83 55.14c-3.07-9.95-11.66-16.67-20.94-16.67-1.73 0-3.49.23-5.24.72-18.23 5.12-37.74 7.96-58.1 7.96-49.12 0-93.61-16.07-126.17-42.11C250.18 1.68 245.09 0 240 0s-10.18 1.68-14.38 5.03c-32.56 26.04-77.05 42.11-126.17 42.11-20.36 0-39.87-2.84-58.1-7.96-1.75-.49-3.51-.72-5.24-.72-9.28 0-17.87 6.73-20.94 16.67C-21.83 175.11-6.68 410.34 240 512 486.68 410.34 501.83 175.11 464.83 55.14zM43.37 72.73c18.29 4.25 37.11 6.41 56.08 6.41 52.1 0 101.71-15.86 140.55-44.79 38.83 28.93 88.45 44.79 140.55 44.79 18.96 0 37.77-2.15 56.05-6.4 4.63 17.18 10.92 48.28 11.28 87.26H32.07c.16-31.56 4.17-61.38 11.3-87.27zm196.64 404.45C97.11 413.26 42.04 296.52 33.32 192h413.33c-2.14 27.18-7.29 56.82-18.08 87.95-30.84 88.91-94.24 155.21-188.56 197.23z\"]\n};\nvar faRouter = {\n prefix: 'fal',\n iconName: 'router',\n icon: [576, 512, [], \"f8da\", \"M173.93 96.81a8.12 8.12 0 0 0 11.23.07C230.55 55 289.48 32 352 32s121.45 23 166.83 64.88a8.12 8.12 0 0 0 11.23-.07l11.53-11.34a8 8 0 0 0-.11-11.56C490 26.18 423 0 352 0S214 26.18 162.52 73.91a8 8 0 0 0-.11 11.56zM352 112a179.26 179.26 0 0 0-120.38 45.8 8 8 0 0 0-.15 11.64l11.53 11.3a8.21 8.21 0 0 0 11.22.14 148.17 148.17 0 0 1 195.64 0 8.21 8.21 0 0 0 11.22-.14l11.49-11.3a8 8 0 0 0-.15-11.64A179.26 179.26 0 0 0 352 112zm176 208H368v-88a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v88H48a48 48 0 0 0-48 48v96a48 48 0 0 0 48 48h480a48 48 0 0 0 48-48v-96a48 48 0 0 0-48-48zm16 144a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-96a16 16 0 0 1 16-16h480a16 16 0 0 1 16 16zm-360-72a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm-80 0a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faRss = {\n prefix: 'fal',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M80 352c26.467 0 48 21.533 48 48s-21.533 48-48 48-48-21.533-48-48 21.533-48 48-48m0-32c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80zm367.996 147.615c-6.448-237.848-198.06-429.164-435.61-435.61C5.609 31.821 0 37.229 0 44.007v8.006c0 6.482 5.146 11.816 11.626 11.994 220.81 6.05 398.319 183.913 404.367 404.367.178 6.48 5.512 11.626 11.994 11.626h8.007c6.778 0 12.185-5.609 12.002-12.385zm-144.245-.05c-6.347-158.132-133.207-284.97-291.316-291.316C5.643 175.976 0 181.45 0 188.247v8.005c0 6.459 5.114 11.72 11.567 11.989 141.134 5.891 254.301 119.079 260.192 260.192.269 6.453 5.531 11.567 11.989 11.567h8.005c6.798 0 12.271-5.643 11.998-12.435z\"]\n};\nvar faRssSquare = {\n prefix: 'fal',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm16 400c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h352c8.822 0 16 7.178 16 16v352zM144 320c8.822 0 16 7.177 16 16s-7.178 16-16 16-16-7.177-16-16 7.178-16 16-16m0-32c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm195.981 96h-8.019c-6.369 0-11.678-4.969-11.993-11.33-5.676-114.835-97.728-206.959-212.639-212.639-6.362-.314-11.33-5.623-11.33-11.993v-8.019c0-6.826 5.683-12.331 12.502-12.006 131.615 6.279 237.203 111.811 243.485 243.485.325 6.819-5.18 12.502-12.006 12.502zm-72.006 0h-8.045c-6.298 0-11.53-4.859-11.986-11.14-5.463-75.234-65.751-135.364-140.824-140.805-6.274-.454-11.12-5.695-11.12-11.985v-8.045c0-7.003 5.957-12.482 12.943-11.995 91.397 6.367 164.66 79.629 171.027 171.027.487 6.986-4.992 12.943-11.995 12.943z\"]\n};\nvar faRubleSign = {\n prefix: 'fal',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M245.712 287.809c80.296 0 138.288-50.323 138.288-128.803C384 81.125 326.009 32 245.712 32H108c-6.627 0-12 5.373-12 12v204H12c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h84v58H12c-6.627 0-12 5.373-12 12v14c0 6.627 5.373 12 12 12h84v84c0 6.627 5.373 12 12 12h19.971c6.627 0 12-5.373 12-12v-84H308c6.627 0 12-5.373 12-12v-14c0-6.627-5.373-12-12-12H139.971v-58.191h105.741zM139.971 71.594h104.643c59.266 0 98.14 31.979 98.14 87.215 0 55.818-38.873 88.96-98.777 88.96H139.971V71.594z\"]\n};\nvar faRuler = {\n prefix: 'fal',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 165.8L556.1 27.9C550.2 17.7 539.5 12 528.5 12c-5.4 0-10.9 1.4-15.9 4.3L15.9 302.8C.7 311.5-4.5 331 4.3 346.2L83.9 484c5.9 10.2 16.6 15.9 27.6 15.9 5.4 0 10.9-1.4 15.9-4.3L624 209.1c15.3-8.6 20.5-28.1 11.7-43.3zM111.5 468.2L31.9 330.3l69-39.8 43.8 75.8c2.2 3.8 7.1 5.1 10.9 2.9l13.8-8c3.8-2.2 5.1-7.1 2.9-10.9l-43.8-75.8 55.2-31.8 27.9 48.2c2.2 3.8 7.1 5.1 10.9 2.9l13.8-8c3.8-2.2 5.1-7.1 2.9-10.9l-27.9-48.2 55.2-31.8 43.8 75.8c2.2 3.8 7.1 5.1 10.9 2.9l13.8-8c3.8-2.2 5.1-7.1 2.9-10.9L294 179.1l55.2-31.8 27.9 48.2c2.2 3.8 7.1 5.1 10.9 2.9l13.8-8c3.8-2.2 5.1-7.1 2.9-10.9l-27.9-48.2L432 99.5l43.8 75.8c2.2 3.8 7.1 5.1 10.9 2.9l13.8-8c3.8-2.2 5.1-7.1 2.9-10.9l-43.8-75.8 69-39.8 79.6 137.8-496.7 286.7z\"]\n};\nvar faRulerCombined = {\n prefix: 'fal',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M480 320H192V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM32 32h128v64h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v48h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v48h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v41.38l-128 128V32zm448 448H54.62l128-128H224v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h48v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h48v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h64v128z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fal',\n iconName: 'ruler-horizontal',\n icon: [640, 512, [], \"f547\", \"M608 128H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm0 224H32V160h80v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h64v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h64v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h64v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h64v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h80v192z\"]\n};\nvar faRulerTriangle = {\n prefix: 'fal',\n iconName: 'ruler-triangle',\n icon: [512, 512, [], \"f61c\", \"M501.65 452.08L59.91 10.35C52.76 3.2 43.97 0 35.35 0 17.31 0 0 14.01 0 35.17V476.9C0 496.29 15.71 512 35.1 512h441.73c31.27 0 46.93-37.8 24.82-59.92zm-21.96 26.01c-.79 1.91-2.04 1.91-2.86 1.91H35.1c-1.71 0-3.1-1.39-3.1-3.1V35.17c0-3.13 3.21-3.17 3.36-3.17.48 0 1.03.08 1.93.98l73.79 73.79-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.32 11.31a7.98 7.98 0 0 0 5.66 2.34c2.05 0 4.09-.78 5.66-2.34l16.97-16.97 45.26 45.26-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31a7.98 7.98 0 0 0 5.66 2.34c2.05 0 4.1-.78 5.66-2.34l16.97-16.97 45.26 45.26-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31a7.98 7.98 0 0 0 5.66 2.34c2.05 0 4.1-.78 5.66-2.34l16.97-16.97 45.25 45.25-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l16.97-16.97 45.25 45.25-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l16.97-16.97 73.79 73.79c.55.61 1.44 1.5.64 3.41zM123.31 228.68c-4.56-4.56-11.5-5.95-17.44-3.47A15.999 15.999 0 0 0 96 239.99v160c0 8.84 7.16 16 16 16h160c6.47 0 12.31-3.89 14.78-9.88a16.048 16.048 0 0 0-3.47-17.44l-160-159.99zM128 383.99V278.62L233.37 384H128z\"]\n};\nvar faRulerVertical = {\n prefix: 'fal',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M224 0H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zM32 480V32h192v64h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v64h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v64h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v64h-56c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v64H32z\"]\n};\nvar faRunning = {\n prefix: 'fal',\n iconName: 'running',\n icon: [448, 512, [], \"f70c\", \"M396 216h-14.53l-9.04-27.12c-8.11-24.31-24.18-44-44.5-58.04C347 117.91 360 96.73 360 72c0-39.7-32.3-72-72-72s-72 32.3-72 72c0 8.34 1.56 16.28 4.2 23.72-8.62-1.98-17.37-3.22-26.13-3.22-20.55 0-40.8 5.53-58.64 16l-46.19 24.07C64.7 147.31 56.7 179.3 71.4 203.88c9.39 15.62 26.48 25.27 44.63 25.27 8.98 0 17.82-2.33 25.65-6.76l18.95-9.85L101.75 344H52c-28.67 0-52 23.33-52 52s23.33 52 52 52h62.91c33.65 0 63.95-19.99 77.2-50.92l19.32-39.74 43.7 19.63-19.64 68.74c-7.87 27.58 8.15 56.42 35.71 64.29 4.8 1.34 9.55 2 14.31 2 23.07 0 43.62-15.5 49.98-37.69l24.4-85.4c7.11-24.86 2.02-50.92-12.01-71.12 6.2 1.45 12.63 2.21 19.2 2.21H396c28.67 0 52-23.33 52-52s-23.33-52-52-52zM288 32c22.09 0 40 17.91 40 40s-17.91 40-40 40-40-17.91-40-40 17.91-40 40-40zM162.69 384.48A51.915 51.915 0 0 1 114.91 416H52c-11.05 0-20-8.95-20-20s8.95-20 20-20h62.91c4.8 0 9.12-2.86 11.03-7.28l26.72-56.88c6.9 12.72 17.07 23.57 29.98 31.43l-19.95 41.21zM396 288h-28.94a51.94 51.94 0 0 1-49.33-35.55l-13.59-40.8c-2.83-8.46-8.21-15.43-15-20.67l-41.47 103.69 52.78 23.72c23.41 10.55 35.72 37.09 28.67 61.73l-24.39 85.38c-2.52 8.78-10.52 14.5-19.22 14.5-1.83 0-3.67-.25-5.52-.77-10.61-3.03-16.77-14.11-13.73-24.73l24.39-85.38c1.64-5.69-1.22-11.81-6.62-14.25 0 0-85.82-39.04-88.71-41.16-17.8-13.09-25.42-36.48-18.51-57.88l37.75-87.57s-16.9-3.77-20.5-3.77c-7.88 0-15.59 2.14-22.5 6.31l-45.25 23.52a20.137 20.137 0 0 1-10.29 2.84c-6.8 0-13.41-3.46-17.16-9.7-5.67-9.48-2.61-21.77 6.86-27.45l45.26-23.52c13.24-7.93 28.06-11.99 43.1-11.99 6.83 0 13.72.84 20.51 2.53l68.19 17.05c28 6.98 50.17 27.52 59.31 54.92l13.59 40.8c1.64 4.91 6.22 8.2 11.39 8.2H396c11.05 0 20 8.95 20 20s-8.95 20-20 20z\"]\n};\nvar faRupeeSign = {\n prefix: 'fal',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M320 60V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v16c0 6.627 5.373 12 12 12h72.614c47.093 0 81.306 20.121 93.376 56H12c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h170.387c-4.043 50.107-41.849 79.554-98.41 79.554H12c-6.627 0-12 5.373-12 12v15.807c0 2.985 1.113 5.863 3.121 8.072l175.132 192.639a11.998 11.998 0 0 0 8.879 3.928h21.584c10.399 0 15.876-12.326 8.905-20.043L62.306 288h23.407c77.219 0 133.799-46.579 138.024-120H308c6.627 0 12-5.373 12-12v-16c0-6.627-5.373-12-12-12h-87.338c-4.96-22.088-15.287-40.969-29.818-56H308c6.627 0 12-5.373 12-12z\"]\n};\nvar faRv = {\n prefix: 'fal',\n iconName: 'rv',\n icon: [640, 512, [], \"f7be\", \"M304 128H112c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16zm-16 96H128v-64h160v64zm288.1-32H600c22.1 0 40-17.9 40-40 0-66.3-53.7-120-120-120H384V16c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v16H64C28.7 32 0 60.7 0 96v197.5c0 17 6.7 33.2 18.7 45.2l69.7 69.7c2.8 2.8 6.1 4.6 9.7 5.9C96.8 420 96 425.9 96 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.6 0 32-14.4 32-32V282.4c0-17-6.7-33.2-18.7-45.2L576.1 192zm18.7 64H416v-64h101.5c8.6 0 16.7 3.4 22.8 9.4l54.5 54.6zM176 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm208-96H239.6C225 364.7 202 352 176 352s-49 12.7-63.6 32h-3.1l-67.9-67.9c-6-6-9.4-14.1-9.4-22.6V96c0-17.7 14.3-32 32-32h456c48.5 0 88 39.5 88 88 0 4.4-3.6 8-8 8H384v224zm112 96c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm112-96h-48.4C545 364.7 522 352 496 352s-49 12.7-63.6 32H416v-96h192v96z\"]\n};\nvar faSack = {\n prefix: 'fal',\n iconName: 'sack',\n icon: [512, 512, [], \"f81c\", \"M334.89 121.63l43.72-71.89C392.77 28.47 377.53 0 352 0H160.15c-25.56 0-40.8 28.5-26.61 49.76l43.57 71.88C-9.27 240.59.08 392.36.08 412c0 55.23 49.11 100 109.68 100h292.5c60.58 0 109.68-44.77 109.68-100 0-19.28 8.28-172-177.05-290.37zM160.15 32H352l-49.13 80h-93.73zM480 412c0 37.49-34.85 68-77.69 68H109.76c-42.84 0-77.69-30.51-77.69-68v-3.36c-.93-59.86 20-173 168.91-264.64h110.1C459.64 235.46 480.76 348.94 480 409z\"]\n};\nvar faSackDollar = {\n prefix: 'fal',\n iconName: 'sack-dollar',\n icon: [512, 512, [], \"f81d\", \"M334.89 121.63l43.72-71.89C392.77 28.47 377.53 0 352 0H160.15c-25.56 0-40.8 28.5-26.61 49.76l43.57 71.88C-9.27 240.59.08 392.36.08 412c0 55.23 49.11 100 109.68 100h292.5c60.58 0 109.68-44.77 109.68-100 0-19.28 8.28-172-177.05-290.37zM160.15 32H352l-49.13 80h-93.73zM480 412c0 37.49-34.85 68-77.69 68H109.76c-42.84 0-77.69-30.51-77.69-68v-3.36c-.93-59.86 20-173 168.91-264.64h110.1C459.64 235.46 480.76 348.94 480 409zM285.61 310.74l-49-14.54c-5.66-1.62-9.57-7.22-9.57-13.68 0-7.86 5.76-14.21 12.84-14.21h30.57a26.78 26.78 0 0 1 13.93 4 8.92 8.92 0 0 0 11-.75l12.73-12.17a8.54 8.54 0 0 0-.65-13 63.12 63.12 0 0 0-34.17-12.17v-17.6a8.68 8.68 0 0 0-8.7-8.62H247.2a8.69 8.69 0 0 0-8.71 8.62v17.44c-25.79.75-46.46 22.19-46.46 48.57 0 21.54 14.14 40.71 34.38 46.74l49 14.54c5.66 1.61 9.58 7.21 9.58 13.67 0 7.87-5.77 14.22-12.84 14.22h-30.61a26.72 26.72 0 0 1-13.93-4 8.92 8.92 0 0 0-11 .76l-12.84 12.06a8.55 8.55 0 0 0 .65 13 63.2 63.2 0 0 0 34.17 12.17v17.55a8.69 8.69 0 0 0 8.71 8.62h17.41a8.69 8.69 0 0 0 8.7-8.62V406c25.68-.64 46.46-22.18 46.57-48.56.02-21.5-14.13-40.67-34.37-46.7z\"]\n};\nvar faSadCry = {\n prefix: 'fal',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm128 421.6V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v177.2c-29 14.5-61.5 22.8-96 22.8s-67-8.3-96-22.8V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v157.6C66.7 390.2 32 327.2 32 256c0-119.1 96.9-216 216-216s216 96.9 216 216c0 71.2-34.7 134.2-88 173.6zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 108c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64zm0 96c-13 0-24-14.7-24-32s11-32 24-32 24 14.7 24 32-11 32-24 32z\"]\n};\nvar faSadTear = {\n prefix: 'fal',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm0-152c-11.2 0-22 1.7-32.7 4.1-7.2-12.6-16.1-26.5-28.1-42.4-9-12.1-29.4-12-38.4 0-29.7 39.6-44.8 69-44.8 87.3 0 34.7 28.7 63 64 63s64-28.3 64-63c0-4.4-1-9.5-2.7-15.1 6.1-1.2 12.3-1.9 18.7-1.9 34.9 0 67.8 15.4 90.2 42.2 5.3 6.4 15.4 8 22.5 2 6.8-5.7 7.7-15.8 2-22.5C334.2 339.6 292.4 320 248 320zm-80 80c-17.7 0-32-13.9-32-31 0-7.7 10-28.8 32-59.5 22 30.7 32 51.8 32 59.5 0 17.1-14.3 31-32 31z\"]\n};\nvar faSalad = {\n prefix: 'fal',\n iconName: 'salad',\n icon: [512, 512, [], \"f81e\", \"M495.82 288h5A110.13 110.13 0 0 0 512 240c0-33.16-14.77-62.69-37.75-83.21C459 103.33 410.38 64 352 64c-3.63 0-7.05.77-10.61 1.07C323.6 26.74 285 0 240 0s-83.6 26.74-101.39 65.07c-3.56-.3-7-1.07-10.61-1.07A128 128 0 0 0 0 192c0 38.58 17.43 72.66 44.52 96H16.18C7 288-.74 295.72.06 304.84 6.7 381.21 58.18 444.23 128 468.69V480a32.16 32.16 0 0 0 32.21 32h192.25c17.7 0 31.54-14.33 31.54-32v-11.51c69.49-24.62 121.32-87.49 127.94-163.65.8-9.12-6.94-16.84-16.12-16.84zM480 240a78.45 78.45 0 0 1-16.71 48H336.71A78.51 78.51 0 0 1 320 240a80 80 0 0 1 160 0zM32 192c0-35.13 23-104.78 128-96 27.87-63.73 65.28-64 80-64 14.18 0 52 0 80 64 35.07-2.93 76.19-1.1 106 35.35a110.79 110.79 0 0 0-26-3.35 112.12 112.12 0 0 0-112 112 110.27 110.27 0 0 0 11.09 48H256V104a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v161.37l-111-111a8 8 0 0 0-11.31 0l-11.35 11.29a8 8 0 0 0 0 11.31l111 111H128A96.11 96.11 0 0 1 32 192zm341.79 246.34L352 445.89V480H160v-34l-21.23-7.51C85.11 419.7 45.74 374.27 34.59 320h442.82c-11.12 54.07-50.27 99.43-103.62 118.34z\"]\n};\nvar faSandwich = {\n prefix: 'fal',\n iconName: 'sandwich',\n icon: [512, 512, [], \"f81f\", \"M480 32H32A32 32 0 0 0 0 64v96a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm0 128H32V64h448zm0 160H32a32 32 0 0 0-32 32v96a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32v-96a32 32 0 0 0-32-32zm-84.85 32L352 380.77 308.85 352zM480 448H32v-96h219.16l92 61.32a16 16 0 0 0 17.76 0l92-61.32H480zm24.16-192.19c-23-1.11-35.09-7.19-48.94-14.12-12.09-6.05-68.1-37.12-142.19 0-64.15 32.14-112.55.58-113.72 0-12.1-6.06-68.18-37.12-142.4 0-13.88 6.92-26 13-49.07 14.13a8.08 8.08 0 0 0-7.84 8v16a8 8 0 0 0 8.29 8c30.52-1.32 47.67-9.88 62.93-17.51 1.17-.58 49.49-32.14 113.78 0 74.14 37.07 130.06 6.15 142.34 0 64.15-32.14 112.4-.58 113.57 0 15.23 7.62 32.34 16.19 62.8 17.51a8 8 0 0 0 8.29-8v-16a8.1 8.1 0 0 0-7.84-8.01z\"]\n};\nvar faSatellite = {\n prefix: 'fal',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.62516,264.79688a31.98911,31.98911,0,0,1,0,45.10937l-96.6858,96.6875a31.8365,31.8365,0,0,1-44.99921,0l-45.99919-46c9.99982,48.20313,3.68743,99-20.12465,143.3125A15.39834,15.39834,0,0,1,280.94156,512a16.79636,16.79636,0,0,1-11.906-4.90625L148.13139,386.5l-37.81184,37.79688c.71874,2.5,1.625,5,1.625,7.79687a31.99944,31.99944,0,1,1-31.99944-32c2.78121,0,5.28116.90625,7.78112,1.60937l37.90558-37.90624L4.9464,243.09375C-2.67846,235.5-1.366,222.40625,8.0401,217.29688a211.415,211.415,0,0,1,142.59124-20.89063l-45.3117-45.3125a32.02746,32.02746,0,0,1,0-45.09375l96.717-96.70312A31.56644,31.56644,0,0,1,224.5363,0a32.04621,32.04621,0,0,1,22.59335,9.29688l70.81126,70.90624,70.78-70.79687a31.87473,31.87473,0,0,1,45.218,0L502.62516,78a32.04531,32.04531,0,0,1,0,45.29688l-70.81125,70.79687Zm-267.3078,11.79687a179.96533,179.96533,0,0,0-191.99663-40.5L275.94164,468.70312C301.1287,403.29688,285.72272,327,235.31736,276.59375Zm-107.27937-148,70.68626,70.8125,96.59205-96.60937-70.78-70.70313Zm91.49839,95.20313A209.36433,209.36433,0,0,1,258.03571,254c11.906,11.90625,21.40587,25.09375,29.90572,38.79688L480.03181,100.70312,411.31427,32Zm260.58918,63.5L409.3143,216.59375l-96.59205,96.60937L383.62725,384Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fal',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M346.58818,455.90644c8.31269,8.3906,6.90641,22.7968-3.50008,28.39053A233.00967,233.00967,0,0,1,68.17549,443.79711c-74.408-74.39037-87.90828-186.70249-40.50093-274.88969a16.87606,16.87606,0,0,1,15.2191-8.90622,18.51882,18.51882,0,0,1,13.09405,5.40623L189.99081,299.407l35.59457-35.60926c-.68752-2.59374-1.59379-5-1.59379-7.79685a32.00074,32.00074,0,1,1,32.00074,31.9999c-2.81256,0-5.21887-.90625-7.81268-1.59375l-35.59457,35.59363Zm-36.5946,8.68747L47.39376,202.00106c-30.71946,74.0935-14.12533,161.70257,43.376,219.20238a199.69239,199.69239,0,0,0,142.00329,58.79667C254.92981,480.00011,289.52436,473.09388,309.99358,464.59391Zm202.00467-152.8901a8.08961,8.08961,0,0,1-8.09394,8.2031H487.90394a7.97613,7.97613,0,0,1-7.90643-7.90623C475.90367,159.20433,352.68207,35.70475,199.89729,31.90789a7.9254,7.9254,0,0,1-7.90644-7.90622V8.09547A8.07635,8.07635,0,0,1,200.17854.00175C370.18247,4.29861,507.68565,141.79814,511.99825,311.70381Zm-96.096,0a8.11591,8.11591,0,0,1-8.12519,8.2031H391.99548a8.03981,8.03981,0,0,1-8.00019-7.81248c-3.59383-99.79653-84.31445-179.99938-184.223-183.99937a8.098,8.098,0,0,1-7.78143-8V104.09514a8.00862,8.00862,0,0,1,8.18769-8.09372C317.18125,100.29828,411.68343,194.70421,415.90228,311.70381Z\"]\n};\nvar faSausage = {\n prefix: 'fal',\n iconName: 'sausage',\n icon: [512, 512, [], \"f820\", \"M455.72 72.83l14.92-44.75A21.34 21.34 0 0 0 450.4 0h-68.8a21.34 21.34 0 0 0-20.24 28.08l14.92 44.75A95.83 95.83 0 0 0 320 160c0 88.22-71.78 160-160 160a95.83 95.83 0 0 0-87.17 56.28l-44.75-14.92C10.49 355.5 0 371.25 0 381.6v68.8c0 9.64 10.48 26.1 28.08 20.24l44.75-14.92A95.83 95.83 0 0 0 160 512c194.09 0 352-157.91 352-352a95.83 95.83 0 0 0-56.28-87.17zM64 424.94L32 435.6v-39.2l32 10.66zM435.6 32l-10.66 32h-17.88L396.4 32zM160 480a64 64 0 0 1 0-128c105.87 0 192-86.13 192-192a64 64 0 0 1 128 0c0 176.45-143.55 320-320 320zm240-320a16 16 0 0 0-16 16c0 114.69-93.31 208-208 208a16 16 0 0 0 0 32c132.34 0 240-107.66 240-240a16 16 0 0 0-16-16z\"]\n};\nvar faSave = {\n prefix: 'fal',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM288 64v96H96V64h192zm128 368c0 8.822-7.178 16-16 16H48c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h16v104c0 13.255 10.745 24 24 24h208c13.255 0 24-10.745 24-24V64.491a15.888 15.888 0 0 1 7.432 4.195l83.882 83.882A15.895 15.895 0 0 1 416 163.882V432zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 144c-30.879 0-56-25.121-56-56s25.121-56 56-56 56 25.121 56 56-25.121 56-56 56z\"]\n};\nvar faSaxHot = {\n prefix: 'fal',\n iconName: 'sax-hot',\n icon: [640, 512, [], \"f8db\", \"M143.93 168.1c-18-26.76-33.27-49.41-34.11-50.57l-10.27-14.22-10.06 14.44C69.64 146.25 56.67 167 56.21 192h32.11c.32-9.61 3.92-19.13 11.6-32 6.19 9.18 13.73 20.4 21.52 32H192l-32-48zM37.41 192l-.14-.44c-3.6-11.44-5.27-21.18-5.27-30.64 0-23.82 24-71.55 64.15-115.63a392.69 392.69 0 0 1 30.71 37l24.39 33.6 26.28-32.13q3.25-4 6.62-7.84c25.13 32.53 39.85 70.43 39.85 85 0 9.46-1.68 19.2-5.27 30.64l-.14.44h32.95c2.55-10 4.46-20.25 4.46-31.08 0-30.45-29.72-93.23-71.12-131.66a343 343 0 0 0-32.12 34.27A442.25 442.25 0 0 0 96 0C39.85 52.1 0 120 0 160.92 0 171.75 1.91 182 4.46 192zM120 304a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm515.28-171.27L592 73.37A32 32 0 0 0 569.33 64H522.5a64 64 0 0 0-45.25 18.74l-29.76 27.62-23.09-23.1a8 8 0 0 0-11.32 0l-11.31 11.32a8 8 0 0 0 0 11.31L424 132.13l-23.48 21.78-21.39-21.39a8 8 0 0 0-11.31 0l-11.32 11.31a8 8 0 0 0 0 11.32l20.55 20.54-23.48 21.78-19.69-19.7a8 8 0 0 0-11.32 0l-11.31 11.32a8 8 0 0 0 0 11.31l18.85 18.85L248 296a25.41 25.41 0 0 1-39.76-31l5.48-9H232a8 8 0 0 0 8-8v-16a7.8 7.8 0 0 0-7-7.57l.27-.43H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h4.93C6.08 290.78 0 329.24 0 352c0 70.24 57.33 160 160 160 94.44 0 103.7-35.78 376-352h88c14.22 0 21.36-17.19 11.28-27.27zM536 128h-14.68l-9.58 11.13c-49.65 57.66-90.57 106-124.86 146.53C234 466.3 221 480 160 480c-83.52 0-128-74.34-128-128 0-21.08 6.5-60.82 13.6-96h132.26c-9 21.26-5.13 45.92 11.57 62.62A57 57 0 0 0 230 335.44c15.33 0 29.75-6 39.73-16l230.14-214.07A31.83 31.83 0 0 1 522.5 96h46.36l23.37 32z\"]\n};\nvar faSaxophone = {\n prefix: 'fal',\n iconName: 'saxophone',\n icon: [640, 512, [], \"f8dc\", \"M635.28 100.73L592 41.37A32 32 0 0 0 569.33 32H522.5a64 64 0 0 0-45.25 18.74l-29.77 27.62-23.09-23.1a8 8 0 0 0-11.31 0l-11.31 11.32a8 8 0 0 0 0 11.31L424 100.13l-23.48 21.78-21.39-21.39a8 8 0 0 0-11.31 0l-11.32 11.31a8 8 0 0 0 0 11.32l20.54 20.54-23.47 21.78-19.7-19.7a8 8 0 0 0-11.31 0l-11.31 11.32a8 8 0 0 0 0 11.31l18.85 18.85L256 256a25.41 25.41 0 0 1-39.76-31L256 160h8a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h19.46C18.64 191.92 0 280.13 0 320c0 70.24 57.33 160 160 160 94.44 0 103.69-35.78 376-352h88c14.22 0 21.36-17.19 11.28-27.27zM536 96h-14.68l-9.58 11.13c-49.65 57.66-90.57 106-124.86 146.53C234 434.3 221 448 160 448c-83.52 0-128-74.34-128-128 0-34.34 17.27-118.78 26.3-151.48l2.36-8.52h157.81l-29.67 48.49a57.41 57.41 0 0 0 49.2 86.95c15.33 0 29.75-6 39.73-16L499.87 73.37A31.83 31.83 0 0 1 522.5 64h46.36l23.37 32zM104 288a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm16-80a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faScalpel = {\n prefix: 'fal',\n iconName: 'scalpel',\n icon: [544, 512, [], \"f61d\", \"M511.45 13.17C498.87 4.19 484.31 0 469.7 0c-23.06 0-46.27 10.44-62.13 28.97L183.68 290.6c-5.79 6.77-4.9 15.34-.5 21.57L0 512h.37c101.37 0 198.37-34.12 272.96-94.68.23-.19.46-.37.69-.56 30.39-24.9 47.16-59.96 52.22-96.75h17.57c10.41 0 20.3-4.55 27.08-12.47l154.47-180.49c29.31-34.23 23.6-87.13-13.91-113.88zm-258.28 379.3c-49.49 40.19-109.26 67.52-173.46 79.93L219.41 320h75.21c-4.94 28.79-19.33 54.35-41.45 72.47zm247.88-286.23L346.58 286.73c-.69.81-1.7 1.28-2.77 1.28H228.02L431.88 49.78C441.41 38.64 455.54 32 469.7 32c8.54 0 16.54 2.5 23.17 7.22 10.54 7.52 17.22 18.75 18.79 31.62 1.56 12.79-2.3 25.7-10.61 35.4z\"]\n};\nvar faScalpelPath = {\n prefix: 'fal',\n iconName: 'scalpel-path',\n icon: [640, 512, [], \"f61e\", \"M344 480h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h80c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm144 0h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h80c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm144 0h-80c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h80c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM511.45 13.17C498.87 4.19 484.31 0 469.7 0c-23.06 0-46.27 10.44-62.13 28.97L183.68 290.6c-5.79 6.77-4.9 15.34-.5 21.57L0 512h.38c101.37 0 198.38-34.12 272.96-94.68.23-.19.46-.37.69-.56 30.39-24.9 47.16-59.96 52.22-96.75h17.57c10.41 0 20.3-4.55 27.08-12.47l154.47-180.49c29.3-34.23 23.59-87.13-13.92-113.88zm-258.28 379.3c-49.49 40.19-109.26 67.52-173.46 79.93L219.41 320h75.21c-4.94 28.79-19.33 54.35-41.45 72.47zm247.88-286.23L346.58 286.73c-.69.81-1.7 1.28-2.77 1.28H228.02L431.88 49.78C441.41 38.64 455.54 32 469.7 32c8.54 0 16.54 2.5 23.17 7.22 10.54 7.52 17.22 18.75 18.79 31.62 1.56 12.79-2.3 25.7-10.61 35.4z\"]\n};\nvar faScanner = {\n prefix: 'fal',\n iconName: 'scanner',\n icon: [640, 512, [], \"f488\", \"M368 64H112C50.1 64 0 114.1 0 176c0 50.3 33.3 92.3 78.9 106.5L6.4 408C-6.9 431 1 460.3 24 473.6l55.4 32c7.6 4.4 15.8 6.4 24 6.4 16.6 0 32.7-8.6 41.6-24l60-104h67c26.5 0 48-21.5 48-48v-48h48c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM117.3 472c-2.9 5-8.1 8-13.9 8-2.8 0-5.5-.7-8-2.2l-55.4-32c-5-2.9-6.8-7.3-7.5-9.7s-1.3-7.1 1.6-12.1l78.5-136h110.8L117.3 472zM288 336c0 8.8-7.2 16-16 16h-48.5l37-64H288v48zm64-80H112c-44.1 0-80-35.9-80-80s35.9-80 80-80h240v160zm280 192H456c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-384H456c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8zm0 288H456c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0-192H456c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-160H456c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm0 288H456c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faScannerImage = {\n prefix: 'fal',\n iconName: 'scanner-image',\n icon: [640, 512, [], \"f8f3\", \"M80 408h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8H80a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8zm96 0h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8zm444.69-138.88L17.52 32.66A8 8 0 0 0 7 36.83L.66 51.52A8 8 0 0 0 4.83 62l576.39 226H32a32 32 0 0 0-32 32v128a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V298.5a32.08 32.08 0 0 0-19.31-29.38zM608 384v64H32V320h576z\"]\n};\nvar faScannerKeyboard = {\n prefix: 'fal',\n iconName: 'scanner-keyboard',\n icon: [576, 512, [], \"f489\", \"M400 96H16c-8.8 0-16 7.2-16 16v169.4c0 4.2 1.7 8.3 4.7 11.3L32 320v144c0 26.5 21.5 48 48 48h256c26.5 0 48-21.5 48-48V320l27.3-27.3c3-3 4.7-7.1 4.7-11.3V112c0-8.8-7.2-16-16-16zm-16 178.7l-32 32V464c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V306.7l-9.4-9.4L32 274.7V128h352v146.7zM96 256h224c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16zm16-64h192v32H112v-32zm72 128h-80c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm128 0h-80c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-128 64h-80c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm128 0h-80c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM256 8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h64V8zm64 0c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56h32V8zm248-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm-96 0h-16c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm-64 0h-48c-4.4 0-8 3.6-8 8v56h64V8c0-4.4-3.6-8-8-8z\"]\n};\nvar faScannerTouchscreen = {\n prefix: 'fal',\n iconName: 'scanner-touchscreen',\n icon: [576, 512, [], \"f48a\", \"M400 96H16c-8.8 0-16 7.2-16 16v169.4c0 4.2 1.7 8.3 4.7 11.3L32 320v144c0 26.5 21.5 48 48 48h256c26.5 0 48-21.5 48-48V320l27.3-27.3c3-3 4.7-7.1 4.7-11.3V112c0-8.8-7.2-16-16-16zm-16 178.7l-32 32V464c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V306.7l-9.4-9.4L32 274.7V128h352v146.7zM112 448h192c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm16-256h160v224H128V192zM320 8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56h32V8zm-64 0c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56h64V8zm312-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm-96 0h-16c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8zm-64 0h-48c-4.4 0-8 3.6-8 8v56h64V8c0-4.4-3.6-8-8-8z\"]\n};\nvar faScarecrow = {\n prefix: 'fal',\n iconName: 'scarecrow',\n icon: [448, 512, [], \"f70d\", \"M256 120c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-64-16c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm253.7 82.3L419.3 160l18.3-18.3c5-5 1.5-13.7-5.7-13.7H320V96c0-53-43-96-96-96s-96 43-96 96v32H16c-7.1 0-10.7 8.6-5.7 13.7L28.7 160 2.3 186.3c-3.1 3.1-3.1 8.2 0 11.3L28.7 224l-18.3 18.3c-5 5-1.5 13.7 5.7 13.7h106.1l-26 141.3c-2.1 12.7 11.1 22.9 22.9 16.9l32.7-24.2c9.1-6.8 17-1.3 24.1 2.5V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V392.5c7.6-4 15.1-9.2 24.1-2.5l32.7 24.2c11.9 6 25-4.3 22.9-16.9L325.9 256H432c7.1 0 10.7-8.6 5.7-13.7L419.3 224l26.3-26.3c3.2-3.2 3.2-8.2.1-11.4zM160 96c0-35.3 28.7-64 64-64s64 28.7 64 64v32c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32zm80 384h-32v-70.4c9.2 4.9 11.2 6.5 16 6.5 4.7 0 6.5-1.5 16-6.5zm134.1-256h-86.6l25.4 138.7c-7.8-5.1-16.9-7.8-26.3-7.8-7.9 0-15.7 2-22.6 5.6l-40 21.3-40-21.3c-7-3.7-14.7-5.6-22.6-5.6-9.4 0-18.5 2.7-26.3 7.8L160.5 224H73.9l-32-32 32-32h62.9c11.1 19 31.5 32 55.1 32h64c23.6 0 44-13 55.1-32h63l32 32z\"]\n};\nvar faScarf = {\n prefix: 'fal',\n iconName: 'scarf',\n icon: [512, 512, [], \"f7c1\", \"M509.7 395.7l-68.8-68.6-74.4-74.1 24.1-24.7c48.6-53.7 13-113.3 11.5-115.8l-43.6-73.1c-4.3-7.2-9.9-13.3-16.8-18C320.1 6.9 288.3 0 256.6 0h-1.2c-31.7 0-63.6 6.9-85.2 21.5-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.1c-1.5 2.5-37.1 62.1 11.5 115.8l24.1 24.7-74.3 74.2-68.8 68.4c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l68.8-68.6 22.6 22.6-68.8 68.6c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l68.8-68.6 22.5 22.5-68.7 69.7c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0L256 366l140.5 143.7c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-68.7-69.7 22.5-22.5 68.8 68.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-68.8-68.6 22.6-22.6 68.8 68.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.3-3.1 3.3-8.1.2-11.3zM184 394.6l-67.5-67.4 51.4-51.3 66 67.5-49.9 51.2zm144 0L145.1 206.8c-31.9-35.2-10.4-73.6-7.7-77.9l43.6-73C192 37.4 233.3 32 255.4 32h1.2c22.1 0 63.4 5.4 74.5 23.8l43.6 73c2.6 4.3 24.1 42.7-7.7 77.9l-23 23.6-65.3-65.2 41.8-41.7c8.2-8.2 11.3-20.2 8.2-31.4-3.2-11.2-12.2-19.7-23.5-22.4-17.9-4.2-34.2-5.3-49.1-5.2-14.8 0-31.1 1-49.1 5.2-11.3 2.6-20.3 11.2-23.5 22.4-3.2 11.2-.1 23.2 8.2 31.4l203.9 203.7-67.6 67.5zM214.2 100.9c11.4-2.7 25.8-4.5 41.8-4.6 16 0 30.4 1.9 41.8 4.6L256 142.6l-41.8-41.7z\"]\n};\nvar faSchool = {\n prefix: 'fal',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M352 192h-16v-32c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v56c0 4.42 3.58 8 8 8h40c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm16 128h-96c-26.51 0-48 21.49-48 48v136c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v136c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V368c0-26.51-21.49-48-48-48zm240-128h-96v-53.34c0-10.7-5.35-20.69-14.25-26.62l-160-106.67C332.38 1.79 326.19 0 320 0s-12.38 1.79-17.75 5.37l-160 106.67A32.02 32.02 0 0 0 128 138.67V192H32c-17.67 0-32 14.33-32 32v280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V224h96v280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V138.67L320 32l160 106.67V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V224h96v280c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V224c0-17.67-14.33-32-32-32zM320 96c-52.94 0-96 43.06-96 96s43.06 96 96 96 96-43.06 96-96-43.06-96-96-96zm0 160c-35.28 0-64-28.7-64-64s28.72-64 64-64 64 28.7 64 64-28.72 64-64 64z\"]\n};\nvar faScrewdriver = {\n prefix: 'fal',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M416 192l96-128-64-64-128 96v73.38l-98.49 98.49c-12.24-7.85-26.24-11.86-40.27-11.86-19.13 0-38.26 7.3-52.86 21.89L10.95 395.33c-14.6 14.6-14.6 38.27 0 52.87l52.86 52.86c7.3 7.3 16.87 10.95 26.43 10.95 9.57 0 19.13-3.65 26.43-10.95L234.1 383.63c25.3-25.3 28.59-64.2 10.03-93.13l98.5-98.5H416zm-64-80l93-69.75L469.75 67 400 160h-48v-48zM211.41 360.92L93.98 478.36a5.192 5.192 0 0 1-3.74 1.55c-1 0-2.46-.27-3.74-1.55L33.65 425.5a5.3 5.3 0 0 1 0-7.48l117.43-117.43c8.06-8.06 18.77-12.5 30.17-12.5 11.4 0 22.11 4.44 30.17 12.5 16.62 16.63 16.62 43.7-.01 60.33z\"]\n};\nvar faScroll = {\n prefix: 'fal',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M608 352h-64V112C544 50.25 493.75 0 432 0H80C35.88 0 0 35.89 0 80v80c0 17.64 14.34 32 32 32h96v224c0 51.11 40.25 92.62 90.66 95.46v.54h312C590.94 512 640 462.95 640 402.67V384c0-17.64-14.34-32-32-32zM128 160H32V80c0-26.47 21.53-48 48-48s48 21.53 48 48v80zm160 256c0 35.3-28.72 64-64 64s-64-28.7-64-64V80c0-18-5.97-34.62-16.03-48H432c44.12 0 80 35.89 80 80v240H320c-17.66 0-32 14.36-32 32v32zm320-13.33c0 42.64-34.69 77.33-77.34 77.33H295.03c15.35-17.02 24.97-39.32 24.97-64v-32h288v18.67z\"]\n};\nvar faScrollOld = {\n prefix: 'fal',\n iconName: 'scroll-old',\n icon: [640, 512, [], \"f70f\", \"M616 352h-72v-73.38L521.38 256 544 233.38v-82.75L521.38 128l22.25-22.28-.97-7.77C535.59 42.11 488.03 0 432 0H80C35.88 0 0 35.89 0 80v88c0 13.23 10.78 24 24 24h104v41.38L150.62 256 128 278.62v132.81c0 51.28 37.84 95.23 86.16 100.08 1.5.15 3 .14 4.5.23v.26h312C590.94 512 640 462.95 640 402.67V376c0-13.23-10.78-24-24-24zM128 160H32V80c0-26.47 21.53-48 48-48s48 21.53 48 48v80zm32 251.44V291.88L195.88 256 160 220.12V80c0-18-5.97-34.62-16.03-48H432c37.41 0 69.56 26.39 77.59 62.5L476.12 128 512 163.88v56.25L476.12 256 512 291.88V352h-73.38L416 374.62 393.38 352H320c-17.66 0-32 14.36-32 32v32c0 18.05-7.69 35.34-21.06 47.47-13.59 12.3-31.12 18.09-49.59 16.2-32.16-3.22-57.35-33.19-57.35-68.23zm448-8.77c0 42.64-34.69 77.33-77.34 77.33H294.83c15.82-17.55 25.17-40.18 25.17-64v-32h60.12L416 419.88 451.88 384H608v18.67z\"]\n};\nvar faScrubber = {\n prefix: 'fal',\n iconName: 'scrubber',\n icon: [496, 512, [], \"f2f8\", \"M248 40c119.3 0 216 96.6 216 216 0 119.3-96.6 216-216 216-119.3 0-216-96.6-216-216 0-119.3 96.6-216 216-216m0-32C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 216c17.6 0 32 14.4 32 32s-14.4 32-32 32-32-14.4-32-32 14.4-32 32-32m0-32c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"]\n};\nvar faScythe = {\n prefix: 'fal',\n iconName: 'scythe',\n icon: [640, 512, [], \"f710\", \"M608 0H338.84C192 0 64 64 0 224h560.18l-13.06 64H392a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h148.6l-36.54 179.1a8 8 0 0 0 6.2 9.47l15.65 3.26a7.68 7.68 0 0 0 1.64.17 8 8 0 0 0 7.82-6.37L639.22 39A32 32 0 0 0 608 0zm-35.62 192H50.4C122.62 61.06 244.73 32 338.84 32H608z\"]\n};\nvar faSdCard = {\n prefix: 'fal',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm32 448c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V141.3L141.3 32H320c17.6 0 32 14.4 32 32v384zm-64-288h32V64h-32v96zm-64 0h32V64h-32v96zm-64 0h32V64h-32v96z\"]\n};\nvar faSearch = {\n prefix: 'fal',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208 32s176 78.7 176 176-78.7 176-176 176z\"]\n};\nvar faSearchDollar = {\n prefix: 'fal',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M235.09 199.42l-45-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.62.63-42.67 20.55-42.67 45.07 0 19.97 12.98 37.81 31.58 43.39l45 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.11c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.62-.63 42.67-20.54 42.67-45.07 0-19.97-12.98-37.81-31.58-43.39zm273.38 282.16l-128.99-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3c34.3-37.1 55.3-86.6 55.3-141.09C415.98 93.1 322.88 0 207.99 0S0 93.1 0 207.99c0 114.89 93.1 207.99 207.99 207.99 54.5 0 103.99-21 141.09-55.2v10.2c0 3.2 1.3 6.2 3.5 8.5l128.99 128.99c4.7 4.7 12.3 4.7 17 0l9.9-9.9c4.71-4.69 4.71-12.29 0-16.99zm-300.48-97.6C110.7 383.98 32 305.29 32 207.99 32 110.69 110.7 32 207.99 32s175.99 78.7 175.99 175.99c0 97.3-78.69 175.99-175.99 175.99z\"]\n};\nvar faSearchLocation = {\n prefix: 'fal',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M208 96c-49.53 0-89.81 40.3-89.81 89.83 0 34.66 38.34 87.2 70.53 125.2 4.81 5.7 11.84 8.97 19.28 8.97s14.47-3.27 19.31-8.97c32.16-38 70.5-90.55 70.5-125.2C297.81 136.3 257.53 96 208 96zm0 188.23c-35.31-42.7-57.81-80.89-57.81-98.41 0-31.89 25.94-57.83 57.81-57.83s57.81 25.94 57.81 57.83c0 17.52-22.5 55.71-57.81 98.41zM208 160c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm300.47 321.58l-128.99-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3c34.3-37.1 55.3-86.6 55.3-141.09C415.98 93.1 322.88 0 207.99 0S0 93.1 0 207.99c0 114.89 93.1 207.99 207.99 207.99 54.5 0 103.99-21 141.09-55.2v10.2c0 3.2 1.3 6.2 3.5 8.5l128.99 128.99c4.7 4.7 12.3 4.7 17 0l9.9-9.9c4.71-4.69 4.71-12.29 0-16.99zm-300.48-97.6C110.7 383.98 32 305.29 32 207.99 32 110.69 110.7 32 207.99 32s175.99 78.7 175.99 175.99c0 97.3-78.69 175.99-175.99 175.99z\"]\n};\nvar faSearchMinus = {\n prefix: 'fal',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M307.8 223.8h-200c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12zM508.3 497L497 508.3c-4.7 4.7-12.3 4.7-17 0l-129-129c-2.3-2.3-3.5-5.3-3.5-8.5v-8.5C310.6 395.7 261.7 416 208 416 93.8 416 1.5 324.9 0 210.7-1.5 93.7 93.7-1.5 210.7 0 324.9 1.5 416 93.8 416 208c0 53.7-20.3 102.6-53.7 139.5h8.5c3.2 0 6.2 1.3 8.5 3.5l129 129c4.7 4.7 4.7 12.3 0 17zM384 208c0-97.3-78.7-176-176-176S32 110.7 32 208s78.7 176 176 176 176-78.7 176-176z\"]\n};\nvar faSearchPlus = {\n prefix: 'fal',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M319.8 204v8c0 6.6-5.4 12-12 12h-84v84c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12v-84h-84c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h84v-84c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12zm188.5 293L497 508.3c-4.7 4.7-12.3 4.7-17 0l-129-129c-2.3-2.3-3.5-5.3-3.5-8.5v-8.5C310.6 395.7 261.7 416 208 416 93.8 416 1.5 324.9 0 210.7-1.5 93.7 93.7-1.5 210.7 0 324.9 1.5 416 93.8 416 208c0 53.7-20.3 102.6-53.7 139.5h8.5c3.2 0 6.2 1.3 8.5 3.5l129 129c4.7 4.7 4.7 12.3 0 17zM384 208c0-97.3-78.7-176-176-176S32 110.7 32 208s78.7 176 176 176 176-78.7 176-176z\"]\n};\nvar faSeedling = {\n prefix: 'fal',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M442.7 32c-95.9 0-176.4 79.4-197.2 185.7C210.5 145.1 144.8 96 69.3 96H0v16c0 132.3 90.9 240 202.7 240H240v120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V288h37.3C421.1 288 512 180.3 512 48V32h-69.3zm-240 288C113 320 39.2 235.2 32.5 128h36.8c89.7 0 163.4 84.8 170.2 192h-36.8zm106.6-64h-36.8C279.2 148.8 353 64 442.7 64h36.8c-6.7 107.2-80.5 192-170.2 192z\"]\n};\nvar faSendBack = {\n prefix: 'fal',\n iconName: 'send-back',\n icon: [640, 512, [], \"f87e\", \"M175 64H79a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm-16 96H95V96h64zm288-16v80h32v-80a48 48 0 0 0-48-48H287v32h144a16 16 0 0 1 16 16zm112 176h-96a16 16 0 0 0-16 16v96a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-96a16 16 0 0 0-16-16zm-16 96h-64v-64h64zm48-160H431a48 48 0 0 0-48 48v160a48 48 0 0 0 48 48h160a48 48 0 0 0 48-48V304a48 48 0 0 0-48-48zm16 208a16 16 0 0 1-16 16H431a16 16 0 0 1-16-16V304a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16zm-416-96v-80h-32v80a48 48 0 0 0 48 48h144v-32H207a16 16 0 0 1-16-16zm64-160V48a48 48 0 0 0-48-48H47A48 48 0 0 0-1 48v160a48 48 0 0 0 48 48h160a48 48 0 0 0 48-48zm-224 0V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v160a16 16 0 0 1-16 16H47a16 16 0 0 1-16-16z\"]\n};\nvar faSendBackward = {\n prefix: 'fal',\n iconName: 'send-backward',\n icon: [512, 512, [], \"f87f\", \"M464,160H208a48,48,0,0,0-48,48V464a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V208A48,48,0,0,0,464,160Zm16,304a16,16,0,0,1-16,16H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16H464a16,16,0,0,1,16,16ZM32,304V48A16,16,0,0,1,48,32H304a16,16,0,0,1,16,16v80h32V48A48,48,0,0,0,304,0H48A48,48,0,0,0,0,48V304a48,48,0,0,0,48,48h80V320H48A16,16,0,0,1,32,304Zm400-80H240a16,16,0,0,0-16,16V432a16,16,0,0,0,16,16H432a16,16,0,0,0,16-16V240A16,16,0,0,0,432,224ZM416,416H256V256H416Z\"]\n};\nvar faSensor = {\n prefix: 'fal',\n iconName: 'sensor',\n icon: [448, 512, [], \"e028\", \"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm32,384a32,32,0,0,1-32,32H64a32,32,0,0,1-32-32V96A32,32,0,0,1,64,64H384a32,32,0,0,1,32,32ZM112,128a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V144A16,16,0,0,0,112,128Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V144A16,16,0,0,0,176,128Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V144A16,16,0,0,0,240,128Z\"]\n};\nvar faSensorAlert = {\n prefix: 'fal',\n iconName: 'sensor-alert',\n icon: [640, 512, [], \"e029\", \"M629.89,368.26l-117.31-203a74.6,74.6,0,0,0-129.15,0l-117.32,203A74.49,74.49,0,0,0,330.68,480H565.32a74.49,74.49,0,0,0,64.57-111.74ZM565.32,448H330.68c-32.76,0-53.25-35.4-36.88-63.73l117.33-203a42.61,42.61,0,0,1,73.75,0l117.32,203C618.57,412.6,598.08,448,565.32,448ZM448,368.17a20,20,0,1,0,20,20A20,20,0,0,0,448,368.17ZM462,248.43h-27.9a10,10,0,0,0-9.95,11l8,79.82a10,10,0,0,0,9.95,9H454a10,10,0,0,0,9.95-9l8-79.82A10,10,0,0,0,462,248.43ZM233.86,448H64a32,32,0,0,1-32-32V96A32,32,0,0,1,64,64H384a32,32,0,0,1,32,32v5a107.62,107.62,0,0,1,32-5,64,64,0,0,0-64-64H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H254.47a108.3,108.3,0,0,1-16.16-21.31C236.33,455.27,235.43,451.55,233.86,448ZM224,144V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0Zm-64,0V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0Zm-64,0V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0Z\"]\n};\nvar faSensorFire = {\n prefix: 'fal',\n iconName: 'sensor-fire',\n icon: [640, 512, [], \"e02a\", \"M544,154.44C531.25,166,522.08,174,508.59,188.5c-26.35-32.29-51-53.82-64.59-66.06C325.57,229.47,320,304.05,320,320c0,88.22,71.78,160,160,160s160-71.78,160-160C640,243.09,551.71,161.41,544,154.44ZM480,448A128.13,128.13,0,0,1,352,320c0-38.25,38.88-102.72,92-154.12a461.15,461.15,0,0,1,51,57.18l12.09,16.22,13-15.5c7.53-9,15.5-17.56,23.75-25.66C583.34,239.06,608,295.72,608,320A128.13,128.13,0,0,1,480,448ZM160,144V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0ZM64,448a32,32,0,0,1-32-32V96A32,32,0,0,1,64,64H384a32,32,0,0,1,32,32v8.61c8.47-7.65,2.43-2.86,30.11-23.4A63.9,63.9,0,0,0,384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H374.1a193.09,193.09,0,0,1-36.8-32ZM224,144V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0ZM96,144V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0ZM524.11,257l-25.94,28.75c-17.21-21.26-11.36-14.29-39.89-46.36C417.4,287,398.63,305.84,398.63,337c0,45,35.45,79,82.47,79a84.65,84.65,0,0,0,47.77-14.58c31.94-21.73,41.85-64.36,23.08-99.19C548.74,296.24,548.68,296.33,524.11,257Zm-43,127c-27.83,0-50.47-17.9-50.47-47,0-14.48,9.37-27.25,28.08-49,2.67,3,38.11,47,38.11,47l22.62-25.07C546.3,353,514.05,384,481.1,384Z\"]\n};\nvar faSensorOn = {\n prefix: 'fal',\n iconName: 'sensor-on',\n icon: [640, 512, [], \"e02b\", \"M528,144a16.16,16.16,0,0,0,7.16-1.68l64-32a16,16,0,0,0-14.32-28.63l-64,32A16,16,0,0,0,528,144Zm96,96H528a16,16,0,1,0,0,32h96a16,16,0,0,0,0-32ZM384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm32,384a32,32,0,0,1-32,32H64a32,32,0,0,1-32-32V96A32,32,0,0,1,64,64H384a32,32,0,0,1,32,32ZM112,128a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V144A16,16,0,0,0,112,128Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V144A16,16,0,0,0,176,128Zm64,0a16,16,0,0,0-16,16V272a16,16,0,0,0,32,0V144A16,16,0,0,0,240,128ZM599.16,401.7l-64-32a16,16,0,0,0-14.32,28.63l64,32a16,16,0,0,0,14.32-28.63Z\"]\n};\nvar faSensorSmoke = {\n prefix: 'fal',\n iconName: 'sensor-smoke',\n icon: [640, 512, [], \"e02c\", \"M586.25,293.61a72.1,72.1,0,0,0-71.58-64.28,71.34,71.34,0,0,0-22.29,3.55,98.67,98.67,0,0,0-168.77,54.79A98.67,98.67,0,0,0,354.67,480H541.33a98.59,98.59,0,0,0,44.92-186.39ZM541.33,448H354.67a66.67,66.67,0,1,1,0-133.33c.46,0,.9.12,1.36.13a66.6,66.6,0,0,1,127.19-37.92,39.83,39.83,0,0,1,68.67,38.85A66.55,66.55,0,0,1,541.33,448ZM224,144V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0ZM64,448a32,32,0,0,1-32-32V96A32,32,0,0,1,64,64H384a32,32,0,0,1,32,32v75.11c1.8-.07,3.52-.44,5.33-.44a131.76,131.76,0,0,1,26.67,3V96a64,64,0,0,0-64-64H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H270a130.94,130.94,0,0,1-27.06-32Zm96-304V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0Zm-64,0V272a16,16,0,0,0,32,0V144a16,16,0,0,0-32,0Z\"]\n};\nvar faServer = {\n prefix: 'fal',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M376 256c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm-40 24c13.255 0 24-10.745 24-24s-10.745-24-24-24-24 10.745-24 24 10.745 24 24 24zm176-128c0 12.296-4.629 23.507-12.232 32 7.603 8.493 12.232 19.704 12.232 32v80c0 12.296-4.629 23.507-12.232 32 7.603 8.493 12.232 19.704 12.232 32v80c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-80c0-12.296 4.629-23.507 12.232-32C4.629 319.507 0 308.296 0 296v-80c0-12.296 4.629-23.507 12.232-32C4.629 175.507 0 164.296 0 152V72c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v80zm-480 0c0 8.822 7.178 16 16 16h416c8.822 0 16-7.178 16-16V72c0-8.822-7.178-16-16-16H48c-8.822 0-16 7.178-16 16v80zm432 48H48c-8.822 0-16 7.178-16 16v80c0 8.822 7.178 16 16 16h416c8.822 0 16-7.178 16-16v-80c0-8.822-7.178-16-16-16zm16 160c0-8.822-7.178-16-16-16H48c-8.822 0-16 7.178-16 16v80c0 8.822 7.178 16 16 16h416c8.822 0 16-7.178 16-16v-80zm-80-224c13.255 0 24-10.745 24-24s-10.745-24-24-24-24 10.745-24 24 10.745 24 24 24zm-64 0c13.255 0 24-10.745 24-24s-10.745-24-24-24-24 10.745-24 24 10.745 24 24 24zm64 240c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fal',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M480 288H320c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V320c0-17.67-14.33-32-32-32zm0 192H320V320h160v160zM128 256C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 224c-52.93 0-96-43.07-96-96 0-52.94 43.07-96 96-96 52.94 0 96 43.06 96 96 0 52.93-43.06 96-96 96zm378.98-278.86L400.07 18.29C392.95 6.1 380.47 0 368 0s-24.95 6.1-32.07 18.29L229.02 201.14c-14.26 24.38 3.56 54.86 32.07 54.86h213.82c28.51 0 46.33-30.48 32.07-54.86zm-27.6 20.39c-.94 1.64-2.45 2.47-4.47 2.47H261.09c-2.02 0-3.53-.83-4.47-2.47-1.21-2.12-.35-3.6.02-4.23L363.55 34.44c.95-1.62 2.44-2.44 4.45-2.44s3.5.82 4.45 2.44L479.36 217.3c.37.63 1.24 2.11.02 4.23z\"]\n};\nvar faShare = {\n prefix: 'fal',\n iconName: 'share',\n icon: [576, 512, [], \"f064\", \"M564.907 196.35L388.91 12.366C364.216-13.45 320 3.746 320 40.016v88.154C154.548 130.155 0 160.103 0 331.19c0 94.98 55.84 150.231 89.13 174.571 24.233 17.722 58.021-4.992 49.68-34.51C100.937 336.887 165.575 321.972 320 320.16V408c0 36.239 44.19 53.494 68.91 27.65l175.998-184c14.79-15.47 14.79-39.83-.001-55.3zm-23.127 33.18l-176 184c-4.933 5.16-13.78 1.73-13.78-5.53V288c-171.396 0-295.313 9.707-243.98 191.7C72 453.36 32 405.59 32 331.19 32 171.18 194.886 160 352 160V40c0-7.262 8.851-10.69 13.78-5.53l176 184a7.978 7.978 0 0 1 0 11.06z\"]\n};\nvar faShareAll = {\n prefix: 'fal',\n iconName: 'share-all',\n icon: [576, 512, [], \"f367\", \"M470.632 201.371L310.63 41.4C290.59 21.36 256 35.44 256 64.03v72.69C140.5 140.56 0 164.89 0 317.79c0 64.98 33.54 118.26 85.11 155.97 24.19 17.7 58.04-4.92 49.69-34.51-27.7-98.19-.38-122.06 121.2-126.42v71.15c0 28.61 34.61 42.64 54.63 22.63l160.002-159.98c12.491-12.499 12.491-32.759 0-45.259zM288 384.001v-103.9c-145.671 1.326-224.979 22.633-184 167.9-31.51-23.05-72-65.11-72-130.21 0-131.425 125.835-148.345 256-149.69v-104.1l160 160-160 160zm278.628-137.373l-160 159.978c-13.454 13.454-33.492 11.509-45.191.106L544 224.001 361.438 41.294c11.695-11.401 31.723-13.362 45.189.105l160 159.974c12.497 12.497 12.497 32.758.001 45.255z\"]\n};\nvar faShareAlt = {\n prefix: 'fal',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-28.6 0-54.2 12.5-71.8 32.3l-95.5-59.7c9.6-23.4 9.7-49.8 0-73.2l95.5-59.7c17.6 19.8 43.2 32.3 71.8 32.3 53 0 96-43 96-96S405 0 352 0s-96 43-96 96c0 13 2.6 25.3 7.2 36.6l-95.5 59.7C150.2 172.5 124.6 160 96 160c-53 0-96 43-96 96s43 96 96 96c28.6 0 54.2-12.5 71.8-32.3l95.5 59.7c-4.7 11.3-7.2 23.6-7.2 36.6 0 53 43 96 96 96s96-43 96-96c-.1-53-43.1-96-96.1-96zm0-288c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm256 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fal',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M288 232c30.9 0 56-25.1 56-56s-25.1-56-56-56-56 25.1-56 56c0 3.2.3 6.5.9 9.7l-53.6 26.8c-9.6-7.8-21.9-12.5-35.2-12.5-30.9 0-56 25.1-56 56s25.1 56 56 56c13.4 0 25.6-4.7 35.2-12.5l53.6 26.8c-.5 3.1-.9 6.4-.9 9.7 0 30.9 25.1 56 56 56s56-25.1 56-56-25.1-56-56-56c-16.1 0-30.6 6.8-40.8 17.7l-49.7-24.9c3.4-11 3.4-22.7 0-33.6l49.7-24.9c10.2 10.9 24.7 17.7 40.8 17.7zm0-80c13.2 0 24 10.8 24 24s-10.8 24-24 24-24-10.8-24-24 10.8-24 24-24zM144 280c-13.2 0-24-10.8-24-24s10.8-24 24-24 24 10.8 24 24-10.8 24-24 24zm144 32c13.2 0 24 10.8 24 24s-10.8 24-24 24-24-10.8-24-24 10.8-24 24-24zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16z\"]\n};\nvar faShareSquare = {\n prefix: 'fal',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M566.633 169.37L406.63 9.392C386.626-10.612 352 3.395 352 32.022v72.538C210.132 108.474 88 143.455 88 286.3c0 84.74 49.78 133.742 79.45 155.462 24.196 17.695 58.033-4.917 49.7-34.51C188.286 304.843 225.497 284.074 352 280.54V352c0 28.655 34.654 42.606 54.63 22.63l160.003-160c12.489-12.5 12.489-32.76 0-45.26zM384 352V248.04c-141.718.777-240.762 15.03-197.65 167.96C154.91 393 120 351.28 120 286.3c0-134.037 131.645-149.387 264-150.26V32l160 160-160 160zm37.095 52.186c2.216-1.582 4.298-3.323 6.735-5.584 7.68-7.128 20.17-1.692 20.17 8.787V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h172.146c6.612 0 11.954 5.412 11.852 12.04-.084 5.446-4.045 10.087-9.331 11.396-9.462 2.343-18.465 4.974-27.074 7.914-1.25.427-2.555.65-3.876.65H48c-8.837 0-16 7.163-16 16v352c0 8.837 7.163 16 16 16h352c8.837 0 16-7.163 16-16v-50.002c0-3.905 1.916-7.543 5.095-9.812z\"]\n};\nvar faSheep = {\n prefix: 'fal',\n iconName: 'sheep',\n icon: [640, 512, [], \"f711\", \"M496 96c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm117.31 11.61L576 89.27V80c0-26.47-21.53-48-48-48h-50.75C470.66 13.38 452.88 0 432 0c-26.47 0-48 21.53-48 48v53.01c-1.24-.36-2.38-.97-3.66-1.25-14.03-3.38-28.38-1.34-40.94 5.41-9.03-5.7-19.72-8.89-31.53-9.17-10.78 0-20.94 2.78-29.91 8.12-18-10.59-41.62-10.58-59.56-.05-18.31-10.89-43.09-10.45-61.16 1-12.28-6.66-26.56-8.7-40.88-5.67-17.03 3.84-31.41 14.97-39.62 30.16-16.94.88-33.06 9.11-44.12 23.12-10.81 13.95-15.06 31.86-12.12 48.95C7.62 213.09 0 229.81 0 247.69c0 17.91 7.5 34.59 20.19 46-3.06 17.3 1.25 35.27 12.12 48.98 10.78 14.02 26.78 22.3 43.78 23.16 4.83 9.1 11.99 16.48 20.41 21.98.14 3.96.33 7.93 1.26 11.81l21.12 87.86C122.34 501.86 135.21 512 150 512h57.53c20.95 0 36.12-19.76 31.02-39.86l-20.29-80.07a57.854 57.854 0 0 0 29.3 7.93c10.62 0 20.88-2.84 29.91-8.17 9.16 5.31 20.62 8.56 31.84 8.02 3.67-.12 7.17-1 10.69-1.77V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V356.83c5.69-3.63 11.01-7.98 15.38-13.51 10.81-13.95 15.06-31.86 12.12-48.95 12.88-11.45 20.5-28.17 20.5-46.05 0-8.54-1.81-16.77-4.97-24.31h92.63c14.91 0 28.81-8.03 36.28-21.02 17.97-31.55 20.06-45.08 20.06-52.52 0-18.35-10.22-34.77-26.69-42.86zM150 480l-19.82-82.44c9.14-.19 18.15-2.34 26.38-6.72 9.03 5.79 19.79 8.77 30.64 8.92L207.53 480H150zm266 0h-64v-84.09c8.85 2.29 18.22 2.72 27.62.68 15.13-3.41 27.89-12.78 36.38-25.42V480zm33.34-206.05l-12.22 6.84 5.16 13.02c8.51 21.38-9.05 44.04-30.59 40.3l-14.16-2.52-4.03 13.78c-5.48 18.83-28.59 28.04-44.84 13.67l-11.44-10.14-10.66 10.95c-8.68 8.94-25.64 12.3-38.12.45l-11.06-10.53-11.03 10.58c-10.31 9.92-27.25 9.91-37.16.16l-11.06-10.92-11.22 10.77c-10.59 10.09-28.12 9.72-38-.47l-10.44-10.83-11.44 9.77c-17.43 14.83-39.91 4.28-45.06-13.95L98 330.92l-14.25 2.56c-21.2 3.8-38.89-18.69-30.34-40.3l5.16-13.02-12.22-6.84c-18.61-10.44-19.64-40.06.31-51.28l12.22-6.84-5.16-13.02c-8.56-21.51 9.19-44.04 30.59-40.3l14.16 2.52 4.03-13.78c5.54-19.02 28.75-27.9 44.84-13.67l11.44 10.14 10.66-10.95c9.91-10.23 27.62-10.58 37.56-.69l11.09 10.97 11.25-10.77c10.28-9.88 27.25-9.89 37.66.02l11.06 10.56 11.06-10.59c10.49-10.05 27.6-10.21 37.97.48l10.44 10.8 11.44-9.75c17.4-14.87 39.91-4.26 45.06 13.95l3.97 13.95 14.25-2.56c21.24-3.85 38.87 18.75 30.34 40.3l-5.16 13.02 12.22 6.84c18.62 10.44 19.64 40.07-.31 51.28zm142.82-86.87c-1.75 3.08-4.94 4.92-8.5 4.92H476.55c.14-13.93-4.14-27.67-12.86-38.67-10.78-14.02-26.78-22.3-43.78-23.16-1.1-2.08-2.59-3.87-3.91-5.79V48c0-8.83 7.19-16 16-16s16 7.17 16 16v16h80c8.81 0 16 7.17 16 16v29.17l55.19 27.16c5.44 2.67 8.81 8.09 8.81 14.14 0 3.28-3.34 14.7-15.84 36.61z\"]\n};\nvar faShekelSign = {\n prefix: 'fal',\n iconName: 'shekel-sign',\n icon: [384, 512, [], \"f20b\", \"M224 152v208c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V152c0-66.28-53.73-120-120-120H16C7.16 32 0 39.16 0 48v424c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V80h104c39.76 0 72 32.23 72 72zM376 32h-32c-4.42 0-8 3.58-8 8v320c0 39.76-32.24 72-72 72H160V152c0-4.42-3.58-8-8-8h-32c-4.42 0-8 3.58-8 8v312c0 8.84 7.16 16 16 16h136c66.27 0 120-53.73 120-120V40c0-4.42-3.58-8-8-8z\"]\n};\nvar faShield = {\n prefix: 'fal',\n iconName: 'shield',\n icon: [512, 512, [], \"f132\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM262.2 478.8c-3.9 1.6-8.3 1.6-12.3 0C152 440 48 304 48 128c0-6.5 3.9-12.3 9.8-14.8l192-80c3.8-1.6 8.3-1.7 12.3 0l192 80c6 2.5 9.8 8.3 9.8 14.8.1 176-103.9 312-201.7 350.8z\"]\n};\nvar faShieldAlt = {\n prefix: 'fal',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM262.2 478.8c-4 1.6-8.4 1.6-12.3 0C152 440 48 304 48 128c0-6.5 3.9-12.3 9.8-14.8l192-80c3.9-1.6 8.4-1.6 12.3 0l192 80c6 2.5 9.9 8.3 9.8 14.8.1 176-103.9 312-201.7 350.8zM256 411V100l-142.7 59.5c10.1 120.1 77.1 215 142.7 251.5zm-32-66.8c-36.4-39.9-65.8-97.8-76.1-164.5L224 148z\"]\n};\nvar faShieldCheck = {\n prefix: 'fal',\n iconName: 'shield-check',\n icon: [512, 512, [], \"f2f7\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM262.2 478.8c-4 1.6-8.4 1.6-12.3 0C152 440 48 304 48 128c0-6.5 3.9-12.3 9.8-14.8l192-80c3.9-1.6 8.4-1.6 12.3 0l192 80c6 2.5 9.9 8.3 9.8 14.8.1 176-103.9 312-201.7 350.8zm136.2-325c-4.7-4.7-12.3-4.7-17-.1L218 315.8l-69-69.5c-4.7-4.7-12.3-4.7-17-.1l-8.5 8.5c-4.7 4.7-4.7 12.3-.1 17l85.9 86.6c4.7 4.7 12.3 4.7 17 .1l180.5-179c4.7-4.7 4.7-12.3.1-17z\"]\n};\nvar faShieldCross = {\n prefix: 'fal',\n iconName: 'shield-cross',\n icon: [448, 512, [], \"f712\", \"M420.43 83.69l-179.2-80C235.72 1.23 229.86 0 224 0s-11.72 1.23-17.23 3.69l-179.2 80C10.88 91.14 0 108.62 0 128c0 198.49 106.86 335.71 206.77 380.31 5.51 2.46 11.37 3.69 17.23 3.69s11.72-1.23 17.23-3.69C321.13 472.64 448 349.28 448 128c0-19.38-10.88-36.86-27.57-44.31zM32 128c0-6.72 3.46-12.79 8.62-15.09L176 52.47V144H32.53c-.17-5.34-.53-10.56-.53-16zm144 324.7C120.23 410.83 68.46 337.57 45.13 240H176v212.7zm96-.56V240h131.28C378.36 345.18 321.12 414.46 272 452.14zM409.58 208H240v265.19c-4.09 2.22-8.07 4.23-11.81 5.9-1.57.7-4.69 1.64-8.37 0-3.92-1.75-7.87-3.88-11.81-5.96V208H38.69a478.05 478.05 0 0 1-4.15-32H208V38.19l11.81-5.27c3.68-1.64 6.79-.71 8.37 0L240 38.19V176h173.54c-1.02 10.95-2.29 21.67-3.96 32zm5.84-64H272V52.47l135.39 60.44c5.15 2.3 8.61 8.36 8.61 15.09 0 5.5-.42 10.64-.58 16z\"]\n};\nvar faShieldVirus = {\n prefix: 'fal',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.12,48.12,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM262.13,478.77a16.1,16.1,0,0,1-12.32,0C152.61,438.27,48,311.21,48,128a15.9,15.9,0,0,1,9.9-14.76L249.76,33.27A30,30,0,0,1,256.05,32a30.64,30.64,0,0,1,6.14,1.21l192,80A16.1,16.1,0,0,1,464,128C464,338.91,331.93,449.68,262.13,478.77ZM384,224H371.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58a31.32,31.32,0,0,1-22.4,9.43c-16.45,0-32.23-12.77-32.23-32.06V112a16,16,0,0,0-32,0v12.12c0,19.29-15.78,32.06-32.23,32.06a31.34,31.34,0,0,1-22.4-9.43l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H128a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58a31.3,31.3,0,0,1,22.4-9.43c16.45,0,32.23,12.77,32.23,32.06V368a16,16,0,0,0,32,0V355.88c0-19.29,15.78-32.07,32.23-32.06a31.34,31.34,0,0,1,22.4,9.43l8.57,8.58a16,16,0,0,0,22.63-22.63l-8.58-8.57C329.09,290.47,343.37,256,371.88,256H384a16,16,0,0,0,0-32Zm-71.25,39.51A64.17,64.17,0,0,0,308,291.92c-1.23-.07-2.48-.1-3.73-.1a64.37,64.37,0,0,0-44.12,17.41c-1.48,1.37-2.87,2.81-4.19,4.29a64.18,64.18,0,0,0-48.15-21.7c-1.25,0-2.49,0-3.73.11A64.38,64.38,0,0,0,182.51,240,64.38,64.38,0,0,0,204,188.08c1.23.07,2.48.1,3.73.1A64.17,64.17,0,0,0,256,166.38a64.17,64.17,0,0,0,48.23,21.8c1.25,0,2.5,0,3.73-.1A64.38,64.38,0,0,0,329.49,240,64.11,64.11,0,0,0,312.75,263.51ZM240,208a16,16,0,1,0,16,16A16,16,0,0,0,240,208Z\"]\n};\nvar faShip = {\n prefix: 'fal',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M480 366.077l85.182-78.083c18.063-16.557 12.34-44.442-8.577-53.406L480 201.756V80c0-8.837-7.163-16-16-16h-48V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-48c-8.837 0-16 7.163-16 16v121.756l-76.055 32.595c-22.484 9.636-26.373 37.834-9.568 53.238L160 366.077C160 402.167 109.048 480 12 480c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12 65.489 0 117.316-28.984 150.756-73.148C173.036 480.79 210.938 512 256 512h128c45.062 0 82.964-31.21 93.244-73.148C510.878 483.273 562.822 512 628 512c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12-93.623 0-148-74.786-148-113.923zM256 32h128v32H256V32zm-64 64h256v92.042l-115.395-49.455a31.999 31.999 0 0 0-25.211 0L192 188.042V96zm256 256v64c0 35.346-28.654 64-64 64H256c-35.346 0-64-28.654-64-64v-64l-96-88 224-96 224 96-96 88z\"]\n};\nvar faShippingFast = {\n prefix: 'fal',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M280 192c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240zm352 192h-24V275.9c0-16.8-6.8-33.3-18.8-45.2l-83.9-83.9c-11.8-12-28.3-18.8-45.2-18.8H416V78.6c0-25.7-22.2-46.6-49.4-46.6H113.4C86.2 32 64 52.9 64 78.6V96H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H96V78.6c0-8.1 7.8-14.6 17.4-14.6h253.2c9.6 0 17.4 6.5 17.4 14.6V384H207.6C193 364.7 170 352 144 352c-18.1 0-34.6 6.2-48 16.4V288H64v144c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16h195.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-488 96c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm272-320h44.1c8.4 0 16.7 3.4 22.6 9.4l83.9 83.9c.8.8 1.1 1.9 1.8 2.8H416V160zm80 320c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-96h-16.4C545 364.7 522 352 496 352s-49 12.7-63.6 32H416v-96h160v96zM256 248v-16c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8z\"]\n};\nvar faShippingTimed = {\n prefix: 'fal',\n iconName: 'shipping-timed',\n icon: [640, 512, [], \"f48c\", \"M208 96c-66.2 0-120 53.8-120 120s53.8 120 120 120 120-53.8 120-120S274.2 96 208 96zm0 208c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm40-80h-24v-56c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm384 160h-24V275.9c0-16.8-6.8-33.3-18.8-45.2l-83.9-83.9c-11.8-12-28.3-18.8-45.2-18.8H416V78.6c0-25.7-22.2-46.6-49.4-46.6H49.4C22.2 32 0 52.9 0 78.6v290.8C0 395.1 22.2 416 49.4 416h16.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16h195.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-488 96c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm240-96H207.6C193 364.7 170 352 144 352s-49 12.7-63.6 32h-31c-9.6 0-17.4-6.5-17.4-14.6V78.6C32 70.5 39.8 64 49.4 64h317.2c9.6 0 17.4 6.5 17.4 14.6V384zm32-224h44.1c8.4 0 16.7 3.4 22.6 9.4l83.9 83.9c.8.8 1.1 1.9 1.8 2.8H416V160zm80 320c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-96h-16.4C545 364.7 522 352 496 352s-49 12.7-63.6 32H416v-96h160v96z\"]\n};\nvar faShishKebab = {\n prefix: 'fal',\n iconName: 'shish-kebab',\n icon: [512, 512, [], \"f821\", \"M511.21 84.17c-3.75-29.74-21.09-55.74-47.52-71.32a94.9 94.9 0 0 0-96.22.5c-23.7 14.27-39.82 36.62-45.41 63s.18 53.93 14.87 76.37l-25.78 25.76-42.44-42.45a62.59 62.59 0 0 0-88.54 0l-42.31 42.31A62.3 62.3 0 0 0 119.62 226 62.39 62.39 0 0 0 72 244.28l-42.3 42.3a62.68 62.68 0 0 0 0 88.54L72 417.45 2.34 487a8 8 0 0 0 0 11.32l11.31 11.31a8 8 0 0 0 11.32 0l69.64-69.58 42.27 42.27a62.57 62.57 0 0 0 88.54 0l42.3-42.3A62.4 62.4 0 0 0 286 392.38a62.34 62.34 0 0 0 47.67-18.25l42.29-42.3a62.56 62.56 0 0 0 0-88.54l-42.15-42.15 25.78-25.75c10.85-10.84 13.08-27.69 5.53-40.07-6.3-10.35-12.12-21.3-13-33.39-1.79-25.28 10-47.52 30.85-60.55 19.09-11.92 44.05-12.64 63.6-1.48 18.32 10.48 30.35 28.1 32.92 48.31A63.64 63.64 0 0 1 466.18 136a8 8 0 0 0 .3 10.76l11.44 11.44a8 8 0 0 0 11.64-.25 95.23 95.23 0 0 0 21.65-73.78zM245.09 417.42l-42.3 42.3a30.6 30.6 0 0 1-43.28 0L52.28 352.49a30.6 30.6 0 0 1 0-43.28l42.3-42.3a30.59 30.59 0 0 1 43.28 0l107.23 107.23a30.59 30.59 0 0 1 0 43.28zm108.22-151.5a30.62 30.62 0 0 1 0 43.29L311 351.51a30.62 30.62 0 0 1-43.29 0L160.49 244.28a30.62 30.62 0 0 1 0-43.29l42.3-42.3a30.62 30.62 0 0 1 43.29 0z\"]\n};\nvar faShoePrints = {\n prefix: 'fal',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M337.46 272c-34.91 0-76.16 14.06-104.73 34.29-24.79 17.55-44.52 34.29-104.73 34.29H64c-35.35 0-64 30.7-64 68.57S28.65 480 64 480h64l57.53 14.82C217.42 504.3 250.17 512 293.3 512 403.84 512 512 456.84 512 374.86 512 306.29 427.82 272 337.46 272zM112 448H64c-17.05 0-32-18.16-32-38.86 0-20.17 14.36-36.57 32-36.57h48V448zm81.51 15.84L144 451.08v-79.11c55.33-2.95 80.75-20.66 103.08-36.62C338.33 270.38 480 316.73 480 374.86c0 62.15-121.49 137.92-286.49 88.98zM421.29 0c-43.42 0-76.17 7.78-107.77 17.17L256 32h-64c-35.35 0-64 32.98-64 70.86 0 37.87 28.65 68.57 64 68.57h64c60.2 0 79.94 16.73 104.73 34.29C389.3 225.94 430.54 240 465.46 240 555.82 240 640 205.71 640 137.14 640 55.84 533.12 0 421.29 0zM240 139.43h-48c-17.64 0-32-16.4-32-36.57C160 82.16 174.95 64 192 64h48v75.43zM465.46 208c-27.58 0-62.24-11.41-86.24-28.4-23.71-16.89-48.76-36.45-107.22-39.56V60.92l50.65-13.07C352.05 39.1 381.72 32 421.29 32 473.38 32 608 58.02 608 137.14c0 46.52-71.71 70.86-142.54 70.86z\"]\n};\nvar faShoppingBag = {\n prefix: 'fal',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 128C352 57.421 294.579 0 224 0 153.42 0 96 57.421 96 128H0v304c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V128h-96zM224 32c52.935 0 96 43.065 96 96H128c0-52.935 43.065-96 96-96zm192 400c0 26.467-21.533 48-48 48H80c-26.467 0-48-21.533-48-48V160h64v48c0 8.837 7.164 16 16 16s16-7.163 16-16v-48h192v48c0 8.837 7.163 16 16 16s16-7.163 16-16v-48h64v272z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fal',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M564 192h-76.875L347.893 37.297c-5.91-6.568-16.027-7.101-22.596-1.189s-7.101 16.028-1.189 22.596L444.075 192h-312.15L251.893 58.703c5.912-6.567 5.379-16.685-1.189-22.596-6.569-5.912-16.686-5.38-22.596 1.189L88.875 192H12c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h16.444L58.25 438.603C61.546 462.334 81.836 480 105.794 480h364.412c23.958 0 44.248-17.666 47.544-41.397L547.556 224H564c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12zm-77.946 242.201c-1.093 7.867-7.906 13.799-15.848 13.799H105.794c-7.942 0-14.755-5.932-15.848-13.799L60.752 224h454.497l-29.195 210.201zM304 280v112c0 8.837-7.163 16-16 16-8.836 0-16-7.163-16-16V280c0-8.837 7.164-16 16-16 8.837 0 16 7.163 16 16zm112 0v112c0 8.837-7.163 16-16 16s-16-7.163-16-16V280c0-8.837 7.163-16 16-16s16 7.163 16 16zm-224 0v112c0 8.837-7.164 16-16 16s-16-7.163-16-16V280c0-8.837 7.164-16 16-16s16 7.163 16 16z\"]\n};\nvar faShoppingCart = {\n prefix: 'fal',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M551.991 64H129.28l-8.329-44.423C118.822 8.226 108.911 0 97.362 0H12C5.373 0 0 5.373 0 12v8c0 6.627 5.373 12 12 12h78.72l69.927 372.946C150.305 416.314 144 431.42 144 448c0 35.346 28.654 64 64 64s64-28.654 64-64a63.681 63.681 0 0 0-8.583-32h145.167a63.681 63.681 0 0 0-8.583 32c0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0-17.993-7.435-34.24-19.388-45.868C506.022 391.891 496.76 384 485.328 384H189.28l-12-64h331.381c11.368 0 21.177-7.976 23.496-19.105l43.331-208C578.592 77.991 567.215 64 551.991 64zM240 448c0 17.645-14.355 32-32 32s-32-14.355-32-32 14.355-32 32-32 32 14.355 32 32zm224 32c-17.645 0-32-14.355-32-32s14.355-32 32-32 32 14.355 32 32-14.355 32-32 32zm38.156-192H171.28l-36-192h406.876l-40 192z\"]\n};\nvar faShovel = {\n prefix: 'fal',\n iconName: 'shovel',\n icon: [512, 512, [], \"f713\", \"M501.55 86.12l-75.67-75.67C418.91 3.48 409.76 0 400.6 0s-18.3 3.48-25.27 10.45l-29.2 29.19C329.21 56.57 320 79.24 320 102.68c0 24.51 9.79 41.81 15.96 50.74L208.67 280.7l-56.57-56.57c-6.25-6.25-14.44-9.37-22.63-9.37s-16.38 3.12-22.63 9.37l-67.88 67.88C-11.02 342-6.29 473.03 16.34 495.66c9.87 9.87 40.39 16.34 75.8 16.34 45.75 0 99.67-10.79 127.85-38.97l67.88-67.88c12.5-12.5 12.5-32.76 0-45.25l-56.57-56.57 127.28-127.28c8.92 6.16 26.26 15.96 50.76 15.96 23.41 0 46.09-9.22 63.01-26.13l29.19-29.2c13.94-13.95 13.94-36.62.01-50.56zM197.36 450.41C160.69 487.07 63 483.13 39.2 472.67c-10.64-22.12-13.59-122.04 22.4-158.03l67.85-67.88h.03l135.76 135.77-67.88 67.88zm281.56-336.37l-29.19 29.19c-52.79 52.79-134.1-27.84-80.96-80.96l29.2-29.2c1.45-1.45 3.84-1.45 5.29 0l75.67 75.68c1.44 1.45 1.44 3.84-.01 5.29z\"]\n};\nvar faShovelSnow = {\n prefix: 'fal',\n iconName: 'shovel-snow',\n icon: [512, 512, [], \"f7c3\", \"M180.7 244.7l-80 80c-6.2 6.2-6.2 16.4 0 22.6 3.1 3.1 7.2 4.7 11.3 4.7 4.1 0 8.2-1.6 11.3-4.7l80-80c6.2-6.2 6.2-16.4 0-22.6-6.2-6.3-16.4-6.3-22.6 0zm-16 166.6c3.1 3.1 7.2 4.7 11.3 4.7s8.2-1.6 11.3-4.7l80-80c6.2-6.2 6.2-16.4 0-22.6-6.2-6.3-16.4-6.3-22.6 0l-80 80c-6.3 6.2-6.3 16.4 0 22.6zM502.6 65.9L446.1 9.4C439.8 3.1 431.6 0 423.4 0S407 3.1 400.8 9.4l-17 17c-24.2 24.2-27.4 61.3-10 89.1L267.6 221.8l-47.2-47.2c-9.7-9.7-22.5-14.6-35.3-14.6-10.7 0-21.5 3.4-30.5 10.4L19.4 274.9c-23.8 18.4-26.1 53.5-4.8 74.8l147.7 147.7c9.8 9.8 22.6 14.6 35.3 14.6 14.8 0 29.6-6.6 39.5-19.4l104.5-135.2c15.4-19.9 13.6-48.1-4.2-65.8l-47.2-47.2 106.3-106.3c11.7 7.3 24.9 11.1 38.2 11.1 18.4 0 36.9-7 50.9-21.1l17-17c12.5-12.4 12.5-32.7 0-45.2zM314.7 314.2c6.4 6.4 7 16.5 1.5 23.6L211.8 473c-3.4 4.4-8.6 7-14.2 7-2.8 0-8.1-.7-12.7-5.3L37.3 327.1c-5-5-5.4-10.8-5.2-13.8.2-3 1.3-8.7 6.9-13l135.2-104.5c4-3.1 8.2-3.7 10.9-3.7 4.8 0 9.3 1.9 12.7 5.3l116.9 116.8zM463 105.5c-7.6 7.6-17.6 11.7-28.3 11.7s-20.7-4.2-28.3-11.7c-7.6-7.6-11.7-17.6-11.7-28.3s4.2-20.7 11.7-28.3l16.9-17L480 88.6l-17 16.9z\"]\n};\nvar faShower = {\n prefix: 'fal',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M336,320a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm32-128a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm0,96a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm64,32a16,16,0,1,0-16-16A16,16,0,0,0,400,256Zm32-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224ZM304,256a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm0,64a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm0,64a16,16,0,1,0,16,16A16,16,0,0,0,304,384ZM432,256a16,16,0,1,0,16,16A16,16,0,0,0,432,256ZM381.66,104.64,370.34,93.32a8,8,0,0,0-11.31,0l-5.91,5.91A110.48,110.48,0,0,0,205.25,86.62L181.81,63.2A106.5,106.5,0,0,0,0,138.52V472a8,8,0,0,0,8,8H24a8,8,0,0,0,8-8V138.52A74.5,74.5,0,0,1,159.19,85.83l23.43,23.42a110.48,110.48,0,0,0,12.61,147.87L189.32,263a8,8,0,0,0,0,11.31l11.32,11.32a8,8,0,0,0,11.31,0L381.66,116A8,8,0,0,0,381.66,104.64ZM218,234.34A78.84,78.84,0,0,1,192,176a80.09,80.09,0,0,1,80-80,78.84,78.84,0,0,1,58.34,26ZM496,192a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224ZM336,352a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Z\"]\n};\nvar faShredder = {\n prefix: 'fal',\n iconName: 'shredder',\n icon: [512, 512, [], \"f68a\", \"M432 192h-16v-82.75c0-8.49-3.37-16.62-9.37-22.63L329.37 9.37c-6-6-14.14-9.37-22.63-9.37H126.48C109.64 0 96 14.33 96 32v160H80c-44.18 0-80 35.82-80 80v96c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-96c0-44.18-35.82-80-80-80zM320 45.25L370.75 96H320V45.25zM128.12 32H288v64c0 17.67 14.33 32 32 32h64v64H128.02l.1-160zM480 352H32v-80c0-26.47 21.53-48 48-48h352c26.47 0 48 21.53 48 48v80zm-80-88c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zM48 504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88H48v88zm96 0c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88h-32v88zm96 0c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88h-32v88zm96 0c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88h-32v88zm96 0c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-88h-32v88z\"]\n};\nvar faShuttleVan = {\n prefix: 'fal',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M625.17 238.2L499.19 87.03A64.006 64.006 0 0 0 450.02 64H48C21.49 64 0 85.49 0 112v272c0 17.67 14.33 32 32 32h33.62c7.43 36.47 39.75 64 78.38 64s70.95-27.53 78.38-64h195.24c7.43 36.47 39.75 64 78.38 64s70.95-27.53 78.38-64H608c17.67 0 32-14.33 32-32V279.17c0-14.97-5.25-29.47-14.83-40.97zM352 96h98.02c9.53 0 18.48 4.2 24.58 11.51L571.68 224H352V96zm-160 0h128v128H192V96zM32 112c0-8.82 7.18-16 16-16h112v128H32V112zm112 336c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm352 0c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm112-64h-33.62c-7.43-36.47-39.75-64-78.38-64s-70.95 27.53-78.38 64H222.38c-7.43-36.47-39.75-64-78.38-64s-70.95 27.53-78.38 64H32V256h566.35l2.23 2.68a32.093 32.093 0 0 1 7.42 20.49V384z\"]\n};\nvar faShuttlecock = {\n prefix: 'fal',\n iconName: 'shuttlecock',\n icon: [512, 512, [], \"f45b\", \"M480 192h-61.6l10.4-72.6c3-20.8-14.5-39.1-36.2-36.2L320 93.6V32c0-17.7-14.3-32-32-32h-43.1c-12.2 0-23.5 7.1-28.8 18.1l-118 245.8-67 67c-41.4 41.4-41.4 108.6 0 150 20.7 20.7 47.8 31.1 75 31.1 27.1 0 54.3-10.4 75-31.1l67-67 245.8-118c11-5.3 18.1-16.6 18.1-28.8V224c0-17.7-14.3-32-32-32zm-82.9-77.1l-11.4 80.2L294 218l22.9-91.7 80.2-11.4zM244.9 32H288v70.3l-102.4 53.3L244.9 32zm35 110.6l-22.3 89.2-87.8 87.8-42.4-42.4 35.2-73.5 117.3-61.1zM32 406c0-18.6 7-36 19.5-49.6l104.2 104.2C142 473 124.6 480 106 480c-40.9 0-74-33.1-74-74zm146.5 32.2L73.8 333.5l32.2-32.2L210.7 406l-32.2 32.2zm56.3-53.5l-42.4-42.4 87.8-87.8 89.2-22.3-61.1 117.3-73.5 35.2zM480 267l-123.6 59.4L409.7 224H480v43z\"]\n};\nvar faSickle = {\n prefix: 'fal',\n iconName: 'sickle',\n icon: [512, 512, [], \"f822\", \"M511.54 160.28C500.73 104.84 445.48 0 313.94 0c-92 0-170.24 64.23-190.24 156.2-6.23 28.67-7.3 64.76-1.57 97.92l-49.55 49.54a16 16 0 0 0 0 22.63l11.31 11.31-79.2 79.2a16 16 0 0 0 0 22.63l67.88 67.88a16 16 0 0 0 22.62 0l79.2-79.2 11.31 11.31a16 16 0 0 0 22.62 0l45.24-45.26a16 16 0 0 0 0-22.63l-3.15-3.15 27.28-27.27a16 16 0 0 0 .94-21.59c-20.63-24.58-29.28-55.84-24.34-88.08a120.9 120.9 0 0 1 54.53-83.5c35.91-23 83.16-24.66 120.38-4.05A124.34 124.34 0 0 1 469.51 179a23.25 23.25 0 0 0 28.31 7.61 23.52 23.52 0 0 0 13.72-26.28zM197 405.49l-22.63-22.63-22.63 22.63-67.85 67.88-45.26-45.25 67.88-67.88 22.63-22.62L106.52 315l22.63-22.63 90.51 90.51zm247.73-289.58C397.48 89.72 337.38 91.72 291.6 121a153 153 0 0 0-68.93 105.62c-5.56 36.48 2.44 72.08 22.58 101.72l-17.43 17.43L161 279c-14.11-33.36-13.43-82.15-6.09-116 16.78-77.13 82.15-131 159-131C401.07 32 448.38 86.47 469 132.33a162.22 162.22 0 0 0-24.28-16.42z\"]\n};\nvar faSigma = {\n prefix: 'fal',\n iconName: 'sigma',\n icon: [320, 512, [], \"f68b\", \"M296 160h16c4.42 0 8-3.58 8-8V96c0-17.67-14.32-32-31.99-32H33.39C22.2 64 11.2 69.12 5.19 78.56c-7.69 12.08-6.76 26.87 2.8 38.5L138.09 256 7.3 395.73c-8.81 10.77-9.82 25.69-2.07 37.78C11.3 442.96 22.38 448 33.61 448h254.4c17.67 0 31.99-14.33 31.99-32v-56c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v56l-256.65.81 130.07-138.92c11.53-12.28 11.53-31.5.03-43.77L32.05 96h255.96v56c0 4.42 3.58 8 7.99 8z\"]\n};\nvar faSign = {\n prefix: 'fal',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M504 64H96V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v56H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h56v408c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h96v48h-16c-17.7 0-32 14.3-32 32v176c0 17.7 14.3 32 32 32h288c17.7 0 32-14.3 32-32V176c0-17.7-14.3-32-32-32h-16V96h56c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8zm-40 288H176V176h288v176zm-48-208H224V96h192v48z\"]\n};\nvar faSignIn = {\n prefix: 'fal',\n iconName: 'sign-in',\n icon: [512, 512, [], \"f090\", \"M184 83.5l164.5 164c4.7 4.7 4.7 12.3 0 17L184 428.5c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17l132-131.4H12c-6.6 0-12-5.4-12-12v-10c0-6.6 5.4-12 12-12h279.9L160 107.6c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.6-4.7 12.2-4.7 16.9 0zM512 400V112c0-26.5-21.5-48-48-48H332c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h132c8.8 0 16 7.2 16 16v288c0 8.8-7.2 16-16 16H332c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h132c26.5 0 48-21.5 48-48z\"]\n};\nvar faSignInAlt = {\n prefix: 'fal',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M32 217.1c0-8.8 7.2-16 16-16h144v-93.9c0-7.1 8.6-10.7 13.6-5.7l141.6 143.1c6.3 6.3 6.3 16.4 0 22.7L205.6 410.4c-5 5-13.6 1.5-13.6-5.7v-93.9H48c-8.8 0-16-7.2-16-16v-77.7m-32 0v77.7c0 26.5 21.5 48 48 48h112v61.9c0 35.5 43 53.5 68.2 28.3l141.7-143c18.8-18.8 18.8-49.2 0-68L228.2 78.9c-25.1-25.1-68.2-7.3-68.2 28.3v61.9H48c-26.5 0-48 21.6-48 48zM512 400V112c0-26.5-21.5-48-48-48H332c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h132c8.8 0 16 7.2 16 16v288c0 8.8-7.2 16-16 16H332c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h132c26.5 0 48-21.5 48-48z\"]\n};\nvar faSignLanguage = {\n prefix: 'fal',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M447.971 255.391l-4.467-138.16c-1.57-48.503-65.102-66.816-91.36-24.961l-55.919-72.891C286.778 7.064 272.495.001 257.039 0c-15.93-.001-30.091 7.625-39.007 19.206-35.993-16.888-76.766 13.785-69.427 54.289-30.125 13.048-39.039 51.157-19.364 76.804l4.816 6.277c-25.733 14.752-33.109 49.561-14.534 73.773l8.418 10.973h-52.92c-32.727 0-55.982 31.248-47.933 62.349C11.542 311.644.374 327.898.01 347.221c-.371 19.654 10.668 36.491 26.55 44.946-8.624 32.448 16.301 62.869 48.328 62.869h7.246C77.853 485.01 100.941 512 131.143 512h95.892c11.305 0 22.617-1.333 33.62-3.96l71.85-17.159c24.568-5.867 42.026-28.037 42.026-53.589V342.06l52.546-41.529c13.648-10.787 21.459-27.662 20.894-45.14zm-334.334 207.07c-.091-4.771 1.736-9.31 5.145-12.782 3.457-3.524 8.026-5.465 12.865-5.465h55.619a8 8 0 0 0 8-8v-5.178a8 8 0 0 0-8-8H74.887c-23.423 0-24.037-35.786-.504-35.786h112.883a8 8 0 0 0 8-8v-5.179a8 8 0 0 0-8-8H50.014c-23.426 0-24.034-35.785-.504-35.785h137.756a8 8 0 0 0 8-8v-5.179a8 8 0 0 0-8-8H75.525c-23.429 0-24.033-35.786-.504-35.786h150.505c7.685 0 10.959-9.854 4.751-14.437l-27.755-20.486c-19.135-14.124 2.039-42.644 20.507-29.008l110.145 81.305c5.859 4.325 9.357 11.312 9.357 18.691V437.29c0 10.771-7.18 20.01-17.459 22.465l-71.85 17.159a112.86 112.86 0 0 1-26.187 3.085h-95.893c-9.47.001-17.323-7.866-17.505-17.538zm59.145-273.264l7.578 9.878c-11.571 15.417-10.662 36.638 1.045 50.996h-6.421l-30.072-39.2c-14.556-18.97 13.442-40.482 27.87-21.674zm174.094 82.761l-110.144-81.304c-11.634-8.586-26.841-10.128-39.76-4.64l-42.344-55.195c-14.408-18.782 12.669-41.491 27.252-22.479l69.353 90.401a7.995 7.995 0 0 0 5.36 3.069 7.983 7.983 0 0 0 5.948-1.662l4.025-3.182a8.001 8.001 0 0 0 1.387-11.146L183.63 75.904c-14.411-18.788 12.672-41.488 27.251-22.481l84.634 110.321a7.995 7.995 0 0 0 5.36 3.069 7.983 7.983 0 0 0 5.948-1.662l4.025-3.182a8.001 8.001 0 0 0 1.387-11.146l-68.651-89.487c-14.396-18.768 12.642-41.525 27.251-22.481l92.467 120.532a8.001 8.001 0 0 0 14.344-5.128l-1.126-34.813c-.784-24.211 34.249-24.39 35-1.182l4.468 138.16c.239 7.377-3.033 14.479-8.753 19l-41.574 32.858c-.341-14.339-7.308-27.851-18.785-36.324z\"]\n};\nvar faSignOut = {\n prefix: 'fal',\n iconName: 'sign-out',\n icon: [512, 512, [], \"f08b\", \"M48 64h132c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H48c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h132c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48zm279 19.5l-7.1 7.1c-4.7 4.7-4.7 12.3 0 17l132 131.4H172c-6.6 0-12 5.4-12 12v10c0 6.6 5.4 12 12 12h279.9L320 404.4c-4.7 4.7-4.7 12.3 0 17l7.1 7.1c4.7 4.7 12.3 4.7 17 0l164.5-164c4.7-4.7 4.7-12.3 0-17L344 83.5c-4.7-4.7-12.3-4.7-17 0z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fal',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M160 217.1c0-8.8 7.2-16 16-16h144v-93.9c0-7.1 8.6-10.7 13.6-5.7l141.6 143.1c6.3 6.3 6.3 16.4 0 22.7L333.6 410.4c-5 5-13.6 1.5-13.6-5.7v-93.9H176c-8.8 0-16-7.2-16-16v-77.7m-32 0v77.7c0 26.5 21.5 48 48 48h112v61.9c0 35.5 43 53.5 68.2 28.3l141.7-143c18.8-18.8 18.8-49.2 0-68L356.2 78.9c-25.1-25.1-68.2-7.3-68.2 28.3v61.9H176c-26.5 0-48 21.6-48 48zM0 112v288c0 26.5 21.5 48 48 48h132c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H48c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h132c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H48C21.5 64 0 85.5 0 112z\"]\n};\nvar faSignal = {\n prefix: 'fal',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M208 288h-32c-4.42 0-8 3.58-8 8v208c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V296c0-4.42-3.58-8-8-8zM80 384H48c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V392c0-4.42-3.58-8-8-8zm256-192h-32c-4.42 0-8 3.58-8 8v304c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V200c0-4.42-3.58-8-8-8zm128-96h-32c-4.42 0-8 3.58-8 8v400c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V104c0-4.42-3.58-8-8-8zM592 0h-32c-4.42 0-8 3.58-8 8v496c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8z\"]\n};\nvar faSignal1 = {\n prefix: 'fal',\n iconName: 'signal-1',\n icon: [640, 512, [], \"f68c\", \"M80 384H48c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V392c0-4.42-3.58-8-8-8z\"]\n};\nvar faSignal2 = {\n prefix: 'fal',\n iconName: 'signal-2',\n icon: [640, 512, [], \"f68d\", \"M208 288h-32c-4.42 0-8 3.58-8 8v208c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V296c0-4.42-3.58-8-8-8zM80 384H48c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V392c0-4.42-3.58-8-8-8z\"]\n};\nvar faSignal3 = {\n prefix: 'fal',\n iconName: 'signal-3',\n icon: [640, 512, [], \"f68e\", \"M208 288h-32c-4.42 0-8 3.58-8 8v208c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V296c0-4.42-3.58-8-8-8zM80 384H48c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V392c0-4.42-3.58-8-8-8zm256-192h-32c-4.42 0-8 3.58-8 8v304c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V200c0-4.42-3.58-8-8-8z\"]\n};\nvar faSignal4 = {\n prefix: 'fal',\n iconName: 'signal-4',\n icon: [640, 512, [], \"f68f\", \"M208 288h-32c-4.42 0-8 3.58-8 8v208c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V296c0-4.42-3.58-8-8-8zM80 384H48c-4.42 0-8 3.58-8 8v112c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V392c0-4.42-3.58-8-8-8zm256-192h-32c-4.42 0-8 3.58-8 8v304c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V200c0-4.42-3.58-8-8-8zm128-96h-32c-4.42 0-8 3.58-8 8v400c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V104c0-4.42-3.58-8-8-8z\"]\n};\nvar faSignalAlt = {\n prefix: 'fal',\n iconName: 'signal-alt',\n icon: [640, 512, [], \"f690\", \"M576 32v448h-32V32h32M416 160v320h-32V160h32M256 288v192h-32V288h32M96 416v64H64v-64h32M576 0h-32c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zM416 128h-32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM256 256h-32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V288c0-17.67-14.33-32-32-32zM96 384H64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faSignalAlt1 = {\n prefix: 'fal',\n iconName: 'signal-alt-1',\n icon: [640, 512, [], \"f691\", \"M96 416v64H64v-64h32m0-32H64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faSignalAlt2 = {\n prefix: 'fal',\n iconName: 'signal-alt-2',\n icon: [640, 512, [], \"f692\", \"M256 288v192h-32V288h32M96 416v64H64v-64h32m160-160h-32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V288c0-17.67-14.33-32-32-32zM96 384H64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faSignalAlt3 = {\n prefix: 'fal',\n iconName: 'signal-alt-3',\n icon: [640, 512, [], \"f693\", \"M416 160v320h-32V160h32M256 288v192h-32V288h32M96 416v64H64v-64h32m320-288h-32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM256 256h-32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V288c0-17.67-14.33-32-32-32zM96 384H64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faSignalAltSlash = {\n prefix: 'fal',\n iconName: 'signal-alt-slash',\n icon: [640, 512, [], \"f694\", \"M384 160h32v110.5l32 25.2V160c0-17.7-14.3-32-32-32h-32c-17.7 0-32 14.3-32 32v60.1l32 25.2zM544 32h32v364.5l32 25.2V32c0-17.7-14.3-32-32-32h-32c-17.7 0-32 14.3-32 32v314.1l32 25.2zm93 453.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM224 256c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V291.9L242.4 256zm32 224h-32V288h32zm160 0h-32V367.5l-32-25.2V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32v-62.1l-32-25.2zM96 384H64c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32v-64c0-17.7-14.3-32-32-32zm0 96H64v-64h32z\"]\n};\nvar faSignalSlash = {\n prefix: 'fal',\n iconName: 'signal-slash',\n icon: [640, 512, [], \"f695\", \"M80 384H48c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V392c0-4.4-3.6-8-8-8zm392-280c0-4.4-3.6-8-8-8h-32c-4.4 0-8 3.6-8 8v172.8l48 37.8zM600 8c0-4.4-3.6-8-8-8h-32c-4.4 0-8 3.6-8 8v369.6l48 37.8zM424 504c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8v-67.2L424 399zM208 288h-32c-4.4 0-8 3.6-8 8v208c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8zm429 197.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM296 504c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V336l-48-37.8z\"]\n};\nvar faSignalStream = {\n prefix: 'fal',\n iconName: 'signal-stream',\n icon: [576, 512, [], \"f8dd\", \"M96.81 77.93L85.47 66.41a8 8 0 0 0-11.55.1C26.18 118 0 185 0 256s26.18 138 73.92 189.49a8 8 0 0 0 11.55.09l11.34-11.51a8.13 8.13 0 0 0 .07-11.24C55 377.45 32 318.51 32 256S55 134.55 96.88 89.17a8.13 8.13 0 0 0-.07-11.24zm83.93 69l-11.3-11.49a8 8 0 0 0-11.64.15 181.1 181.1 0 0 0 0 240.76 8 8 0 0 0 11.64.15l11.3-11.5a8.21 8.21 0 0 0 .14-11.22 148.17 148.17 0 0 1 0-195.64 8.21 8.21 0 0 0-.14-11.14zm321.35-80.42a8 8 0 0 0-11.56-.1l-11.34 11.52a8.13 8.13 0 0 0-.07 11.24C521 134.55 544 193.49 544 256s-23 121.45-64.88 166.83a8.13 8.13 0 0 0 .07 11.24l11.34 11.51a8 8 0 0 0 11.56-.09C549.82 394 576 327 576 256s-26.18-138-73.91-189.49zM288 192a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm118.56-152.53L395.26 147a8.21 8.21 0 0 0-.14 11.22 148.17 148.17 0 0 1 0 195.64 8.21 8.21 0 0 0 .14 11.22l11.3 11.49a8 8 0 0 0 11.64-.15 181.1 181.1 0 0 0 0-240.76 8 8 0 0 0-11.64-.19z\"]\n};\nvar faSignature = {\n prefix: 'fal',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M630.1 206.8c-32.7 8.4-77.1 30.8-108.7 49.6-14.7 8.8-29.9 17.9-41.5 23.4-31.3 15.2-58.3 28.2-84.1 28.2-12.9 0-23-4.3-29.9-12.7-11.3-13.8-11.3-35.3-7.9-63.3 3.3-26.9.6-47.8-7.6-57.3-4.4-5-10-6.9-18.7-6.3C307 170 257 210.8 169.6 300.9l-54.4 56 70-187.6c11.8-31.6 3.6-66.1-20.9-87.8C145 64.3 112 54.3 77.3 78L3.5 127.8c-3.5 2.3-4.5 7-2.5 10.6l9.2 16.2c2.3 4.1 7.6 5.3 11.5 2.7L97.5 106c6.6-4.5 14-6.8 21.4-6.8 9.1 0 17.6 3.4 24.8 9.8 13.2 11.7 17.6 30.2 11.3 47.1L55.2 423.7c-1.9 5.2-1 12.6 2.2 17.7 2.4 3.7 6.6 6.1 11.3 6.6 4.9.3 9.7-1.4 13-4.9C125 396.8 239.5 278.4 298 228.4l20.4-17.4c3.4-2.9 8.5-.3 8.2 4.1l-2.1 27.9c-2 27.3-2.4 55.9 16.8 78.6 12.4 14.5 30.7 21.9 54.6 21.9 32.7 0 64.1-15.1 97.3-31.1 10.2-4.9 24.9-14.1 39.2-23 30.9-19.3 72.3-40.5 101.8-47.7 3.5-.9 5.9-4 5.9-7.6v-17.3c-.1-7.4-5-11.2-10-10z\"]\n};\nvar faSimCard = {\n prefix: 'fal',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M64 240v160c0 26.5 21.5 48 48 48h160c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H112c-26.5 0-48 21.5-48 48zm152 24h-48v-40h48v40zm72 0h-40v-40h24c8.8 0 16 7.2 16 16v24zm-40 112h40v24c0 8.8-7.2 16-16 16h-24v-40zm-80 0h48v40h-48v-40zm-72 0h40v40h-24c-8.8 0-16-7.2-16-16v-24zm0-80h192v48H96v-48zm0-56c0-8.8 7.2-16 16-16h24v40H96v-24zM0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm32 0c0-17.6 14.4-32 32-32h178.7L352 141.3V448c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V64z\"]\n};\nvar faSink = {\n prefix: 'fal',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M504,288H416V256h56a8,8,0,0,0,8-8V232a8,8,0,0,0-8-8H400a16,16,0,0,0-16,16v48H304V112a16,16,0,0,1,32,0v16a32,32,0,0,0,32,32h32a32,32,0,0,0,32-32V114.26c0-20.8-4.79-41.61-15.56-59.4A112.58,112.58,0,0,0,297.81,2.12C245.77,12.23,208,60,208,115.77V288H128V240a16,16,0,0,0-16-16H40a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H96v32H8a8,8,0,0,0-8,8v16a8,8,0,0,0,8,8H32v96a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V320h24a8,8,0,0,0,8-8V296A8,8,0,0,0,504,288ZM240,115.77c0-40.45,26.88-75,63.91-82.24A80.17,80.17,0,0,1,400,112v16H368V112a48,48,0,0,0-96,0V288H240ZM448,416a64.07,64.07,0,0,1-64,64H128a64.07,64.07,0,0,1-64-64V320H448Z\"]\n};\nvar faSiren = {\n prefix: 'fal',\n iconName: 'siren',\n icon: [448, 512, [], \"e02d\", \"M416,320h-1.88L390.88,134.08A80.13,80.13,0,0,0,311.5,64h-175a80.13,80.13,0,0,0-79.38,70.08L33.88,320H32A32,32,0,0,0,0,352v64a32,32,0,0,0,32,32H416a32,32,0,0,0,32-32V352A32,32,0,0,0,416,320ZM88.88,138.05A48.07,48.07,0,0,1,136.5,96h175a48.07,48.07,0,0,1,47.62,42.05l22.76,182H135.82l24.11-180.82a8,8,0,0,0-6.87-9l-15.86-2.13a8,8,0,0,0-9,6.87L103.54,320H66.12ZM416,416H32V352H416Z\"]\n};\nvar faSirenOn = {\n prefix: 'fal',\n iconName: 'siren-on',\n icon: [640, 512, [], \"e02e\", \"M512,320h-1.88L486.88,134.07A80.13,80.13,0,0,0,407.5,64h-175a80.13,80.13,0,0,0-79.38,70.08L129.88,320H128a32,32,0,0,0-32,32v64a32,32,0,0,0,32,32H512a32,32,0,0,0,32-32V352A32,32,0,0,0,512,320ZM184.88,138A48.07,48.07,0,0,1,232.5,96h175A48.07,48.07,0,0,1,455.12,138l22.76,182H231.82l24.11-180.83a8,8,0,0,0-6.87-9l-15.86-2.13a8,8,0,0,0-9,6.87L199.54,320H162.12ZM512,416H128V352H512ZM80,160H16a16,16,0,0,0,0,32H80a16,16,0,0,0,0-32Zm544,0H560a16,16,0,0,0,0,32h64a16,16,0,0,0,0-32ZM40.84,30.3l64,32a16,16,0,0,0,14.32-28.63l-64-32A16,16,0,0,0,40.84,30.3ZM528,64a16.17,16.17,0,0,0,7.16-1.69l64-32A16,16,0,0,0,584.84,1.67l-64,32A16,16,0,0,0,528,64Z\"]\n};\nvar faSitemap = {\n prefix: 'fal',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M608 352h-32v-97.59c0-16.77-13.62-30.41-30.41-30.41H336v-64h48c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h48v64H94.41C77.62 224 64 237.64 64 254.41V352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32H96v-96h208v96h-32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32h-32v-96h208v96h-32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-480 32v96H32v-96h96zm240 0v96h-96v-96h96zM256 128V32h128v96H256zm352 352h-96v-96h96v96z\"]\n};\nvar faSkating = {\n prefix: 'fal',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M384 0c-35.3 0-64 28.7-64 64 0 12.7 3.8 24.5 10.3 34.5-5.4-1.5-11.1-2.5-16.9-2.5H144c-26.5 0-48 21.5-48 48s21.5 48 48 48h48.5a80.063 80.063 0 0 0-17.4 46.7c-.2 4.5.2 9.1.8 13.5l-91 91c-9.1 9.1-14.1 21.1-14.1 33.9s5 24.9 14.1 33.9c18.7 18.8 49.1 18.8 67.9 0l79.2-79.2 40 40V416c0 26.5 21.5 48 48 48s48-21.5 48-48v-57.4c0-16.9-6.8-33.4-18.8-45.3L299.9 264l58.7-58.7c18.4-18.4 23.8-45.7 13.9-69.7-1.6-3.8-4-7-6.2-10.3 5.7 1.6 11.5 2.8 17.7 2.8 35.3 0 64-28.7 64-64S419.3 0 384 0zM130.2 388.5c-6.2 6.2-16.4 6.3-22.6 0-6.2-6.2-6.2-16.4 0-22.6l80.8-80.8c6.7 10.3 5.3 8.4 21.1 24.2l-79.3 79.2zM336 182.6L254.6 264l72 72c6 6 9.4 14.2 9.4 22.6V416c0 8.8-7.2 16-16 16s-16-7.2-16-16v-57.4l-82.9-82.9-.3-.3c-.1-.1-.1-.1-.2-.1-.2-.2-.2-.4-.4-.6-21.4-22.6-14.6-53.9 3.5-69.4l53.8-45.4H144c-8.8 0-16-7.2-16-16s7.2-16 16-16h169.4c28.5.1 42.7 34.6 22.6 54.7zM384 96c-17.7 0-32-14.4-32-32s14.3-32 32-32 32 14.4 32 32-14.3 32-32 32zM117.8 456.6c-6.2 6.2-16.4 6.2-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.3 9.4 21.7 14 33.9 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.3-6.3-22.6 0zM400 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"]\n};\nvar faSkeleton = {\n prefix: 'fal',\n iconName: 'skeleton',\n icon: [512, 512, [], \"f620\", \"M504 160H272V96h168c4.42 0 8-3.58 8-8V72c0-4.42-3.58-8-8-8H272V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v56H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h168v64H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h232v64H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h168v64H112c-44.18 0-80 35.82-80 80s35.82 80 80 80 80-35.82 80-80c0-18.1-6.23-34.6-16.36-48h160.72C326.23 397.4 320 413.9 320 432c0 44.18 35.82 80 80 80s80-35.82 80-80-35.82-80-80-80H272v-64h168c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H272v-64h232c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM160 432c0 26.47-21.53 48-48 48s-48-21.53-48-48 21.53-48 48-48 48 21.53 48 48zm288 0c0 26.47-21.53 48-48 48s-48-21.53-48-48 21.53-48 48-48 48 21.53 48 48z\"]\n};\nvar faSkiJump = {\n prefix: 'fal',\n iconName: 'ski-jump',\n icon: [512, 512, [], \"f7c7\", \"M510.8 191.5c-1.5-8.7-10.1-14.5-18.4-13.1-8.7 1.5-14.6 9.7-13.1 18.5 3.8 22.6-7 45.5-26.3 56.5L201.1 382.9 247.9 269l116.7-90.8c12.5-9.7 21.5-29.3 18.4-50.3 36 .7 65-28.5 65-63.9 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 5.6.9 10.9 2.3 16H160c-26.5 0-48 21.5-48 48s21.5 48 48 48h39.8c-33.7 36.9-37.7 45.5-63.7 111-7.2 18.1-16.3 40.9-28.5 70.7-4.9 11.8-4.9 24.9.1 36.7 4.5 10.9 13 19.2 23.6 24.3l-122.6 63c-7.9 4-11 13.7-6.9 21.5 2.8 5.5 8.4 8.7 14.2 8.7 2.5 0 5-.6 7.3-1.8l444.9-228.8c31.5-17.8 48.7-54 42.6-89.8zM384 32c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.4-32 32-32zM137.2 369.9c70-170.2 36.9-116 135.2-225.9H160c-8.8 0-16-7.2-16-16s7.2-16 16-16h168c21.4 0 32.1 25.9 17 41l-121.9 94.8c-.8.8-2.2 2.8-3.1 5l-53.3 129.3c-3.3 8.1-12.5 12.1-20.9 8.7-8-3.4-11.9-12.7-8.6-20.9z\"]\n};\nvar faSkiLift = {\n prefix: 'fal',\n iconName: 'ski-lift',\n icon: [512, 512, [], \"f7c8\", \"M496 296.3c-8.8 0-16 7.2-16 16 0 18.3-11.5 34.9-28.7 41.2l-128.7 47.6c8.3-8.6 13.4-20.3 13.4-33.1V248c0-14.6-6.5-28.2-17.8-37.3-9.6-7.9-24.5-13.2-40.6-9.5l-76.3 16.4-27-46.3c-6.9-14-19.2-24.2-33.4-29.5C152.6 130 160 113.9 160 96c0-35.3-28.7-64-64-64S32 60.7 32 96c0 28.3 18.5 52 44 60.5-5.2 5.5-9.5 11.9-12.4 19-7 17.4-4.9 37.3 2.4 50.2l43.2 76.2c8.8 17.4 29.8 30.6 53.5 24.9l77.2-18.4v59.7c0 24.9 19.2 45.3 43.5 47.5L106.3 481c-8.3 3.1-12.5 12.3-9.5 20.6 1.9 5.1 9.6 13.5 20.5 9.5l344.9-127.4c29.7-11 49.6-39.6 49.6-71.2.2-9.1-7-16.2-15.8-16.2zM64 96c0-17.6 14.3-32 32-32s32 14.4 32 32-14.3 32-32 32-32-14.4-32-32zm240 271.9c0 8.8-7.2 16-16 16s-16-7.2-16-16V267.8l-116.7 27.8c-6.4 1.5-14.3-1.1-17.8-8.7l-43.8-77.1c-6.7-14.8.3-32.3 15.4-38.4 22.2-8.9 34.8 10.6 36.6 14.7l39.4 67.4 99.4-21.3c9.5-2.2 19.3 5.2 19.3 15.6v120.1zM256 0h-32v184l32-8V0zm-74.9 383.1c8.4-2.8 12.9-11.8 10.1-20.2-2.8-8.4-11.9-12.9-20.2-10.1-33.4 11.1-70-4.4-85.2-36.2L30.4 201.1c-3.8-8-13.4-11.3-21.3-7.5-8 3.8-11.3 13.4-7.5 21.3l55.2 115.5c17.3 36.2 53.8 58 92.1 58 10.7-.1 21.6-1.7 32.2-5.3z\"]\n};\nvar faSkiing = {\n prefix: 'fal',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M507.3 465.7c-6.2-6.3-16.4-6.3-22.6 0-14.4 14.5-36.6 18.4-54.2 10.3l-130.1-69.7c4.4-3.2 8.4-7 11.5-11.6l.5-.8.5-.8 40.3-68.4c16.3-25.2 12.8-58.7-8.5-80l-49.5-49.5L426.5 267c33.6 16.7 58.1-9 64.4-21.4 11.8-23.7 2.2-52.6-21.5-64.4L423.3 158l-10.1-30.2c1 0 1.9.3 2.8.3 35.3 0 64-28.7 64-64S451.3 0 416 0c-34.3 0-62.2 27.2-63.7 61.1-15-3.8-31.4-4.4-49.6 2.9l-83.4 33.4c-5.1 2-9.7 4.9-14.2 7.8l-40-22.9c1.1-15.2-6.7-30.2-21.1-37.6l-11.1 21.8-34.6-7c-5.3-1.1-8.5 5.6-4.5 9.1l26.1 22.9c.1.1.1.2.1.3l-11.5 22.4c13.7 7 29.5 4.8 41-3.8L182 129c-5.2 8.1-9.5 16.9-11.5 26.7-5.4 26.4 2.7 53.6 21.8 72.6l66.9 66.9-27.8 47.2c-4.6 7.2-6.8 15.2-7.2 23.1L23.6 257.9c-7.7-4.1-17.5-1.3-21.7 6.5-4.2 7.8-1.2 17.5 6.5 21.7l407.8 218.5c10.8 5 22.3 7.4 33.7 7.4 21.1 0 41.9-8.2 57.3-23.7 6.4-6.2 6.4-16.4.1-22.6zM416 32c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.3-32 32-32zM314.6 93.8c32.8-13.1 57.4 11.6 63.3 29.4l19.2 57.5 58.1 29c19 9.5 4.6 38-14.3 28.6l-28.3-14.1-39.8-22.8c-2.6-3.1-4.7-6.6-6-10.6l-18.1-54.4-50.1 22.4-60.2-34.5 76.2-30.5zm-55.9 265.4l40.7-69.1-84.4-84.5c-11.4-11.4-16.3-27.7-13.1-43.6 1.3-6.4 4.1-12.1 7.7-17.3l52.7 30.2-22.7 10.1 82.4 82.4c10.8 10.8 12.4 27.8 4 40.4l-40.7 69.1c-11.9 17.7-38.3-.2-26.6-17.7z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fal',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M560 432c-8.8 0-16 7.2-16 16 0 17.6-14.3 32-32 32h-70.7L467 300c17-7.4 29-24.3 29-44 0-26.5-21.5-48-48-48h-34.1l-21.7-44.3c-7.8-15.9-19.2-29.6-32.9-40.2C383.2 114.2 400 91 400 64c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 10 2.3 19.5 6.4 27.9l-29.6-8.8c-33-7.9-67.4-.7-94.4 20l-39.6 30.4c-10.2 7.8-16.7 19.1-18.4 31.8-1.7 12.7 1.7 25.3 9.5 35.5 3.6 4.8 8.1 8.5 12.9 11.5L65.3 480H16c-8.8 0-16 7.2-16 16s7.2 16 16 16h496c35.3 0 64-28.7 64-64 0-8.8-7.2-16-16-16zm-322.4-77.6l-55.1 116.4c-9 18.9-38.1 5.7-28.9-13.7l57.2-120.7c8.3 7.8 13.4 10.1 26.8 18zm27.7 16.4l31.9 18.8-23 60c-3.1 10.1-2.7 20.6.8 30.4h-61.4l51.7-109.2zm103.4-50.5l-49.4-29.2 12.8-32.1 4.4 9.1c10.7 21.8 33.2 35.9 57.5 35.9h40.1L409 480h-43.9c.1-.3.3-.6.4-.9l32.1-86.3c7.8-27.7-4-57.5-28.9-72.5zM336 32c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.3-32 32-32zM134.3 158.9l39.6-30.4c19.3-14.7 43.9-19.9 66.6-14.5l71.7 21.3c21.9 5.6 41.1 21.5 51.3 42.5L394 240h54c21.2 0 21.2 32 0 32h-54c-12.1 0-23.4-7-28.8-17.9l-36.1-73.8-49.8 124.5 73 43c12.5 7.5 18.4 22.5 14.9 35.1l-31.9 85.9c-6.4 20.7-36.4 9.9-30.8-8.6l32.3-84.4-96.7-57c-20.7-12.2-29.2-38.1-19.7-60.2l44.5-103.9c-34.7-10.3-34.7-10.8-42.2-10.8-10.2 0-20.8 3.6-29.3 10.1l-39.7 30.4c-17 12.9-36-12.8-19.4-25.5zm15.8 60.1c8.1-1 16.1-4 23.1-9.3l39.7-30.4c2.7-2.1 5.8-3.1 8.1-3.5l-30.1 70.1c-8.4 19.6-8.1 40.9-1 59.7l-65.3 137.9c-5.5 11.6-6.1 24.5-1.8 36.6H97.9L150.1 219z\"]\n};\nvar faSkull = {\n prefix: 'fal',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M352 184c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 184c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.7 6.9 15.2 18.1 13.5 29.9l-7.1 21.3C90.6 480 113.8 512 146.5 512h219c32.7 0 55.9-32 45.6-63.1l-7.1-21.3c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm142.9 371.6c-19.7 14-29.9 37.2-26.6 60.4l.4 2.8.9 2.8 7.1 21.3c2.2 6.8-.4 11.9-2.2 14.4-1.8 2.5-5.8 6.6-13 6.6H320v-56c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56h-64v-56c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v56h-45.5c-7.1 0-11.2-4.2-13-6.6-1.8-2.5-4.5-7.7-2.2-14.4l7.1-21.3.9-2.8.4-2.8c3.3-23.2-6.9-46.4-26.6-60.4C61.5 334.9 32 281.1 32 224 32 118.1 132.5 32 256 32s224 86.1 224 192c0 57.1-29.5 110.9-81.1 147.6z\"]\n};\nvar faSkullCow = {\n prefix: 'fal',\n iconName: 'skull-cow',\n icon: [640, 512, [], \"f8de\", \"M603.26,4.58a16,16,0,0,0-26.21,17c6.07,16.12,19.6,67.59,2.88,91.7C573.13,123.05,561.4,128,544,128l-73-.18A63.73,63.73,0,0,0,416,96H224a63.71,63.71,0,0,0-55.12,32H96c-17.35,0-29.08-4.93-35.88-14.7C43.35,89.22,56.49,38.92,63,21.57a16,16,0,0,0-26.19-17C13.05,27.81,0,60.17,0,95.7,0,166.18,57.43,224,128,224H160v80a64,64,0,0,0,64,64l26.4,118.93A32,32,0,0,0,281.6,512h76.66A32,32,0,0,0,389.49,487L416,368a64,64,0,0,0,64-64V224h32c70.59,0,128-57.83,128-128.3C640,60.18,627,27.82,603.26,4.58ZM160,192H128c-35.51,0-66.56-19.77-83.19-48.45C55.44,152.38,71.6,160,96,160h64ZM448,304a32,32,0,0,1-32,32H390.3l-5.58,25.05L358.26,480H281.6L255.2,361.07,249.64,336H224a32,32,0,0,1-32-32V160a32,32,0,0,1,32-32H416a32,32,0,0,1,32,32Zm64-112H480V160c0-.07,0-.13,0-.19L544,160c24.36,0,40.5-7.6,51.11-16.43C578.52,172.23,547.47,192,512,192ZM256,224a32,32,0,1,0,32,32A32,32,0,0,0,256,224Zm128,0a32,32,0,1,0,32,32A32,32,0,0,0,384,224Z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fal',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M264 160c13.24 0 24-10.76 24-24s-10.76-24-24-24-24 10.76-24 24 10.76 24 24 24zm-80 0c13.24 0 24-10.76 24-24s-10.76-24-24-24-24 10.76-24 24 10.76 24 24 24zm-48.97 67.93l-6.41 30.24c-3.21 15.15 6.5 29.82 19.73 29.82h151.3c13.23 0 22.94-14.67 19.73-29.82l-6.41-30.24C346.25 204.49 368 168.67 368 128 368 57.31 303.53 0 224 0S80 57.31 80 128c0 40.67 21.75 76.49 55.03 99.93zM224 32c61.76 0 112 43.06 112 96 0 28.32-15.11 55.21-41.46 73.77l-17.25 12.15 4.37 20.64 4.54 21.43H161.79l4.54-21.43 4.37-20.64-17.25-12.15C127.11 183.21 112 156.32 112 128c0-52.94 50.24-96 112-96zm45.12 384l174.03-65.94c4.06-1.74 5.94-6.45 4.2-10.51l-6.31-14.71a7.996 7.996 0 0 0-10.5-4.2L224 398.91 17.47 320.65a7.996 7.996 0 0 0-10.5 4.2L.66 339.56c-1.74 4.06.14 8.77 4.2 10.51L178.88 416 4.85 481.94c-4.06 1.74-5.94 6.45-4.2 10.51l6.31 14.7a7.996 7.996 0 0 0 10.5 4.2L224 433.09l206.53 78.26a7.996 7.996 0 0 0 10.5-4.2l6.31-14.7c1.74-4.06-.14-8.77-4.2-10.51L269.12 416z\"]\n};\nvar faSlash = {\n prefix: 'fal',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M637 485.3L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.5 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.2z\"]\n};\nvar faSledding = {\n prefix: 'fal',\n iconName: 'sledding',\n icon: [512, 512, [], \"f7cb\", \"M507.3 433.1c-6.2-6.3-16.4-6.3-22.6 0-15.1 15.1-38.2 19.2-57 10.6l-60.6-31.3c10.3-8.8 16.9-21.7 16.9-36.3v-88c0-26.5-21.5-48-48-48h-12.1l18.7-18.7c17.8-17.8 23.1-44 14.5-67.4 8.2 3.8 17.3 6.1 26.9 6.1 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 8 1.7 15.6 4.3 22.7-8.4-3.9-17.3-6.7-27-6.7H160c-26.5 0-48 21.5-48 48s21.5 48 48 48h28.1l-18.7 18.7c-18.4 18.4-23.8 45.8-13.9 69.8 1.4 3.4 3.7 6.2 5.6 9.3L23.4 234.6c-7.7-4-17.5-1-21.6 6.9-4.1 7.8-1 17.5 6.9 21.6l405 209.3c11.1 5.1 23 7.6 34.7 7.6 21.7 0 43.1-8.4 58.9-24.3 6.3-6.3 6.3-16.4 0-22.6zM384 64c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.3-32 32-32zM192 249.4l73.4-73.4H160c-8.8 0-16-7.2-16-16s7.2-16 16-16h137.4c13 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L246.6 272H336c8.8 0 16 7.2 16 16v88c0 8.8-7.2 16-16 16s-16-7.2-16-16v-72H214.6c-28.5 0-42.8-34.4-22.6-54.6zm96 86.6v35.4L219.5 336H288z\"]\n};\nvar faSleigh = {\n prefix: 'fal',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M615.8 364.9l-14.3-11.2c-3.4-2.8-8.5-2.2-11.2 1.2l-10 12.5c-2.8 3.4-2.2 8.5 1.2 11.2l13.5 10.5c6.3 5.1 11.1 12.1 12.5 20 3.8 20.6-12.1 38.7-32.1 38.7H448v-64h10c65.1 0 118-52.9 118-118V128.5h24c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H480c-17.7 0-32 14.3-32 32V177c0 28.1-29.4 39.2-42.1 42.7-48.1 13.3-137-3.8-184.2-83.1C169.5 48.7 122 32 52.7 32H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h24v168c0 64 39.9 118.6 96 141v75H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h532c35.5 0 66-27.3 67.9-60.8 1.2-21.2-7.6-41-24.1-54.3zM64 232V64.4c53.4 1.8 88.2 17.9 130.3 88.5C236.5 224.1 309.8 256 372 256c15 0 29.3-1.8 42.4-5.5 41.1-11.3 65.6-38.8 65.6-73.5v-48.5h64V266c0 47.4-38.6 86-86 86H184c-66.2 0-120-53.8-120-120zm96 216v-66.4c7.9 1.3 15.8 2.4 24 2.4h232v64H160z\"]\n};\nvar faSlidersH = {\n prefix: 'fal',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M504 384H192v-40c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v40H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88v40c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24v-40h312c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-344 64h-32v-96h32v96zM504 96H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v40H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h152v40c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24v-40h248c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-280 64h-32V64h32v96zm280 80h-88v-40c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v40H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h312v40c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24v-40h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-120 64h-32v-96h32v96z\"]\n};\nvar faSlidersHSquare = {\n prefix: 'fal',\n iconName: 'sliders-h-square',\n icon: [448, 512, [], \"f3f0\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zm-92-272H224v-40c0-13.2-10.8-24-24-24h-48c-13.2 0-24 10.8-24 24v40H92c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h36v40c0 13.2 10.8 24 24 24h48c13.2 0 24-10.8 24-24v-40h100c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12zm-132 64h-32v-96h32v96zm148 96h-20v-40c0-13.2-10.8-24-24-24h-48c-13.2 0-24 10.8-24 24v40H108c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h116v40c0 13.2 10.8 24 24 24h48c13.2 0 24-10.8 24-24v-40h20c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12zm-52 64h-32v-96h32v96z\"]\n};\nvar faSlidersV = {\n prefix: 'fal',\n iconName: 'sliders-v',\n icon: [448, 512, [], \"f3f1\", \"M160 168v-48c0-13.3-10.7-24-24-24H96V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v88H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h40v312c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V192h40c13.3 0 24-10.7 24-24zm-32-8H32v-32h96v32zm152 160h-40V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v312h-40c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h40v88c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-88h40c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm-8 64h-96v-32h96v32zm152-224h-40V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v152h-40c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h40v248c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V256h40c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm-8 64h-96v-32h96v32z\"]\n};\nvar faSlidersVSquare = {\n prefix: 'fal',\n iconName: 'sliders-v-square',\n icon: [448, 512, [], \"f3f2\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zM200 160h-40v-32c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v32H88c-13.2 0-24 10.8-24 24v48c0 13.2 10.8 24 24 24h40v116c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V256h40c13.2 0 24-10.8 24-24v-48c0-13.2-10.8-24-24-24zm-8 64H96v-32h96v32zm168 32h-40V128c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v128h-40c-13.2 0-24 10.8-24 24v48c0 13.2 10.8 24 24 24h40v20c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-20h40c13.2 0 24-10.8 24-24v-48c0-13.2-10.8-24-24-24zm-8 64h-96v-32h96v32z\"]\n};\nvar faSmile = {\n prefix: 'fal',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm90.2-146.2C315.8 352.6 282.9 368 248 368s-67.8-15.4-90.2-42.2c-5.7-6.8-15.8-7.7-22.5-2-6.8 5.7-7.7 15.7-2 22.5C161.7 380.4 203.6 400 248 400s86.3-19.6 114.8-53.8c5.7-6.8 4.8-16.9-2-22.5-6.8-5.6-16.9-4.7-22.6 2.1zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faSmileBeam = {\n prefix: 'fal',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M168 205.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm80-304c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4zm10.2 157.8C315.8 352.6 282.9 368 248 368s-67.8-15.4-90.2-42.2c-5.7-6.8-15.8-7.7-22.5-2-6.8 5.7-7.7 15.7-2 22.5C161.7 380.4 203.6 400 248 400s86.3-19.6 114.8-53.8c5.7-6.8 4.8-16.9-2-22.5-6.9-5.6-16.9-4.7-22.6 2.1z\"]\n};\nvar faSmilePlus = {\n prefix: 'fal',\n iconName: 'smile-plus',\n icon: [640, 512, [], \"f5b9\", \"M208 96C93.1 96 0 189.1 0 304s93.1 208 208 208 208-93.1 208-208S322.9 96 208 96zm0 384c-97 0-176-79-176-176s79-176 176-176 176 79 176 176-79 176-176 176zm75.8-130.7C265 371.4 237.4 384 208 384s-57-12.6-75.8-34.6c-5.7-6.7-15.9-7.5-22.5-1.8-6.8 5.8-7.5 15.8-1.8 22.6C132.7 399.3 169.2 416 208 416s75.3-16.7 100.2-45.9c5.8-6.7 4.9-16.8-1.8-22.6-6.6-5.6-16.8-4.9-22.6 1.8zM144 280c13.3 0 24-10.7 24-24s-10.7-24-24-24-24 10.7-24 24 10.7 24 24 24zm128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24-24 10.7-24 24 10.7 24 24 24zM632 96h-88V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v88h-88c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88v88c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-88h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmileWink = {\n prefix: 'fal',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm152.7 400.7c-19.8 19.8-43 35.4-68.7 46.3-26.6 11.3-54.9 17-84.1 17s-57.5-5.7-84.1-17c-25.7-10.9-48.8-26.5-68.7-46.3-19.8-19.8-35.4-43-46.3-68.7-11.3-26.6-17-54.9-17-84.1s5.7-57.5 17-84.1c10.9-25.7 26.5-48.8 46.3-68.7 19.8-19.8 43-35.4 68.7-46.3 26.6-11.3 54.9-17 84.1-17s57.5 5.7 84.1 17c25.7 10.9 48.8 26.5 68.7 46.3 19.8 19.8 35.4 43 46.3 68.7 11.3 26.6 17 54.9 17 84.1s-5.7 57.5-17 84.1c-10.8 25.8-26.4 48.9-46.3 68.7zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm10.2 145.8C315.8 352.6 282.9 368 248 368s-67.8-15.4-90.2-42.2c-13.5-16.2-38.2 4.2-24.6 20.5C161.7 380.4 203.5 400 248 400s86.3-19.6 114.8-53.8c13.5-16.2-11.1-36.7-24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fal',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M179.2 288h105.2c24.3 20.7 54.6 32 86.8 32 32.2 0 62.5-11.3 86.8-32h28.4c67.1 0 121.6-53.4 121.6-119.1S553.4 49.8 486.4 49.8c-9.2 0-18.4 1.1-27.4 3.2-27.6-33.2-69.1-53-113.4-53-30.2 0-58.9 8.9-83.2 25.4C238.1 8.9 209.4 0 179.2 0 98 0 32 64.6 32 144s66 144 147.2 144zm0-256c32.8 0 62.2 13.5 83.2 34.9 21-21.4 50.4-34.9 83.2-34.9 43.9 0 81.6 24.1 101 59.2 12-5.8 25.4-9.4 39.8-9.4 49.5 0 89.6 39 89.6 87.1S535.9 256 486.4 256h-41.1c-18.7 19.6-44.9 32-74.1 32s-55.4-12.4-74.1-32H179.2C115.6 256 64 205.9 64 144S115.6 32 179.2 32zM632 384H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-64 96H232c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-416 0H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmoke = {\n prefix: 'fal',\n iconName: 'smoke',\n icon: [640, 512, [], \"f760\", \"M640 240c0-79.4-64.6-144-144-144-20.5 0-40.3 4.7-58.6 13-25.2-45.7-73.6-77-129.4-77-20.5 0-40.6 4.5-59.9 13.2C220.8 16.3 183.6 0 144 0 64.6 0 0 64.6 0 144c0 40.8 17.3 77.3 44.7 103.4C17.1 275.5 0 313.9 0 356.3 0 442.2 69.8 512 155.7 512h361.5c67.7 0 122.8-55.1 122.8-122.8 0-26.9-9-51.7-23.7-71.9 14.6-22.4 23.7-48.6 23.7-77.3zm-32 0c0 19.6-5.4 37.9-14.4 53.8-21-16.9-47.4-27.5-76.5-27.5-23.1 0-45.1 6.5-64.7 18.8-26.3-32.6-65.5-51.7-107.9-51.7-25.5 0-50.1 7.1-72 20.5-8.2-9.3-17.4-17.5-27.4-24.6 12.9-40.2 50.3-69.5 94.7-69.5 17 0 33.5 4.5 49.2 13.5l11.8 6.7 8.6-10.5c21.6-26.5 53.1-41.7 86.5-41.7C557.8 128 608 178.2 608 240zM32 144C32 82.2 82.2 32 144 32c34.1 0 66 15.7 87.6 43.1l8.4 10.7 11.9-6.6c18-10 36.9-15.1 56.1-15.1 44.3 0 82.5 25.1 101.9 61.8-5.7 4.4-11.4 8.7-16.5 14-17.1-7.8-35-11.8-53.4-11.8-56.4 0-104 35.8-122.8 85.6-19.2-8.4-40.1-13-61.5-13-32 0-61.7 9.7-86.4 26.3C46.5 206.5 32 177 32 144zm485.2 336H155.7C87.5 480 32 424.5 32 356.3s55.5-123.7 123.7-123.7c39.8 0 77.5 19.6 100.7 52.3l9.7 13.6 13.2-10.2c19.3-15 41.9-22.9 65.4-22.9 36.9 0 70.8 18.9 90.7 50.6l9.8 15.6 14.1-11.8c16.8-14.1 36.9-21.6 58-21.6 50.1 0 90.8 40.7 90.8 90.8s-40.9 91-90.9 91z\"]\n};\nvar faSmoking = {\n prefix: 'fal',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-16c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm-64 0h-16c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm-80 0H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h440c13.2 0 24-10.8 24-24V376c0-13.2-10.8-24-24-24zM192 480H48c-8.8 0-16-7.2-16-16v-64c0-8.8 7.2-16 16-16h144v96zm288 0H224v-96h256v96zm76.4-386.5c-7.5-5-12.4-13.2-12.4-22.2V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v62.3c0 20.2 10.3 38.8 27 50 43.2 29 69 77.3 69 129.4V280c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-30.3c0-62.9-31.2-121.3-83.6-156.2zm-36.7 52.4C494.1 129.3 480 99.5 480 69V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v67c0 40.3 22.2 76 55.6 98.6 25.3 17.1 40.4 45.5 40.4 76.1V280c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-30.3c0-42-21.1-80.9-56.3-103.8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fal',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 480C132.5 480 32 379.5 32 256c0-56 20.8-107.2 54.9-146.5l315.6 315.6C363.2 459.2 312 480 256 480zm22.6-224H384v32h-73.4l-32-32zm146.5 146.5L342.6 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H246.6L109.5 86.9C148.8 52.8 200 32 256 32c123.5 0 224 100.5 224 224 0 56-20.8 107.2-54.9 146.5zM112 320h140.1l-32-32H128v-32h60.1l-32-32H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16zm240-192c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.5-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fal',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M304 176h-16c-6.1 0-11.6 3.4-14.3 8.8L256 220.2l-17.7-35.4c-2.7-5.4-8.2-8.8-14.3-8.8h-16c-8.8 0-16 7.2-16 16v104c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-68.2l24.8 55.8c2.9 5.9 11.4 5.9 14.3 0l24.8-55.8V296c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V192c.1-8.8-7.1-16-15.9-16zm-168.6 42.5c-1.4-1.2-2.1-2.5-2.1-3.8 0-3.1 4.5-6.6 10.4-6.6H156c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-12.2c-23.4 0-42.4 17.3-42.4 38.6 0 10.7 4.9 20.9 13.3 28.1l21.9 18.8c1.4 1.2 2.1 2.5 2.1 3.8 0 3.1-4.5 6.6-10.4 6.6H116c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h12.3c23.4 0 42.4-17.3 42.4-38.6 0-10.7-4.9-20.9-13.3-28.1l-22-18.8zm240 0c-1.4-1.2-2.1-2.5-2.1-3.8 0-3.1 4.5-6.6 10.4-6.6H396c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-12.3c-23.4 0-42.4 17.3-42.4 38.6 0 10.7 4.9 20.9 13.3 28.1l21.9 18.8c1.4 1.2 2.1 2.5 2.1 3.8 0 3.1-4.5 6.6-10.4 6.6H356c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h12.3c23.4 0 42.4-17.3 42.4-38.6 0-10.7-4.9-20.9-13.3-28.1l-22-18.8zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26 3.8 8.8 12.4 14.5 22 14.5 61.5 0 110-25.7 139.1-46.3 29 9.1 60.2 14.3 93 14.3 141.4 0 256-93.1 256-208S397.4 32 256 32zm0 384c-28.3 0-56.3-4.3-83.2-12.8l-15.2-4.8-13 9.2c-23 16.3-58.5 35.3-102.6 39.6 12-15.1 29.8-40.4 40.8-69.6l7.1-18.7-13.7-14.6C47.4 313.7 32.1 277.6 32.1 240c0-97 100.5-176 224-176s224 79 224 176S379.5 416 256 416z\"]\n};\nvar faSnake = {\n prefix: 'fal',\n iconName: 'snake',\n icon: [640, 512, [], \"f716\", \"M528 248c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm0-16c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm90.96-53.03l-47.87-17.52c-46.68-17.13-47.57-17.46-57.9-17.46-28.31 0-53.19 18.27-61.67 44.42l-1.3 4.42C394.94 199.65 352 246.91 352 304v72c0 22.06-17.94 40-40 40s-40-17.94-40-40V136C272 61.01 210.99 0 136 0S0 61.01 0 136v223.53c0 43.6 5.42 84.48 17.06 128.63C20.76 502.21 33.47 512 48 512s27.24-9.79 30.94-23.84C90.58 444.01 96 403.14 96 359.53V136c0-22.06 17.94-40 40-40s40 17.94 40 40v240c0 74.99 61.01 136 136 136s136-61.01 136-136v-72c0-4.12 1.57-7.89 4.14-10.73 9.43 25.59 33.59 42.73 59.88 42.73h.09c11.42 0 12.43-.37 59.07-17.48l47.78-17.49c12.63-4.61 21.04-16.62 21.04-30.06v-61.93c0-13.45-8.41-25.46-21.04-30.07zm-10.96 92c-88.03 32.11-88.77 33.04-94.81 33.04h-1.18c-13.44 0-25.79-9.17-30.05-22.29l-7.58-25.71V256H464c-26.47 0-48 21.53-48 48v72c0 57.34-46.66 104-104 104s-104-46.66-104-104V136c0-39.7-32.31-72-72-72s-72 32.3-72 72v223.53c0 42.02-5.37 80.14-16 120.47-10.63-40.33-16-78.46-16-120.47V136C32 78.66 78.66 32 136 32s104 46.66 104 104v240c0 39.7 32.31 72 72 72s72-32.3 72-72v-72c0-44.11 35.88-80 80-80h10.39l7.58-25.71c4.26-13.12 16.61-22.29 30.05-22.29h1.18c6.03 0 6.78.93 94.81 33.04v61.93z\"]\n};\nvar faSnooze = {\n prefix: 'fal',\n iconName: 'snooze',\n icon: [448, 512, [], \"f880\", \"M176 272H24a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h131.19L3.72 469.75A16.06 16.06 0 0 0 0 480v16a16 16 0 0 0 16 16h168a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H36.81l151.48-165.77A15.94 15.94 0 0 0 192 304v-16a16 16 0 0 0-16-16zM272 0H168a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h78l-98.56 125.2a16.07 16.07 0 0 0-3.44 9.91V176a16 16 0 0 0 16 16h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-94l98.56-125.2a16.07 16.07 0 0 0 3.44-9.91V16a16 16 0 0 0-16-16zm176 248.89V240a16 16 0 0 0-16-16H328a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h78l-98.56 125.2a16.07 16.07 0 0 0-3.44 9.91V400a16 16 0 0 0 16 16h120a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-94l98.59-125.2a16.07 16.07 0 0 0 3.41-9.91z\"]\n};\nvar faSnowBlowing = {\n prefix: 'fal',\n iconName: 'snow-blowing',\n icon: [640, 512, [], \"f761\", \"M351 115.8l-7.6-13.2c-2.1-3.6-6.7-4.9-10.4-2.8l-40.6 23.5 8-29.9c1.1-4.1-1.3-8.2-5.4-9.3l-14.7-3.9c-4.1-1.1-8.2 1.3-9.3 5.4l-15.9 59.3-63.1 36.3v-78.6L237.7 57c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-23 23V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v49.4l-23-23c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l45.7 45.7v78.6l-63.1-36.4L81 85.5c-1.1-4.1-5.3-6.5-9.3-5.4l-14.7 4c-4.1 1.1-6.5 5.3-5.4 9.3l8 29.9L19 99.8c-3.6-2.1-8.3-.9-10.4 2.8L1 115.8c-2.1 3.6-.9 8.3 2.8 10.4l40.6 23.5-29.9 8c-4.1 1.1-6.5 5.3-5.4 9.3l3.9 14.7c1.1 4.1 5.3 6.5 9.3 5.4l59.3-15.9 63.9 36.9L81.6 245l-59.2-16c-4.1-1.1-8.2 1.3-9.3 5.4l-3.9 14.7c-1.1 4.1 1.3 8.2 5.4 9.3l29.9 8-40.7 23.5C.2 292-1.1 296.6 1 300.3l7.6 13.2c2.1 3.6 6.7 4.9 10.4 2.8l40.6-23.5-8 29.9c-1.1 4.1 1.3 8.2 5.4 9.3l14.7 3.9c4.1 1.1 8.2-1.3 9.3-5.4l15.9-59.3 63.1-36.4v78.6L114.3 359c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l23-23V408c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-49.4l23 23c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L192 313.4v-78.6l63.1 36.4 15.9 59.3c1.1 4.1 5.3 6.5 9.3 5.4L295 332c4.1-1.1 6.5-5.3 5.4-9.3l-8-29.9 40.6 23.5c3.6 2.1 8.3.9 10.4-2.8l7.6-13.2c2.1-3.6.9-8.3-2.8-10.4l-40.6-23.5 29.9-8c4.1-1.1 6.5-5.3 5.4-9.3l-3.9-14.7c-1.1-4.1-5.3-6.5-9.3-5.4l-59.3 15.9-64-36.9 63.9-36.9 59.3 15.9c4.1 1.1 8.2-1.3 9.3-5.4l3.9-14.7c1.1-4.1-1.3-8.2-5.4-9.3l-29.9-8 40.6-23.5c3.7-2.1 5-6.7 2.9-10.3zM392 288h152c59.8 0 106.8-54.6 93.8-116.7-7.6-36.3-36.9-65.6-73.2-73.2-59.1-12.3-111.5 29.8-116.3 85.4-.4 4.6 3.5 8.4 8 8.4h16.2c4.2 0 7.4-3.3 7.9-7.4 4.2-36.6 39.5-63.8 78.7-54.8 23.1 5.3 41.8 24.1 47.2 47.2 9.6 41.8-22.1 79.1-62.3 79.1H392c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm147.7 32H376c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h164.8c33.4 0 63.3 24.4 66.5 57.6C611 447.7 581 480 543.6 480c-32.8 0-59.9-24.8-63.6-56.5-.5-4.2-3.7-7.4-7.9-7.4H456c-4.6 0-8.4 3.9-8 8.4 4.3 49.1 45.5 87.6 95.6 87.6 54 0 97.6-44.6 96-98.9-1.5-52.7-47.4-93.2-99.9-93.2z\"]\n};\nvar faSnowboarding = {\n prefix: 'fal',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M492.8 177.6L425.4 127c30.8-4.6 54.6-31 54.6-63 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 6.6 1.3 12.9 3.2 19-1.8-.7-3.5-1.6-5.3-2.2l-47.6-15.4L283 26.5C274.8 10.2 258.3 0 240 0c-7.3 0-14.7 1.7-21.3 5-23.8 11.9-33.4 40.8-21.6 64.4l25.4 50.8c2.6 5.2 5.8 9.9 9.6 14.1l-11.8 5.9C193 153.8 176 181.3 176 211.8v41.6l-63.2 21.1c-25.1 8.3-38.7 35.5-30.4 60.7 4.3 12.9 13.9 22.5 25.7 28l-51.3-18.7c-11.7-4.3-21-12.8-26.3-24.1-3.8-8-13.3-11.4-21.3-7.7S-2.3 326 1.5 334c8.9 19 24.6 33.4 44.3 40.6l364.8 132.8c8.8 3.2 17.9 4.8 26.9 4.8 11.3 0 22.6-2.5 33.2-7.4 8-3.7 11.5-13.2 7.8-21.2s-13.3-11.4-21.3-7.7c-11.3 5.2-23.9 5.8-35.7 1.5l-84.6-30.8c18.4-3.7 33.8-17.4 37.9-36.3l21.9-102c5.2-24.4-4.4-49.8-24.5-64.9L341.1 221l30.7-14.2 63.4 47.6c8.4 6.3 18.3 9.6 28.8 9.6 15 0 29.4-7.2 38.4-19.2 15.9-21.2 11.6-51.4-9.6-67.2zM416 32c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.4-32 32-32zM291.3 429.7l-174.7-63.6c2.6.6 12.5 4 26.6-.7l85.1-28.3c22.2-7.4 38.2-26 42.6-48.3l27.7 19.7-17.4 81.4c-5.2 23.7 7.5 36.6 10.1 39.8zm185.5-204.1c-5.3 7.1-15.3 8.5-22.4 3.2l-78.7-59-98.1 45.2 75.6 53.8c10.3 7.7 15 20.4 12.4 32.5l-21.8 102c-2 9.3-11.1 14-19 12.3-8.7-1.8-14.2-10.3-12.3-19l21.8-102-94.2-67v48.8c0 13.8-8.8 26-21.9 30.4-92 30.7-86.5 29.2-90.1 29.2-6.7 0-12.9-4.2-15.2-10.9-2.8-8.4 1.8-17.5 10.1-20.2l85.1-28.4v-64.7c0-18.3 10.2-34.7 26.5-42.9l71-35.5-37.1-12.4c-7.6-2.5-13.8-7.9-17.3-15.1l-25.4-50.8c-3.9-7.9-.8-17.5 7.2-21.5 9.4-4.7 18.3.8 21.5 7.2l25.4 50.8L340 111c13.1 4.3 25.3 10.7 36.3 19l97.5 73.1c6.9 5.4 8.3 15.4 3 22.5z\"]\n};\nvar faSnowflake = {\n prefix: 'fal',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M388.1 333.5l52.7-14.3c4.2-1.1 6.7-5.5 5.6-9.8l-4.1-15.5c-1.1-4.3-5.5-6.8-9.7-5.7l-83.2 22.6-93.8-54.8 93.8-54.8 83.2 22.6c4.2 1.1 8.6-1.4 9.7-5.7l4.1-15.5c1.1-4.3-1.4-8.7-5.6-9.8l-52.7-14.3 55.9-32.7c3.8-2.2 5.1-7.1 2.9-10.9L439 121c-2.2-3.8-7-5.1-10.8-2.9l-55.9 32.7 14.1-53.3c1.1-4.3-1.4-8.7-5.6-9.8l-15.3-4.1c-4.2-1.1-8.6 1.4-9.7 5.7l-22.3 84.2-93.8 54.8V118.6l61-61.6c3.1-3.1 3.1-8.2 0-11.3l-11.2-11.3c-3.1-3.1-8.1-3.1-11.2 0l-38.6 39V8c0-4.4-3.5-8-7.9-8H216c-4.4 0-7.9 3.6-7.9 8v65.4l-38.6-39c-3.1-3.1-8.1-3.1-11.2 0l-11.2 11.3c-3.1 3.1-3.1 8.2 0 11.3l60.9 61.7v109.7l-93.8-54.8-22.1-84.4c-1.1-4.3-5.5-6.8-9.7-5.7l-15.3 4.1c-4.2 1.1-6.7 5.5-5.6 9.8l14.1 53.3L19.7 118c-3.8-2.2-8.6-.9-10.8 2.9L1 134.8c-2.2 3.8-.9 8.7 2.9 10.9l55.9 32.7-52.6 14.4c-4.2 1.1-6.7 5.5-5.6 9.8l4.1 15.5c1.1 4.3 5.5 6.8 9.7 5.7l83.2-22.6 93.8 54.8-93.8 54.8-83.2-22.6c-4.2-1.1-8.6 1.4-9.7 5.7l-4.1 15.5c-1.1 4.3 1.4 8.7 5.6 9.8l52.7 14.3L4 366.1c-3.8 2.2-5.1 7.1-2.9 10.9L9 390.9c2.2 3.8 7 5.1 10.8 2.9l55.9-32.7-14.1 53.3c-1.1 4.3 1.4 8.7 5.6 9.8l15.3 4.1c4.2 1.1 8.6-1.4 9.7-5.7l22.3-84.2 93.8-54.8v109.7l-61 61.7c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.3c3.1 3.1 8.1 3.1 11.2 0l38.6-39V504c0 4.4 3.5 8 7.9 8H232c4.4 0 7.9-3.6 7.9-8v-65.4l38.6 39c3.1 3.1 8.1 3.1 11.2 0l11.2-11.3c3.1-3.1 3.1-8.2 0-11.3L240 393.3V283.7l93.8 54.8 22.3 84.2c1.1 4.3 5.5 6.8 9.7 5.7l15.3-4.1c4.2-1.1 6.7-5.5 5.6-9.8l-14.1-53.3 55.9 32.7c3.8 2.2 8.6.9 10.8-2.9l7.9-13.9c2.2-3.8.9-8.7-2.9-10.9l-56.2-32.7z\"]\n};\nvar faSnowflakes = {\n prefix: 'fal',\n iconName: 'snowflakes',\n icon: [640, 512, [], \"f7cf\", \"M527.9 120c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V91.6l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9L576 64l27.9-16c3.8-2.2 5.1-7.1 2.9-10.9l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16-27.9 16c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V120zm80.2 136l27.9-16c3.8-2.2 5.1-7.1 2.9-10.9l-8-13.9c-2.2-3.8-7.1-5.1-10.9-2.9l-28 16.1V200c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v28.4l-28-16.1c-3.8-2.2-8.7-.9-10.9 2.9l-8 13.9c-2.2 3.8-.9 8.7 2.9 10.9l27.9 16-27.9 16c-3.8 2.2-5.1 7.1-2.9 10.9l8 13.9c2.2 3.8 7.1 5.1 10.9 2.9l28-16.1V312c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-28.4l28 16.1c3.8 2.2 8.7.9 10.9-2.9l8-13.9c2.2-3.8.9-8.7-2.9-10.9l-27.9-16zm-220.2 77.5l52.7-14.3c4.2-1.1 6.7-5.5 5.6-9.8l-4.1-15.5c-1.1-4.3-5.5-6.8-9.7-5.7l-83.1 22.6-93.8-54.8 93.7-54.8 83.1 22.6c4.2 1.1 8.6-1.4 9.7-5.7l4.1-15.5c1.1-4.3-1.4-8.7-5.6-9.8l-52.7-14.3 55.9-32.7c3.8-2.2 5.1-7.1 2.9-10.9l-7.9-13.9c-2.2-3.8-7-5.1-10.8-2.9L372 150.8l14.1-53.3c1.1-4.3-1.4-8.7-5.6-9.8l-15.3-4.1c-4.2-1.1-8.6 1.4-9.7 5.7l-22.3 84.2-93.7 54.8V118.6l61-61.6c3.1-3.1 3.1-8.2 0-11.3l-11.2-11.3c-3.1-3.1-8.1-3.1-11.2 0l-38.6 39V8c0-4.4-3.5-8-7.9-8h-15.8c-4.4 0-7.9 3.6-7.9 8v65.4l-38.6-39c-3.1-3.1-8.1-3.1-11.2 0l-11.2 11.3c-3.1 3.1-3.1 8.2 0 11.3l60.9 61.7v109.7l-93.7-54.8-22-84.4c-1.1-4.3-5.5-6.8-9.7-5.7l-15.3 4.1c-4.2 1.1-6.7 5.5-5.6 9.8l14.1 53.3L19.8 118c-3.8-2.2-8.6-.9-10.8 2.9l-7.9 13.9c-2.2 3.8-.9 8.7 2.9 10.9l55.9 32.7-52.6 14.4c-4.2 1.1-6.7 5.5-5.6 9.8l4.1 15.5c1.1 4.3 5.5 6.8 9.7 5.7l83.1-22.6 93.7 54.8-93.7 54.8-83.1-22.6c-4.2-1.1-8.6 1.4-9.7 5.7l-4.1 15.5c-1.1 4.3 1.4 8.7 5.6 9.8L60 333.5 4.1 366.1C.3 368.3-1 373.2 1.2 377l7.9 13.9c2.2 3.8 7 5.1 10.8 2.9l55.9-32.7-14.1 53.3c-1.1 4.3 1.4 8.7 5.6 9.8l15.3 4.1c4.2 1.1 8.6-1.4 9.7-5.7l22.3-84.2 93.7-54.8v109.7l-61 61.7c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.3c3.1 3.1 8.1 3.1 11.2 0l38.6-39V504c0 4.4 3.5 8 7.9 8H232c4.4 0 7.9-3.6 7.9-8v-65.4l38.6 39c3.1 3.1 8.1 3.1 11.2 0l11.2-11.3c3.1-3.1 3.1-8.2 0-11.3L240 393.3V283.7l93.7 54.8 22.3 84.2c1.1 4.3 5.5 6.8 9.7 5.7l15.3-4.1c4.2-1.1 6.7-5.5 5.6-9.8l-14.1-53.3 55.9 32.7c3.8 2.2 8.6.9 10.8-2.9l7.9-13.9c2.2-3.8.9-8.7-2.9-10.9l-56.3-32.7z\"]\n};\nvar faSnowman = {\n prefix: 'fal',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M256 336c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM224 72c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm287.3 75.5l-6.3-14.7c-1.7-4.1-6.4-5.9-10.5-4.2l-46.5 20V104c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v58.3l-53.4 22.9c-4.6-8.6-9.8-16.9-16.4-24.2 10.4-16.7 15.8-35.4 15.8-55C362 47.5 314.4 0 256 0S150 47.5 150 106c0 19.5 5.4 38.3 15.8 55-6.6 7.4-11.8 15.6-16.4 24.2L96 162.3V104c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v44.6l-46.5-19.9c-4.1-1.7-8.8.1-10.5 4.2L.7 147.6c-1.7 4.1.1 8.8 4.2 10.5l133.3 57.1c-1.9 8.4-3.2 17-3.2 25.8 0 7.2.8 14.5 2.4 22.4-25.8 29-39.9 66-39.9 105.1 0 54.2 27.6 104 73.8 133.4 10.5 6.6 23.6 10.1 37.9 10.1h93c15.8 0 31-4.8 44-13.8 51.8-35.9 76.9-96.8 65.6-159.1-5.1-28.1-17.9-54.1-37.2-75.8 1.6-7.9 2.4-15.1 2.4-22.3 0-8.8-1.3-17.4-3.2-25.8l133.3-57.1c4.1-1.8 6-6.5 4.2-10.6zm-131 197.3c9 49.8-11 98.5-52.4 127.1-7.6 5.3-16.6 8.1-25.8 8.1h-93c-5.7 0-14-.9-20.8-5.2-36.9-23.4-58.9-63.2-58.9-106.3 0-13.3-.5-51.6 43.3-95.7-5.8-21.5-5.8-25.5-5.8-31.8 0-25.5 10.7-49 30.2-66.3l11.5-10.2-9.7-11.9c-11.2-13.6-17-29.7-17-46.6 0-40.8 33.2-74 74-74s74 33.2 74 74c0 16.9-5.9 33-17 46.6l-9.7 11.9 11.5 10.2C334.2 192 345 215.5 345 241c0 6.6-.3 11.1-5.8 31.7 37.1 37.1 39.9 65.2 41.1 72.1zM256 272c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm32-200c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-32 136c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm0-96c-8.8 0-16 7.2-16 16s16 32 16 32 16-23.2 16-32-7.2-16-16-16z\"]\n};\nvar faSnowmobile = {\n prefix: 'fal',\n iconName: 'snowmobile',\n icon: [640, 512, [], \"f7d1\", \"M639.2 466.7l-7.2-14.3c-2-4-6.8-5.6-10.7-3.6l-57.7 26.1c-3.9 2-8.1 3.2-12.4 4L496 405.3l72.9-48.6c4.5-3 7.1-8 7.1-13.3V265c0-5.6-2.9-10.8-7.8-13.7l-138.1-82.9-47.8-95.6c-4-7.9-13.5-11.1-21.5-7.2-7.9 4-11.1 13.6-7.2 21.5l46.8 93.6-16.9 22.6c-2.4-24.2-22.7-43.3-47.5-43.3h-38.8l-41.1-33.8c-.1-.1-.3-.2-.4-.3 27.7-7 48.4-32 48.4-61.8 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 15.6 5.8 29.7 15.1 40.8-10.1 1.2-43.6 7-61.9 43.4L104 198.6c-11.3 22.7-11.4 48.7-.1 71.3 3.4 6.8 7.8 12.7 12.7 18.1H112c-12.1 0-23.2 6.8-28.6 17.7l-32 64c-2.7 5.4-3.7 11.1-3.3 16.6C20.5 393.4 0 418.2 0 448c0 35.3 28.7 64 64 64h192c35.3 0 64-28.7 64-64 0-11.7-3.4-22.5-8.9-32H464l48 64h-88c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h118.2c12.4 0 24.6-2.9 35.7-8.4l57.7-26.1c3.9-2 5.5-6.8 3.6-10.8zM240 32c17.7 0 32 14.4 32 32s-14.3 32-32 32-32-14.4-32-32 14.3-32 32-32zM132.7 212.9l25.2-50.4c7-13.9 19.8-23.4 35.2-25.9 4.7-.8 24.7-3.5 41.7 13.4l46.6 38.3c2.8 2.3 6.5 3.6 10.2 3.6H336c8.8 0 16 7.2 16 16s-7.2 16-16 16h-44.5c-11.1 0-21.9-3.9-30.5-10.9l-43-35.3-37 74 76.5 14.3c26.6 5 35.4 38.7 14.6 56l-69.9 58.3c-7.1 5.9-17.1 4.5-22.5-2-5.7-6.8-4.8-16.9 2-22.5l69.9-58.2-84.9-15.9c-14.9-2.8-27.4-12.2-34.2-25.8-6.7-13.8-6.6-29.4.2-43zm212 42.2l-15.1 20.1c-3.9 5.2-9.5 8.4-15.5 10.4-.1-.3-.8-14.5-13.6-29.6H336c3 0 5.8-.4 8.7-.9zm-115.8-27h-.2v-.1l.2.1zM112 320h62.6l-13.3 11.1c-15.8 13.2-20.8 34.5-14.3 52.9H80l32-64zm144 160H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32zm-8.2-96l44.9-37.4c9-7.5 15.3-17.1 19-27.5 17.1-2.1 33.1-10.7 43.5-24.7l69.1-92.1L544 274.1v60.8L470.3 384H247.8z\"]\n};\nvar faSnowplow = {\n prefix: 'fal',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M360 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm212.4 47.4c-9-9-14.1-21.2-14.1-34v-139c0-12.7 5.1-25 14.1-34l65.2-63.6c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-65.3 63.6c-15 15-23.4 35.4-23.4 56.6V304h-96.1v-66.9c0-8.7-1.8-17.2-5.2-25.2L346.7 29.1C339.1 11.4 321.8 0 302.5 0H158.2c-26.5 0-48 21.5-48 48v80h-16c-26.5 0-48 21.5-48 48v133.7C18.3 330.1 0 362.8 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-23.8-7.6-45.8-20.3-64h66.6v53.5c0 21.2 8.4 41.6 23.4 56.6l65.2 63.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-65.1-63.7zM142.2 128V48c0-8.8 7.2-16 16-16h144.3c6.5 0 12.3 3.8 14.8 9.7L395.4 224H214.2l-72-95.7v-.3zm-64 48c0-8.8 7.2-16 16-16H126l67.4 89.6c3 4 7.8 6.4 12.8 6.4h192v36.6c-9.7-2.7-19.7-4.6-30.2-4.6H112c-11.9 0-23.1 2.3-33.8 5.8V176zM368 480H112c-44.1 0-80-35.9-80-80s35.9-80 80-80h256c44.1 0 80 35.9 80 80s-35.9 80-80 80zM120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24z\"]\n};\nvar faSoap = {\n prefix: 'fal',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M400,96a48,48,0,1,0-48-48A48.05,48.05,0,0,0,400,96Zm0-64a16,16,0,1,1-16,16A16,16,0,0,1,400,32ZM224,128a64,64,0,1,0-64-64A64,64,0,0,0,224,128Zm0-96a32,32,0,1,1-32,32A32,32,0,0,1,224,32ZM352,272H160a80,80,0,0,0,0,160H352a80,80,0,0,0,0-160Zm0,128H160a48,48,0,0,1,0-96H352a48,48,0,0,1,0,96Zm64-208H384a64,64,0,0,0-128,0H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96-32a32,32,0,1,1-32,32A32,32,0,0,1,320,160ZM480,416a64.07,64.07,0,0,1-64,64H96a64.07,64.07,0,0,1-64-64V288a64.07,64.07,0,0,1,64-64H264.88a63.47,63.47,0,0,0,110.24,0H416a64.07,64.07,0,0,1,64,64Z\"]\n};\nvar faSocks = {\n prefix: 'fal',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M448 0h-95.83c-11.87 0-22.84 3.43-32.37 9.04C310.43 3.49 299.71 0 288 0h-95.83c-35.32 0-63.96 28.46-64 63.78C128.1 137.27 128 248 128 248l-79.77 59.39c-45.97 34.49-62.82 98.49-34.06 148.25C35.46 492.47 73.8 512 112.09 512c23.38 0 46.97-7.3 67.09-22.41l13.76-10.32c21.47 21.46 50.13 32.72 79.14 32.72 23.38 0 46.97-7.3 67.09-22.41l121.61-91.2a128.006 128.006 0 0 0 51.21-102.4V64C512 28.65 483.35 0 448 0zm-95.83 32H448c17.64 0 32 14.36 32 32v32H320.14l.03-32.18c.02-17.55 14.38-31.82 32-31.82zm-160 0H288c2.91 0 5.68.47 8.31 1.24-5.02 9.1-8.13 19.4-8.14 30.54L288.14 96h-128l.03-32.18c.02-17.55 14.38-31.82 32-31.82zm-18.32 421.6L159.97 464c-13.94 10.46-30.5 16-47.88 16-28.98 0-55.61-15.09-70.22-40.38-19.78-34.21-8.55-81.05 25.56-106.64L159.98 264l.13-136h128c-.06 60.63-.11 120-.11 120l-79.16 59.39c-45.37 34.03-62.18 96.75-34.99 146.21zM480 295.99c0 30.06-14.36 58.77-38.4 76.8L319.97 464c-13.94 10.46-30.5 16-47.88 16-28.98 0-55-15.09-69.62-40.38-19.78-34.21-8.55-81.05 25.56-106.64L319.98 264l.13-136H480v167.99z\"]\n};\nvar faSolarPanel = {\n prefix: 'fal',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M586.22 26.74C583.65 11.31 570.3 0 554.66 0H85.34C69.7 0 56.35 11.31 53.78 26.74l-53.33 320C-2.81 366.24 12.23 384 32.01 384H224v96h-40c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h272c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-40v-96h191.99c19.77 0 34.81-17.76 31.56-37.26l-53.33-320zM578.66 176h-138.6l-14.4-144h129l24 144zm-170.73 0H232.07l14.4-144h147.07l14.39 144zM85.34 32h129l-14.4 144H61.34l24-144zM56.01 208h140.73l-14.4 144H32.01l24-144zM384 480H256v-96h128v96zM214.48 352l14.4-144h182.25l14.4 144H214.48zm243.17 0l-14.4-144h140.74l24 144H457.65z\"]\n};\nvar faSolarSystem = {\n prefix: 'fal',\n iconName: 'solar-system',\n icon: [512, 512, [], \"e02f\", \"M380.38574,123.71484c-12.63061-12.62695-31.37817-14.52343-46.441-6.73632C310.32861,103.71484,283.90894,96,256.06494,96A159.97282,159.97282,0,1,0,389.146,167.08984,39.99385,39.99385,0,0,0,380.38574,123.71484ZM346.59082,346.51562c-48.32629,48.34376-132.72546,48.34376-181.05176,0A128,128,0,0,1,256.06494,128c20.54492,0,40.09741,5.33594,57.88184,14.41406-3.27832,13.16992-.44544,27.57227,9.85241,37.86914a39.76141,39.76141,0,0,0,41.24817,9.19532,127.01793,127.01793,0,0,1-18.45654,157.0371ZM437.234,74.98047A255.4604,255.4604,0,0,0,147.06494,24.59766c.4397.42187.95935.70312,1.39111,1.13476A87.01815,87.01815,0,0,1,165.7832,51.05273,223.59876,223.59876,0,0,1,446.85205,372.9082a56.40228,56.40228,0,1,0,24.45227,21.15039C535.08618,294.95312,524.0166,161.69922,437.234,74.98047ZM424.113,448a24,24,0,1,1,24.00683-24A24.00468,24.00468,0,0,1,424.113,448Zm-79.18677,13.63477A224.11,224.11,0,0,1,31.92065,256c0-41.99609,12.22229-81.83008,33.74805-116.69531a56.61059,56.61059,0,1,0-24.98376-21.6211c-63.88941,99.11524-52.57556,232.57618,34.24621,319.33594a255.43887,255.43887,0,0,0,289.01441,50.91992c-.65259-.61328-1.41455-1.03711-2.05152-1.67383A86.959,86.959,0,0,1,344.92627,461.63477ZM88.01685,64A24,24,0,1,1,64.01,88,24.00335,24.00335,0,0,1,88.01685,64ZM256.06494,176a80,80,0,1,0,80.023,80A80.10313,80.10313,0,0,0,256.06494,176Zm0,128a48,48,0,1,1,48.0138-48A48.0067,48.0067,0,0,1,256.06494,304Z\"]\n};\nvar faSort = {\n prefix: 'fal',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M288 288H32c-28.4 0-42.8 34.5-22.6 54.6l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c20-20.1 5.7-54.6-22.7-54.6zM160 448L32 320h256L160 448zM32 224h256c28.4 0 42.8-34.5 22.6-54.6l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128C-10.7 189.5 3.6 224 32 224zM160 64l128 128H32L160 64z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fal',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M432 288H304a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8l87.68.07-92.76 131.79a16 16 0 0 0-2.92 9.21V472a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-87.81l92.89-131.86a16 16 0 0 0 2.92-9.21V296a8 8 0 0 0-8-8zm15.29-80.06l-59.76-168A11.87 11.87 0 0 0 376.37 32h-16.74a11.87 11.87 0 0 0-11.16 7.94l-59.76 168A12 12 0 0 0 299.88 224H311a11.86 11.86 0 0 0 11.21-8.09l15.1-44.27h60.85L413.5 216a11.88 11.88 0 0 0 11.2 8h11.42a12 12 0 0 0 11.17-16.06zm-99.9-67.36s19.62-56.87 20.5-60c.87 3.14 20.24 60 20.24 60zm-148.46 231a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fal',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M304 224h128a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-87.81l92.89-131.86a16 16 0 0 0 2.92-9.21V40a8 8 0 0 0-8-8H304a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8l87.68.07-92.76 131.79a16 16 0 0 0-2.92 9.21V216a8 8 0 0 0 8 8zm143.29 239.94l-59.76-168a11.87 11.87 0 0 0-11.16-7.94h-16.74a11.87 11.87 0 0 0-11.16 7.94l-59.76 168A12 12 0 0 0 299.88 480H311a11.86 11.86 0 0 0 11.21-8.09l15.1-44.27h60.85L413.5 472a11.88 11.88 0 0 0 11.2 8h11.42a12 12 0 0 0 11.17-16.06zm-99.9-67.36s19.62-56.87 20.5-60c.87 3.14 20.24 60 20.24 60zm-148.46-25a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fal',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17zm326.85 172.43l-59.76-168A11.87 11.87 0 0 0 376.37 32h-16.74a11.87 11.87 0 0 0-11.16 7.94l-59.76 168A12 12 0 0 0 299.88 224H311a11.86 11.86 0 0 0 11.21-8.09l15.1-44.27h60.85L413.5 216a11.88 11.88 0 0 0 11.2 8h11.42a12 12 0 0 0 11.17-16.06zm-99.9-67.36s19.62-56.87 20.5-60c.87 3.14 20.24 60 20.24 60zM432 288H304a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8l87.68.07-92.76 131.79a16 16 0 0 0-2.92 9.21V472a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-87.81l92.89-131.86a16 16 0 0 0 2.92-9.21V296a8 8 0 0 0-8-8z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fal',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M304 224h128a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-87.81l92.89-131.86a16 16 0 0 0 2.92-9.21V40a8 8 0 0 0-8-8H304a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8l87.68.07-92.76 131.79a16 16 0 0 0-2.92 9.21V216a8 8 0 0 0 8 8zM120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17zm326.85 428.43l-59.76-168a11.87 11.87 0 0 0-11.16-7.94h-16.74a11.87 11.87 0 0 0-11.16 7.94l-59.76 168A12 12 0 0 0 299.88 480H311a11.86 11.86 0 0 0 11.21-8.09l15.1-44.27h60.85L413.5 472a11.88 11.88 0 0 0 11.2 8h11.42a12 12 0 0 0 11.17-16.06zm-99.9-67.36s19.62-56.87 20.5-60c.87 3.14 20.24 60 20.24 60z\"]\n};\nvar faSortAlt = {\n prefix: 'fal',\n iconName: 'sort-alt',\n icon: [384, 512, [], \"f883\", \"M364.5 117.81l-84.06-82.3a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.67V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-16.96zM198.93 371.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fal',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M376 288H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-64 96h-48a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM504 96H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-64 96H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM198.93 371.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fal',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M264 320h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-192h48a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0 96h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm240 160H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-305.07-12.44a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fal',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M312 384h-48a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm64-96H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM504 96H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-64 96H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fal',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M264 224h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0 96h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0-192h48a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm240 256H264a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17z\"]\n};\nvar faSortCircle = {\n prefix: 'fal',\n iconName: 'sort-circle',\n icon: [512, 512, [], \"e030\", \"M164.75,224H347.11c16.4,0,24.59-19.85,13-31.41L269,101.41a18.36,18.36,0,0,0-13-5.41,18.15,18.15,0,0,0-13,5.41l-91.25,91.18C140.16,204.15,148.35,224,164.75,224ZM256,133.67,314.3,192H197.59ZM347.11,288H164.75c-16.4,0-24.59,19.85-13,31.41L243,410.59a18.15,18.15,0,0,0,13,5.41,18.34,18.34,0,0,0,13-5.41l91.18-91.18C371.7,307.85,363.52,288,347.11,288ZM256,378.33,197.59,320H314.3ZM350.88,26.94A247.21,247.21,0,0,0,256.1,8C158.8,8,66.49,65.64,26.94,161.12c-52.4,126.51,7.67,271.54,134.18,323.94A247.21,247.21,0,0,0,255.9,504c97.3,0,189.61-57.64,229.16-153.12C537.46,224.37,477.39,79.34,350.88,26.94ZM455.5,338.64A215.73,215.73,0,0,1,173.37,455.5C63.36,409.93,10.94,283.37,56.5,173.36A215.73,215.73,0,0,1,338.63,56.5C448.64,102.07,501.06,228.63,455.5,338.64Z\"]\n};\nvar faSortCircleDown = {\n prefix: 'fal',\n iconName: 'sort-circle-down',\n icon: [512, 512, [], \"e031\", \"M350.88,26.94A247.21,247.21,0,0,0,256.1,8C158.8,8,66.49,65.64,26.94,161.12c-52.4,126.51,7.67,271.54,134.18,323.94A247.21,247.21,0,0,0,255.9,504c97.3,0,189.61-57.64,229.16-153.12C537.46,224.37,477.39,79.34,350.88,26.94ZM455.5,338.64A215.73,215.73,0,0,1,173.37,455.5C63.36,409.93,10.94,283.37,56.5,173.36A215.73,215.73,0,0,1,338.63,56.5C448.64,102.07,501.06,228.63,455.5,338.64ZM347.25,288H164.89c-16.4,0-24.59,19.85-13,31.41L243,410.59a18.36,18.36,0,0,0,13,5.41,18.15,18.15,0,0,0,13-5.41l91.25-91.18C371.84,307.85,363.65,288,347.25,288ZM256,378.33,197.7,320H314.41Zm11.27-277.64a16,16,0,0,0-22.62,0l-96,96a16,16,0,0,0,22.62,22.62L256,134.63l84.69,84.68a16,16,0,0,0,22.62-22.62Z\"]\n};\nvar faSortCircleUp = {\n prefix: 'fal',\n iconName: 'sort-circle-up',\n icon: [512, 512, [], \"e032\", \"M161.12,485.06A247.21,247.21,0,0,0,255.9,504c97.3,0,189.61-57.64,229.16-153.12,52.4-126.51-7.67-271.54-134.18-323.94A247.21,247.21,0,0,0,256.1,8C158.8,8,66.49,65.64,26.94,161.12-25.46,287.63,34.61,432.66,161.12,485.06ZM56.5,173.36A215.74,215.74,0,0,1,338.64,56.5c110,45.57,162.42,172.13,116.86,282.14A215.73,215.73,0,0,1,173.37,455.5C63.36,409.93,10.94,283.37,56.5,173.36ZM164.75,224H347.11c16.4,0,24.59-19.85,13-31.41L269,101.41a18.36,18.36,0,0,0-13-5.41,18.15,18.15,0,0,0-13,5.41l-91.25,91.18C140.17,204.15,148.35,224,164.75,224ZM256,133.67,314.3,192H197.59ZM244.69,411.31a16,16,0,0,0,22.62,0l96-96a16,16,0,0,0-22.62-22.62L256,377.37l-84.69-84.68a16,16,0,0,0-22.62,22.62Z\"]\n};\nvar faSortDown = {\n prefix: 'fal',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M287.968 288H32.038c-28.425 0-42.767 34.488-22.627 54.627l127.962 128c12.496 12.496 32.758 12.497 45.255 0l127.968-128C330.695 322.528 316.45 288 287.968 288zM160 448L32 320h256L160 448z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fal',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M344.49 257.48a72 72 0 1 0 52.16 132c-8.84 31.22-35.92 54.86-69.08 58a8.07 8.07 0 0 0-7.57 7.92v16.07a8 8 0 0 0 8.38 8.05A112.15 112.15 0 0 0 432 367.86v-40a72.13 72.13 0 0 0-87.51-70.38zM360 367.86a40 40 0 1 1 40-40 40 40 0 0 1-40 40zM424 192h-40V48a16 16 0 0 0-16-16h-12a16 16 0 0 0-13.57 7.52l-20 32A16 16 0 0 0 336 96h16v96h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM198.93 371.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fal',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M424 448h-40V304a16 16 0 0 0-16-16h-12a16 16 0 0 0-13.57 7.52l-20 32A16 16 0 0 0 336 352h16v96h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM344.49 33.92A72 72 0 0 0 360 176.29a71.13 71.13 0 0 0 36.65-10.37c-8.84 31.22-35.92 54.86-69.08 58a8.08 8.08 0 0 0-7.57 7.92v16.07a8 8 0 0 0 8.38 8.06A112.16 112.16 0 0 0 432 144.29v-40a72.13 72.13 0 0 0-87.51-70.37zM360 144.29a40 40 0 1 1 40-40 40 40 0 0 1-40 40zM198.93 371.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fal',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M424 192h-40V48a16 16 0 0 0-16-16h-12a16 16 0 0 0-13.57 7.52l-20 32A16 16 0 0 0 336 96h16v96h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm-79.51 65.48a72 72 0 1 0 52.16 132c-8.84 31.22-35.92 54.86-69.08 58a8.07 8.07 0 0 0-7.57 7.92v16.07a8 8 0 0 0 8.38 8.05A112.15 112.15 0 0 0 432 367.86v-40a72.13 72.13 0 0 0-87.51-70.38zM360 367.86a40 40 0 1 1 40-40 40 40 0 0 1-40 40zM120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fal',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17zm224.05-1.59A72 72 0 0 0 360 176.29a71.13 71.13 0 0 0 36.65-10.37c-8.84 31.22-35.92 54.86-69.08 58a8.08 8.08 0 0 0-7.57 7.92v16.07a8 8 0 0 0 8.38 8.06A112.16 112.16 0 0 0 432 144.29v-40a72.13 72.13 0 0 0-87.51-70.37zM360 144.29a40 40 0 1 1 40-40 40 40 0 0 1-40 40zM424 448h-40V304a16 16 0 0 0-16-16h-12a16 16 0 0 0-13.57 7.52l-20 32A16 16 0 0 0 336 352h16v96h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faSortShapesDown = {\n prefix: 'fal',\n iconName: 'sort-shapes-down',\n icon: [448, 512, [], \"f888\", \"M444.1 182.86L361 45.71a29.56 29.56 0 0 0-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM259.77 192L336 66.28 412.23 192zM264 480h144a24 24 0 0 0 24-24V312a24 24 0 0 0-24-24H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24zm8-160h128v128H272zm-73.07 51.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortShapesDownAlt = {\n prefix: 'fal',\n iconName: 'sort-shapes-down-alt',\n icon: [448, 512, [], \"f889\", \"M444.1 438.86L361 301.71a29.56 29.56 0 0 0-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM259.77 448L336 322.28 412.23 448zM264 224h144a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24zm8-160h128v128H272zm-73.07 304.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V37a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17z\"]\n};\nvar faSortShapesUp = {\n prefix: 'fal',\n iconName: 'sort-shapes-up',\n icon: [448, 512, [], \"f88a\", \"M264 480h144a24 24 0 0 0 24-24V312a24 24 0 0 0-24-24H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24zm8-160h128v128H272zM120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17zM444.1 182.86L361 45.71a29.56 29.56 0 0 0-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM259.77 192L336 66.28 412.23 192z\"]\n};\nvar faSortShapesUpAlt = {\n prefix: 'fal',\n iconName: 'sort-shapes-up-alt',\n icon: [448, 512, [], \"f88b\", \"M444.1 438.86L361 301.71a29.56 29.56 0 0 0-49.9 0l-83.2 137.15c-11.08 18.28 2.77 41.14 24.95 41.14h166.3c22.18 0 36.03-22.86 24.95-41.14zM259.77 448L336 322.28 412.23 448zM264 224h144a24 24 0 0 0 24-24V56a24 24 0 0 0-24-24H264a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24zm8-160h128v128H272zM120.44 35.51a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17l5.61 5.68a11.93 11.93 0 0 0 16.91.09l54-52.74V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17z\"]\n};\nvar faSortSizeDown = {\n prefix: 'fal',\n iconName: 'sort-size-down',\n icon: [512, 512, [], \"f88c\", \"M198.93 371.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17zM484 32H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V60a28 28 0 0 0-28-28zm-4 192H288V64h192zm-52 96H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20h152a20 20 0 0 0 20-20V340a20 20 0 0 0-20-20zm-12 128H288v-96h128z\"]\n};\nvar faSortSizeDownAlt = {\n prefix: 'fal',\n iconName: 'sort-size-down-alt',\n icon: [512, 512, [], \"f88d\", \"M198.93 371.56a11.93 11.93 0 0 0-16.91-.09l-54 52.67V40a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v383.92l-53.94-52.35a12 12 0 0 0-16.92 0l-5.64 5.66a12 12 0 0 0 0 17l84.06 82.3a11.94 11.94 0 0 0 16.87 0l84-82.32a12 12 0 0 0 .09-17zM276 192h152a20 20 0 0 0 20-20V52a20 20 0 0 0-20-20H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20zm12-128h128v96H288zm196 192H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V284a28 28 0 0 0-28-28zm-4 192H288V288h192z\"]\n};\nvar faSortSizeUp = {\n prefix: 'fal',\n iconName: 'sort-size-up',\n icon: [512, 512, [], \"f88e\", \"M25.07 140.44a11.93 11.93 0 0 0 16.91.09L96 87.86V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17l-84.06-82.3a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17zM484 32H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V60a28 28 0 0 0-28-28zm-4 192H288V64h192zm-52 96H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20h152a20 20 0 0 0 20-20V340a20 20 0 0 0-20-20zm-12 128H288v-96h128z\"]\n};\nvar faSortSizeUpAlt = {\n prefix: 'fal',\n iconName: 'sort-size-up-alt',\n icon: [512, 512, [], \"f88f\", \"M25.07 140.44a11.93 11.93 0 0 0 16.91.09L96 87.86V472a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V88.08l53.94 52.35a12 12 0 0 0 16.92 0l5.64-5.66a12 12 0 0 0 0-17l-84.06-82.3a11.94 11.94 0 0 0-16.87 0l-84 82.32a12 12 0 0 0-.09 17zM276 192h152a20 20 0 0 0 20-20V52a20 20 0 0 0-20-20H276a20 20 0 0 0-20 20v120a20 20 0 0 0 20 20zm12-128h128v96H288zm196 192H284a28 28 0 0 0-28 28v168a28 28 0 0 0 28 28h200a28 28 0 0 0 28-28V284a28 28 0 0 0-28-28zm-4 192H288V288h192z\"]\n};\nvar faSortUp = {\n prefix: 'fal',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M32.032 224h255.93c28.425 0 42.767-34.488 22.627-54.627l-127.962-128c-12.496-12.496-32.758-12.497-45.255 0l-127.968 128C-10.695 189.472 3.55 224 32.032 224zM160 64l128 128H32L160 64z\"]\n};\nvar faSoup = {\n prefix: 'fal',\n iconName: 'soup',\n icon: [512, 512, [], \"f823\", \"M319.5 151.9a8.12 8.12 0 0 0 8 7.8h16a7.94 7.94 0 0 0 8-8.2c-2.1-42.1-19.3-73.3-41.6-95.5-18.4-18.7-21.1-38.2-21.9-48.9a7.87 7.87 0 0 0-8-7.1l-16 .1a8 8 0 0 0-7.9 8.7 105.46 105.46 0 0 0 31.2 69.7c17.3 17.2 30.4 40.7 32.2 73.4zm-111.5 0a8.12 8.12 0 0 0 8 7.8h16a7.94 7.94 0 0 0 8-8.2c-2.1-42.1-19.3-73.3-41.6-95.5-18.3-18.7-21-38.2-21.8-48.9a7.9 7.9 0 0 0-8.1-7.1l-16 .1a8 8 0 0 0-7.9 8.7c1 14.9 5.2 43.6 31.2 69.7 17.29 17.2 30.39 40.7 32.2 73.4zM480 192H32a32 32 0 0 0-32 32c0 94.7 51.56 177.16 128 221.45V480a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32v-34.55C460.44 401.16 512 318.7 512 224a32 32 0 0 0-32-32zM352 427v53H160v-53C27.66 350.33 32 241.22 32 224h448c0 17.46 3.37 126.89-128 203z\"]\n};\nvar faSpa = {\n prefix: 'fal',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.28 192.08h-.04c-22.64.1-92 4.29-158.85 42.35-19.43-81.58-60.36-153.88-112.52-199.29-2.4-2.09-5.63-3.14-8.85-3.14s-6.44 1.04-8.85 3.14C227 80.55 186.05 152.85 166.6 234.44 99.76 196.37 30.4 192.19 7.75 192.08h-.04c-4.39 0-7.76 3.41-7.72 7.82.23 27.94 7.14 126.2 88.77 199.41 58.23 56.73 131.07 74.8 176.96 80.46.01.3 44.52.3 44.52 0 45.89-5.66 118.73-23.73 176.96-80.46 81.64-73.2 88.54-171.47 88.77-199.41.07-4.41-3.29-7.82-7.69-7.82zM110.13 375.47c-55.22-49.52-71.61-112.28-76.32-149.92 40.84 4.1 110.91 19.31 166.44 73.44 25.37 22.72 44.4 49.96 58.17 83.28 8.5 20.57 13.57 41.3 13.57 65.82-42.77-1.15-114.58-26.6-161.86-72.62zm111.46-100.34c-8.51-8.3-17.45-15.42-26.46-22.15 15.13-71.58 48.71-138.15 92.9-182.33 44.17 44.17 77.74 110.74 92.85 182.32-9.02 6.73-17.95 13.85-26.47 22.15-33.12 29.65-53.36 63.34-66.41 94.91-13.05-31.57-33.29-65.26-66.41-94.9zM464.9 376.37c-44.61 43.46-116.13 70.51-160.9 71.71 0-24.31 4.98-45.03 13.57-65.82 13.77-33.33 32.8-60.57 59.17-84.22 54.78-53.42 124.71-68.46 165.44-72.52-4.74 37.68-21.29 100.62-77.28 150.85z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fal',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M448 168C208 168 240 32 96.003 32H80c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v144c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64h16.003C240 480 208 344 448 344c106.039 0 192-39.399 192-88s-85.961-88-192-88zm-152 0H166.495c-11.973-5.241-25.014-8-38.495-8V67.183C187.971 80.409 219.668 148.917 296 168zM127.046 320H64v-48h48c17.673 0 32-7.163 32-16s-14.327-16-32-16H64v-48h64c35.629 0 64.458 29.114 63.994 64.85-.456 35.171-29.775 63.15-64.948 63.15zM64 96c0-19.851 10.359-32 16-32h16v96H64V96zm0 320v-64h32v96H80c-5.641 0-16-12.149-16-32zm64 28.817v-92.829c13.196-.126 26.009-2.869 37.816-7.989H296c-76.327 19.083-108.024 87.591-168 100.818zM448 312H205.781c24.716-33.856 23.823-79.277.215-112H448c41.469 0 88 0 128 24v64c-40 24-86.45 24-128 24zm40.014-16c-4.426 0-8.014-3.582-8.014-8v-64c0-4.418 3.588-8 8.014-8 31.998 0 31.965 80 0 80z\"]\n};\nvar faSpaceStationMoon = {\n prefix: 'fal',\n iconName: 'space-station-moon',\n icon: [512, 512, [], \"e033\", \"M256,8C119.0332,8,8,119.0332,8,256S119.0332,504,256,504,504,392.9668,504,256,392.9668,8,256,8Zm0,464c-93.57227,0-173.207-59.918-203.14648-143.31445A892.19066,892.19066,0,0,0,256,352a892.19066,892.19066,0,0,0,203.14648-23.31445C429.207,412.082,349.57227,472,256,472ZM43.50391,293.64062A215.62336,215.62336,0,0,1,40,256C40,136.89648,136.89648,40,256,40s216,96.89648,216,216a215.62336,215.62336,0,0,1-3.50391,37.64062C337.67578,327.79883,174.32422,327.79883,43.50391,293.64062ZM200,80a88,88,0,1,0,88,88A87.99936,87.99936,0,0,0,200,80Zm0,144a56,56,0,1,1,56-56A56.06416,56.06416,0,0,1,200,224Zm0-80a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,200,144Z\"]\n};\nvar faSpaceStationMoonAlt = {\n prefix: 'fal',\n iconName: 'space-station-moon-alt',\n icon: [512, 512, [], \"e034\", \"M224.03985,168.00007a24.00456,24.00456,0,1,1-24.00456-24A24.00346,24.00346,0,0,1,224.03985,168.00007ZM496.85531,314.44538a8.20823,8.20823,0,0,1-5.64755,5.91992,810.55026,810.55026,0,0,1-107.13753,22.53125v41.10352h56.01063a7.99991,7.99991,0,0,1,8.00152,8v17.91211a8.25737,8.25737,0,0,1-1.91247,5.30273,247.48223,247.48223,0,0,1-190.124,88.78516c-140.99161,0-254.5073-117.61133-247.75993-260.05859C14.2891,117.20905,118.82261,13.43366,245.61426,8.21491A246.96216,246.96216,0,0,1,413.10309,64.19734a8.22137,8.22137,0,0,1,2.97322,6.34765v49.45508a8.00116,8.00116,0,0,1-8.00152,8H384.07023v32h56.01063a7.99991,7.99991,0,0,1,8.00152,8v56l46.671-.00195a7.91467,7.91467,0,0,1,7.94487,6.99609A243.9077,243.9077,0,0,1,496.85531,314.44538ZM368.06719,416.00007a16.00152,16.00152,0,0,1-16.003-16v-53.541a909.15658,909.15658,0,0,1-96.01822,5.541A882.06521,882.06521,0,0,1,52.8511,328.66023c29.93928,83.4082,109.595,143.33984,203.19483,143.33984a215.14345,215.14345,0,0,0,145.09785-56Zm104.01975-160H392.07175a8.00115,8.00115,0,0,1-8.00152-8v-16a7.99991,7.99991,0,0,1,8.00152-8h24.00456v-32H360.06567a8.00116,8.00116,0,0,1-8.00152-8v-56H328.0596a8.00115,8.00115,0,0,1-8.00152-8v-16a7.99991,7.99991,0,0,1,8.00152-8h56.01063V82.15046a216.05674,216.05674,0,0,0-128.0243-42.15039c-119.12613,0-216.041,96.89648-216.041,216A215.721,215.721,0,0,0,43.45674,293.295c65.4343,17.24024,137.39132,26.70508,212.58919,26.70508a826.14433,826.14433,0,0,0,212.7103-27.52148A209.22142,209.22142,0,0,0,472.08694,256.00007Zm-184.03494-88a88.01671,88.01671,0,1,1-88.01671-88A88.009,88.009,0,0,1,288.052,168.00007Zm-32.00607,0a56.01064,56.01064,0,1,0-56.01064,56A56.06823,56.06823,0,0,0,256.04593,168.00007Z\"]\n};\nvar faSpade = {\n prefix: 'fal',\n iconName: 'spade',\n icon: [512, 512, [], \"f2f4\", \"M471.4 200.3C456.1 186.4 327 57.7 278.6 9.3c-12.5-12.5-32.7-12.5-45.2 0-48.4 48.4-177.5 177-192.8 191C15.1 223.5 0 256.4 0 292c0 68.4 55.6 124 124 124 35.5 0 52-8 76-32 0 24-9.7 27.6-30.2 53.4-23.9 30.1-2.4 74.6 36 74.6h100.3c38.5 0 60-44.5 36-74.6-19-24.1-30.1-29.4-30.1-53.4 24 24 48.9 32 76 32 68.4 0 124-55.6 124-124 0-35.7-15.2-68.5-40.6-91.7zM385.5 384c-41-.4-54.6-11.3-87.2-45.2-3.7-3.9-10.3-1.2-10.3 4.2v25c0 40.6 0 52.6 29.1 89.3 7.3 9.2.7 22.7-11 22.7H205.8c-11.7 0-18.3-13.5-11-22.7C224 420.6 224 408.6 224 368v-25c0-5.4-6.6-8.1-10.3-4.2-32.3 33.7-45.9 44.7-87.1 45.2-51.8.5-95-41-94.5-92.8.2-26 11.4-50.1 30.1-67.2C81.3 206.5 256 32 256 32s174.7 174.5 193.9 192c19 17.3 29.9 41.6 30.1 67.3.4 51.8-42.7 93.2-94.5 92.7z\"]\n};\nvar faSparkles = {\n prefix: 'fal',\n iconName: 'sparkles',\n icon: [512, 512, [], \"f890\", \"M328.84 109.75l48.57 24.32 24.28 48.63a16 16 0 0 0 28.62 0l24.28-48.63 48.57-24.32a16 16 0 0 0 0-28.66l-48.57-24.32-24.28-48.63c-5.43-10.85-23.19-10.85-28.62 0l-24.28 48.63-48.57 24.32a16 16 0 0 0 0 28.66zM396.5 83a16.1 16.1 0 0 0 7.16-7.16L416 51.14l12.34 24.74A16.1 16.1 0 0 0 435.5 83l24.72 12.38-24.72 12.42a16.2 16.2 0 0 0-7.16 7.16L416 139.7 403.66 115a16.2 16.2 0 0 0-7.16-7.16l-24.72-12.42zm106.66 318.53l-48.57-24.31-24.28-48.63c-5.43-10.86-23.19-10.86-28.62 0l-24.28 48.63-48.57 24.31a16 16 0 0 0 0 28.67l48.57 24.31 24.28 48.63a16 16 0 0 0 28.62 0l24.28-48.63 48.57-24.31a16 16 0 0 0 0-28.67zm-67.66 26.71a16.17 16.17 0 0 0-7.16 7.17L416 460.15l-12.34-24.74a16.17 16.17 0 0 0-7.16-7.17l-24.72-12.37 24.72-12.38a16.17 16.17 0 0 0 7.16-7.17L416 371.59l12.34 24.73a16.17 16.17 0 0 0 7.16 7.17l24.72 12.38zM384 255.64a16.06 16.06 0 0 0-8.84-14.33L262.59 185 206.31 72.23c-5.43-10.86-23.19-10.86-28.62 0L121.41 185 8.84 241.31a16 16 0 0 0 0 28.67l112.57 56.36 56.28 112.71a16 16 0 0 0 28.62 0l56.28-112.71L375.16 270a16.09 16.09 0 0 0 8.84-14.36zm-140.5 44.43a16.1 16.1 0 0 0-7.16 7.16L192 396.06l-44.34-88.83a16.1 16.1 0 0 0-7.16-7.16l-88.72-44.43 88.72-44.42a16.2 16.2 0 0 0 7.16-7.16L192 115.23l44.34 88.83a16.2 16.2 0 0 0 7.16 7.16l88.72 44.42z\"]\n};\nvar faSpeaker = {\n prefix: 'fal',\n iconName: 'speaker',\n icon: [384, 512, [], \"f8df\", \"M192 192a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm0-96a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm0 128a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 192a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80zm0-112a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM336 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm16 464a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z\"]\n};\nvar faSpeakers = {\n prefix: 'fal',\n iconName: 'speakers',\n icon: [640, 512, [], \"f8e0\", \"M592 0H304a48 48 0 0 0-48 48v416a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm16 464a16 16 0 0 1-16 16H304a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16zM448 224a112 112 0 1 0 112 112 112 112 0 0 0-112-112zm0 192a80 80 0 1 1 80-80 80.09 80.09 0 0 1-80 80zm0-112a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm0-112a64 64 0 1 0-64-64 64 64 0 0 0 64 64zm0-96a32 32 0 1 1-32 32 32 32 0 0 1 32-32zM224 229.2c-10.2-3.06-20.8-5.2-32-5.2a112 112 0 0 0 0 224c11.2 0 21.8-2.14 32-5.2v-33.58a80 80 0 1 1 0-146.44zM160 336a32 32 0 1 0 32-32 32 32 0 0 0-32 32zM240.41 0H48A48 48 0 0 0 0 48v416a48 48 0 0 0 48 48h192.41a79.15 79.15 0 0 1-14.79-32H48a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h177.62a79.15 79.15 0 0 1 14.79-32zM224 128a32 32 0 1 1-32-32 32 32 0 0 1 32 32V72.88A63.33 63.33 0 0 0 192 64a64 64 0 0 0 0 128 63.33 63.33 0 0 0 32-8.88z\"]\n};\nvar faSpellCheck = {\n prefix: 'fal',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h88a72 72 0 0 0 30.63-137.16A72 72 0 0 0 336 0h-64a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm16-224h48a40 40 0 0 1 0 80h-48zm0 112h72a40 40 0 0 1 0 80h-72zm-63.93 101.34l-89-234.67A16 16 0 0 0 120 0h-16a16 16 0 0 0-15.09 10.67l-89 234.67A8 8 0 0 0 7.47 256h17a8 8 0 0 0 7.53-5.34L60.54 176h102.92L192 250.66a8 8 0 0 0 7.55 5.34h17a8 8 0 0 0 7.52-10.66zM72.78 144L112 41.41 151.22 144zm499.5 135L561 267.72a12 12 0 0 0-17 0L354.8 460.41l-99-99a12 12 0 0 0-17 0l-11.31 11.31a12 12 0 0 0 0 17L346.3 508.48a12 12 0 0 0 17 0L572.28 296a12 12 0 0 0 0-17z\"]\n};\nvar faSpider = {\n prefix: 'fal',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M574.7 352.5l-54.8-82.2c-5.9-8.9-15.9-14.2-26.6-14.2H379.5l90.1-30c6.8-2.3 12.6-6.7 16.5-12.6l56.5-84.8c2.5-3.7 1.5-8.6-2.2-11.1l-13.3-8.9c-3.7-2.5-8.6-1.5-11.1 2.2l-55 82.5c-1 1.5-2.4 2.6-4.1 3.1l-83.1 27.7L426.9 118c5.8-11.4 6.7-24.5 2.6-36.7L404.2 5.5c-1.4-4.2-5.9-6.5-10.1-5.1l-15.2 5.1c-4.2 1.4-6.5 5.9-5.1 10.1l25.3 75.8c1.4 4 1.1 8.4-.9 12.2l-36.5 73.1-4.1-20.5c-2.2-11-17.4-60.1-69.6-60.1s-67.4 49.2-69.6 60.1l-4.1 20.5-36.5-73.1c-1.9-3.8-2.3-8.2-.9-12.2l25.3-75.8c1.4-4.2-.9-8.7-5.1-10.1L181.9.4c-4.2-1.4-8.7.9-10.1 5.1l-25.3 75.8c-4.1 12.2-3.1 25.2 2.6 36.7l53.1 106.2-83.1-27.7c-1.7-.6-3.1-1.7-4.1-3.1l-55-82.5c-2.4-3.7-7.4-4.7-11.1-2.2l-13.3 8.9c-3.7 2.4-4.7 7.4-2.2 11.1l56.5 84.8c3.9 5.9 9.8 10.4 16.5 12.6l90.1 30H82.8c-10.7 0-20.7 5.3-26.6 14.2L1.3 352.5c-2.5 3.7-1.5 8.6 2.2 11.1l13.3 8.9c3.7 2.5 8.6 1.5 11.1-2.2l52.4-78.7c1.5-2.2 4-3.6 6.7-3.6h102.1l-69.8 111.7c-4.8 7.6-7.3 16.4-7.3 25.5V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-81.1c0-1.5.4-3 1.2-4.2l46.9-75.1c0 1-.2 2-.2 3 0 53.1 40.8 101.4 96 101.4s96-48.4 96-101.4c0-1-.1-2-.1-3l46.9 75.1c.8 1.3 1.2 2.7 1.2 4.2V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-78.8c0-9-2.5-17.8-7.3-25.5L386.9 288H489c2.7 0 5.2 1.3 6.7 3.6l52.4 78.7c2.4 3.7 7.4 4.7 11.1 2.2l13.3-8.9c3.6-2.5 4.6-7.5 2.2-11.1zM288 416c-39.5 0-64-36-64-69.4 0-36.8 3.7-73.7 10.9-109.7l14.9-74.4c.7-3.5 7.8-34.4 38.2-34.4s37.5 30.9 38.2 34.4l14.9 74.4c7.2 36.1 10.9 72.9 10.9 109.7 0 33.4-24.5 69.4-64 69.4z\"]\n};\nvar faSpiderBlackWidow = {\n prefix: 'fal',\n iconName: 'spider-black-widow',\n icon: [576, 512, [], \"f718\", \"M320 272h-64c-6.6 0-10.4 7.5-6.4 12.8L276 320l-26.4 35.2c-4 5.3-.2 12.8 6.4 12.8h64c6.6 0 10.4-7.5 6.4-12.8L300 320l26.4-35.2c4-5.3.2-12.8-6.4-12.8zm254.7 80.5l-54.8-82.2c-5.9-8.9-15.9-14.2-26.6-14.2H379.5l90.1-30c6.8-2.3 12.6-6.7 16.5-12.6l56.5-84.8c2.5-3.7 1.5-8.6-2.2-11.1l-13.3-8.9c-3.7-2.5-8.6-1.5-11.1 2.2l-55 82.5c-1 1.5-2.4 2.6-4.1 3.1l-83.1 27.7L426.9 118c5.8-11.4 6.7-24.5 2.6-36.7L404.2 5.5c-1.4-4.2-5.9-6.5-10.1-5.1l-15.2 5.1c-4.2 1.4-6.5 5.9-5.1 10.1l25.3 75.8c1.4 4 1.1 8.4-.9 12.2l-36.5 73.1-4.1-20.5c-2.2-11-17.4-60.1-69.6-60.1s-67.4 49.2-69.6 60.1l-4.1 20.5-36.5-73.1c-1.9-3.8-2.3-8.2-.9-12.2l25.3-75.8c1.4-4.2-.9-8.7-5.1-10.1L181.9.4c-4.2-1.4-8.7.9-10.1 5.1l-25.3 75.8c-4.1 12.2-3.1 25.2 2.6 36.7l53.1 106.2-83.1-27.7c-1.7-.6-3.1-1.7-4.1-3.1l-55-82.5c-2.4-3.7-7.4-4.7-11.1-2.2l-13.3 8.9c-3.7 2.4-4.7 7.4-2.2 11.1l56.5 84.8c3.9 5.9 9.8 10.4 16.5 12.6l90.1 30H82.8c-10.7 0-20.7 5.3-26.6 14.2L1.3 352.5c-2.5 3.7-1.5 8.6 2.2 11.1l13.3 8.9c3.7 2.5 8.6 1.5 11.1-2.2l52.4-78.7c1.5-2.2 4-3.6 6.7-3.6h102.1l-69.8 111.7c-4.8 7.6-7.3 16.4-7.3 25.5V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-81.1c0-1.5.4-3 1.2-4.2l46.9-75.1c0 1-.2 2-.2 3 0 53.1 40.8 101.4 96 101.4s96-48.4 96-101.4c0-1-.1-2-.1-3l46.9 75.1c.8 1.3 1.2 2.7 1.2 4.2V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-78.8c0-9-2.5-17.8-7.3-25.5L386.9 288H489c2.7 0 5.2 1.3 6.7 3.6l52.4 78.7c2.4 3.7 7.4 4.7 11.1 2.2l13.3-8.9c3.6-2.5 4.6-7.5 2.2-11.1zM288 416c-39.5 0-64-36-64-69.4 0-36.8 3.7-73.7 10.9-109.7l14.9-74.4c.7-3.5 7.8-34.4 38.2-34.4s37.5 30.9 38.2 34.4l14.9 74.4c7.2 36.1 10.9 72.9 10.9 109.7 0 33.4-24.5 69.4-64 69.4z\"]\n};\nvar faSpiderWeb = {\n prefix: 'fal',\n iconName: 'spider-web',\n icon: [576, 512, [], \"f719\", \"M571.62 245.02C509.87 179.63 464.12 98.93 439.4 11.65c-2.37-8.33-10.84-13.3-19.31-11.16-86.44 21.78-177.75 21.78-264.18 0-8.5-2.11-16.94 2.83-19.31 11.16C111.88 98.93 66.13 179.63 4.38 245.02c-5.84 6.16-5.84 15.81 0 21.97 61.75 65.39 107.5 146.09 132.22 233.37 2.37 8.31 10.81 13.23 19.31 11.16 86.44-21.78 177.75-21.78 264.18 0 1.31.33 2.62.48 3.91.48 7 0 13.41-4.61 15.41-11.64 24.72-87.28 70.47-167.98 132.22-233.37 5.83-6.16 5.83-15.81-.01-21.97zm-46.23-5.01h-69.84c-31.47-35.4-55.14-77.87-69.23-123.78l34.42-60.24c23.74 67.2 59.24 129.67 104.65 184.02zm-264.97 0h-98.7a366.476 366.476 0 0 0 48.97-87.02l49.73 87.02zm-23.85-106.28c34.09 5.26 68.77 5.26 102.86 0l-51.43 90-51.43-90zm23.85 138.28l-49.73 87.02a366.476 366.476 0 0 0-48.97-87.02h98.7zM288 288.28l51.43 90.01c-17.04-2.63-34.2-4.38-51.43-4.38s-34.39 1.75-51.43 4.38L288 288.28zm27.58-16.27h98.69a366.824 366.824 0 0 0-48.97 87.02l-49.72-87.02zm0-32l49.73-87.02c12.33 31.22 28.83 60.51 48.97 87.02h-98.7zm78.43-201.79L360.3 97.21c-47.38 11.59-97.21 11.59-144.59 0L182 38.22a573.332 573.332 0 0 0 212.01 0zM155.26 55.99l34.42 60.24c-14.1 45.92-37.77 88.38-69.23 123.78H50.61c45.41-54.35 80.91-116.82 104.65-184.02zM50.61 272.01h69.84c31.47 35.4 55.14 77.87 69.23 123.78l-34.42 60.24c-23.74-67.2-59.24-129.68-104.65-184.02zM182 473.79l33.71-58.99c47.38-11.59 97.21-11.59 144.59 0l33.7 58.99c-35-6.59-70.44-10.61-106-10.61s-71.01 4.02-106 10.61zm238.74-17.77l-34.42-60.24c14.1-45.92 37.77-88.38 69.23-123.78h69.84c-45.41 54.35-80.91 116.83-104.65 184.02z\"]\n};\nvar faSpinner = {\n prefix: 'fal',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M288 32c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-32 416c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm256-192c0-17.673-14.327-32-32-32s-32 14.327-32 32 14.327 32 32 32 32-14.327 32-32zm-448 0c0-17.673-14.327-32-32-32S0 238.327 0 256s14.327 32 32 32 32-14.327 32-32zm33.608 126.392c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm316.784 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM97.608 65.608c-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32s32-14.327 32-32c0-17.673-14.327-32-32-32z\"]\n};\nvar faSpinnerThird = {\n prefix: 'fal',\n iconName: 'spinner-third',\n icon: [512, 512, [], \"f3f4\", \"M460.115 373.846l-6.941-4.008c-5.546-3.202-7.564-10.177-4.661-15.886 32.971-64.838 31.167-142.731-5.415-205.954-36.504-63.356-103.118-103.876-175.8-107.701C260.952 39.963 256 34.676 256 28.321v-8.012c0-6.904 5.808-12.337 12.703-11.982 83.552 4.306 160.157 50.861 202.106 123.67 42.069 72.703 44.083 162.322 6.034 236.838-3.14 6.149-10.75 8.462-16.728 5.011z\"]\n};\nvar faSplotch = {\n prefix: 'fal',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M463.94 185.08l-62.91-21.31c-12.97-4.41-22.5-13.58-25.41-24.53l-15-56.14c-6.25-23.38-25.5-41.41-51.53-48.23-28.84-7.58-58.94.17-78.47 20.17l-43.25 44.28c-9.16 9.38-23.56 14.38-38.13 13.16l-67.44-5.22c-31.41-2.41-60.44 12.14-74.16 37.05-11.69 21.17-9.91 45.61 4.75 65.36l36.13 48.69c6.81 9.16 7.88 20.06 2.91 29.91l-26.66 52.92c-10.69 21.22-8.25 45.27 6.5 64.33 17.88 23.06 49.22 33.63 80.06 27.03l65.59-14.17c14.38-3.09 29.56-.11 40.56 8.08l50.94 37.92c13.88 10.33 31.03 15.64 48.41 15.64 11.81 0 23.72-2.45 34.72-7.47 23.44-10.67 38.5-30.98 40.31-54.34l4.41-57.45c.81-10.89 8.28-20.92 20-26.86l58.09-29.48c24.94-12.61 39.28-36.22 37.47-61.58-1.83-26.25-20.2-48.36-47.89-57.76zm-4.03 90.78l-58.09 29.48c-21.78 11.02-35.78 30.83-37.47 52.97l-4.41 57.44c-1.25 16.66-15.53 24.89-21.63 27.66-16.78 7.61-36.69 5.77-50.75-4.7l-50.94-37.92c-13.66-10.17-30.94-15.61-48.53-15.61-6 0-12 .62-17.91 1.91l-65.59 14.17c-22.94 4.98-40.16-5.19-48-15.34-4.19-5.41-10.19-16.55-3.25-30.34L80 302.67c10.47-20.75 8.31-44.45-5.78-63.41l-36.13-48.67c-9.72-13.08-5.69-24.92-2.44-30.83 7.72-13.97 25.25-21.88 43.69-20.61l67.41 5.22c24.34 1.84 47.78-6.61 63.5-22.7L253.5 77.4c11.38-11.64 30.06-16.19 47.47-11.59 14.75 3.86 25.5 13.41 28.72 25.53l15 56.14c5.72 21.33 22.94 38.73 46.09 46.59l62.84 21.31c15.53 5.27 25.38 16.36 26.31 29.69.89 12.48-6.58 23.98-20.02 30.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fal',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 128V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96c-53.02 0-96 42.98-96 96v256c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V224c0-53.02-42.98-96-96-96zm-96-96h64v96h-64V32zm160 448H32V224c0-35.29 28.71-64 64-64h128c35.29 0 64 28.71 64 64v256zM160 240c-44.18 0-80 35.82-80 80s35.82 80 80 80 80-35.82 80-80-35.82-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zM488 80c13.25 0 24-10.75 24-24 0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24zm0 48c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-96-96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-96-96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm192 192c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faSprinkler = {\n prefix: 'fal',\n iconName: 'sprinkler',\n icon: [512, 512, [], \"e035\", \"M16,0A16,16,0,1,0,32,16,16,16,0,0,0,16,0Zm0,224a16,16,0,1,0,16,16A16,16,0,0,0,16,224Zm0-112a16,16,0,1,0,16,16A16,16,0,0,0,16,112Zm128,32a16,16,0,1,0-16-16A16,16,0,0,0,144,144ZM496,32a16,16,0,1,0-16-16A16,16,0,0,0,496,32ZM368,144a16,16,0,1,0-16-16A16,16,0,0,0,368,144Zm64,16a16,16,0,1,0,16,16A16,16,0,0,0,432,160Zm0-96a16,16,0,1,0,16,16A16,16,0,0,0,432,64Zm64,160a16,16,0,1,0,16,16A16,16,0,0,0,496,224ZM80,160a16,16,0,1,0,16,16A16,16,0,0,0,80,160Zm416-48a16,16,0,1,0,16,16A16,16,0,0,0,496,112ZM398.19,256H272V72a8,8,0,0,0-8-8H248a8,8,0,0,0-8,8V256H113.81a17.77,17.77,0,0,0-14.22,28.44L192,387.56V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V374.3L144.93,288H367.07L288,374.3V504a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V387.56l92.41-103.12A17.77,17.77,0,0,0,398.19,256ZM80,64A16,16,0,1,0,96,80,16,16,0,0,0,80,64Z\"]\n};\nvar faSquare = {\n prefix: 'fal',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352z\"]\n};\nvar faSquareFull = {\n prefix: 'fal',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M480 32v448H32V32h448m32-32H0v512h512V0z\"]\n};\nvar faSquareRoot = {\n prefix: 'fal',\n iconName: 'square-root',\n icon: [512, 512, [], \"f697\", \"M160.13 477.29c-9.51-3.62-16.88-11.43-21.15-20.66L58.06 281.3c-2.62-5.67-8.29-9.3-14.53-9.3H8c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h35.53c18.62 0 35.75 10.94 43.59 27.88l81.31 176.2c2.31 5.16 11.12 4.39 12.66-1.09l101.1-375.46C287.78 46.61 306.84 32 328.53 32H504c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H328.53c-7.22 0-13.59 4.86-15.44 11.83L211.97 451.31c-5.8 21.47-29.03 34.68-51.84 25.98z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fal',\n iconName: 'square-root-alt',\n icon: [512, 512, [], \"f698\", \"M509.16 248.97L454.12 304l55.03 55.03c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-55.03-55.03-55.03 55.03c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31L408.88 304l-55.03-55.03c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l55.03 55.03 55.03-55.03c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.13 3.12 3.13 8.18.01 11.31zM211.97 451.31L313.09 75.83c1.84-6.97 8.22-11.83 15.44-11.83H504c4.42 0 8-3.58 8-8V40c0-4.42-3.58-8-8-8H328.53c-21.69 0-40.75 14.61-46.34 35.53l-101.1 375.45c-1.53 5.48-10.34 6.25-12.66 1.09l-81.31-176.2C79.28 250.94 62.16 240 43.53 240H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h35.53c6.24 0 11.92 3.63 14.53 9.3l80.92 175.33c4.26 9.24 11.64 17.04 21.15 20.66 22.81 8.7 46.04-4.51 51.84-25.98z\"]\n};\nvar faSquirrel = {\n prefix: 'fal',\n iconName: 'squirrel',\n icon: [512, 512, [], \"f71a\", \"M400 160c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm63.74 258.19C473.95 401.69 480 384.36 480 368c0-34.12-28.88-70.66-76.78-78.47l9.91-49.53h50.72c28.81 0 48.16-22.05 48.16-54.86 0-59.81-42.62-111.17-96.16-119.84V32h-16c-50.13 0-84.09 41.08-105.37 80.06C270.98 51.21 207.09 0 144 0 64.59 0 0 64.59 0 144c0 71.06 51.75 130.27 119.53 141.92l-13.72 28.41c-6.5 17.19-9.81 34.58-9.81 51.69C96 446.52 161.47 512 241.97 512H480c17.68 0 32-14.33 32-32 0-29.83-20.6-54.74-48.26-61.81zM241.97 480C179.12 480 128 428.86 128 366.02c0-13.22 2.59-26.8 7.19-39.05L169.5 256h-21.58C91 256 40.21 215.21 32.95 158.76 24.17 90.46 77.4 32 144 32c62.22 0 128 65.8 128 128l-59.7 146.46c-1.7 4.08.23 8.76 4.31 10.46l14.79 6.16c4.08 1.7 8.76-.23 10.46-4.31l76.46-183.61c11.44-22.88 33.97-59.09 65.53-68.73V96h16c42.69 0 80.16 41.66 80.16 89.14 0 8.53-2.09 22.86-16.16 22.86h-76.97l-22.41 112H384c39.53 0 64 24.92 64 48 0 14.86-8.43 32.39-22.26 48H392c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56c17.66 0 32 14.36 32 32H241.97z\"]\n};\nvar faStaff = {\n prefix: 'fal',\n iconName: 'staff',\n icon: [512, 512, [], \"f71b\", \"M432 0h-76.23c-30.3 0-58 17.12-71.55 44.22l-16 32c-3.95 7.9-.75 17.51 7.15 21.46l57.25 28.63c2.3 1.15 4.74 1.69 7.14 1.69 5.87 0 11.52-3.24 14.32-8.85L365.67 96H416v75.8l-157.29 44.94a176.122 176.122 0 0 0-76.11 44.78L156.12 288H112c-8.84 0-16 7.16-16 16v44.12L7.03 437.1c-9.37 9.37-9.37 24.57 0 33.94l33.93 33.93c4.69 4.69 10.83 7.03 16.97 7.03s12.28-2.34 16.97-7.03l175.55-175.55a80.111 80.111 0 0 1 34.62-20.37l84.82-24.24 32.25 18.62c2.52 1.46 5.27 2.15 7.98 2.15 5.53 0 10.91-2.87 13.87-8l19.51-33.8 10.46-2.99c34.34-9.81 58.02-41.21 58.02-76.92V80C512 35.82 476.18 0 432 0zm48 183.86c0 21.32-14.32 40.3-34.81 46.15L434.73 233l-12.45 3.56-6.47 11.21-11.51 19.94-18.4-10.61-11.75-6.78-13.04 3.73-84.82 24.24a112.273 112.273 0 0 0-48.46 28.52L57.93 476.69l-22.62-22.62 83.31-83.32 9.37-9.37V320h41.38l9.37-9.37 26.48-26.48a144.372 144.372 0 0 1 62.27-36.64l157.29-44.94 23.21-6.63V64H345.88l-8.84 17.69-4.42 8.85L304 76.22l8.84-17.69C321.02 42.17 337.47 32 355.77 32H432c26.47 0 48 21.53 48 48v103.86z\"]\n};\nvar faStamp = {\n prefix: 'fal',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M416 256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.42 21.46-77.73 9.11-17.61 12.9-38.38 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C267.41.49 261.65 0 256 0c-53.02 0-96 42.98-96 96 0 14.16 3.12 27.54 8.68 39.57C182.02 164.43 192 194.71 192 226.5v.06c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32v64c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-64c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96zm32 224H64v-64h384v64zm32-96H32v-32c0-35.29 28.71-64 64-64h66.56c33.88 0 61.44-27.56 61.44-61.5 0-32.42-8.35-65.58-26.27-104.35-3.8-8.23-5.73-17.03-5.73-26.15 0-35.29 28.71-64 64-64 3.88 0 7.83.35 11.76 1.03 25.24 4.39 46.79 26.02 51.22 51.42 2.45 14.04.39 27.95-5.95 40.21C296.19 157.23 288 187.47 288 217.1v9.46c0 33.88 27.56 61.44 61.44 61.44H416c35.29 0 64 28.71 64 64v32z\"]\n};\nvar faStar = {\n prefix: 'fal',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM405.8 317.9l27.8 162L288 403.5 142.5 480l27.8-162L52.5 203.1l162.7-23.6L288 32l72.8 147.5 162.7 23.6-117.7 114.8z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fal',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zM32 256c0-116.55 89.46-212.59 203.33-223.05C149.02 70.22 88.47 156.17 88.47 256c0 99.83 60.55 185.78 146.87 223.05C121.47 468.59 32 372.55 32 256zm471.46-42.14l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99zm-72.08 47.94l-12.05 11.74 2.84 16.58 5.5 32.05-28.78-15.13-14.89-7.83-14.89 7.83-28.78 15.13 5.5-32.05 2.84-16.58-12.05-11.74-23.28-22.7 32.18-4.68 16.65-2.42 7.45-15.09L384 187.76l14.39 29.16 7.45 15.09 16.65 2.42 32.18 4.68-23.29 22.69z\"]\n};\nvar faStarChristmas = {\n prefix: 'fal',\n iconName: 'star-christmas',\n icon: [512, 512, [], \"f7d4\", \"M493.7 232.4l-140.2-35 66.9-83.3c5.2-6.5 4.7-15.5-1.1-21.3-5.9-5.8-14.8-6.3-21.3-1.1l-83.4 66.7-35-140c-6.1-24.4-41-24.4-47.2 0l-35 140.2-83.3-67c-6.5-5.2-15.5-4.8-21.3 1.1-5.8 5.8-6.3 14.8-1.1 21.4l66.7 83.4-140 35C7.5 235.2 0 244.7 0 256c0 10.2 6.5 20.7 18.4 23.6l140.2 35-66.9 83.3c-5.2 6.5-4.7 15.5 1.1 21.3 5.6 5.5 14.5 6.5 21.3 1.1l83.4-66.7 35 140c3 11.9 13.3 18.4 23.6 18.4 4.5 0 19.4-2.1 23.6-18.4l35-140.2 83.3 67c6.9 5.5 15.8 4.4 21.3-1.1 5.8-5.8 6.3-14.8 1.1-21.3l-66.7-83.4 139.9-35c11.7-2.9 18.5-13.1 18.5-23.6-.1-10.3-6.6-20.6-18.4-23.6zM296 296l-40 160-40-160-160-40 160-40 40-160 40 160 160 40-160 40z\"]\n};\nvar faStarExclamation = {\n prefix: 'fal',\n iconName: 'star-exclamation',\n icon: [576, 512, [], \"f2f3\", \"M260.2 158.3c-.2-3.4 2.5-6.3 6-6.3h43.6c3.4 0 6.2 2.9 6 6.3l-7.3 132c-.2 3.2-2.8 5.7-6 5.7h-28.9c-3.2 0-5.8-2.5-6-5.7l-7.4-132zM288 320c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm257.9-94L440.1 329l25 145.5c4.5 26.2-23.1 46-46.4 33.7L288 439.6l-130.7 68.7c-23.4 12.3-50.9-7.6-46.4-33.7l25-145.5L30.1 226c-19-18.5-8.5-50.8 17.7-54.6L194 150.2l65.3-132.4c11.8-23.8 45.7-23.7 57.4 0L382 150.2l146.1 21.2c26.2 3.8 36.7 36.1 17.8 54.6zm-22.4-22.9l-162.7-23.7L288 32l-72.8 147.4-162.7 23.7 117.7 114.8-27.8 162L288 403.4l145.5 76.5-27.8-162 117.8-114.8z\"]\n};\nvar faStarHalf = {\n prefix: 'fal',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 403.4l-145.5 76.5 27.8-162L52.5 203.1l162.7-23.6L288 32V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-36.2z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fal',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M417.28 158.22l-55.12-8.03-24.64-49.84-28.74 14.16 32.1 64.94 71.78 10.44 4.62-31.67zm-12.87 267.09l9.44 54.62-49-25.7-14.9 28.31 49.02 25.72c4.7 2.45 9.68 3.7 14.79 3.7 9.35 0 18.6-4.33 24.71-11.56 4.87-5.72 7.44-12.72 7.44-20.22l-9.89-60.28-31.61 5.41zM275.3 407.58c-4.5-2.35-9.91-2.79-14.77-.25l-138.38 72.62 27.9-162.03L32.07 203.14l163.04-23.7L267.91 32c.03 0 .05-.02.08-.02V32l20.46 41.39 28.74-14.16-20.46-41.41C291.28 6.83 280.24 0 267.91 0c-12.45 0-23.15 6.66-28.68 17.81l-65.41 132.38L27.4 171.48c-12.1 1.78-22 10.12-25.82 21.81-3.79 11.67-.67 24.25 8.12 32.78l105.9 103-25.06 145.5c-1.6 9.45.88 18.64 6.97 25.84 6.12 7.25 15.34 11.58 24.67 11.58 5.1 0 10.08-1.25 14.86-3.75l130.95-68.7 49.32 25.87 14.9-28.31-56.77-29.78-.14.26zM534.37 193.3c-3.77-11.67-13.68-20.03-25.85-21.81l-54.95-8-4.63 31.66 54.95 8.02-39.67 38.59 22.39 22.91 39.61-38.53c6.31-6.08 9.79-14.17 9.79-22.8-.01-3.42-.57-6.82-1.64-10.04zM385.92 317.92l12.29 71.36 31.59-5.41-9.44-54.8 39.89-38.8-22.39-22.91-51.94 50.56z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fal',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm21.21-112c2.1 0 3.63.83 4.56 2.46 1.08 1.89.32 3.16-.04 3.78l-44.34 74.48L339.01 144h87.88zm-58.45 112l-66.67 112H162.23L95.56 256l66.67-112h139.54l66.67 112zM227.49 34.38c.94-1.58 2.46-2.38 4.51-2.38s3.57.8 4.51 2.38L282.72 112H181.28l46.21-77.62zM32.6 150.24c-.37-.61-1.12-1.88-.05-3.78.93-1.64 2.46-2.46 4.56-2.46h87.88l-48.05 80.72-44.34-74.48zM37.11 368c-2.1 0-3.63-.83-4.56-2.46-1.08-1.89-.32-3.17.04-3.78l44.34-74.48L124.99 368H37.11zm199.4 109.61c-.94 1.58-2.46 2.39-4.51 2.39s-3.57-.8-4.51-2.38L181.28 400h101.44l-46.21 77.61zm194.94-112.07c-.93 1.63-2.46 2.46-4.56 2.46h-87.88l48.05-80.72 44.34 74.48c.36.61 1.12 1.88.05 3.78z\"]\n};\nvar faStarOfLife = {\n prefix: 'fal',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M271.74 32v168.58l47.6-27.71 97.18-56.57 31.74 55.43-97.18 56.57-47.61 27.7 47.6 27.71 97.18 56.57-31.74 55.43-97.18-56.57-47.6-27.71V480h-63.47V311.42l-47.6 27.71-97.18 56.57-31.74-55.43 97.18-56.57 47.6-27.71-47.6-27.71-97.18-56.57 31.74-55.43 97.18 56.57 47.6 27.71V32h63.48m0-32h-63.47c-17.53 0-31.74 14.33-31.74 32v113.15L79.35 88.57c-5-2.91-10.46-4.29-15.84-4.29-10.97 0-21.63 5.74-27.51 16.01L4.26 155.71c-8.76 15.3-3.56 34.88 11.62 43.71L113.06 256l-97.18 56.57C.7 321.41-4.5 340.98 4.26 356.28L36 411.71a31.68 31.68 0 0 0 27.52 16.01c5.38 0 10.84-1.38 15.84-4.29l97.18-56.57V480c0 17.67 14.21 32 31.74 32h63.47c17.53 0 31.74-14.33 31.74-32V366.85l97.18 56.57c5 2.91 10.45 4.29 15.84 4.29a31.68 31.68 0 0 0 27.52-16.01l31.74-55.43c8.76-15.31 3.56-34.88-11.62-43.71L366.94 256l97.18-56.57c15.18-8.84 20.38-28.41 11.62-43.71L444 100.29a31.677 31.677 0 0 0-27.51-16.01c-5.38 0-10.84 1.38-15.84 4.29l-97.18 56.57V32c0-17.67-14.21-32-31.73-32z\"]\n};\nvar faStarShooting = {\n prefix: 'fal',\n iconName: 'star-shooting',\n icon: [512, 512, [], \"e036\", \"M364.294,267.28691,259.4951,251.99064l-46.90716-95.19941a22.9468,22.9468,0,0,0-41.18829,0l-46.90716,95.19941L19.69358,267.28691C.89634,269.98993-6.71318,293.19215,6.99021,306.4885l75.90772,73.99711L64.89758,485.07527A23.05232,23.05232,0,0,0,87.525,512a22.46219,22.46219,0,0,0,10.67013-2.72255l93.7987-49.38869,93.79869,49.38869A22.89785,22.89785,0,0,0,319.09,485.07527L301.199,380.48561l75.89209-73.99711C390.70077,293.19215,383.09125,269.98993,364.294,267.28691ZM278.85876,357.5744l-12.03734,11.73587,2.836,16.56966,14.80107,86.53177-77.55424-40.83629-14.91044-7.85126-14.91045,7.85126L99.5506,472.4l14.885-86.48686,2.85357-16.58919-12.053-11.7515-62.843-61.26127,86.72238-12.65771,16.64681-2.42959,7.43569-15.09121L191.9938,187.3955l38.79567,78.73716,7.43569,15.09121,16.64876,2.42959,86.80442,12.66943ZM498.34544,194.33469a8.00345,8.00345,0,0,0-11.31467,0l-68.68884,68.68676a7.99644,7.99644,0,0,0,0,11.31206l11.31077,11.31206a8.00347,8.00347,0,0,0,11.31467,0L509.6562,216.9588a7.99643,7.99643,0,0,0,0-11.31206ZM314.34187,186.337l11.31077,11.31011a7.99994,7.99994,0,0,0,11.31467,0L509.6562,24.96631a7.99643,7.99643,0,0,0,0-11.31206L498.34544,2.34219a8.00347,8.00347,0,0,0-11.31467,0L314.34187,175.02294A7.9988,7.9988,0,0,0,314.34187,186.337ZM237.649,93.65308a8.00347,8.00347,0,0,0,11.31467,0l68.68883-68.68677a7.99644,7.99644,0,0,0,0-11.31206L306.34172,2.34219a8.00348,8.00348,0,0,0-11.31468,0L226.33821,71.029a7.99644,7.99644,0,0,0,0,11.31206Z\"]\n};\nvar faStarfighter = {\n prefix: 'fal',\n iconName: 'starfighter',\n icon: [640, 512, [], \"e037\", \"M288,256v48a16.00079,16.00079,0,0,0,16,16h32a16.00079,16.00079,0,0,0,16-16V256a32,32,0,0,0-64,0ZM624,128V112a16,16,0,0,0-32,0v16H576v32h16V352H512V320a47.99987,47.99987,0,0,0-48-48H432a47.46463,47.46463,0,0,0-22.45508,5.81836L369.9375,27.01562A31.842,31.842,0,0,0,338.3125,0h-36.625a31.84226,31.84226,0,0,0-31.625,27L230.61719,277.90625A47.46045,47.46045,0,0,0,208,272H176a47.99987,47.99987,0,0,0-48,48v32H48V160H64V128H48V112a16,16,0,0,0-32,0v16H0v32H16V432a16,16,0,0,0,32,0v-8.88867l92.72266,41.21094A47.66212,47.66212,0,0,0,168,479.19336V496a16.00079,16.00079,0,0,0,16,16h16a16.00079,16.00079,0,0,0,16-16V479.19336a47.278,47.278,0,0,0,18.47656-7.83789A31.68121,31.68121,0,0,0,256,480H384a31.686,31.686,0,0,0,21.52539-8.64453A47.26957,47.26957,0,0,0,424,479.19336V496a16.00079,16.00079,0,0,0,16,16h16a16.00079,16.00079,0,0,0,16-16V479.19336a47.66212,47.66212,0,0,0,27.27734-14.87109L592,423.11133V432a16,16,0,0,0,32,0V160h16V128ZM128,423.64844,64,395.20312V384h64ZM224,432a16.01833,16.01833,0,0,1-16,16H176a16.01833,16.01833,0,0,1-16-16V320a16.01833,16.01833,0,0,1,16-16h32a16.01833,16.01833,0,0,1,16,16Zm160,0v16H256l-.02344-15.86914c0-.04688.02344-.084.02344-.13086V321.3125L301.6875,32h36.625L384,320Zm96,0a16.01833,16.01833,0,0,1-16,16H432a16.01833,16.01833,0,0,1-16-16V320a16.01833,16.01833,0,0,1,16-16h32a16.01833,16.01833,0,0,1,16,16Zm96-36.79688-64,28.44532V384h64Z\"]\n};\nvar faStarfighterAlt = {\n prefix: 'fal',\n iconName: 'starfighter-alt',\n icon: [576, 512, [], \"e038\", \"M568,32H552a8.00039,8.00039,0,0,0-8,8V191.01367l-84.65234-21.16211C427.70312,107.17773,362.87305,64,288,64S148.29688,107.17773,116.65234,169.85156L32,191.01367V40a8.00039,8.00039,0,0,0-8-8H8a8.00039,8.00039,0,0,0-8,8V472a8.00039,8.00039,0,0,0,8,8H24a8.00039,8.00039,0,0,0,8-8V320.98438l84.65234,21.16406C148.29688,404.82227,213.127,448,288,448s139.70312-43.17773,171.34766-105.85156L544,320.98438V472a8.00039,8.00039,0,0,0,8,8h16a8.00039,8.00039,0,0,0,8-8V40A8.00039,8.00039,0,0,0,568,32ZM102.75391,305.6875,32,288V224l70.75391-17.6875a186.14869,186.14869,0,0,0,0,99.375ZM288,416A160,160,0,1,1,448,256,160.00042,160.00042,0,0,1,288,416ZM544,288l-70.75391,17.6875a186.14869,186.14869,0,0,0,0-99.375L544,224ZM288,128A128,128,0,1,0,416,256,127.99883,127.99883,0,0,0,288,128Zm12,33.21094a94.89277,94.89277,0,0,1,46.57617,19.22851l-22.62695,22.627A63.59685,63.59685,0,0,0,300,193.21094Zm-24,0v32a63.59685,63.59685,0,0,0-23.94922,9.85547l-22.62695-22.627A94.89277,94.89277,0,0,1,276,161.21094Zm-63.56055,36.21289,22.627,22.62695A63.59685,63.59685,0,0,0,225.21094,244h-32A94.89277,94.89277,0,0,1,212.43945,197.42383ZM193.21094,268h32a63.59685,63.59685,0,0,0,9.85547,23.94922l-22.627,22.62695A94.89277,94.89277,0,0,1,193.21094,268ZM276,350.78906a94.89277,94.89277,0,0,1-46.57617-19.22851l22.62695-22.627A63.59685,63.59685,0,0,0,276,318.78906ZM256,256a32,32,0,1,1,32,32A31.99908,31.99908,0,0,1,256,256Zm44,94.78906v-32a63.59685,63.59685,0,0,0,23.94922-9.85547l22.62695,22.627A94.89277,94.89277,0,0,1,300,350.78906Zm63.56055-36.21289-22.627-22.62695A63.59685,63.59685,0,0,0,350.78906,268h32A94.89277,94.89277,0,0,1,363.56055,314.57617ZM350.78906,244a63.59685,63.59685,0,0,0-9.85547-23.94922l22.627-22.62695A94.89277,94.89277,0,0,1,382.78906,244Z\"]\n};\nvar faStars = {\n prefix: 'fal',\n iconName: 'stars',\n icon: [512, 512, [], \"f762\", \"M509.05273,219.03853l-39.71289-16.56934-16.55859-39.73866a5.32506,5.32506,0,0,0-9.541,0l-16.56054,39.73866-39.71094,16.56934a5.33947,5.33947,0,0,0,0,9.54721L426.67969,245.157l16.56054,39.73671a5.3235,5.3235,0,0,0,9.541,0L469.33984,245.157l39.71289-16.57129a5.33947,5.33947,0,0,0,0-9.54721ZM364.30049,267.08,259.38106,251.77833,212.46892,156.549a22.735,22.735,0,0,0-20.59634-12.7878A22.40581,22.40581,0,0,0,171.37,156.549l-46.91214,95.22933L19.6322,267.08C.84859,269.76557-6.65235,293.06155,6.94311,306.349l75.91578,74.05684L64.85663,485.01914A23.00313,23.00313,0,0,0,87.45322,512a22.60025,22.60025,0,0,0,10.68884-2.6856l93.82428-49.37123,93.82429,49.37123A23.38328,23.38328,0,0,0,296.38571,512a23.09547,23.09547,0,0,0,22.69035-26.88718l-17.9085-104.61329,75.91578-74.05685C390.6788,293.06155,383.0841,269.87487,364.30049,267.08ZM266.78824,369.28873l17.596,103.14558-92.51162-48.7779L99.361,472.43431l17.596-103.14558L42.26,296.1531l103.388-15.08305,46.31831-93.83969,46.19331,93.83969L341.57888,296.1531ZM423.1875,81.33009,374.59375,57.01744,350.3125,8.17327c-5.40625-10.89769-23.21875-10.89769-28.625,0L297.40625,56.81419,248.8125,81.12683A16.04689,16.04689,0,0,0,240,95.433a16.46336,16.46336,0,0,0,8.8125,14.50941L297.40625,134.255,321.6875,182.896A16.07056,16.07056,0,0,0,336,191.79235a15.87374,15.87374,0,0,0,14.3125-8.8964L374.59375,134.255l48.59375-24.31264a16.0185,16.0185,0,0,0,0-28.6123ZM355.5,107.94109a16.19316,16.19316,0,0,0-7.1875,7.2078L336,139.86805l-12.3125-24.71916a16.75685,16.75685,0,0,0-7.1875-7.2078L291.8125,95.54243,316.5,83.12813a16.11584,16.11584,0,0,0,7.1875-7.2078L336,51.20117l12.3125,24.71916a16.59161,16.59161,0,0,0,7.1875,7.2078l24.6875,12.4143Z\"]\n};\nvar faStarship = {\n prefix: 'fal',\n iconName: 'starship',\n icon: [640, 512, [], \"e039\", \"M448,64c-83.91992,0-155.07812,53.92969-181.18945,128.95312L214.916,197.76367,158.959,160h47.44727a48,48,0,0,0,0-96H32A32.03165,32.03165,0,0,0,0,96v32a32.03165,32.03165,0,0,0,32,32h69.76953l62.86328,42.42383-22.22656,2.06055C115.9375,206.9375,96,229.07812,96,256s19.9375,49.0625,46.40625,51.51562l22.22656,2.06055L101.76953,352H32A32.03165,32.03165,0,0,0,0,384v32a32.03165,32.03165,0,0,0,32,32H206.40625a48,48,0,0,0,0-96H158.959l55.957-37.76367,51.89453,4.81055C292.92188,394.07031,364.08008,448,448,448c106.03906,0,192-85.96094,192-192S554.03906,64,448,64ZM32,128V96H206.40625a16,16,0,0,1,0,32ZM206.40625,384a16,16,0,0,1,0,32H32V384Zm52.18945-97.86133-113.252-10.498C135.46875,274.73438,128,266.28125,128,256s7.46875-18.73438,17.34375-19.64062l113.252-10.498A192.3155,192.3155,0,0,0,256,256,192.3155,192.3155,0,0,0,258.5957,286.13867ZM448,416A160,160,0,1,1,608,256,160.00042,160.00042,0,0,1,448,416Zm0-224a64,64,0,1,0,64,64A63.99942,63.99942,0,0,0,448,192Zm0,96a32,32,0,1,1,32-32A32.00033,32.00033,0,0,1,448,288Z\"]\n};\nvar faStarshipFreighter = {\n prefix: 'fal',\n iconName: 'starship-freighter',\n icon: [576, 512, [], \"e03a\", \"M79.99855,240a16,16,0,1,0,16,16A15.99954,15.99954,0,0,0,79.99855,240Zm31.998-64a16,16,0,1,0-15.998-16A16.00079,16.00079,0,0,0,111.99656,176Zm0,160a16,16,0,1,0,16,16A15.99912,15.99912,0,0,0,111.99656,336ZM560,240a16.00078,16.00078,0,0,0,16-16V166.39844A31.99434,31.99434,0,0,0,554.95315,136.332L311.32644,47.5625A257.78772,257.78772,0,0,0,224.434,32c-29.15232,0-58.11713,5.41406-85.21476,17.15039C-4.09512,111.22266.01425,256,.01425,256S-4.34121,400.666,139.21919,462.84961C166.31291,474.584,195.28554,480,224.434,480c27.60544,0,55.3183-5.01367,81.79093-13.96094l16.33006,22.67969A55.93881,55.93881,0,0,0,367.99044,512h55.998a55.8466,55.8466,0,0,0,33.33981-100.76172L554.95315,375.668A32.00422,32.00422,0,0,0,576,345.59961V288a15.99954,15.99954,0,0,0-16-16H447.98841V256.23242c0-.07812.01172-.1543.01172-.23242,0-.05664-.01172-.10938-.01172-.166V240ZM224.434,448c-25.87107,0-50.26167-4.88281-72.496-14.51367C30.897,381.05664,31.90094,261.85742,32.00055,256.96289l.01953-.9375-.01562-.7793c-.09375-5.05468-.90625-124.39257,119.93347-176.73047,22.1699-9.60546,46.49019-14.47851,72.27336-14.50585.26367,0,.51367.03906.77735.041a214.74426,214.74426,0,0,1,30.32418,2.73438c90.91983,15.01172,160.56039,93.90039,160.67562,188.98242v.35742c-.02734,43.52344-15.293,83.15039-39.84761,115.35547L314.68,286.12109A94.74314,94.74314,0,0,0,319.99245,256a95.998,95.998,0,1,0-95.998,96c.03906,0,.07812-.01172.11718-.01172l62.05853,86.19531C265.60774,444.17578,244.92807,448,224.434,448Zm63.55853-192a63.998,63.998,0,1,1-63.998-64A64.00022,64.00022,0,0,1,287.99248,256Zm135.996,224h-55.998a23.97442,23.97442,0,0,1-19.46873-9.98438L258.69954,345.25977a95.83327,95.83327,0,0,0,38.78512-28.24415L380.27168,432h43.71675a24,24,0,0,1,0,48ZM544,304v41.60156L396.26581,399.42969l-.15821-.22071A223.08951,223.08951,0,0,0,442.70131,304ZM442.27162,208a222.53941,222.53941,0,0,0-46.68941-95.67969L544,166.39844V208Z\"]\n};\nvar faSteak = {\n prefix: 'fal',\n iconName: 'steak',\n icon: [576, 512, [], \"f824\", \"M466.81 118.83C435.3 82.94 401.42 64 368.85 64c-41.87 0-78.51 32.73-93.33 83.38l-.63 2.19c-17.44 60.74-69.45 110.34-154.6 147.41-57.29 24.9-56.54 60.8-53.57 75.07 10.7 51.39 91.56 74.8 162.16 74.8 97.65 0 188.59-39.8 249.5-109.2 48.92-55.73 43.62-155.94-11.57-218.82zm-12.48 197.71c-64.24 73.19-152.69 98.31-225.45 98.31-105.46 0-177.94-52.81-95.81-88.57 146.41-63.75 166.92-148.6 173.16-170C317 119.66 341.54 96 368.85 96c22.76 0 49 15.62 73.91 44 44.37 50.49 49.78 133 11.57 176.54zM384 191.92a32 32 0 1 0 32 32 32 32 0 0 0-32-32zM514.92 76.65C467.92 23.11 416.28 0 368.85 0 298.27 0 237 51.17 214.1 129.39 165 269.32 1.37 212.32 0 351.63-1.13 467.49 126.32 512 239.31 512q8.41 0 16.69-.32c87.78-3.41 187.32-37.1 270.49-131.85C596.78 299.75 591.6 164 514.92 76.65zm-12.47 282.07C418.8 454 321.59 477.11 254.75 479.7q-7.65.3-15.44.3c-77 0-143.78-21.08-178.76-56.4C41.06 403.92 31.73 380.48 32 352c.48-49.57 23.49-61.67 75.5-84.31 48.37-21.11 108.57-47.32 136.79-127.69l.28-.8.24-.82C263.72 73.75 312.41 32 368.85 32c42.06 0 84.26 22.74 122 65.76 66.36 75.58 71.55 192.65 11.6 260.96z\"]\n};\nvar faSteeringWheel = {\n prefix: 'fal',\n iconName: 'steering-wheel',\n icon: [496, 512, [], \"f622\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 32c119.1 0 215.99 96.89 216 215.98H358.38C350.94 219.52 318.64 192 280 192h-64c-38.64 0-70.94 27.52-78.38 63.98H32C32.01 136.89 128.9 40 248 40zm-5.66 299.7l-67.5-67.48c-4.62-4.62-5.94-11.6-3.55-17.68 7-17.86 24.41-30.54 44.71-30.54h64c20.3 0 37.71 12.68 44.71 30.54 2.39 6.09 1.07 13.06-3.55 17.68l-67.5 67.48a7.997 7.997 0 0 1-11.32 0zm-207.7-51.72h110.72L232 374.61v96.58c-100.94-7.46-182.6-84.45-197.36-183.21zM264 471.19v-96.58l86.64-86.63h110.72C446.6 386.74 364.94 463.73 264 471.19z\"]\n};\nvar faStepBackward = {\n prefix: 'fal',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M76 479h8c6.6 0 12-5.4 12-12V276.7c1.1 1.2 2.2 2.4 3.5 3.4l232 191.4c20.6 17.2 52.5 2.8 52.5-24.6V63c0-27.4-31.9-41.8-52.5-24.6L99.5 231c-1.3 1.1-2.4 2.2-3.5 3.4V43c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v424c0 6.6 5.4 12 12 12zm40.5-223.4L351.8 63.2l.1-.1.1-.1v384l-.1-.1-.2-.1-235.2-191.2z\"]\n};\nvar faStepForward = {\n prefix: 'fal',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M372 31h-8c-6.6 0-12 5.4-12 12v190.3c-1.1-1.2-2.2-2.4-3.5-3.4l-232-191.4C95.9 21.3 64 35.6 64 63v384c0 27.4 31.9 41.8 52.5 24.6l232-192.6c1.3-1.1 2.4-2.2 3.5-3.4V467c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V43c0-6.6-5.4-12-12-12zm-40.5 223.4L96.2 446.8l-.1.1-.1.1V63l.1.1.2.1 235.2 191.2z\"]\n};\nvar faStethoscope = {\n prefix: 'fal',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M430.1 96.5c-43.6 1-78.7 37.5-78.1 81.1.5 38.2 27.8 69.9 64 77.2v105.6c0 65.9-57.4 119.5-128 119.5s-128-53.6-128-119.5v-8.9c71.9-8 128-69.1 128-143.1V25.8c0-5.5-3.7-10.3-9.1-11.6L223.5.4c-6.4-1.6-12.9 2.3-14.6 8.7l-1.9 7.8c-1.6 6.4 2.3 12.9 8.7 14.6l40.3 10v165.8c0 61.8-49.5 112.9-111.3 113.2-62.1.4-112.7-50-112.7-112v-167l40.2-10.1c6.4-1.6 10.3-8.1 8.7-14.6L79 9.1C77.4 2.7 70.9-1.2 64.4.4L9.1 14.2C3.7 15.5 0 20.3 0 25.8v182.6c0 74 56.1 135.1 128 143.1v8.9C128 444 199.8 512 288 512s160-68 160-151.5V254.9c36.5-7.4 64-39.7 64-78.4 0-44.9-36.9-81.1-81.9-80zm1.9 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm23.5-48c0 13-10.5 23.5-23.5 23.5s-23.5-10.5-23.5-23.5S419 153 432 153s23.5 10.5 23.5 23.5z\"]\n};\nvar faStickyNote = {\n prefix: 'fal',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-120.569 95.196a15.89 15.89 0 0 1-7.431 4.195v-95.509h95.509a15.88 15.88 0 0 1-4.195 7.431l-83.883 83.883zM416 80v239.988H312c-13.255 0-24 10.745-24 24v104H48c-8.837 0-16-7.163-16-16V80c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16z\"]\n};\nvar faStocking = {\n prefix: 'fal',\n iconName: 'stocking',\n icon: [384, 512, [], \"f7d5\", \"M352 0H96C78.3 0 64 14.3 64 32v64c0 17.7 14.3 32 32 32v123.5l-39 26C-1.8 316.7-17.7 396.2 21.5 455c24.7 37 65.2 57 106.6 57 24.4 0 49.1-7 70.9-21.5l81.7-54.5c44.6-29.7 71.2-79.5 71.2-133.1V128c17.7 0 32-14.3 32-32V32C384 14.3 369.7 0 352 0zm-32 302.9c0 42.9-21.3 82.7-57 106.5l-81.8 54.5C165.4 474.5 147 480 128.1 480c-32.2 0-62.2-16-80-42.8-14.2-21.3-19.3-46.9-14.3-72.1 5-25.1 19.5-46.8 40.9-61l39-26 14.2-9.5V128h192v174.9zM352 96H96V32h256v64z\"]\n};\nvar faStomach = {\n prefix: 'fal',\n iconName: 'stomach',\n icon: [512, 512, [], \"f623\", \"M401.07 98.27C342.35 87.67 289.25 115.23 261.1 160H240c-44.18 0-80-35.82-80-80V8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v72c0 61.86 50.14 112 112 112h6.7c-3.95 12.73-6.7 25.99-6.7 40v56c0 44.18-35.82 80-80 80h-48C50.14 368 0 418.14 0 480v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24c0-32.35 19.31-60.29 47.01-72.88 11.13-5.06 24.36-2.05 33.4 6.19l62.31 56.78C208 497.11 249.94 512 292.78 512 413.66 512 512 413.66 512 292.78v-55.83c0-66.45-45.53-126.88-110.93-138.68zM376 128c57.34 0 104 46.66 104 104v60.78c0 12.07-1.25 23.85-3.45 35.29-31.33 15.03-68.19 7.84-92.77-18.9-29.66-32.24-72.22-43.89-111.78-32.91V232c0-57.34 46.66-104 104-104zm-83.22 352c-35.53 0-70.28-12.34-97.19-34.16L145.31 400H160c53.87 0 98.94-38.26 109.58-89.01 30.84-13.68 66.61-6.31 90.64 19.84 22.47 24.44 52.38 37.25 82.75 37.25 7.49 0 14.97-1.24 22.41-2.81C436.99 432.61 370.32 480 292.78 480z\"]\n};\nvar faStop = {\n prefix: 'fal',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352z\"]\n};\nvar faStopCircle = {\n prefix: 'fal',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zM40 256c0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216zm296-96H176c-8.8 0-16 7.2-16 16v160c0 8.8 7.2 16 16 16h160c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16zm-16 160H192V192h128v128z\"]\n};\nvar faStopwatch = {\n prefix: 'fal',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M393.3 141.3l17.5-17.5c4.7-4.7 4.7-12.3 0-17l-5.7-5.7c-4.7-4.7-12.3-4.7-17 0l-17.5 17.5c-35.8-31-81.5-50.9-131.7-54.2V32h25c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-80c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h23v32.6C91.2 73.3 0 170 0 288c0 123.7 100.3 224 224 224s224-100.3 224-224c0-56.1-20.6-107.4-54.7-146.7zM224 480c-106.1 0-192-85.9-192-192S117.9 96 224 96s192 85.9 192 192-85.9 192-192 192zm4-128h-8c-6.6 0-12-5.4-12-12V172c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v168c0 6.6-5.4 12-12 12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fal',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M393.3,141.3l17.5-17.5a12,12,0,0,0,0-17l-5.71-5.71a12,12,0,0,0-17,0l-17.5,17.5A223.09,223.09,0,0,0,238.91,64.41V32h25a12,12,0,0,0,12-12V12a12,12,0,0,0-12-12h-80a12,12,0,0,0-12,12v8a12,12,0,0,0,12,12h23V64.59C91.2,73.3,0,170,0,288,0,411.7,100.3,512,224,512S448,411.7,448,288A223,223,0,0,0,393.3,141.3ZM224,480A192,192,0,1,1,416,288,191.93,191.93,0,0,1,224,480ZM178.48,307.91l2.41-3.32C201,277.09,212,262,212,229.05c0-39.46-15.91-57.05-51.58-57.05C125.14,172,108,190.41,108,228.25v4.06a4.21,4.21,0,0,0,4.33,4.07h24.9a4.21,4.21,0,0,0,4.33-4.07v-5.23c0-8,0-26.67,16.69-26.67,16.2,0,16.2,15.67,16.2,28.26,0,25-6.73,34.58-24.75,60.27l-3.06,4.37c-23.44,33.46-35.06,55.36-37.75,89.39a12.06,12.06,0,0,0,3.22,9.22,12.64,12.64,0,0,0,9.41,4.08h82.84a4.21,4.21,0,0,0,4.33-4.06V369.62a4.21,4.21,0,0,0-4.33-4.07H150.75l.52-4.46C153.34,342.91,169.22,320,178.48,307.91ZM288.19,172C254.05,172,236,192.48,236,231.22V336.56c0,40.55,16.12,59.44,50.77,59.44,36.31,0,53.23-19,53.23-59.69v-107C340,203.16,331,172,288.19,172Zm16.7,169c0,16.78-5.72,25.28-17,25.28s-17.24-8.28-17.24-24.61V225.73c0-19.84,9.38-24,17.24-24s17,4.05,17,23.34Z\"]\n};\nvar faStore = {\n prefix: 'fal',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-29.6 47.2-10 110.6 38 130.8v227.4c0 19.4 14.3 35.2 32 35.2h448c17.7 0 32-15.8 32-35.2V249.4c48-20.2 67.6-83.6 38-130.8zm-70 358.2c0 2-.8 3.1-.2 3.2l-446.6.3c-.3-.2-1.2-1.3-1.2-3.5V352h448zM84 320v-64h2.5c29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.9 33.1h2.5v64zm494.2-126.5c-7.8 16.6-22.1 27.5-39.3 29.8-3.1.4-6.2.6-9.4.6-19.3 0-37-8-50-22.5L455.7 175l-23.8 26.6c-13 14.5-30.7 22.5-50 22.5s-37-8-50-22.5L308 175l-23.8 26.6c-13 14.5-30.7 22.5-50 22.5s-37-8-50-22.5L160.3 175l-23.8 26.6c-13 14.5-30.7 22.5-50 22.5-3.2 0-6.3-.2-9.4-.6-17.2-2.3-31.5-13.2-39.3-29.8-8.7-18.6-7.5-40.8 3.3-57.9L106 32h404l64.9 103.6c10.8 17.2 12 39.3 3.3 57.9z\"]\n};\nvar faStoreAlt = {\n prefix: 'fal',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M635.7 176.1l-91.4-160C538.6 6.2 528 0 516.5 0h-393C112 0 101.4 6.2 95.7 16.1l-91.4 160C-7.9 197.5 7.4 224 32 224h32v254.5C64 497 78.3 512 96 512h256c17.7 0 32-15 32-33.5V224h160v280c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V224h32c24.6 0 39.9-26.5 27.7-47.9zM352 478.5c0 .9-.3 1.4-.2 1.5l-255.2.2s-.6-.5-.6-1.7V352h256v126.5zm0-158.5H96v-96h256v96zM32.1 192l91.4-160h393L608 192H32.1z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fal',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M516.51,32,608,192H342.09L384,225v-1H544V351l32,25.2V224h32c24.6,0,39.91-26.5,27.71-47.91l-91.41-160A32.15,32.15,0,0,0,516.51,0h-393a31.85,31.85,0,0,0-17.92,5.76L138.91,32ZM352,478.5c0,.91-.29,1.41-.2,1.5l-255.2.2a2.23,2.23,0,0,1-.6-1.7V352H338.48l-40.64-32H96V224h79.92l-40.64-32H32.11l32-56-25.44-20L4.31,176.09C-7.89,197.5,7.42,224,32,224H64V478.5C64,497,78.31,512,96,512H352c17.71,0,32-15,32-33.5V387.86l-32-25.2ZM23,1.8A7.88,7.88,0,0,0,11.77,3l-10,12.5A7.94,7.94,0,0,0,3,26.71L617,510.23A8,8,0,0,0,628.2,509l10-12.5a7.86,7.86,0,0,0-1.21-11.2Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fal',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M97.2,480.3a4.53,4.53,0,0,1-1.2-3.5V352H338.48l-40.64-32H96V256h2.5a98.65,98.65,0,0,0,73.24-32.59C165.67,218.43,148,202,148,202A66.31,66.31,0,0,1,98.5,224.09a71.51,71.51,0,0,1-9.41-.59c-17.18-2.3-31.5-13.2-39.29-29.8-8.71-18.61-7.5-40.79,3.29-57.9l3.58-5.72-25.36-20L26,118.59C-3.59,165.8,16,229.2,64,249.41V476.8C64,496.2,78.3,512,96,512H541.66l-40.6-32ZM522,32l64.91,103.59a61,61,0,0,1,3.29,57.91c-7.79,16.59-22.11,27.5-39.29,29.8a73.26,73.26,0,0,1-9.41.61,66.35,66.35,0,0,1-50-22.5L467.7,175l-23.79,26.59a66.37,66.37,0,0,1-50,22.5,67.35,67.35,0,0,1-12.76-1.33l37.68,29.67a99.3,99.3,0,0,0,48.67-29.52A99.14,99.14,0,0,0,541.41,256h2.5v64H504.64L576,376.2V249.41c48-20.21,67.59-83.61,38-130.82L549.09,15A32,32,0,0,0,522,0H118a31.92,31.92,0,0,0-14.92,3.78L138.91,32ZM637,485.32,23,1.8A7.88,7.88,0,0,0,11.77,3l-10,12.5A7.94,7.94,0,0,0,3,26.71L617,510.23A8,8,0,0,0,628.2,509l10-12.5A7.86,7.86,0,0,0,637,485.32Z\"]\n};\nvar faStream = {\n prefix: 'fal',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M8 128h432c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8zm496 112H72c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h432c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-64 144H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h432c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faStreetView = {\n prefix: 'fal',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M368 360.15v30.87c62.27 8.42 104 23.6 104 40.99 0 26.51-96.71 48-216 48S40 458.51 40 432c0-17.38 41.73-32.56 104-40.99v-30.87C58.82 373.14 0 400.39 0 432c0 44.18 114.62 80 256 80s256-35.82 256-80c0-31.61-58.82-58.86-144-71.85zM176 320v80c0 26.47 21.53 48 48 48h64c26.47 0 48-21.53 48-48v-80c26.47 0 48-21.53 48-48v-64c0-34.53-22.11-63.75-52.82-74.93C339.14 119.84 344 104.54 344 88c0-48.52-39.48-88-88-88s-88 39.48-88 88c0 16.54 4.86 31.84 12.82 45.07C150.11 144.25 128 173.47 128 208v64c0 26.47 21.53 48 48 48zm80-288c30.93 0 56 25.07 56 56s-25.07 56-56 56-56-25.07-56-56 25.07-56 56-56zm-96 176c0-25.76 20.44-46.68 45.93-47.79C220.17 170.11 237.38 176 256 176s35.83-5.89 50.07-15.79C331.56 161.32 352 182.24 352 208v64c0 8.83-7.19 16-16 16h-32v112c0 8.83-7.19 16-16 16h-64c-8.81 0-16-7.17-16-16V288h-32c-8.81 0-16-7.17-16-16v-64z\"]\n};\nvar faStretcher = {\n prefix: 'fal',\n iconName: 'stretcher',\n icon: [640, 512, [], \"f825\", \"M608 128H192L79.84 10.74a32 32 0 0 0-45.18-2.65L10.74 29.35a32 32 0 0 0-2.66 45.17l121.7 128A64 64 0 0 0 177.62 224h23.18l143.11 125.81-51.84 45.36A65.88 65.88 0 1 0 313 419.38L368 371l55 48.39a63.26 63.26 0 1 0 20.89-24.21l-51.84-45.36L535.2 224H608a32 32 0 0 0 32-32v-32a32 32 0 0 0-32-32zM256 480a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm224-64a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm-112-87.27L248.3 224h239.4zM608 192H177.62c-9.14 0-17.85-3.92-24.65-11.53L32 53.26 55.89 32l122.44 128H608z\"]\n};\nvar faStrikethrough = {\n prefix: 'fal',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M361.36 320a72.48 72.48 0 0 1 21 68.24c-4.86 23-21.55 42.13-43.07 51.52a98.75 98.75 0 0 1-39.35 8.24H234a78.37 78.37 0 0 1-74.58-53.5 8.07 8.07 0 0 0-9.43-5.56l-15.65 3.65a8 8 0 0 0-6 10A110.28 110.28 0 0 0 234 480h66a130.93 130.93 0 0 0 52.12-10.91c33.54-14.6 58.16-46.18 63-82.44A104.52 104.52 0 0 0 401.79 320zm-192.11-96h68.28l-39.37-19.61c-24.78-12.33-40-37.46-39.29-66.71a72.2 72.2 0 0 1 40.23-63.34A98.53 98.53 0 0 1 242.91 64h47.86a108.83 108.83 0 0 1 95.51 56.91 8 8 0 0 0 10.33 3.69l14.6-6.62a8.06 8.06 0 0 0 3.92-11A140.86 140.86 0 0 0 290.77 32h-47.86a130.84 130.84 0 0 0-58.16 13.73c-35.72 17.86-57.9 53.82-57.9 95.21a102.1 102.1 0 0 0 42.4 83.06zM504 256H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h496a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faStroopwafel = {\n prefix: 'fal',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm0 480C132.49 480 32 379.51 32 256S132.49 32 256 32s224 100.49 224 224-100.49 224-224 224zm158.39-224l28.28-28.28c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-28.28 28.28-45.26-45.25 22.63-22.63 16.97 16.97c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31l-16.97-16.97 5.66-5.66c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-5.66 5.66-16.97-16.97c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l16.97 16.97-22.63 22.63-45.26-45.25 28.29-28.28c3.12-3.12 3.12-8.19 0-11.31L295.6 69.32c-3.12-3.12-8.19-3.12-11.31 0L256 97.61l-28.29-28.29c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l28.29 28.28-45.25 45.25-22.63-22.63 16.97-16.97c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-16.97 16.97-5.66-5.66c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l16.97-16.97 22.63 22.63-45.25 45.25-28.29-28.28c-3.12-3.12-8.19-3.12-11.31 0L69.32 216.4c-3.12 3.12-3.12 8.19 0 11.31L97.61 256l-28.29 28.29c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l28.29-28.28 45.25 45.25-22.63 22.63-16.97-16.97c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31l16.97 16.97-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l5.66-5.66 16.97 16.97c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31l-16.97-16.97 22.63-22.63 45.26 45.26-28.29 28.29c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L256 414.39l28.29 28.29c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31l-28.29-28.29 45.26-45.26 22.63 22.63-16.97 16.97c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0l16.97-16.97 5.66 5.66c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31l-5.66-5.66 16.97-16.97c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0l-16.97 16.97-22.63-22.63 45.25-45.25 28.29 28.28c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L414.39 256zM256 142.86l45.25 45.25L256 233.37l-45.25-45.25L256 142.86zM142.86 256l45.25-45.26L233.37 256l-45.26 45.26L142.86 256zM256 369.14l-45.26-45.26L256 278.62l45.26 45.26L256 369.14zm67.88-67.89L278.63 256l45.26-45.25L369.14 256l-45.26 45.25z\"]\n};\nvar faSubscript = {\n prefix: 'fal',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M344 64h-56a16 16 0 0 0-13.49 7.41L176 226.2 77.5 71.41A16 16 0 0 0 64 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h47.22L157 256 55.22 416H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56a16 16 0 0 0 13.5-7.41L176 285.8l98.51 154.79A16 16 0 0 0 288 448h56a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-47.22L195 256 296.78 96H344a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zm160 416h-40V304a16 16 0 0 0-16-16h-16a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 416 352h16v128h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faSubway = {\n prefix: 'fal',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M112 384c26.51 0 48-21.49 48-48s-21.49-48-48-48-48 21.49-48 48 21.49 48 48 48zm0-64c8.823 0 16 7.177 16 16s-7.177 16-16 16-16-7.177-16-16 7.177-16 16-16zm224 64c26.51 0 48-21.49 48-48s-21.49-48-48-48-48 21.49-48 48 21.49 48 48 48zm0-64c8.823 0 16 7.177 16 16s-7.177 16-16 16-16-7.177-16-16 7.177-16 16-16zM320 0H128C64 0 0 42.981 0 96v256c0 47.169 50.656 86.391 106.9 94.473l-55.285 55.285c-3.78 3.78-1.103 10.243 4.243 10.243h25.798c3.182 0 6.235-1.264 8.485-3.515L150.627 448h146.745l60.486 60.485a12.002 12.002 0 0 0 8.485 3.515h25.798c5.345 0 8.022-6.463 4.243-10.243L341.1 446.472C397.344 438.391 448 399.169 448 352V96c0-53.019-63-96-128-96zM32 128h176v96H32v-96zm384 224c0 32.299-47.552 64-96 64H128c-48.448 0-96-31.701-96-64v-96h384v96zm0-128H240v-96h176v96zM32 96c0-32.299 47.552-64 96-64h192c58.237 0 96 37.881 96 64H32z\"]\n};\nvar faSuitcase = {\n prefix: 'fal',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M464 128H352V80c0-26.47-21.53-48-48-48h-96c-26.47 0-48 21.53-48 48v48H48c-26.5 0-48 21.5-48 48v256c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 80c0-8.83 7.19-16 16-16h96c8.81 0 16 7.17 16 16v48H192V80zM96 448H48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48v288zm288 0H128V160h256v288zm96-16c0 8.8-7.2 16-16 16h-48V160h48c8.8 0 16 7.2 16 16v256z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fal',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160h-48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v112H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zM128 48c0-8.82 7.18-16 16-16h96c8.82 0 16 7.18 16 16v112H128V48zm224 384c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16V208c0-8.82 7.18-16 16-16h288c8.82 0 16 7.18 16 16v224zm-72-80H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm0-96H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h176c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faSun = {\n prefix: 'fal',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 143.7c-61.8 0-112 50.3-112 112.1s50.2 112.1 112 112.1 112-50.3 112-112.1-50.2-112.1-112-112.1zm0 192.2c-44.1 0-80-35.9-80-80.1s35.9-80.1 80-80.1 80 35.9 80 80.1-35.9 80.1-80 80.1zm256-80.1c0-5.3-2.7-10.3-7.1-13.3L422 187l19.4-97.9c1-5.2-.6-10.7-4.4-14.4-3.8-3.8-9.1-5.5-14.4-4.4l-97.8 19.4-55.5-83c-6-8.9-20.6-8.9-26.6 0l-55.5 83-97.8-19.5c-5.3-1.1-10.6.6-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.4L90 187 7.1 242.5c-4.4 3-7.1 8-7.1 13.3 0 5.3 2.7 10.3 7.1 13.3L90 324.6l-19.4 97.9c-1 5.2.6 10.7 4.4 14.4 3.8 3.8 9.1 5.5 14.4 4.4l97.8-19.4 55.5 83c3 4.5 8 7.1 13.3 7.1s10.3-2.7 13.3-7.1l55.5-83 97.8 19.4c5.4 1.2 10.7-.6 14.4-4.4 3.8-3.8 5.4-9.2 4.4-14.4L422 324.6l82.9-55.5c4.4-3 7.1-8 7.1-13.3zm-116.7 48.1c-5.4 3.6-8 10.1-6.8 16.4l16.8 84.9-84.8-16.8c-6.6-1.4-12.8 1.4-16.4 6.8l-48.1 72-48.1-71.9c-3-4.5-8-7.1-13.3-7.1-1 0-2.1.1-3.1.3l-84.8 16.8 16.8-84.9c1.2-6.3-1.4-12.8-6.8-16.4l-71.9-48.1 71.9-48.2c5.4-3.6 8-10.1 6.8-16.4l-16.8-84.9 84.8 16.8c6.5 1.3 12.8-1.4 16.4-6.8l48.1-72 48.1 72c3.6 5.4 9.9 8.1 16.4 6.8l84.8-16.8-16.8 84.9c-1.2 6.3 1.4 12.8 6.8 16.4l71.9 48.2-71.9 48z\"]\n};\nvar faSunCloud = {\n prefix: 'fal',\n iconName: 'sun-cloud',\n icon: [640, 512, [], \"f763\", \"M558.2 185.6C542.1 151.5 507.4 128 468 128c-41.7 0-77.6 25.2-92.5 62.5-32.5 11.4-55.5 42.1-55.5 78.3 0 45.9 37.3 83.2 83.2 83.2h153.6c45.9 0 83.2-37.3 83.2-83.2 0-45.4-36.6-82.4-81.8-83.2zM556.8 320H403.2c-28.3 0-51.2-22.9-51.2-51.2 0-27.5 21.8-49.8 49-51 4.9-32.7 32.9-57.8 67-57.8 35.8 0 64.8 27.8 67.5 62.9 6.5-3.1 13.6-5.3 21.3-5.3 28.3 0 51.2 22.9 51.2 51.2S585.1 320 556.8 320zm-153.6 64c-.7 0-1.4-.2-2.1-.2l4.3 21.6-84.8-16.8c-6.6-1.3-12.8 1.4-16.4 6.8L256 467.2l-48.1-71.9c-3.6-5.3-9.9-8.1-16.4-6.8l-84.8 16.8 16.8-84.8c1.2-6.3-1.4-12.8-6.8-16.4L44.8 256l71.9-48.1c5.4-3.6 8-10.1 6.8-16.4l-16.8-84.8 84.8 16.8c6.5 1.3 12.8-1.5 16.4-6.8L256 44.8l48.1 71.9c3.6 5.3 9.9 8.1 16.4 6.8L428.8 102c8.7-1.7 14.3-10.1 12.6-18.8-1.7-8.7-10.1-14.4-18.8-12.6L324.8 90 269.3 7.1c-3-4.4-8-7.1-13.3-7.1s-10.3 2.7-13.3 7.1L187.2 90 89.4 70.6c-5.3-1.1-10.6.6-14.4 4.4s-5.4 9.2-4.4 14.4L90 187.2 7.1 242.7c-4.4 3-7.1 7.9-7.1 13.3s2.7 10.3 7.1 13.3L90 324.8l-19.4 97.8c-1 5.2.6 10.7 4.4 14.4 3.8 3.8 9.1 5.4 14.4 4.4l97.8-19.4 55.5 82.9c3 4.4 8 7.1 13.3 7.1s10.3-2.7 13.3-7.1l55.4-82.9 97.8 19.4c5.4 1.1 10.7-.6 14.4-4.4 3.8-3.8 5.4-9.2 4.4-14.4l-7.6-38.6h-30.5zM256 179.7c21 0 40 8.5 53.8 22.3 6.2-8.7 13.6-16.4 22-23.1-19.5-19.2-46.3-31.1-75.8-31.1-59.7 0-108.3 48.6-108.3 108.3S196.3 364.3 256 364.3c22.8 0 44-7.2 61.5-19.3-7.1-8-13.1-16.9-17.8-26.6-12.4 8.7-27.4 13.9-43.7 13.9-42.1 0-76.3-34.2-76.3-76.3s34.2-76.3 76.3-76.3z\"]\n};\nvar faSunDust = {\n prefix: 'fal',\n iconName: 'sun-dust',\n icon: [512, 512, [], \"f764\", \"M123.5 191.5l-16.8-84.8 84.8 16.8c6.4 1.2 12.7-1.2 16.4-6.8L256 44.8l48.1 71.9c3.8 5.6 10.6 8.3 17.2 6.6l85.7-21.5c2.9-.7 5.4-2.2 7.4-4.2 3.8-3.8 5.6-9.5 4.2-15.2-2.1-8.6-10.8-13.8-19.4-11.6l-74.8 18.7-55.1-82.4c-3-4.4-7.9-7.1-13.3-7.1-5.3 0-10.3 2.5-13.3 7.1L187.3 90 89.6 70.6h-.1c-1-.2-2 0-3 0-1.1 0-2.1-.2-3.2 0-2.1.4-4.1 1.3-5.8 2.4-.5.3-.8.9-1.3 1.3-1.1.9-2.2 1.9-3.1 3.1-1.2 1.7-2 3.7-2.4 5.8-.2 1.1 0 2.1 0 3.1s-.2 2.1 0 3.1v.1L90 187.3 7.1 242.7c-4.5 3-7.1 7.9-7.1 13.3 0 5.3 2.7 10.3 7.1 13.3l82.4 55.1-18.7 74.8c-2.2 8.6 3 17.3 11.6 19.4 5.7 1.4 11.4-.4 15.2-4.2 2-2 3.5-4.5 4.2-7.4l21.5-85.7c1.7-6.6-1-13.4-6.6-17.2L44.8 256l71.9-48.1c5.5-3.6 8-10.1 6.8-16.4zm183.4 2.8c3.3 2.7 8 2.8 11-.3l11.3-11.3c3.2-3.2 3.2-8.6-.2-11.6-43.9-37.9-110.6-36-152.2 5.7-41.7 41.7-43.6 108.3-5.7 152.2 3 3.5 8.4 3.5 11.6.2l11.3-11.3c3-3 3-7.7.3-11-26-31.4-24.3-78.1 5.1-107.5 29.4-29.4 76.2-31 107.5-5.1zm183.8 275c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.5 21.3 21.3 21.3s21.3-9.6 21.3-21.3c0-11.7-9.6-21.3-21.3-21.3zm0-170.6c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.5 21.3 21.3 21.3S512 331.7 512 320c0-11.8-9.6-21.3-21.3-21.3zm0-128c11.8 0 21.3-9.6 21.3-21.3 0-11.8-9.6-21.3-21.3-21.3-11.8 0-21.3 9.6-21.3 21.3-.1 11.7 9.5 21.3 21.3 21.3zM149.3 469.3c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3 11.8 0 21.3-9.6 21.3-21.3.1-11.7-9.5-21.3-21.3-21.3zm85.4-85.3c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.5 21.3 21.3 21.3S256 417 256 405.3c0-11.7-9.6-21.3-21.3-21.3zm85.3-85.3c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3s21.3-9.6 21.3-21.3c0-11.8-9.5-21.3-21.3-21.3zm85.3-85.4c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3 11.8 0 21.3-9.6 21.3-21.3.1-11.7-9.5-21.3-21.3-21.3zm-85.3 256c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3s21.3-9.6 21.3-21.3c0-11.7-9.5-21.3-21.3-21.3zm85.3-85.3c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3 11.8 0 21.3-9.6 21.3-21.3.1-11.7-9.5-21.3-21.3-21.3z\"]\n};\nvar faSunHaze = {\n prefix: 'fal',\n iconName: 'sun-haze',\n icon: [640, 512, [], \"f765\", \"M216 480H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm416 0H296c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-56-56v-16c0-4.4-3.6-8-8-8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8zm56-104.1H488c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM72 352h336c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm136.3-104.5c-.3 4.5 3.5 8.4 8.1 8.4h16c4.3 0 7.6-3.4 8-7.6 3.8-40.6 38.1-72.4 79.6-72.4s75.8 31.8 79.6 72.4c.4 4.2 3.7 7.6 8 7.6h16c4.6 0 8.4-3.8 8.1-8.4-4.3-57.9-52.8-103.6-111.7-103.6s-107.4 45.8-111.7 103.6zM96 255.9c2.8 0 5.7-.7 8.2-2.3l75.8-45.4c5.8-3.5 8.8-10.2 7.5-16.8l-16.8-84.9 84.8 16.8c6.5 1.3 12.8-1.4 16.4-6.8L320 44.7l48.1 71.9c3.6 5.4 9.9 8.1 16.4 6.8l84.8-16.8-16.8 84.9c-1.3 6.6 1.7 13.4 7.5 16.8l75.8 45.4c2.6 1.5 5.4 2.3 8.2 2.3 5.4 0 10.7-2.8 13.7-7.8 4.6-7.6 2.1-17.4-5.5-21.9l-66.1-39.6 19.3-97.3c1-5.2-.6-10.6-4.4-14.4s-9.1-5.5-14.4-4.4L388.8 90 333.4 7.1l-.1-.1c-.6-.9-1.4-1.4-2.1-2.1-.8-.8-1.3-1.7-2.3-2.3-1.8-1.2-3.8-2-5.8-2.4-.6-.1-1.2 0-1.8 0-1.4-.1-2.9-.3-4.3 0-2 .4-4 1.2-5.8 2.4-.9.6-1.5 1.5-2.2 2.2-.7.7-1.6 1.3-2.2 2.2l-.1.1-55.4 82.8-97.8-19.4c-5.3-1.1-10.6.6-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.4l19.3 97.3-66.1 39.6c-7.6 4.5-10.1 14.4-5.5 21.9 2.9 5.1 8.2 7.8 13.6 7.8z\"]\n};\nvar faSunglasses = {\n prefix: 'fal',\n iconName: 'sunglasses',\n icon: [576, 512, [], \"f892\", \"M107.16 305.63L48 355.73v13.55C48 403.87 76.71 432 112 432h36.09c33.3 0 61.34-25.51 63.83-58.08l3.83-50.48a216.87 216.87 0 0 0-88.37-18.92c-7.03 0-13.69.48-20.22 1.11zm467.06-25.05l-45.5-188a80 80 0 0 0-102.91-56.5L403 43.71a8 8 0 0 0-5.06 10.1L403 69a8 8 0 0 0 10.12 5.06l21.79-7.26c10.09-3.38 21.15-3.95 31.24-.49 16.13 5.57 27.57 18.13 31.5 33.85l40.6 171.43a277.85 277.85 0 0 0-89.56-15.06c-37.35 0-80.25 8-125 31.49h-71.35c-44.72-23.49-87.65-31.5-125-31.49a278.55 278.55 0 0 0-89.56 15.06l40.56-171.23a47.54 47.54 0 0 1 24.28-30.9c12.26-6.43 26.88-6.5 40-2.15l20.29 6.79A8 8 0 0 0 173 69l5.06-15.18A8 8 0 0 0 173 43.74l-22.87-7.61A79.93 79.93 0 0 0 47.25 92.78L1.81 280.58A62.68 62.68 0 0 0 0 295.64v73.64C0 430.44 50.12 480 112 480h36.09c58.6 0 107.29-44.67 111.69-102.44l4.34-57.56h47.76l4.34 57.56C320.62 435.34 369.31 480 427.91 480H464c61.88 0 112-49.56 112-110.72v-73.65a64.18 64.18 0 0 0-1.78-15.05zm-346.34 94.56C224.75 416 189.72 448 148.09 448H112c-44.12 0-80-35.31-80-78.72V308a248.65 248.65 0 0 1 95.38-19.47c36.34 0 71.62 8.43 105.15 25.14zM544 369.28c0 43.41-35.88 78.72-80 78.72h-36.09c-41.63 0-76.66-32-79.79-72.86l-4.65-61.48C377 297 412.31 288.52 448.66 288.52A248.46 248.46 0 0 1 544 308zm-115.12-63.72l-65.69 56.6.89 11.77c2.49 32.56 30.53 58.07 63.83 58.07H464c35.29 0 64-28.13 64-62.72v-50.41a233.52 233.52 0 0 0-79.34-14.35c-6.66 0-13.22.48-19.78 1.04z\"]\n};\nvar faSunrise = {\n prefix: 'fal',\n iconName: 'sunrise',\n icon: [576, 512, [], \"f766\", \"M95.8 448h38.5l-44-66 86-17.2c6.3-1.3 11.3-6.2 12.6-12.6l17.2-86 73 48.7c5.4 3.6 12.4 3.6 17.8 0l73-48.7 17.2 86c1.2 6.3 6.2 11.3 12.6 12.6l86 17.2-44 66h38.5l45.5-68.1c3-4.4 3.5-10.1 1.5-15s-6.4-8.5-11.7-9.6l-99-19.8-19.8-99c-1-5.2-4.6-9.6-9.6-11.7-5-2.1-10.6-1.5-15 1.5l-84 56-84-56c-4.4-2.9-10.1-3.5-15-1.5s-8.5 6.4-9.6 11.7l-19.8 99-99 19.8c-5.2 1-9.6 4.6-11.7 9.6s-1.5 10.6 1.5 15L95.8 448zm101.9-330.3c3.1 3.1 8.2 3.1 11.3 0l63-63V216c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V54.6l63 63c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L299.3 4.7C296.2 1.6 292.1 0 288 0s-8.2 1.6-11.3 4.7L186.3 95c-3.1 3.1-3.1 8.2 0 11.3l11.4 11.4zM568 480H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM287.8 352c-56.3 0-102.5 41.9-110.4 96h32c7.4-36.5 39.7-64 78.4-64s70.9 27.5 78.4 64h32c-7.8-54.1-54.1-96-110.4-96z\"]\n};\nvar faSunset = {\n prefix: 'fal',\n iconName: 'sunset',\n icon: [576, 512, [], \"f767\", \"M276.7 219.3c3.1 3.1 7.2 4.7 11.3 4.7s8.2-1.6 11.3-4.7l90.3-90.3c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-63 63V8c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v161.4l-63-63c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l90.3 90.3zM95.8 448h38.5l-44-66 86-17.2c6.3-1.3 11.3-6.2 12.6-12.6l17.2-86 73 48.7c5.4 3.6 12.4 3.6 17.8 0l73-48.7 17.2 86c1.2 6.3 6.2 11.3 12.6 12.6l86 17.2-44 66h38.5l45.5-68.1c3-4.4 3.5-10.1 1.5-15s-6.4-8.5-11.7-9.6l-99-19.8-19.8-99c-1-5.2-4.6-9.6-9.6-11.7-5-2.1-10.6-1.5-15 1.5l-84 56-84-56c-4.4-2.9-10.1-3.5-15-1.5s-8.5 6.4-9.6 11.7l-19.8 99-99 19.8c-5.2 1-9.6 4.6-11.7 9.6s-1.5 10.6 1.5 15L95.8 448zm192-96c-56.3 0-102.5 41.9-110.4 96h32c7.4-36.5 39.7-64 78.4-64s70.9 27.5 78.4 64h32c-7.8-54.1-54.1-96-110.4-96zM568 480H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faSuperscript = {\n prefix: 'fal',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M344 64h-56a16 16 0 0 0-13.49 7.41L176 226.2 77.5 71.41A16 16 0 0 0 64 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h47.22L157 256 55.22 416H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56a16 16 0 0 0 13.5-7.41L176 285.8l98.51 154.79A16 16 0 0 0 288 448h56a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-47.22L195 256 296.78 96H344a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zm160 128h-40V16a16 16 0 0 0-16-16h-16a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 416 64h16v128h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faSurprise = {\n prefix: 'fal',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm0-184c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm0 96c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm-48-176c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fal',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M96 432c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm384-112H327.77l107.65-107.65c12.5-12.5 12.5-32.76 0-45.26l-90.52-90.5c-6.25-6.25-14.44-9.37-22.63-9.37s-16.38 3.12-22.63 9.37L192 184.23V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v384c0 53.02 42.98 96 96 96h384c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zm-320 96c0 35.29-28.71 64-64 64s-64-28.71-64-64V288h128v128zm0-160H32v-96h128v96zm0-128H32V32h128v96zm32 101.47L322.24 99.22h.03l90.51 90.51L192 410.51V229.47zM480 480H167.76l128-128H480v128z\"]\n};\nvar faSwimmer = {\n prefix: 'fal',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M128 288c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zm0-160c35.29 0 64 28.71 64 64s-28.71 64-64 64-64-28.71-64-64 28.71-64 64-64zm61.61 214.58c2.73 2.52 10.45 6.69 22.56 8.5l42.24-60.29c15.47-22.12 32.69-42.73 50.76-62.52l154.55 107c11.11-7.99 23.08-12.79 35.44-14.37L327.4 204.75c23.24-22.91 48.13-44.19 74.91-63.31 10.97-7.83 24.91-10.69 38.47-7.77l100.38 18.08c8.59 1.53 17-4.19 18.59-12.91 1.56-8.7-4.22-17.03-12.91-18.59l-99.88-17.97a80.012 80.012 0 0 0-63.28 13.12c-60.56 43.25-112.88 96.09-155.5 157.03l-45.38 64.81c2.29 1.76 4.62 3.32 6.81 5.34zM632 384h-24c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 375.58 442.04 384 416 384s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 375.58 250.04 384 224 384s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 375.58 58.04 384 32 384H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h24c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fal',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M632 448h-24c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 439.58 442.04 448 416 448s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 439.58 250.04 448 224 448s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 439.58 58.04 448 32 448H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h24c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-440-39.79V256h224v160c16.38 0 26.97-4.45 32-7.79V112c0-26.47 21.53-48 48-48s48 21.53 48 48v8c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-8c0-44.11-35.88-80-80-80s-80 35.89-80 80v112H192V112c0-26.47 21.53-48 48-48s48 21.53 48 48v8c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-8c0-44.11-35.88-80-80-80s-80 35.89-80 80v276.5c10.41 3.73 20.44 9.62 29.61 18.07.5.47 1.55 1.08 2.39 1.64z\"]\n};\nvar faSword = {\n prefix: 'fal',\n iconName: 'sword',\n icon: [512, 512, [], \"f71c\", \"M496.04 0c-.76 0-1.53.05-2.31.17L400 16 165.26 250.74l-39.15-39.15a15.887 15.887 0 0 0-11.31-4.68c-4.09 0-8.19 1.56-11.31 4.68l-34.79 34.8a16.005 16.005 0 0 0-2 20.19l45.9 68.84-39.79 39.79-16.76-8.38a13.82 13.82 0 0 0-6.21-1.47c-3.61 0-7.16 1.4-9.83 4.07L4.07 405.36c-5.42 5.43-5.42 14.22 0 19.64L87 507.93c2.71 2.71 6.27 4.07 9.82 4.07 3.55 0 7.11-1.36 9.82-4.07L142.57 472a13.889 13.889 0 0 0 2.6-16.03l-8.38-16.76 39.78-39.78 68.84 45.9c2.71 1.8 5.8 2.68 8.87 2.68 4.13 0 8.23-1.59 11.32-4.69l34.8-34.79c6.25-6.25 6.25-16.38 0-22.63l-39.15-39.15L496 112l15.83-93.73C513.23 8.49 505.57 0 496.04 0zM266.47 397.2l-14.21 14.21-57.92-38.62-21.83-14.55-18.55 18.55-39.78 39.78-16.31 16.31 10.31 20.63 2.54 5.09-13.9 13.9-57.32-57.32 13.9-13.9 5.08 2.54 20.63 10.32 16.31-16.31 39.79-39.79 18.55-18.55-14.55-21.83-38.62-57.92 14.21-14.21L266.47 397.2zM466.15 96.6L238.63 324.11l-50.74-50.74L415.4 45.85l61.06-10.32-10.31 61.07z\"]\n};\nvar faSwordLaser = {\n prefix: 'fal',\n iconName: 'sword-laser',\n icon: [512, 512, [], \"e03b\", \"M502.43507,11.94728A36.44142,36.44142,0,0,0,477.06206.00781C476.80229.002,476.54253,0,476.28081,0A38.64416,38.64416,0,0,0,450.6285,9.586L196.34371,243.305,182.192,229.15328a8.00293,8.00293,0,0,0-11.31443,0L159.56312,240.4697a7.9971,7.9971,0,0,0,.00195,11.31251l5.65564,5.65566-56.56828,56.56844-1.17578-1.17579a7.99588,7.99588,0,0,0-11.30858,0l-80.1698,80.1759a54.62117,54.62117,0,0,0,0,77.2462l25.75,25.75a54.61844,54.61844,0,0,0,77.244-.00195l80.16981-80.1759a7.99594,7.99594,0,0,0,0-11.30861l56.56828-56.56844,5.65759,5.65761a7.99882,7.99882,0,0,0,11.31248.002l11.31444-11.31642a7.99713,7.99713,0,0,0,0-11.31252l-15.34508-15.34512L502.46632,61.21884A36.55287,36.55287,0,0,0,502.43507,11.94728ZM96.36534,473.37372a22.64678,22.64678,0,0,1-31.99019.00391l-25.75-25.75394a22.62156,22.62156,0,0,1,.00195-31.99224l63.19718-63.19931,6.82811,6.83009,45.2558,45.254,5.65428,5.65626Zm80.16981-91.4845-45.25384-45.254,11.31248-11.31447,45.25579,45.25592Zm22.62692-22.627-45.25384-45.25592,11.31248-11.31252,45.25579,45.254Zm22.62692-22.627-45.25384-45.25593,11.31443-11.31251,45.25384,45.254ZM478.90385,39.56646,246.02333,292.98675l-27.03317-27.0352L472.09136,33.32036a6.83032,6.83032,0,0,1,3.86523-1.31445,4.39513,4.39513,0,0,1,2.82812,1.498A4.47664,4.47664,0,0,1,478.90385,39.56646Z\"]\n};\nvar faSwordLaserAlt = {\n prefix: 'fal',\n iconName: 'sword-laser-alt',\n icon: [512, 512, [], \"e03c\", \"M502.4353,11.9454A36.44741,36.44741,0,0,0,477.06225.0079a38.76627,38.76627,0,0,0-26.37109,9.51563L181.19507,255.39462l.541.59375H159.60913a15.99221,15.99221,0,0,0-11.31055,4.68555L15.99585,392.99814a54.63336,54.63336,0,0,0,0,77.252l25.748,25.75a54.60508,54.60508,0,0,0,77.23633,0L331.64038,283.30087c9.54492-9.54492,3.39062-25.05078-9.36914-26.71094L502.46655,61.213A36.54769,36.54769,0,0,0,502.4353,11.9454ZM38.62671,447.62509a22.648,22.648,0,0,1-.002-31.99414l65.19141-65.18945L125.58764,372.213l-81.1875,81.1875Zm57.74218,25.748a22.62382,22.62382,0,0,1-31.99414.002l-5.77539-5.77539,81.1875-81.1875,21.77149,21.77148Zm87.81446-87.81446L126.44116,327.8165l39.81641-39.81641H281.74194ZM478.8435,39.63486,279.32788,255.98837H228.033l244.1875-222.791a5.12736,5.12736,0,0,1,6.56054.29687A4.71587,4.71587,0,0,1,478.8435,39.63486Z\"]\n};\nvar faSwords = {\n prefix: 'fal',\n iconName: 'swords',\n icon: [512, 512, [], \"f71d\", \"M507.3 443.32l-55.88-55.88L486 329.91a16.007 16.007 0 0 0-2-20.19l-34.8-34.8c-6.21-6.21-16.35-6.28-22.63 0l-27.83 27.84L112 16.01 18.27.18C7.06-1.45-1.25 8.38.17 18.28L16 112.01l286.75 286.75-27.84 27.83c-6.25 6.25-6.25 16.38 0 22.63l34.8 34.79c5.4 5.4 13.86 6.22 20.19 2l57.52-34.58 55.88 55.88c6.25 6.25 16.38 6.25 22.63 0l41.37-41.37c6.25-6.24 6.25-16.38 0-22.62zM45.85 96.61L35.54 35.54 96.6 45.87 376.13 325.4l-50.74 50.74L45.85 96.61zm408.77 376.76l-63.11-63.12-68.44 41.86-14.21-14.21L437.9 308.87l14.21 14.21-41.85 68.44 63.11 63.11-18.75 18.74zM415.39 45.85l61.07-10.31-10.33 61.06-114.14 114.14 22.63 22.63L495.99 112l15.83-93.73c1.63-11.21-8.2-19.52-18.1-18.1L399.99 16 278.62 137.37 301.24 160 415.39 45.85zM237.07 426.58l-27.84-27.83 24.12-24.12L210.73 352l-24.12 24.12-50.74-50.74L160 301.25l-22.63-22.63-24.13 24.13-27.83-27.84c-6.25-6.25-16.38-6.25-22.63 0l-34.79 34.8c-5.4 5.4-6.22 13.86-2 20.19l34.58 57.52-55.89 55.89c-6.25 6.25-6.25 16.38 0 22.63l41.37 41.37c6.25 6.25 16.38 6.25 22.63 0l55.88-55.88 57.53 34.58a16.007 16.007 0 0 0 20.19-2l34.8-34.8c.87-.87 1.34-1.96 1.97-2.97-.48-2.73-.81-5.5-.81-8.33s.34-5.61.81-8.35c-.63-1.01-1.1-2.1-1.98-2.98zm-48.15 25.52l-68.44-41.85-63.11 63.11-18.75-18.75 63.12-63.11-41.86-68.44 14.21-14.21L203.13 437.9l-14.21 14.2z\"]\n};\nvar faSwordsLaser = {\n prefix: 'fal',\n iconName: 'swords-laser',\n icon: [640, 512, [], \"e03d\", \"M472.09186,33.29631a6.83342,6.83342,0,0,1,3.86523-1.31351,4.39616,4.39616,0,0,1,2.82813,1.497,4.471,4.471,0,0,1,.11914,6.05813L382.41807,144.45835l2.33984,2.15665a47.48026,47.48026,0,0,1,15.627-2.64068,46.70058,46.70058,0,0,1,21.11718,5.24232l80.96481-88.042A36.60564,36.60564,0,0,0,477.06256.00781C476.8028.002,476.543,0,476.28131,0A38.6606,38.6606,0,0,0,450.629,9.579l-107.4648,98.70228,23.60155,21.75189ZM275.73842,260.4626l-29.71483,32.31264-27.0332-27.01567,33.49609-30.76493L230.92008,211.373l-34.57616,31.7564-14.15234-14.14215a8.00705,8.00705,0,0,0-11.31445,0L159.56268,240.2955a7.98725,7.98725,0,0,0,.002,11.30435l5.65624,5.65218-56.56833,56.5276-1.17578-1.17493a8,8,0,0,0-11.30859,0l-80.1699,80.118a54.55385,54.55385,0,0,0,0,77.19044l25.75,25.73144a54.64644,54.64644,0,0,0,77.24411-.002l80.16989-80.118a7.98608,7.98608,0,0,0,0-11.30044l56.56834-56.52761,5.6582,5.65218a8.00291,8.00291,0,0,0,11.31249.00195l11.31445-11.30825a7.98725,7.98725,0,0,0,0-11.30435l-15.3457-15.3327,28.71874-31.22748ZM96.36544,473.032a22.6584,22.6584,0,0,1-31.99022.0039l-25.75-25.73535a22.59366,22.59366,0,0,1,.002-31.96914l63.19724-63.15368,6.82813,6.82516,45.25584,45.2213,5.65429,5.65217Zm80.16989-91.41846-45.25389-45.22131,11.3125-11.3063,45.25584,45.22326Zm22.627-22.61065-45.25389-45.22326,11.31249-11.30435,45.25585,45.2213Zm22.62694-22.61066L176.53533,291.169l11.31445-11.30435,45.25389,45.2213ZM624,393.10525,411.30087,180.59831c-9.54492-9.538-25.05077-3.38818-26.71093,9.36239L189.21306,9.89521a36.62975,36.62975,0,0,0-61.205,25.386,38.72144,38.72144,0,0,0,9.51562,26.3521l245.871,269.30193.59375-.54062v22.111a15.97489,15.97489,0,0,0,4.68554,11.3024L520.99809,496.01543a54.6612,54.6612,0,0,0,77.25193,0L624,470.28593a54.538,54.538,0,0,0,0-77.18068ZM383.98838,284.13109,161.19745,40.11951a5.12086,5.12086,0,0,1,.29687-6.55582,4.71845,4.71845,0,0,1,6.14063-.06245L383.98838,232.87312ZM416.00009,345.862V230.4608l97.55855,97.4883-57.74216,57.70059ZM575.625,473.40088a22.65957,22.65957,0,0,1-31.99412.002l-65.18943-65.14444,21.77147-21.7558,81.18747,81.129Zm25.75-25.7295-5.77538,5.77123-81.18747-81.129,21.77147-21.7558,65.18943,65.14249a22.596,22.596,0,0,1,.00195,31.97109Z\"]\n};\nvar faSynagogue = {\n prefix: 'fal',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M406.38 150.77a13.18 13.18 0 0 0-11.56-6.84h-37.15l-26.5-41.72c-4.88-7.66-17.44-7.67-22.31-.02l-26.51 41.73h-37.14c-4.81 0-9.25 2.62-11.56 6.84-2.31 4.19-2.12 9.3.44 13.31l17.73 27.91-17.73 27.91c-2.56 4.03-2.75 9.14-.44 13.33a13.18 13.18 0 0 0 11.56 6.84h37.15l26.5 41.72c2.44 3.83 6.59 6.12 11.16 6.12s8.72-2.28 11.16-6.11l26.51-41.73h37.14c4.81 0 9.25-2.62 11.56-6.84 2.31-4.19 2.12-9.3-.44-13.31L388.22 192l17.73-27.91c2.55-4.03 2.74-9.14.43-13.32zM320 114.47l18.71 29.45h-37.42L320 114.47zm-69.62 45.45h21.79l-10.9 17.15-10.89-17.15zm0 64.16l10.9-17.16 10.9 17.16h-21.8zM320 269.53l-18.71-29.45h37.42L320 269.53zm28.87-45.45h-57.75L270.75 192l20.38-32.08h57.75L369.25 192l-20.38 32.08zm40.75 0h-21.79l10.9-17.15 10.89 17.15zm-10.9-47l-10.9-17.16h21.8l-10.9 17.16zM313.71 320.3c-33.28 3.17-57.71 33.02-57.71 66.45V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V385.8c0-15.95 10.86-30.76 26.59-33.36C334.61 349.15 352 364.58 352 384v120c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V384c0-37.42-32.12-67.34-70.29-63.7zm318.28-52.01l-76-71.78c-6.6-6.23-17.4-6.23-24 0l-52 49.11V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4C334.15 2.34 327.07 0 320 0s-14.15 2.34-19.99 7.01l-128 102.4A32.005 32.005 0 0 0 160 134.4v111.23l-52-49.11c-6.6-6.23-17.4-6.23-24 0L8 268.3c-5.15 4.86-8 11.13-8 17.63V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V289.64l64-60.45 64 60.45V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V134.4L320 32l128 102.4V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V289.64l64-60.45 64 60.45V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V285.93c0-6.5-2.85-12.77-8.01-17.64z\"]\n};\nvar faSync = {\n prefix: 'fal',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M492 8h-10c-6.627 0-12 5.373-12 12v110.627C426.929 57.261 347.224 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h10.016c6.353 0 11.646-4.949 11.977-11.293C48.157 132.216 141.097 42 256 42c82.862 0 154.737 47.077 190.289 116H332c-6.627 0-12 5.373-12 12v10c0 6.627 5.373 12 12 12h160c6.627 0 12-5.373 12-12V20c0-6.627-5.373-12-12-12zm-.301 248h-10.015c-6.352 0-11.647 4.949-11.977 11.293C463.841 380.158 370.546 470 256 470c-82.608 0-154.672-46.952-190.299-116H180c6.627 0 12-5.373 12-12v-10c0-6.627-5.373-12-12-12H20c-6.627 0-12 5.373-12 12v160c0 6.627 5.373 12 12 12h10c6.627 0 12-5.373 12-12V381.373C85.071 454.739 164.777 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507z\"]\n};\nvar faSyncAlt = {\n prefix: 'fal',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M457.373 9.387l-50.095 50.102C365.411 27.211 312.953 8 256 8 123.228 8 14.824 112.338 8.31 243.493 7.971 250.311 13.475 256 20.301 256h10.015c6.352 0 11.647-4.949 11.977-11.293C48.159 131.913 141.389 42 256 42c47.554 0 91.487 15.512 127.02 41.75l-53.615 53.622c-20.1 20.1-5.855 54.628 22.627 54.628H480c17.673 0 32-14.327 32-32V32.015c0-28.475-34.564-42.691-54.627-22.628zM480 160H352L480 32v128zm11.699 96h-10.014c-6.353 0-11.647 4.949-11.977 11.293C463.84 380.203 370.504 470 256 470c-47.525 0-91.468-15.509-127.016-41.757l53.612-53.616c20.099-20.1 5.855-54.627-22.627-54.627H32c-17.673 0-32 14.327-32 32v127.978c0 28.614 34.615 42.641 54.627 22.627l50.092-50.096C146.587 484.788 199.046 504 256 504c132.773 0 241.176-104.338 247.69-235.493.339-6.818-5.165-12.507-11.991-12.507zM32 480V352h128L32 480z\"]\n};\nvar faSyringe = {\n prefix: 'fal',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M509.7 81.5L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l17 17L84.5 291.7c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l227.2-227.2 17 17c3.1 3.1 8.2 3.1 11.3 0L487 206c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4zm-84.9 96.2L197.7 404.9c-10.4 10.4-24.6 15.4-39.2 13.8l-58.5-6.5-6.5-58.5c-1.6-14.6 3.4-28.9 13.8-39.2l23.5-23.5 39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6 45.3-45.3 39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6 45.3-45.3 39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L289 132.4l45.3-45.3 90.5 90.6z\"]\n};\nvar faTable = {\n prefix: 'fal',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM160 448H48c-8.837 0-16-7.163-16-16v-80h128v96zm0-128H32v-96h128v96zm0-128H32V96h128v96zm160 256H192v-96h128v96zm0-128H192v-96h128v96zm0-128H192V96h128v96zm160 160v80c0 8.837-7.163 16-16 16H352v-96h128zm0-32H352v-96h128v96zm0-128H352V96h128v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fal',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M482.8 325.2c47.1-83.1 36.2-190.6-34.5-261.4C407.2 22.7 352.6 0 294.5 0c-105.8 0-153 63.1-219.3 129.5-49.2 49.3-49.2 129.6 0 179l20.2 20.3-83.6 72.6c-15.1 13.2-15.7 36.3-1.8 50.3l50.1 50.1c17.5 17.6 40.7 9.4 50.3-1.8l72.4-83.6c15.9 15.9 58.9 70.6 132.5 56.1 20.6 24 50.7 39.5 84.7 39.5 61.8 0 112-50.2 112-112 0-28.8-11.3-54.9-29.2-74.8zM163.4 86.5c72.5-72.7 189.8-72.7 262.3 0 58.9 59 69 147.8 32 218-56.7-34.4-124.3-12.3-154.5 40.1l-199-199 59.2-59.1zm17.8 282.9L82.8 479.3l-50.1-50.2 109.6-98.6-44.5-44.6c-31.2-31.3-35.6-79-13.9-115.4L290.4 377c-2 9.6-6.3 34.1 5.7 64.2-51.7 1.5-70.5-27.3-114.9-71.8zM400 480c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTablet = {\n prefix: 'fal',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M256 416c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-21.3 14.3-32 32-32s32 14.3 32 32zM448 48v416c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h352c26.5 0 48 21.5 48 48zm-32 0c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v416c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V48z\"]\n};\nvar faTabletAlt = {\n prefix: 'fal',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M352 96v256H96V96h256m20-32H76c-6.6 0-12 5.4-12 12v296c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12zm28-64H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm16 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v416zm-192-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faTabletAndroid = {\n prefix: 'fal',\n iconName: 'tablet-android',\n icon: [448, 512, [], \"f3fb\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm16 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v416zm-140-16H172c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12z\"]\n};\nvar faTabletAndroidAlt = {\n prefix: 'fal',\n iconName: 'tablet-android-alt',\n icon: [448, 512, [], \"f3fc\", \"M352 96v256H96V96h256m48-96H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM48 480c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v416c0 8.8-7.2 16-16 16H48zM372 64H76c-6.6 0-12 5.4-12 12v296c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12zm-96 352H172c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h104c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12z\"]\n};\nvar faTabletRugged = {\n prefix: 'fal',\n iconName: 'tablet-rugged',\n icon: [448, 512, [], \"f48f\", \"M439.2 164.4c5.4-2.7 8.8-8.2 8.8-14.3V73.9c0-6.1-3.4-11.6-8.8-14.3L416 48c0-26.5-21.5-48-48-48H80C53.5 0 32 21.5 32 48L8.8 59.6C3.4 62.3 0 67.8 0 73.9v76.2c0 6.1 3.4 11.6 8.8 14.3L32 176v16L8.8 203.6c-5.4 2.7-8.8 8.2-8.8 14.3v76.2c0 6.1 3.4 11.6 8.8 14.3L32 320v16L8.8 347.6c-5.4 2.7-8.8 8.2-8.8 14.3v76.2c0 6.1 3.4 11.6 8.8 14.3L32 464c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48l23.2-11.6c5.4-2.7 8.8-8.2 8.8-14.3v-76.2c0-6.1-3.4-11.6-8.8-14.3L416 336v-16l23.2-11.6c5.4-2.7 8.8-8.2 8.8-14.3v-76.2c0-6.1-3.4-11.6-8.8-14.3L416 192v-16l23.2-11.6zm-37.5 56.2l14.3 7.2v56.4l-14.3 7.2-17.7 8.8v55.6l17.7 8.8 14.3 7.2v56.4l-14.3 7.2-17.7 8.8V464c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-19.8l-17.7-8.8-14.3-7.2v-56.4l14.3-7.2 17.7-8.8v-55.6l-17.7-8.8-14.3-7.2v-56.4l14.3-7.2 17.7-8.8v-55.6l-17.7-8.8-14.3-7.2V83.8l14.3-7.2L64 67.8V48c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v19.8l17.7 8.8 14.3 7.2v56.4l-14.3 7.2-17.7 8.8v55.6l17.7 8.8zM336 64H112c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zm-16 352H128V96h192v320z\"]\n};\nvar faTablets = {\n prefix: 'fal',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M480 0c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160S568.4 0 480 0zm0 288c-70.7 0-128-57.3-128-128 0-29.6 10.4-56.4 27.3-78.1l178.9 178.9C536.4 277.6 509.6 288 480 288zm100.7-49.9L401.9 59.3C423.6 42.4 450.4 32 480 32c70.7 0 128 57.3 128 128 0 29.6-10.4 56.4-27.3 78.1zM160 192C71.6 192 0 263.6 0 352s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 288c-65.2 0-118.4-48.9-126.4-112h252.8c-8 63.1-61.2 112-126.4 112zM33.6 336c8-63.1 61.2-112 126.4-112s118.4 48.9 126.4 112H33.6z\"]\n};\nvar faTachometer = {\n prefix: 'fal',\n iconName: 'tachometer',\n icon: [576, 512, [], \"f0e4\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128zM365.22 128.88c-8.19-2.78-17.44 1.55-20.34 9.89l-51.83 149.74c-1.69-.13-3.31-.51-5.04-.51-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64c0-22.25-11.38-41.82-28.62-53.29l51.74-149.48c2.87-8.34-1.54-17.46-9.91-20.35zM288 384c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fal',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 152c13.26 0 24-10.74 24-24s-10.74-24-24-24-24 10.74-24 24 10.74 24 24 24zm-136 8c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm272 0c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm56 136c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zM288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128zM96 296c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm269.22-167.12c-8.19-2.78-17.44 1.55-20.34 9.89l-51.83 149.74c-1.69-.13-3.31-.51-5.04-.51-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64c0-22.25-11.38-41.82-28.62-53.29l51.74-149.48c2.87-8.34-1.54-17.46-9.91-20.35zM288 384c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faTachometerAltAverage = {\n prefix: 'fal',\n iconName: 'tachometer-alt-average',\n icon: [576, 512, [], \"f624\", \"M304 290.26V128c0-8.84-7.16-16-16-16s-16 7.16-16 16v162.26c-27.56 7.14-48 31.95-48 61.74 0 35.35 28.65 64 64 64s64-28.65 64-64c0-29.79-20.44-54.6-48-61.74zM288 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm-168-64c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24zm56-136c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24zm272 0c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24zM288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128zM504 320c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24z\"]\n};\nvar faTachometerAltFast = {\n prefix: 'fal',\n iconName: 'tachometer-alt-fast',\n icon: [576, 512, [], \"f625\", \"M120 320c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24zm168-168c13.26 0 24-10.74 24-24s-10.74-24-24-24-24 10.74-24 24 10.74 24 24 24zm-136 8c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm282.06 11.56c6.88 5.56 7.94 15.64 2.38 22.5l-97.14 120C347.18 324.7 352 337.74 352 352c0 35.35-28.65 64-64 64s-64-28.65-64-64 28.65-64 64-64c9.47 0 18.38 2.18 26.47 5.88l97.09-119.94c5.56-6.88 15.6-7.92 22.5-2.38zM320 352c0-17.67-14.33-32-32-32s-32 14.33-32 32 14.33 32 32 32 32-14.33 32-32zm160-56c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm96 24c0 52.8-14.25 102.26-39.06 144.8-5.61 9.62-16.3 15.2-27.44 15.2h-443c-11.14 0-21.83-5.58-27.44-15.2C14.25 422.26 0 372.8 0 320 0 160.94 128.94 32 288 32s288 128.94 288 288zm-32 0c0-141.16-114.84-256-256-256S32 178.84 32 320c0 45.26 12 89.75 34.7 128.68l442.8-.68C532 409.75 544 365.26 544 320z\"]\n};\nvar faTachometerAltFastest = {\n prefix: 'fal',\n iconName: 'tachometer-alt-fastest',\n icon: [576, 512, [], \"f626\", \"M120 320c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24zm168-168c13.26 0 24-10.74 24-24s-10.74-24-24-24-24 10.74-24 24 10.74 24 24 24zm136 56c13.26 0 24-10.74 24-24s-10.74-24-24-24-24 10.74-24 24 10.74 24 24 24zm71.78 109.38c1.47 8.72-4.44 16.95-13.16 18.41l-131.2 21.87C348.53 390.3 321.41 416 288 416c-35.35 0-64-28.65-64-64s28.65-64 64-64c26.09 0 48.44 15.66 58.41 38.05l130.97-21.83c8.53-1.49 16.93 4.44 18.4 13.16zM320 352c0-17.67-14.33-32-32-32s-32 14.33-32 32 14.33 32 32 32 32-14.33 32-32zM152 160c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm424 160c0 52.8-14.25 102.26-39.06 144.8-5.61 9.62-16.3 15.2-27.44 15.2h-443c-11.14 0-21.83-5.58-27.44-15.2C14.25 422.26 0 372.8 0 320 0 160.94 128.94 32 288 32s288 128.94 288 288zm-32 0c0-141.16-114.84-256-256-256S32 178.84 32 320c0 45.26 12 89.75 34.7 128.68l442.8-.68C532 409.75 544 365.26 544 320z\"]\n};\nvar faTachometerAltSlow = {\n prefix: 'fal',\n iconName: 'tachometer-alt-slow',\n icon: [576, 512, [], \"f627\", \"M120 320c0 13.26-10.74 24-24 24s-24-10.74-24-24 10.74-24 24-24 24 10.74 24 24zm168-168c13.26 0 24-10.74 24-24s-10.74-24-24-24-24 10.74-24 24 10.74 24 24 24zm64 200c0 35.35-28.65 64-64 64s-64-28.65-64-64c0-14.26 4.82-27.3 12.71-37.94l-97.14-120c-5.56-6.86-4.5-16.94 2.38-22.5 6.88-5.55 16.97-4.5 22.5 2.38l97.09 119.94c8.09-3.69 17-5.88 26.47-5.88 35.34 0 63.99 28.65 63.99 64zm-32 0c0-17.67-14.33-32-32-32s-32 14.33-32 32 14.33 32 32 32 32-14.33 32-32zm256-32c0 52.8-14.25 102.26-39.06 144.8-5.61 9.62-16.3 15.2-27.44 15.2h-443c-11.14 0-21.83-5.58-27.44-15.2C14.25 422.26 0 372.8 0 320 0 160.94 128.94 32 288 32s288 128.94 288 288zm-32 0c0-141.16-114.84-256-256-256S32 178.84 32 320c0 45.26 12 89.75 34.7 128.68l442.8-.68C532 409.75 544 365.26 544 320zM424 160c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm56 136c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24z\"]\n};\nvar faTachometerAltSlowest = {\n prefix: 'fal',\n iconName: 'tachometer-alt-slowest',\n icon: [576, 512, [], \"f628\", \"M128 184c0-13.26 10.74-24 24-24s24 10.74 24 24-10.74 24-24 24-24-10.74-24-24zm160-32c13.26 0 24-10.74 24-24s-10.74-24-24-24-24 10.74-24 24 10.74 24 24 24zm288 168c0 52.8-14.25 102.26-39.06 144.8-5.61 9.62-16.3 15.2-27.44 15.2h-443c-11.14 0-21.83-5.58-27.44-15.2C14.25 422.26 0 372.8 0 320 0 160.94 128.94 32 288 32s288 128.94 288 288zm-32 0c0-141.16-114.84-256-256-256S32 178.84 32 320c0 45.26 12 89.75 34.7 128.68l442.8-.68C532 409.75 544 365.26 544 320zm-192 32c0 35.35-28.65 64-64 64-33.41 0-60.53-25.7-63.43-58.35l-131.2-21.87c-8.72-1.45-14.62-9.69-13.16-18.41s9.88-14.64 18.41-13.16l130.97 21.83C239.56 303.66 261.91 288 288 288c35.35 0 64 28.65 64 64zm-32 0c0-17.67-14.33-32-32-32s-32 14.33-32 32 14.33 32 32 32 32-14.33 32-32zm160-56c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24zm-56-136c-13.26 0-24 10.74-24 24s10.74 24 24 24 24-10.74 24-24-10.74-24-24-24z\"]\n};\nvar faTachometerAverage = {\n prefix: 'fal',\n iconName: 'tachometer-average',\n icon: [576, 512, [], \"f629\", \"M304 290.26V128c0-8.84-7.16-16-16-16s-16 7.16-16 16v162.26c-27.56 7.14-48 31.95-48 61.74 0 35.35 28.65 64 64 64s64-28.65 64-64c0-29.79-20.44-54.6-48-61.74zM288 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-352C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128z\"]\n};\nvar faTachometerFast = {\n prefix: 'fal',\n iconName: 'tachometer-fast',\n icon: [576, 512, [], \"f62a\", \"M411.56 173.94l-97.09 119.94c-8.09-3.69-17-5.88-26.47-5.88-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64c0-14.26-4.82-27.3-12.71-37.94l97.14-120c5.56-6.86 4.5-16.94-2.38-22.5-6.89-5.54-16.93-4.5-22.49 2.38zM288 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-352C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128z\"]\n};\nvar faTachometerFastest = {\n prefix: 'fal',\n iconName: 'tachometer-fastest',\n icon: [576, 512, [], \"f62b\", \"M477.38 304.22l-130.97 21.83C336.44 303.66 314.09 288 288 288c-35.35 0-64 28.65-64 64s28.65 64 64 64c33.41 0 60.53-25.7 63.43-58.35l131.2-21.87c8.72-1.45 14.62-9.69 13.16-18.41s-9.88-14.64-18.41-13.15zM288 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-352C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128z\"]\n};\nvar faTachometerSlow = {\n prefix: 'fal',\n iconName: 'tachometer-slow',\n icon: [576, 512, [], \"f62c\", \"M288 288c-9.47 0-18.38 2.18-26.47 5.88l-97.09-119.94c-5.53-6.88-15.62-7.92-22.5-2.38-6.88 5.56-7.94 15.64-2.38 22.5l97.14 120C228.82 324.7 224 337.74 224 352c0 35.35 28.65 64 64 64s64-28.65 64-64-28.65-64-64-64zm0 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-352C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128z\"]\n};\nvar faTachometerSlowest = {\n prefix: 'fal',\n iconName: 'tachometer-slowest',\n icon: [576, 512, [], \"f62d\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm221.5 416l-442.8.68C44 409.75 32 365.26 32 320 32 178.84 146.84 64 288 64s256 114.84 256 256c0 45.26-12 89.75-34.5 128zM288 288c-26.09 0-48.44 15.66-58.41 38.05L98.62 304.22c-8.53-1.48-16.94 4.44-18.41 13.16s4.44 16.95 13.16 18.41l131.2 21.87C227.47 390.3 254.59 416 288 416c35.35 0 64-28.65 64-64s-28.65-64-64-64zm0 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTaco = {\n prefix: 'fal',\n iconName: 'taco',\n icon: [512, 512, [], \"f826\", \"M511.47 407.64a309.9 309.9 0 0 0-14.63-62.14c7.7-19.83 1.06-27.47 7.5-49.89 5.32-18.45 12.55-43.48 3-69.58-10.11-27.73-33.39-41.74-48.79-51-3.35-2-8.64-5.19-11.12-7.13-.87-2.68-2.43-10.2-3.43-14.9-4.11-19.32-9.73-45.75-31.76-63.74-20.51-16.74-44.58-16.74-52.49-16.74-11.43 0-21.5 1.41-29.26 1.34C316.54 62.7 293.75 32 257.42 32c-37.66 0-64.67 32.84-75.88 41.86-8.22.07-17.45-1.35-29.26-1.35h-.11c-8 0-32 .08-52.38 16.75-22 18-27.66 44.41-31.76 63.71-1 4.47-2.44 11.52-3.66 15-2.57 2-7.64 5-10.86 6.94-15.45 9.33-38.73 23.34-48.85 51.09-9.54 26.06-2.32 51.08 3 69.35 6.47 22.56-.11 30.37 7.55 50.09a310.2 310.2 0 0 0-14.68 62.2C-3.86 442.58 21 480 60.49 480h391c39.51 0 64.38-37.34 59.98-72.36zm-60 40.36h-391c-17.11 0-30.62-17.19-28.21-36.38C47.87 287.47 142.09 192 256 192s208.13 95.47 223.72 219.62c2.41 19.19-11.1 36.38-28.21 36.38zm21-156c-46.43-79.73-127-132-216.52-132S85.92 212.27 39.49 292c-3.65-15.68-11.61-36.31-4.77-55C41 219.83 56.38 210.56 70 202.38c22.08-13.26 23.44-14.83 29.35-42.75 3.46-16.27 7.39-34.73 20.69-45.58 9.49-7.75 20.91-9.54 32.26-9.54 39.31 0 35.55 8 60.68-16C231.39 70.81 245.37 64 257.42 64c15.25 0 27.42 10.9 41.62 24.51 25.13 24.08 21.36 16 60.69 16 11.34 0 22.77 1.79 32.26 9.53 13.3 10.86 17.23 29.31 20.69 45.58 5.91 27.91 7.25 29.48 29.34 42.75 13.6 8.19 29 17.46 35.26 34.61 5.72 15.58 1.56 28.02-4.76 55.02zM112 352a16 16 0 1 0 16 16 16 16 0 0 0-16-16zm64-64a16 16 0 1 0 16 16 16 16 0 0 0-16-16z\"]\n};\nvar faTag = {\n prefix: 'fal',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.745 18.745 49.137 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zm-22.627 45.255L271.196 475.314c-6.243 6.243-16.375 6.253-22.627 0L36.686 263.431A15.895 15.895 0 0 1 32 252.117V48c0-8.822 7.178-16 16-16h204.118c4.274 0 8.292 1.664 11.314 4.686l211.882 211.882c6.238 6.239 6.238 16.39 0 22.628zM144 124c11.028 0 20 8.972 20 20s-8.972 20-20 20-20-8.972-20-20 8.972-20 20-20m0-28c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fal',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M625.941 293.823L421.823 497.941c-18.746 18.746-49.138 18.745-67.882 0l-1.775-1.775 22.627-22.627 1.775 1.775c6.253 6.253 16.384 6.243 22.627 0l204.118-204.118c6.238-6.239 6.238-16.389 0-22.627L391.431 36.686A15.895 15.895 0 0 0 380.117 32h-19.549l-32-32h51.549a48 48 0 0 1 33.941 14.059L625.94 225.941c18.746 18.745 18.746 49.137.001 67.882zM252.118 32H48c-8.822 0-16 7.178-16 16v204.118c0 4.274 1.664 8.292 4.686 11.314l211.882 211.882c6.253 6.253 16.384 6.243 22.627 0l204.118-204.118c6.238-6.239 6.238-16.389 0-22.627L263.431 36.686A15.895 15.895 0 0 0 252.118 32m0-32a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.746 18.746-49.138 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118V48C0 21.49 21.49 0 48 0h204.118zM144 124c-11.028 0-20 8.972-20 20s8.972 20 20 20 20-8.972 20-20-8.972-20-20-20m0-28c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.49-48 48-48z\"]\n};\nvar faTally = {\n prefix: 'fal',\n iconName: 'tally',\n icon: [640, 512, [], \"f69c\", \"M634.79 149.58c-1.33-4.21-5.83-6.54-10.04-5.21L528 174.49V40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v144.45l-96 29.88V40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v184.3l-96 29.88V40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v224.15l-96 29.88V40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v263.99L5.58 337.12a8.005 8.005 0 0 0-5.21 10.04l4.84 15.25c1.33 4.21 5.83 6.54 10.04 5.21L112 337.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V327.54l96-29.88V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V287.7l96-29.88V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V247.85l96-29.88V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V208.01l106.42-33.13a8.005 8.005 0 0 0 5.21-10.04l-4.84-15.26z\"]\n};\nvar faTanakh = {\n prefix: 'fal',\n iconName: 'tanakh',\n icon: [448, 512, [], \"f827\", \"M368 0H24A23.94 23.94 0 0 0 0 24v368a24.1 24.1 0 0 0 14.9 22.2c3.6 16.1 4.4 45.6.4 65.8H12a12 12 0 0 0-12 12v8a12 12 0 0 0 12 12h372a64 64 0 0 0 64-64V80a80 80 0 0 0-80-80zm16 480H43.7a228.6 228.6 0 0 0 0-64H384a32 32 0 0 1 0 64zm32-87.12a63.33 63.33 0 0 0-32-8.88H32V32h336a48 48 0 0 1 48 48zM314.58 208l27.7-46.32a20 20 0 0 0-17.19-30.26h-56.35L241 85.16c-3.59-6.07-9.87-10.38-17-9.68a20 20 0 0 0-17.22 9.8l-27.6 46.16h-56.3a20.14 20.14 0 0 0-17.5 10.15 19.68 19.68 0 0 0 .21 20L133.42 208l-27.7 46.32a20 20 0 0 0 17.19 30.26h56.35L207 330.84a19.64 19.64 0 0 0 16.94 9.68h.06a20 20 0 0 0 17.22-9.8l27.6-46.16h56.3a20.14 20.14 0 0 0 17.5-10.15 19.68 19.68 0 0 0-.21-20zm3.48-52.58l-17.47 29.21-17.49-29.19zM224 103.38l16.8 28.06h-33.62zm-94 52.06h34.91l-17.51 29.17zm0 105.12l17.47-29.21 17.49 29.21zm94 52.06l-16.8-28.06h33.59zm31.15-52.06h-62.28L161.39 208l31.43-52.54h62.31L286.61 208zm28 0l17.45-29.17 17.46 29.17z\"]\n};\nvar faTape = {\n prefix: 'fal',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M632 448H338.9C404.2 408.8 448 337.6 448 256c0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h408c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM32 256c0-105.9 86.1-192 192-192s192 86.1 192 192-86.1 192-192 192S32 361.9 32 256zm192-96c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faTasks = {\n prefix: 'fal',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M145.35 207a8 8 0 0 0-11.35 0l-71 71-39-39a8 8 0 0 0-11.31 0L1.35 250.34a8 8 0 0 0 0 11.32l56 56a8 8 0 0 0 11.31 0l88-88a8 8 0 0 0 0-11.32zM62.93 384c-17.67 0-32.4 14.33-32.4 32s14.73 32 32.4 32a32 32 0 0 0 0-64zm82.42-337A8 8 0 0 0 134 47l-71 71-39-39a8 8 0 0 0-11.31 0L1.35 90.34a8 8 0 0 0 0 11.32l56 56a8 8 0 0 0 11.31 0l88-88a8 8 0 0 0 0-11.32zM503 400H199a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h304a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-320H199a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h304a8 8 0 0 0 8-8V88a8 8 0 0 0-8-8zm0 160H199a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h304a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faTasksAlt = {\n prefix: 'fal',\n iconName: 'tasks-alt',\n icon: [512, 512, [], \"f828\", \"M488 191H24c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h464c13.3 0 24-10.7 24-24v-80c0-13.3-10.7-24-24-24zm-360 96H32v-64h96v64zm352 0H160v-64h320v64zm8-256H24C10.7 31 0 41.7 0 55v80c0 13.3 10.7 24 24 24h464c13.3 0 24-10.7 24-24V55c0-13.3-10.7-24-24-24zm-168 96H32V63h288v64zm160 0H352V63h128v64zm8 224H24c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h464c13.3 0 24-10.7 24-24v-80c0-13.3-10.7-24-24-24zm-232 96H32v-64h224v64zm224 0H288v-64h192v64z\"]\n};\nvar faTaxi = {\n prefix: 'fal',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M96 288c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm320 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-88 32H184c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h144c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm119.11-90.4l-13.32-68.79C426.53 123.25 393.5 96 355.25 96H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-3.25c-38.25 0-71.28 27.25-78.53 64.8L64.9 229.6C27.23 242.58 0 277.93 0 320v32c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-32h224v32c0 17.67 14.33 32 32 32h48c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.49 32-55.12v-32c0-42.07-27.23-77.42-64.89-90.4zM192 64h128v32H192V64zm-82.34 102.88C114 144.34 133.81 128 156.75 128h198.5c22.94 0 42.75 16.34 47.09 38.89L413.4 224H98.6l11.06-57.12zM112 448H64v-32h48v32zm336 0h-48v-32h48v32zm32-96c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32v-32c0-35.29 28.71-64 64-64h320c35.29 0 64 28.71 64 64v32z\"]\n};\nvar faTeeth = {\n prefix: 'fal',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zm64 416c0 35.29-28.71 64-64 64H96c-35.29 0-64-28.71-64-64V288h34.5c-1.37 4.25-2.5 8.62-2.5 13.33v53.33c0 39.7 32.3 72 72 72 22.7 0 42.73-10.77 55.94-27.23C206.53 419.08 229.71 432 256 432c26.26 0 49.4-12.89 64-32.49 14.6 19.6 37.74 32.49 64 32.49 26.29 0 49.47-12.92 64.06-32.57 13.21 16.46 33.24 27.23 55.94 27.23 39.7 0 72-32.3 72-72v-53.33c0-4.71-1.13-9.09-2.5-13.33H608v128zM109.33 288h53.33c7.36 0 13.33 5.97 13.33 13.33v53.34c0 22.09-17.91 40-40 40s-40-17.91-40-40v-53.33c.01-7.37 5.98-13.34 13.34-13.34zM96 242.67v-53.33c0-22.09 17.91-40 40-40s40 17.91 40 40v53.33c0 7.36-5.97 13.33-13.33 13.33h-53.33c-7.37 0-13.34-5.97-13.34-13.33zM221.71 288h68.57c7.57 0 13.71 6.14 13.71 13.71V352c0 26.51-21.49 48-48 48s-48-21.49-48-48v-50.29c.01-7.57 6.15-13.71 13.72-13.71zM208 242.29v-75.42c0-26.51 21.49-48 48-48s48 21.49 48 48v75.43c0 7.57-6.14 13.71-13.71 13.71h-68.57c-7.58-.01-13.72-6.15-13.72-13.72zM349.71 288h68.57c7.57 0 13.71 6.14 13.71 13.71V352c0 26.51-21.49 48-48 48s-48-21.49-48-48v-50.29c.01-7.57 6.15-13.71 13.72-13.71zM336 242.29v-75.43c0-26.51 21.49-48 48-48s48 21.49 48 48v75.42c0 7.57-6.14 13.71-13.71 13.71h-68.57c-7.58.01-13.72-6.13-13.72-13.7zm208 .38c0 7.36-5.97 13.33-13.33 13.33h-53.33c-7.36 0-13.33-5.97-13.33-13.33v-53.33c0-22.09 17.91-40 40-40s40 17.91 40 40v53.33zM477.33 288h53.33c7.36 0 13.33 5.97 13.33 13.33v53.33c0 22.09-17.91 40-40 40s-40-17.91-40-40v-53.33c.01-7.36 5.98-13.33 13.34-13.33zM608 256h-34.5c1.37-4.25 2.5-8.62 2.5-13.33v-53.33c0-39.7-32.3-72-72-72-17.9 0-34.1 6.81-46.71 17.66-12.35-28.28-40.52-48.14-73.29-48.14-26.26 0-49.4 12.89-64 32.49-14.6-19.6-37.74-32.49-64-32.49-32.78 0-60.95 19.86-73.29 48.14-12.61-10.85-28.8-17.66-46.71-17.66-39.7 0-72 32.3-72 72v53.33c0 4.71 1.13 9.09 2.5 13.33H32V96c0-35.29 28.71-64 64-64h448c35.29 0 64 28.71 64 64v160z\"]\n};\nvar faTeethOpen = {\n prefix: 'fal',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M576 304H64c-35.34 0-64 28.65-64 64v48c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-48c0-35.35-28.66-64-64-64zm-112 64v-18.67c0-7.36 5.97-13.33 13.33-13.33h53.33c7.36 0 13.33 5.97 13.33 13.33v21.33c0 22.09-17.91 40-40 40s-40-17.91-40-40V368zm-128-18.29c0-7.57 6.14-13.71 13.71-13.71h68.57c7.57 0 13.71 6.14 13.71 13.71V368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-18.29zm-128 0c0-7.57 6.14-13.71 13.71-13.71h68.57c7.57 0 13.71 6.14 13.71 13.71V368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-18.29zm-112-.38c0-7.36 5.97-13.33 13.33-13.33h53.33c7.36 0 13.33 5.97 13.33 13.33v21.34c0 22.09-17.91 40-40 40s-40-17.91-40-40v-21.34zM608 416c0 35.29-28.71 64-64 64H96c-35.29 0-64-28.71-64-64v-48c0-17.64 14.36-32 32-32h2.23c-1.32 4.24-2.23 8.66-2.23 13.33v21.33c0 39.7 32.3 72 72 72 22.7 0 42.73-10.77 55.94-27.23C206.53 435.08 229.71 448 256 448c26.26 0 49.4-12.89 64-32.49 14.6 19.6 37.74 32.49 64 32.49 26.29 0 49.47-12.92 64.06-32.57 13.21 16.46 33.24 27.23 55.94 27.23 39.7 0 72-32.3 72-72v-21.33c0-4.67-.91-9.09-2.23-13.33H576c17.64 0 32 14.36 32 32v48zM544 0H96C42.98 0 0 42.98 0 96v80c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM176 194.67c0 7.36-5.97 13.33-13.33 13.33h-53.33c-7.36 0-13.33-5.97-13.33-13.33v-21.33c0-22.09 17.91-40 40-40s40 17.91 40 40v21.33zm128-.38c0 7.57-6.14 13.71-13.71 13.71h-68.57c-7.57 0-13.71-6.14-13.71-13.71v-43.43c0-26.51 21.49-48 48-48s48 21.49 48 48v43.43zm128 0c0 7.57-6.14 13.71-13.71 13.71h-68.57c-7.57 0-13.71-6.14-13.71-13.71v-43.43c0-26.51 21.49-48 48-48s48 21.49 48 48v43.43zm112 .38c0 7.36-5.97 13.33-13.33 13.33h-53.33c-7.36 0-13.33-5.97-13.33-13.33v-21.33c0-22.09 17.91-40 40-40s40 17.91 40 40v21.33zM608 176c0 17.64-14.36 32-32 32h-2.23c1.32-4.24 2.23-8.66 2.23-13.33v-21.33c0-39.7-32.3-72-72-72-17.84 0-34.19 6.52-46.78 17.31C444.8 90.53 416.66 70.86 384 70.86c-26.14 0-49.39 12.6-64 32.05-14.61-19.45-37.86-32.05-64-32.05-32.66 0-60.8 19.67-73.22 47.78-12.59-10.79-28.94-17.31-46.78-17.31-39.7 0-72 32.3-72 72v21.33c0 4.67.91 9.09 2.23 13.33H64c-17.64 0-32-14.36-32-32V96c0-35.29 28.71-64 64-64h448c35.29 0 64 28.71 64 64v80z\"]\n};\nvar faTelescope = {\n prefix: 'fal',\n iconName: 'telescope',\n icon: [640, 512, [], \"e03e\", \"M637.55438,197.1457,564.08568,19.76077A31.99673,31.99673,0,0,0,522.27907,2.44239L413.69712,47.4229c-15.24413,6.31446-22.5078,23.01956-17.96483,38.502L75.09384,241.41332c-8.76561,4.25-13.07225,13.584-9.85155,21.35744l8.74413,21.1094L9.881,310.43487a16.00153,16.00153,0,0,0-8.66015,20.90432l20.05663,48.42192a15.99879,15.99879,0,0,0,20.90428,8.66016l64.10542-26.55471,8.74218,21.10744c4.05469,9.79493,15.416,10.44337,22.06444,8.13868l133.89834-46.45121c1.28125,1.543,2.877,2.77344,4.291,4.19336L224.416,501.46826a8.0008,8.0008,0,0,0,7.58984,10.53126h16.84569a8.0008,8.0008,0,0,0,7.58984-5.47071l47-140.97865c12.43749,3.4336,21.67772,3.08789,33.11521-.00586l47.00192,140.98451a8.0008,8.0008,0,0,0,7.58983,5.47071H407.994a8.00079,8.00079,0,0,0,7.58983-10.53126l-50.67965-152.047a63.91267,63.91267,0,0,0,18.94335-43.91215l90.52728-31.40628c6.7207,8.53321,21.11717,16.53517,37.28317,9.832l108.58391-44.97856A31.999,31.999,0,0,0,637.55438,197.1457ZM44.71691,352.73374,36.90637,333.8763l49.32418-20.43166,7.81055,18.85744Zm275.283-16.73439a32,32,0,1,1,32-32A32.03165,32.03165,0,0,1,319.99992,335.99935Zm56.32027-61.75006a63.69444,63.69444,0,0,0-119.14835,41.334L138.76372,356.66148,100.63094,264.593,407.39829,115.83117l53.46481,129.088Zm123.09171-19.877L425.9432,76.98739l108.58-44.97856,73.4687,177.383Z\"]\n};\nvar faTemperatureDown = {\n prefix: 'fal',\n iconName: 'temperature-down',\n icon: [512, 512, [], \"e03f\", \"M160,354.91V304a16,16,0,1,0-32,0v50.91a48,48,0,1,0,32,0ZM224,80A80,80,0,1,0,64,80V321.91a112,112,0,1,0,160,0ZM144,480A79.87,79.87,0,0,1,96,336.2V80a48,48,0,1,1,96,0V336.2A79.87,79.87,0,0,1,144,480ZM492.53,377.17l-5.62-5.69a12,12,0,0,0-16.91-.07l-54,52.73V40a8,8,0,0,0-8-8H392a8,8,0,0,0-8,8V423.92l-53.94-52.36a12,12,0,0,0-16.93,0l-5.63,5.67a12,12,0,0,0,0,17l84.06,82.25a11.91,11.91,0,0,0,16.87,0l84-82.31a12,12,0,0,0,.09-17Z\"]\n};\nvar faTemperatureFrigid = {\n prefix: 'fal',\n iconName: 'temperature-frigid',\n icon: [512, 512, [], \"f768\", \"M416 354.9V336c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1zm64-33V80c0-44.1-35.9-80-80-80s-80 35.9-80 80v241.9c-20.3 20.8-32 48.9-32 78.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-29.2-11.7-57.4-32-78.1zM400 480c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V80c0-26.5 21.5-48 48-48s48 21.5 48 48v256.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zM277.1 326c3.4-5.6 6.8-11.1 10.9-16.2v-14.2L222.9 256l65.1-39.5v-37.1L208 228v-93.3L253.7 89c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-23 23V40c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v49.4l-23-23c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l45.7 45.7V228l-77.7-46.5-16.1-62.4c-1.1-4.3-5.3-6.8-9.4-5.7l-14.9 4.1c-4.1 1.1-6.6 5.5-5.5 9.8l8.1 31.5-41.2-24.7c-3.7-2.2-8.4-.9-10.5 2.9l-8 13.9c-2.1 3.8-.9 8.7 2.8 10.9L45 186.5 14.8 195c-4.1 1.1-6.6 5.5-5.5 9.8l4 15.5c1.1 4.3 5.3 6.8 9.4 5.7l60.2-16.7 78.2 46.8-78.2 46.8-60.2-16.7c-4.1-1.1-8.3 1.4-9.4 5.7l-4 15.5c-1.1 4.3 1.3 8.7 5.5 9.8l30.3 8.4-41.2 24.5c-3.7 2.2-5 7.1-2.8 10.9l7.7 13.9c2.1 3.8 6.9 5.1 10.5 2.9l41.2-24.7-8.1 31.5c-1.1 4.3 1.3 8.7 5.5 9.8l14.9 4.1c4.1 1.1 8.3-1.4 9.4-5.7l16.1-62.4 77.7-46.5v93.3L130.3 423c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l23-23V472c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-49.4l23 23c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L208 377.4v-93.3l69.1 41.9z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fal',\n iconName: 'temperature-high',\n icon: [384, 512, [], \"f769\", \"M320 0c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zM192 80c0-44.1-35.9-80-80-80S32 35.9 32 80v241.9C11.7 342.6 0 370.8 0 400c0 61.8 50.2 112 112 112s112-50.2 112-112c0-29.2-11.7-57.4-32-78.1V80zm-80 400c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V80c0-26.5 21.5-48 48-48s48 21.5 48 48v256.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v274.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureHot = {\n prefix: 'fal',\n iconName: 'temperature-hot',\n icon: [576, 512, [], \"f76a\", \"M128 240c0 52.9 43.1 96 96 96s96-43.1 96-96-43.1-96-96-96-96 43.1-96 96zm160 0c0 35.3-28.7 64-64 64s-64-28.7-64-64 28.7-64 64-64 64 28.7 64 64zm192 114.9V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v274.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1zm64-33V80c0-44.1-35.9-80-80-80s-80 35.9-80 80v241.9c-20.3 20.8-32 48.9-32 78.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-29.2-11.7-57.4-32-78.1zM464 480c-44.1 0-80-35.9-80-80 0-25.5 12.3-48.9 32-63.8V80c0-26.5 21.5-48 48-48s48 21.5 48 48v256.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zM263.9 359.6L224 419.2l-39.9-59.7c-3.6-5.4-10-8.2-16.4-6.8l-70.4 14 13.9-70.4c1.3-6.3-1.4-12.8-6.8-16.4L44.8 240l59.7-39.9c5.4-3.6 8-10.1 6.8-16.4l-13.9-70.4 70.4 14c6.4 1.3 12.8-1.4 16.4-6.8L224 60.8l39.9 59.7c3.6 5.4 9.9 8.1 16.4 6.8L352 113V80.4l-67.4 13.4-47.3-70.7c-6-8.9-20.6-8.9-26.6 0l-47.3 70.7-83.3-16.6c-5.3-1.1-10.7.6-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.4l16.5 83.4-70.7 47.3c-4.4 3-7.1 8-7.1 13.3s2.7 10.3 7.1 13.3l70.7 47.3L61.3 384c-1 5.2.6 10.7 4.4 14.4 3.8 3.8 9.1 5.5 14.4 4.4l83.3-16.5 47.3 70.7c3 4.5 8 7.1 13.3 7.1 5.3 0 10.3-2.7 13.3-7.1l47.3-70.7 36 7.1c.5-10.7 2.3-21.3 5.2-31.6l-45.5-9c-6.5-1.4-12.8 1.4-16.4 6.8z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fal',\n iconName: 'temperature-low',\n icon: [384, 512, [], \"f76b\", \"M128 354.9V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1zM320 0c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm0 96c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zM192 80c0-44.1-35.9-80-80-80S32 35.9 32 80v241.9C11.7 342.6 0 370.8 0 400c0 61.8 50.2 112 112 112s112-50.2 112-112c0-29.2-11.7-57.4-32-78.1V80zm-80 400c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V80c0-26.5 21.5-48 48-48s48 21.5 48 48v256.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80z\"]\n};\nvar faTemperatureUp = {\n prefix: 'fal',\n iconName: 'temperature-up',\n icon: [512, 512, [], \"e040\", \"M224,80A80,80,0,1,0,64,80V321.91a112,112,0,1,0,160,0ZM144,480A79.87,79.87,0,0,1,96,336.2V80a48,48,0,1,1,96,0V336.2A79.87,79.87,0,0,1,144,480Zm16-125.09V80a16,16,0,1,0-32,0V354.91a48,48,0,1,0,32,0ZM492.47,117.75,408.41,35.5a11.91,11.91,0,0,0-16.87,0l-84,82.31a13.88,13.88,0,0,0-3.56,8.55,13.82,13.82,0,0,0,3.47,8.45l5.62,5.69a11.94,11.94,0,0,0,16.91.08l54-52.74V472a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8V88.06l53.94,52.36a12,12,0,0,0,16.93,0l5.63-5.67a13.83,13.83,0,0,0,3.53-8.5A13.85,13.85,0,0,0,492.47,117.75Z\"]\n};\nvar faTenge = {\n prefix: 'fal',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M376 128H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h168v312c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V160h168c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0-96H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8V40c0-4.4-3.6-8-8-8z\"]\n};\nvar faTennisBall = {\n prefix: 'fal',\n iconName: 'tennis-ball',\n icon: [496, 512, [], \"f45e\", \"M248 8C111.2 8 0 119.2 0 256s111.2 248 248 248 248-111.2 248-248S384.8 8 248 8zm-12.5 32.6c-5.5 9.7-9.3 20.5-9.3 32.4 0 41.3-18.5 87.6-46 115.1s-73.8 46-115 46c-12 0-22.8 3.8-32.5 9.4 6.2-109.1 93.7-196.6 202.8-202.9zm-201 246.6c4.9-12.6 16.6-21.1 30.6-21.1 50 0 104-21.8 137.6-55.4 33.6-33.6 55.4-87.7 55.4-137.7 0-14 8.4-25.7 21-30.5 94.1 13.7 168.6 88.2 182.3 182.3-4.9 12.5-16.6 20.9-30.6 21-50 0-104 21.8-137.6 55.4-33.6 33.6-55.4 87.7-55.4 137.7 0 14-8.5 25.8-21.1 30.6-94-13.7-168.5-88.2-182.2-182.3zm226 184.2c5.6-9.7 9.3-20.5 9.4-32.5 0-41.3 18.5-87.6 46-115.1s73.8-46 115-46c11.9 0 22.8-3.8 32.4-9.3-6.2 109.1-93.7 196.6-202.8 202.9z\"]\n};\nvar faTerminal = {\n prefix: 'fal',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M34.495 36.465l211.051 211.05c4.686 4.686 4.686 12.284 0 16.971L34.495 475.535c-4.686 4.686-12.284 4.686-16.97 0l-7.071-7.07c-4.686-4.686-4.686-12.284 0-16.971L205.947 256 10.454 60.506c-4.686-4.686-4.686-12.284 0-16.971l7.071-7.07c4.686-4.687 12.284-4.687 16.97 0zM640 468v-10c0-6.627-5.373-12-12-12H300c-6.627 0-12 5.373-12 12v10c0 6.627 5.373 12 12 12h328c6.627 0 12-5.373 12-12z\"]\n};\nvar faText = {\n prefix: 'fal',\n iconName: 'text',\n icon: [448, 512, [], \"f893\", \"M448 48v72a8 8 0 0 1-8 8h-16a8 8 0 0 1-8-8V64H240v384h72a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8H136a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h72V64H32v56a8 8 0 0 1-8 8H8a8 8 0 0 1-8-8V48a16 16 0 0 1 16-16h416a16 16 0 0 1 16 16z\"]\n};\nvar faTextHeight = {\n prefix: 'fal',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M560 368h-64V144h64c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.63 0l-80 80C379.36 126 384.36 144 400 144h64v224h-64c-14.31 0-21.33 17.32-11.31 27.32l80 80a16 16 0 0 0 22.63 0l80-80C580.64 386 575.64 368 560 368zM438.63 112L480 70.62 521.36 112h-82.73zM480 441.36L438.64 400h82.74zM304 32H16A16 16 0 0 0 0 48v72a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V64h112v384H72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-72V64h112v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V48a16 16 0 0 0-16-16z\"]\n};\nvar faTextSize = {\n prefix: 'fal',\n iconName: 'text-size',\n icon: [640, 512, [], \"f894\", \"M624 32H272a16 16 0 0 0-16 16v72a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V64h144v384h-72a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-72V64h144v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V48a16 16 0 0 0-16-16zM304 224H16a16 16 0 0 0-16 16v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-40h112v192H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h144a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-56V256h112v40a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-56a16 16 0 0 0-16-16z\"]\n};\nvar faTextWidth = {\n prefix: 'fal',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M362.31 292.69a16.12 16.12 0 0 0-11.48-4.69c-8 0-15.83 5.69-15.83 16v64H111v-64a16 16 0 0 0-16.12-16 15.63 15.63 0 0 0-11.19 4.71l-80 80a16 16 0 0 0 0 22.63l80 80A16.16 16.16 0 0 0 95.17 480c8 0 15.83-5.69 15.83-16v-64h224v64a16 16 0 0 0 16.13 16 15.64 15.64 0 0 0 11.18-4.7l80-80a16 16 0 0 0 0-22.63zM79 368v57.37L37.63 384 79 342.64zm288 57.36v-82.73L408.37 384zM431 32H15A16 16 0 0 0-1 48v72a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V64h176v192h-40a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h112a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-40V64h176v56a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V48a16 16 0 0 0-16-16z\"]\n};\nvar faTh = {\n prefix: 'fal',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80zm320-16v106.667H192V64h128zm160 245.333H352V202.667h128v106.666zm-160 0H192V202.667h128v106.666zM32 202.667h128v106.667H32V202.667zM160 64v106.667H32V80c0-8.837 7.163-16 16-16h112zM32 432v-90.667h128V448H48c-8.837 0-16-7.163-16-16zm160 16V341.333h128V448H192zm160 0V341.333h128V432c0 8.837-7.163 16-16 16H352zm128-277.333H352V64h112c8.837 0 16 7.163 16 16v90.667z\"]\n};\nvar faThLarge = {\n prefix: 'fal',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80zm240-16v176H32V80c0-8.837 7.163-16 16-16h192zM32 432V272h208v176H48c-8.837 0-16-7.163-16-16zm240 16V272h208v160c0 8.837-7.163 16-16 16H272zm208-208H272V64h192c8.837 0 16 7.163 16 16v160z\"]\n};\nvar faThList = {\n prefix: 'fal',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80zm480 0v90.667H192V64h272c8.837 0 16 7.163 16 16zm0 229.333H192V202.667h288v106.666zM32 202.667h128v106.667H32V202.667zM160 64v106.667H32V80c0-8.837 7.163-16 16-16h112zM32 432v-90.667h128V448H48c-8.837 0-16-7.163-16-16zm160 16V341.333h288V432c0 8.837-7.163 16-16 16H192z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fal',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M151.06 206.02c19.34-3.41 35.78-17.86 45.16-39.67 3.47-8.12-.28-17.53-8.41-21.02-8.12-3.5-17.53.25-21.03 8.39-2.94 6.89-9.62 18.73-21.28 20.78-11.69 2.16-22.03-6.81-27.16-12.25-6.09-6.44-16.22-6.72-22.62-.69-6.44 6.06-6.75 16.19-.69 22.62 5.17 5.5 26.31 27.14 56.03 21.84zm362.78 2.12c-19.41-3.48-39.47 4.25-56.03 21.81-6.06 6.44-5.75 16.56.69 22.62 6.41 6.03 16.53 5.75 22.62-.69 5.12-5.47 15.38-14.34 27.16-12.25 11.66 2.06 18.34 13.91 21.28 20.78 3.54 8.19 13.02 11.85 21.03 8.39 8.12-3.48 11.88-12.89 8.41-21.02-9.37-21.78-25.81-36.23-45.16-39.64zm5.69 110.61c-26.31 15.94-63.06 21.23-100.88 14.58-37.81-6.67-70.53-24.23-89.81-48.2-9.15-11.34-27.25-5.52-28.41 8.7-5.25 63.08 38.69 119.08 102.19 130.27 21.1 3.72 115.04 6.5 140.62-87.45 3.77-13.83-11.24-25.35-23.71-17.9zm-111.34 73.84c-33.19-5.86-59.19-28.08-70.28-56.95 21.34 14.09 47.22 24.27 75.19 29.19 28.03 4.98 55.75 4.25 80.66-1.72-20.35 23.33-52.38 35.3-85.57 29.48zm-68.88-165.7c5.12-5.44 15.5-14.55 27.16-12.25 11.66 2.05 18.34 13.89 21.28 20.78 3.54 8.19 13.02 11.85 21.03 8.39 8.12-3.48 11.88-12.89 8.41-21.02-9.5-22.14-25.53-36.23-45.16-39.69-19.59-3.36-39.5 4.31-56.03 21.84-6.06 6.44-5.75 16.56.69 22.62 6.44 6.05 16.53 5.77 22.62-.67zM606.8 119.91c-41.73-23.22-120-58.55-227.1-56.93-5.87-33.25-28.59-53.11-54.53-57.26C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.47 33.2 57.21 9.03 70.65-3.92 98.72 1.05 126.9l31.73 179.96C47.01 387.58 169.11 449.3 237.23 449.3c13.85 0 23.86-1.88 43.61-11.66 2.58 2.98 62.79 74.36 121.93 74.36 68.12 0 190.22-61.71 204.45-142.44l31.73-179.96c4.97-28.17-7.98-56.24-32.15-69.69zM237.23 417.29c-57.45 0-162.04-54.21-172.94-115.99L32.57 121.34c-2.61-14.79 3.9-29.33 16.19-36.17C74.2 71.02 178.25 14.61 320.12 37.32c13.48 2.16 24.17 13.06 27.18 27.22-10.83.94-21.66 2.15-32.47 3.88-27.31 4.37-49.08 26.32-54.04 54.49L237.12 257.1c-67.24 3.06-100.25 46.03-101.65 47.78-5.53 6.89-4.44 16.97 2.44 22.5 7.9 6.32 17.79 3.41 22.5-2.44 1.02-1.27 22.34-29.55 70.95-35.12l-2.3 13.07c-6.25 35.42 8.43 74.42 32.1 109.1-10.52 4.48-16.13 5.3-23.93 5.3zm370.21-233.25L575.7 364.01C564.81 425.79 460.21 480 402.77 480c-39.05 0-86.86-50.33-99.56-65.31-31.81-37.54-47.76-77.26-42.64-106.25l31.73-179.96c2.61-14.79 13.7-26.23 27.59-28.45 142.14-22.74 246.27 33.89 271.36 47.85 12.29 6.83 18.79 21.37 16.19 36.16z\"]\n};\nvar faThermometer = {\n prefix: 'fal',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.4 20.5C438.9-10.3 381.1-5.9 345 30.3L137.2 238.6c-6 6-8.9 14.2-8.9 22.7v55L14 430c-25.3 25.3-10.6 57.3 0 68 18.7 18.8 49.1 18.7 67.8 0l113.5-114.1h54.9c8.5 0 16.6-2.9 22.6-8.9l211-211.9c34.6-34.8 43-101.2-7.4-142.6zM59.2 475.3c-15 15-37.5-7.7-22.6-22.6l30.5-30.2 22.6 22.6-30.5 30.2zm401.9-334.9L250.1 352h-54.9c-8.5 0-16.6 3.7-22.6 9.7l-60.4 60.8-22.5-22.6 60.6-61c6-6 9.8-14.2 9.8-22.7v-55l34.5-34.9 39.5 39.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6 45.2-45.3 39.5 39.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L285 135.7l45.2-45.3 39.5 39.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6L367.5 53c24.7-24.7 63.6-28.1 88.6-7.6 33.1 26.9 28.6 71.4 5 95z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fal',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M176 384c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm48-84.653c19.912 22.564 32 52.195 32 84.653 0 70.696-57.302 128-128 128-.299 0-.61-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.756 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM224 384c0-39.894-22.814-62.144-32-72.553V96c0-35.29-28.71-64-64-64S64 60.71 64 96v215.447c-9.467 10.728-31.797 32.582-31.999 72.049-.269 52.706 42.619 96.135 95.312 96.501L128 480c52.935 0 96-43.065 96-96z\"]\n};\nvar faThermometerFull = {\n prefix: 'fal',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 384l-.687-.002c-52.693-.366-95.581-43.795-95.312-96.501.202-39.467 22.532-61.321 31.999-72.05V96c0-35.29 28.71-64 64-64s64 28.71 64 64v215.447c9.186 10.409 32 32.659 32 72.553 0 52.935-43.065 96-96 96zm48-96c0 26.51-21.49 48-48 48s-48-21.49-48-48c0-20.898 13.359-38.667 32-45.258V96c0-8.837 7.164-16 16-16 8.837 0 16 7.163 16 16v242.742c18.641 6.591 32 24.36 32 45.258z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fal',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M176 384c0 26.51-21.49 48-48 48s-48-21.49-48-48c0-20.898 13.359-38.667 32-45.258V208c0-8.837 7.163-16 16-16s16 7.163 16 16v130.742c18.641 6.591 32 24.36 32 45.258zm48-84.653c19.912 22.564 32 52.195 32 84.653 0 70.696-57.302 128-128 128-.299 0-.61-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.756 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM224 384c0-39.894-22.814-62.144-32-72.553V96c0-35.29-28.71-64-64-64S64 60.71 64 96v215.447c-9.467 10.728-31.797 32.582-31.999 72.049-.269 52.706 42.619 96.135 95.312 96.501L128 480c52.935 0 96-43.065 96-96z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fal',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M176 384c0 26.51-21.49 48-48 48s-48-21.49-48-48c0-20.898 13.359-38.667 32-45.258V272c0-8.837 7.163-16 16-16s16 7.163 16 16v66.742c18.641 6.591 32 24.36 32 45.258zm48-84.653c19.912 22.564 32 52.195 32 84.653 0 70.696-57.302 128-128 128-.299 0-.61-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.756 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM224 384c0-39.894-22.814-62.144-32-72.553V96c0-35.29-28.71-64-64-64S64 60.71 64 96v215.447c-9.467 10.728-31.797 32.582-31.999 72.049-.269 52.706 42.619 96.135 95.312 96.501L128 480c52.935 0 96-43.065 96-96z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fal',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M176 384c0 26.51-21.49 48-48 48s-48-21.49-48-48c0-20.898 13.359-38.667 32-45.258V144c0-8.837 7.163-16 16-16s16 7.163 16 16v194.742c18.641 6.591 32 24.36 32 45.258zm48-84.653c19.912 22.564 32 52.195 32 84.653 0 70.696-57.302 128-128 128-.299 0-.61-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.756 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM224 384c0-39.894-22.814-62.144-32-72.553V96c0-35.29-28.71-64-64-64S64 60.71 64 96v215.447c-9.467 10.728-31.797 32.582-31.999 72.049-.269 52.706 42.619 96.135 95.312 96.501L128 480c52.935 0 96-43.065 96-96z\"]\n};\nvar faTheta = {\n prefix: 'fal',\n iconName: 'theta',\n icon: [352, 512, [], \"f69e\", \"M176 32C78.8 32 0 132.29 0 256s78.8 224 176 224 176-100.29 176-224S273.2 32 176 32zm0 32c75.35 0 137.26 77.61 143.39 176H32.61C38.74 141.61 100.65 64 176 64zm0 384c-75.35 0-137.26-77.61-143.39-176H319.4c-6.14 98.39-68.05 176-143.4 176z\"]\n};\nvar faThumbsDown = {\n prefix: 'fal',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M496.656 226.317c5.498-22.336 2.828-49.88-9.627-69.405 4.314-23.768-3.099-49.377-18.225-67.105C470.724 35.902 437.75 0 378.468.014c-3.363-.03-35.508-.003-41.013 0C260.593-.007 195.917 40 160 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v256c0 17.673 14.327 32 32 32h96c17.673 0 32-14.327 32-32v-12.481c.85.266 1.653.549 2.382.856C184 320 219.986 377.25 243.556 400.82c9.9 9.9 13.118 26.44 16.525 43.951C265.784 474.082 276.915 512 306.91 512c59.608 0 82.909-34.672 82.909-93.08 0-30.906-11.975-52.449-20.695-69.817h70.15c40.654 0 72.726-34.896 72.727-72.571-.001-20.532-5.418-37.341-15.345-50.215zM128 320H32V64h96v256zm311.273-2.898H327.274c0 40.727 30.545 59.628 30.545 101.817 0 25.574 0 61.091-50.909 61.091-20.363-20.364-10.182-71.272-40.727-101.817-28.607-28.607-71.272-101.818-101.818-101.818H160V72.74h4.365c34.701 0 101.818-40.727 173.09-40.727 3.48 0 37.415-.03 40.727 0 38.251.368 65.505 18.434 57.212 70.974 16.367 8.78 28.538 39.235 15.015 61.996C472 176 472 224 456.017 235.648 472 240 480.1 256.012 480 276.375c-.1 20.364-17.997 40.727-40.727 40.727zM104 272c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"]\n};\nvar faThumbsUp = {\n prefix: 'fal',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M496.656 285.683C506.583 272.809 512 256 512 235.468c-.001-37.674-32.073-72.571-72.727-72.571h-70.15c8.72-17.368 20.695-38.911 20.695-69.817C389.819 34.672 366.518 0 306.91 0c-29.995 0-41.126 37.918-46.829 67.228-3.407 17.511-6.626 34.052-16.525 43.951C219.986 134.75 184 192 162.382 203.625c-2.189.922-4.986 1.648-8.032 2.223C148.577 197.484 138.931 192 128 192H32c-17.673 0-32 14.327-32 32v256c0 17.673 14.327 32 32 32h96c17.673 0 32-14.327 32-32v-8.74c32.495 0 100.687 40.747 177.455 40.726 5.505.003 37.65.03 41.013 0 59.282.014 92.255-35.887 90.335-89.793 15.127-17.727 22.539-43.337 18.225-67.105 12.456-19.526 15.126-47.07 9.628-69.405zM32 480V224h96v256H32zm424.017-203.648C472 288 472 336 450.41 347.017c13.522 22.76 1.352 53.216-15.015 61.996 8.293 52.54-18.961 70.606-57.212 70.974-3.312.03-37.247 0-40.727 0-72.929 0-134.742-40.727-177.455-40.727V235.625c37.708 0 72.305-67.939 106.183-101.818 30.545-30.545 20.363-81.454 40.727-101.817 50.909 0 50.909 35.517 50.909 61.091 0 42.189-30.545 61.09-30.545 101.817h111.999c22.73 0 40.627 20.364 40.727 40.727.099 20.363-8.001 36.375-23.984 40.727zM104 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"]\n};\nvar faThumbtack = {\n prefix: 'fal',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M300.8 203.9L290.7 128H328c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24H56C42.8 0 32 10.8 32 24v80c0 13.2 10.8 24 24 24h37.3l-10.1 75.9C34.9 231.5 0 278.4 0 335.2c0 8.8 7.2 16 16 16h160V472c0 .7.1 1.3.2 1.9l8 32c2 8 13.5 8.1 15.5 0l8-32c.2-.6.2-1.3.2-1.9V351.2h160c8.8 0 16-7.2 16-16 .1-56.8-34.8-103.7-83.1-131.3zM33.3 319.2c6.8-42.9 39.6-76.4 79.5-94.5L128 96H64V32h256v64h-64l15.3 128.8c40 18.2 72.7 51.8 79.5 94.5H33.3z\"]\n};\nvar faThunderstorm = {\n prefix: 'fal',\n iconName: 'thunderstorm',\n icon: [512, 512, [], \"f76c\", \"M368 256h-73.8l25-74.9c1.6-4.9.8-10.2-2.2-14.4-3-4.2-7.8-6.6-13-6.6H192c-7.7 0-14.3 5.5-15.8 13.1l-32 176c-.8 4.7.4 9.5 3.5 13.1s7.5 5.8 12.3 5.8h80v128c0 7.4 5.1 13.9 12.3 15.6 1.2.3 2.5.4 3.7.4 6 0 11.6-3.3 14.3-8.8l112-224c2.5-5 2.2-10.8-.7-15.6-2.9-4.8-8.1-7.7-13.6-7.7zm-96 172.2V352c0-8.8-7.2-16-16-16h-76.8l26.2-144h76.5l-25 74.9c-1.6 4.9-.8 10.2 2.2 14.4 3 4.2 7.8 6.6 13 6.6h70.1L272 428.2zm143.7-315.9C411.8 67.4 373.9 32 328 32c-17.8 0-34.8 5.3-49.2 15.2C256.3 17.7 221.5 0 184 0 117.8 0 64 53.8 64 120v.4c-38.3 16-64 53.5-64 95.6 0 57.3 46.7 104 104 104h13l5.8-32H104c-39.7 0-72-32.3-72-72 0-32.3 21.9-60.7 53.3-69.2l13.3-3.6-2-17.2c-.3-2-.6-4-.6-6 0-48.5 39.5-88 88-88 32.2 0 61.8 17.9 77.2 46.8l10.6 19.8L287 82.1C297.9 70.4 312.4 64 328 64c30.9 0 56 25.1 56 56 0 1.6-.3 3.1-.8 6.9l-2.5 20 23.5-2.4c1.2-.2 2.5-.4 3.8-.4 39.7 0 72 32.3 72 72 0 38-29.7 68.9-67 71.5-.7 2-1.1 4-2.1 6L397.7 320H408c57.3 0 104-46.7 104-104 0-54.8-42.6-99.8-96.3-103.7z\"]\n};\nvar faThunderstormMoon = {\n prefix: 'fal',\n iconName: 'thunderstorm-moon',\n icon: [576, 512, [], \"f76d\", \"M573.9 237.5c-3.6-7.7-11.5-12.6-19.9-12.6h-1.4l-2.7.4c-6.3 1.2-12.6 1.8-18.9 1.8-54.4 0-98.7-44-98.7-98.2 0-35.2 19.2-67.9 50.1-85.3 8.2-4.6 12.4-13.6 10.9-22.8-1.6-9.3-8.5-16.3-17.8-18C465.7.9 455.8 0 446 0c-67.1 0-124.7 41.1-148.8 99.2 10.5 2.5 20.5 6.3 29.7 11.5 19.2-45.5 64.2-77.8 116.8-78.7-27.3 24.4-43.5 59.6-43.5 96.8 0 70.7 57 128.5 127.6 130.1-22.3 18.2-50.3 28.4-79.8 28.8v.2c0 11-1.8 21.5-4.5 31.8.8 0 1.6.2 2.4.2 48.7 0 94.3-21.6 125-59.2 5.5-6.5 6.6-15.5 3-23.2zM304 304h-59.5l11-44.1c1.2-4.8.1-9.8-2.9-13.7s-7.7-6.2-12.6-6.2h-80c-7.3 0-13.8 5-15.5 12.1l-32 128C110 390.3 117.7 400 128 400h61.6l-13.4 93.7c-1.6 11.1 7.7 18.2 15.8 18.2 8.5 0 12.7-6.2 13.6-7.6 3.4-5.3 111.9-175.8 111.9-175.8 6.8-10.7-1-24.5-13.5-24.5zm-85.7 121.2l5.6-38.9c.7-4.6-.7-9.2-3.8-12.7-3-3.5-7.5-5.5-12.1-5.5h-59.5l24-96h47l-11 44.1c-2.5 10.2 5.2 19.9 15.5 19.9h50.8c-24.1 37.9-42.6 66.9-56.5 89.1zm133-227.9C346 158.2 312.5 128 272 128c-8.6 0-17 1.4-25.2 4.3-19.7-23-48.2-36.3-78.8-36.3-56.5 0-102.7 45.3-104 101.6C26.2 210.9 0 246.9 0 288c0 47.5 34.7 86.8 80.1 94.4.1-3.4.5-6.7 1.3-10.1l5.3-21.3C55.9 346.5 32 320.1 32 288c0-30.6 21.8-57 52-62.8l14.5-2.8-2-18c-.2-1.5-.4-2.9-.4-4.4 0-39.7 32.3-72 72-72 24.3 0 46.8 12.2 60.2 32.8l8.1 12.4 13-7.1c32.7-17.8 70.7 8.2 70.8 40.4l-.2 16.2 12.8 2.6c29.8 6 51.3 32.3 51.3 62.7 0 27-16.9 50-40.5 59.4-2.8 4.3-11.6 18.2-23.3 36.6 52.9-.1 95.8-43.1 95.8-96-.1-41.3-26.7-77.6-64.8-90.7z\"]\n};\nvar faThunderstormSun = {\n prefix: 'fal',\n iconName: 'thunderstorm-sun',\n icon: [640, 512, [], \"f76e\", \"M160.3 291.7c-3.6-5.3-9.9-8.1-16.4-6.8l-56 11.1L99 240c1.2-6.4-1.4-12.8-6.8-16.4l-47.4-31.8L92.2 160c5.4-3.6 8-10.1 6.8-16.4l-11.1-56 56 11.1c6.5 1.3 12.8-1.4 16.4-6.8L192 44.4l31.8 47.5c3.6 5.3 10 8.1 16.4 6.8L319.6 83c8.7-1.7 14.3-10.1 12.6-18.8-1.7-8.7-10.3-14.5-18.8-12.6l-68.9 13.6-39.2-58.5c-5.9-8.9-20.6-8.9-26.6 0l-39.1 58.5-69-13.7c-5.3-1.1-10.7.6-14.4 4.4-3.8 3.8-5.4 9.2-4.4 14.5l13.7 69-58.4 39.1c-4.4 3-7.1 7.9-7.1 13.3 0 5.3 2.7 10.3 7.1 13.3l58.4 39.1-13.7 69c-1 5.3.6 10.7 4.4 14.5 3.8 3.8 9 5.5 14.4 4.4l68.9-13.7 39.1 58.5c3.1 4.6 8.2 7.1 13.3 7.1 3.1 0 6.2-.9 8.9-2.7 7.3-4.9 9.3-14.9 4.4-22.2l-44.9-67.4zM192 140c26.4 0 48 20 51.1 45.6 4.8-3.6 9.8-6.9 15.1-9.9 1.5-8.4 3.9-16.5 6.8-24.3-14.3-25.7-41.5-43.4-73-43.4-46.2 0-83.7 37.6-83.7 83.8s37.5 83.8 83.7 83.8c.3 0 .6-.1.9-.1 1.1-11.4 3.7-22.4 7.7-32.8-2.8.5-5.6.9-8.5.9-28.5 0-51.7-23.2-51.7-51.7-.1-28.6 23.1-51.9 51.6-51.9zm336 164h-59.5l11-44.1c1.2-4.8.1-9.8-2.9-13.7-3-3.9-7.7-6.2-12.6-6.2h-80c-7.3 0-13.8 5-15.5 12.1l-32 128C334 390.3 341.7 400 352 400h61.6l-13.4 93.7c-1.6 11.1 7.7 18.2 15.8 18.2 8.5 0 12.7-6.2 13.6-7.6 3.4-5.3 111.9-175.8 111.9-175.8 6.8-10.7-1-24.5-13.5-24.5zm-85.7 121.2l5.6-38.9c.7-4.6-.7-9.2-3.8-12.7-3-3.5-7.5-5.5-12.1-5.5h-59.5l24-96h47l-11 44.1c-2.5 10.2 5.2 19.9 15.5 19.9h50.8c-24.1 37.9-42.6 66.9-56.5 89.1zm133-227.9C570 158.2 536.5 128 496 128c-8.6 0-17 1.4-25.2 4.3-19.7-23-48.2-36.3-78.8-36.3-56.5 0-102.7 45.3-104 101.6-37.8 13.3-64 49.3-64 90.4 0 47.5 34.8 86.8 80.1 94.4.1-3.4.5-6.7 1.3-10.1l5.3-21.3c-30.9-4.5-54.8-30.9-54.8-63.1 0-30.6 21.8-57 52-62.8l14.5-2.8-2-18c-.2-1.5-.4-2.9-.4-4.4 0-39.7 32.3-72 72-72 24.3 0 46.8 12.2 60.2 32.7l8.1 12.4 13-7.1c32.7-17.8 70.7 8.2 70.8 40.4l-.2 16.2 12.8 2.6c29.8 6 51.3 32.3 51.3 62.7 0 27-16.9 50-40.5 59.4-2.8 4.3-11.6 18.2-23.3 36.6 52.9-.1 95.8-43.1 95.8-96 0-41.1-26.6-77.4-64.7-90.5zM560 208.8z\"]\n};\nvar faTicket = {\n prefix: 'fal',\n iconName: 'ticket',\n icon: [576, 512, [], \"f145\", \"M544 224h32V112c0-26.51-21.49-48-48-48H48C21.49 64 0 85.49 0 112v112h32c17.673 0 32 14.327 32 32s-14.327 32-32 32H0v112c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V288h-32c-17.673 0-32-14.327-32-32s14.327-32 32-32zm0 96v80c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16v-80c35.29 0 64-28.71 64-64s-28.71-64-64-64v-80c0-8.823 7.177-16 16-16h480c8.823 0 16 7.177 16 16v80c-35.29 0-64 28.71-64 64s28.71 64 64 64z\"]\n};\nvar faTicketAlt = {\n prefix: 'fal',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M424 160H152c-13.255 0-24 10.745-24 24v144c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24zm-8 160H160V192h256v128zm128-96h32V112c0-26.51-21.49-48-48-48H48C21.49 64 0 85.49 0 112v112h32c17.673 0 32 14.327 32 32s-14.327 32-32 32H0v112c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V288h-32c-17.673 0-32-14.327-32-32s14.327-32 32-32zm0 96v80c0 8.823-7.177 16-16 16H48c-8.823 0-16-7.177-16-16v-80c35.29 0 64-28.71 64-64s-28.71-64-64-64v-80c0-8.823 7.177-16 16-16h480c8.823 0 16 7.177 16 16v80c-35.29 0-64 28.71-64 64s28.71 64 64 64z\"]\n};\nvar faTilde = {\n prefix: 'fal',\n iconName: 'tilde',\n icon: [448, 512, [], \"f69f\", \"M416 168v71.85c0 35.91-23.16 69.16-58.01 77.84-31.8 7.91-64.07-4.93-81.96-30.74L200.75 178.4c-21.13-30.46-55.42-50.58-92.49-50.38C48.5 128.32 0 177.02 0 236.84V312c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-71.85c0-35.91 23.16-69.16 58.01-77.84 31.8-7.91 64.07 4.93 81.96 30.74l75.28 108.55c21.13 30.46 55.42 50.58 92.49 50.38 59.76-.3 108.26-49 108.26-108.82V168c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8z\"]\n};\nvar faTimes = {\n prefix: 'fal',\n iconName: 'times',\n icon: [320, 512, [], \"f00d\", \"M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fal',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 464c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216zm94.8-285.3L281.5 256l69.3 69.3c4.7 4.7 4.7 12.3 0 17l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L256 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.6 4.7 4.6 12.3 0 17z\"]\n};\nvar faTimesHexagon = {\n prefix: 'fal',\n iconName: 'times-hexagon',\n icon: [576, 512, [], \"f2ee\", \"M441.5 39.8C432.9 25.1 417.1 16 400 16H176c-17.1 0-32.9 9.1-41.5 23.8l-112 192c-8.7 14.9-8.7 33.4 0 48.4l112 192c8.6 14.7 24.4 23.8 41.5 23.8h224c17.1 0 32.9-9.1 41.5-23.8l112-192c8.7-14.9 8.7-33.4 0-48.4l-112-192zm84.3 224.3l-112 192c-2.9 4.9-8.2 7.9-13.8 7.9H176c-5.7 0-11-3-13.8-7.9l-112-192c-2.9-5-2.9-11.2 0-16.1l112-192c2.8-5 8.1-8 13.8-8h224c5.7 0 11 3 13.8 7.9l112 192c2.9 5 2.9 11.2 0 16.2zm-143 78.2l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L288 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.7 4.7 4.7 12.3 0 17L313.5 256l69.3 69.3c4.6 4.7 4.6 12.3 0 17z\"]\n};\nvar faTimesOctagon = {\n prefix: 'fal',\n iconName: 'times-octagon',\n icon: [512, 512, [], \"f2f0\", \"M361.5 14.1c-9-9-21.2-14.1-33.9-14.1H184.5c-12.7 0-24.9 5.1-33.9 14.1L14.1 150.5c-9 9-14.1 21.2-14.1 33.9v143.1c0 12.7 5.1 24.9 14.1 33.9l136.5 136.5c9 9 21.2 14.1 33.9 14.1h143.1c12.7 0 24.9-5.1 33.9-14.1L498 361.4c9-9 14.1-21.2 14.1-33.9v-143c0-12.7-5.1-24.9-14.1-33.9L361.5 14.1zM480 327.5c0 4.3-1.7 8.3-4.7 11.3L338.9 475.3c-3 3-7 4.7-11.3 4.7H184.5c-4.3 0-8.3-1.7-11.3-4.7L36.7 338.9c-3-3-4.7-7-4.7-11.3V184.5c0-4.3 1.7-8.3 4.7-11.3L173.1 36.7c3-3 7-4.7 11.3-4.7h143.1c4.3 0 8.3 1.7 11.3 4.7l136.5 136.5c3 3 4.7 7 4.7 11.3v143zm-129.2 14.8l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L256 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.7 4.7 4.7 12.3 0 17L281.5 256l69.3 69.3c4.6 4.7 4.6 12.3 0 17z\"]\n};\nvar faTimesSquare = {\n prefix: 'fal',\n iconName: 'times-square',\n icon: [448, 512, [], \"f2d3\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352zm-97.2-245.3L249.5 256l69.3 69.3c4.7 4.7 4.7 12.3 0 17l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L224 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.6 4.7 4.6 12.3 0 17z\"]\n};\nvar faTint = {\n prefix: 'fal',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09C201.21 7.53 188.61 0 175.97 0c-12.35 0-24.74 7.2-29.19 22.09C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 480c-79.4 0-144-65.54-144-146.09 0-48.36 23-81.32 54.84-126.94 29.18-41.81 65.34-93.63 89.18-170.91 23.83 77.52 60.06 129.31 89.3 171.08C297.06 252.52 320 285.3 320 333.91 320 414.46 255.4 480 176 480zm0-64c-44.12 0-80-35.89-80-80 0-8.84-7.16-16-16-16s-16 7.16-16 16c0 61.75 50.25 112 112 112 8.84 0 16-7.16 16-16s-7.16-16-16-16z\"]\n};\nvar faTintSlash = {\n prefix: 'fal',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M320 480c-79.4 0-144-65.5-144-146.1 0-33.4 11.1-59.5 28.4-87.5l-25.3-20c-20.5 32.7-35.1 65.1-35.1 107.4 0 98.4 78.7 178.1 176 178.1 55.5 0 104.9-26 137.1-66.5l-25.7-20.2C405 458.4 365.2 480 320 480zm0-443.9c23.8 77.5 60.1 129.3 89.3 171.1 18.4 26.4 33.7 48.5 43.5 71.9l41.8 32.9c-12-96-101.6-142.2-145.3-289.9C345.2 7.5 332.6 0 320 0c-12.4 0-24.7 7.2-29.2 22.1-11.3 38.2-25.8 69.6-41.2 97l25.4 20c16.5-28.9 32.5-62.4 45-103zm317 449.1L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3z\"]\n};\nvar faTire = {\n prefix: 'fal',\n iconName: 'tire',\n icon: [512, 512, [], \"f631\", \"M256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm0 480C132.49 480 32 379.51 32 256S132.49 32 256 32s224 100.49 224 224-100.49 224-224 224zm0-384c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160S344.37 96 256 96zm0 32c22.34 0 43.04 6.26 61.34 16.36l-37.57 51.71c-7.37-2.93-15.35-4.65-23.77-4.65s-16.39 1.72-23.77 4.65l-37.57-51.71c18.3-10.1 39-16.36 61.34-16.36zM128 256c0-36.74 15.77-69.67 40.64-93.03l37.82 52.06c-9.25 11.18-15.04 25.33-15.04 40.97 0 1.38.32 2.67.41 4.03l-61.4 19.95c-1.49-7.79-2.43-15.77-2.43-23.98zm112 126.38a127.631 127.631 0 0 1-99.45-72.05l61.03-19.83c8.68 13.66 22.32 23.71 38.42 27.84v64.04zm-16-126.4c0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32-32-14.32-32-32zm48 126.4v-64.04c16.1-4.13 29.74-14.17 38.42-27.84l61.03 19.83A127.631 127.631 0 0 1 272 382.38zm48.17-122.35c.09-1.36.41-2.65.41-4.03 0-15.64-5.79-29.79-15.04-40.97l37.82-52.06C368.23 186.33 384 219.26 384 256c0 8.21-.94 16.19-2.42 23.97l-61.41-19.94z\"]\n};\nvar faTireFlat = {\n prefix: 'fal',\n iconName: 'tire-flat',\n icon: [512, 512, [], \"f632\", \"M256 128c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm0 32c22.34 0 43.04 6.26 61.34 16.36l-37.57 51.71c-7.37-2.93-15.35-4.65-23.77-4.65s-16.39 1.72-23.77 4.65l-37.57-51.71c18.3-10.1 39-16.36 61.34-16.36zM128 288c0-36.74 15.77-69.67 40.64-93.03l37.82 52.06c-9.25 11.18-15.04 25.33-15.04 40.97 0 1.38.32 2.67.41 4.03l-61.4 19.95c-1.49-7.79-2.43-15.77-2.43-23.98zm112 126.38a127.631 127.631 0 0 1-99.45-72.05l61.03-19.83c8.68 13.66 22.32 23.71 38.42 27.84v64.04zm-16-126.4c0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32-32-14.32-32-32zm48 126.4v-64.04c16.1-4.13 29.74-14.17 38.42-27.84l61.03 19.83A127.631 127.631 0 0 1 272 414.38zm48.17-122.35c.09-1.36.41-2.65.41-4.03 0-15.64-5.79-29.79-15.04-40.97l37.82-52.06C368.23 218.33 384 251.26 384 288c0 8.21-.94 16.19-2.42 23.97l-61.41-19.94zm156.59 125.69C499.75 378.83 512 334.39 512 288c0-141.16-114.84-256-256-256S0 146.84 0 288c0 46.39 12.25 90.83 35.24 129.72C14.95 423.32 0 441.95 0 464c0 26.47 21.53 48 48 48h416c26.47 0 48-21.53 48-48 0-22.05-14.95-40.68-35.24-46.28zM464 480H48c-8.84 0-16-7.16-16-16s7.16-16 16-16h48c8.84 0 16-7.16 16-16s-7.16-16-16-16H72.35C46.97 379.72 32 335.64 32 288 32 164.29 132.29 64 256 64s224 100.29 224 224c0 47.64-14.97 91.72-40.35 128H416c-8.84 0-16 7.16-16 16s7.16 16 16 16h48c8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTirePressureWarning = {\n prefix: 'fal',\n iconName: 'tire-pressure-warning',\n icon: [512, 512, [], \"f633\", \"M256 296.02c-13.26 0-24 10.74-24 24 0 13.25 10.74 24 24 24s24-10.75 24-24c0-13.26-10.74-24-24-24zm-7.95-24h15.9c6.87 0 12.61-5.2 13.29-12.03l10.69-149.29c.79-7.87-5.39-14.69-13.29-14.69h-37.28c-7.9 0-14.08 6.82-13.29 14.69l10.69 149.29c.68 6.82 6.43 12.03 13.29 12.03zm223.46-139.11c-11.05-18.29-16.88-37.79-16.88-56.43V40c0-22.06-17.94-40-40-40h-16c-22.06 0-40 17.94-40 40v36.48c0 36.08 10.59 72.72 30.62 105.97 17.5 29.05 26.75 62.42 26.75 96.48 0 38.15-12.41 68.63-41.48 101.94-1.73 1.99-4.34 3.12-7.14 3.12H144.62c-2.81 0-5.41-1.14-7.14-3.12C108.41 347.57 96 317.08 96 278.94c0-34.07 9.25-67.43 26.75-96.47 20.04-33.27 30.62-69.92 30.62-105.99V40c0-22.06-17.94-40-40-40h-16c-22.06 0-40 17.94-40 40v36.48c0 18.63-5.83 38.14-16.87 56.42C14 176.89 0 227.38 0 278.94c0 61.68 20.7 114.12 65.14 165.05 4.48 5.14 9.55 9.62 14.86 13.73V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-29.75c10.28 3.34 20.94 5.62 32 5.69V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h32v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h32v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h32v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24.07c11.06-.07 21.72-2.34 32-5.69V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-46.28c5.31-4.12 10.39-8.6 14.88-13.75C491.3 393.06 512 340.62 512 278.94c0-51.55-14-102.05-40.49-146.03zm-48.76 290.04C408.88 438.88 388.69 448 367.38 448H144.62c-21.31 0-41.5-9.12-55.38-25.05C50.19 378.19 32 332.42 32 278.94c0-45.72 12.41-90.5 35.91-129.5 14.06-23.3 21.47-48.53 21.47-72.95V40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v36.48c0 30.25-9 61.19-26.03 89.47C74.84 199.97 64 239.05 64 278.94c0 45.92 15.22 83.86 49.38 122.98 7.81 8.95 19.19 14.08 31.25 14.08h222.75c12.06 0 23.44-5.12 31.25-14.08C432.78 362.8 448 324.86 448 278.94c0-39.89-10.84-78.97-31.34-113-17.03-28.27-26.03-59.2-26.03-89.45V40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v36.48c0 24.42 7.41 49.66 21.47 72.94 23.5 39.02 35.91 83.8 35.91 129.52-.01 53.48-18.2 99.25-57.26 144.01z\"]\n};\nvar faTireRugged = {\n prefix: 'fal',\n iconName: 'tire-rugged',\n icon: [512, 512, [], \"f634\", \"M467.12 169.93c-.32-.79-.64-1.57-.97-2.36 13.48-22.99 10.37-53.09-9.33-72.79l-39.6-39.6c-11.33-11.33-26.4-17.57-42.43-17.57-10.86 0-21.27 2.86-30.39 8.23-.78-.32-1.55-.64-2.33-.96C335.35 19.09 311.87 0 284 0h-56c-27.87 0-51.35 19.09-58.07 44.88-.78.32-1.56.64-2.33.96-9.11-5.37-19.53-8.23-30.39-8.23-16.03 0-31.1 6.24-42.43 17.58l-39.6 39.59c-19.7 19.7-22.81 49.81-9.33 72.79-.33.78-.65 1.57-.97 2.36C19.09 176.65 0 200.13 0 228v56c0 27.86 19.09 51.35 44.88 58.07.32.79.64 1.57.97 2.36-13.48 22.99-10.37 53.09 9.33 72.79l39.6 39.6c11.33 11.33 26.4 17.57 42.43 17.57 10.86 0 21.27-2.86 30.39-8.23.78.32 1.55.64 2.33.96C176.65 492.91 200.13 512 228 512h56c27.87 0 51.35-19.09 58.07-44.88l2.34-.96c9.11 5.37 19.53 8.23 30.38 8.23 16.03 0 31.09-6.24 42.43-17.57l39.6-39.6c19.7-19.7 22.81-49.8 9.33-72.79.33-.78.65-1.57.97-2.36C492.91 335.35 512 311.86 512 284v-56c0-27.87-19.09-51.35-44.88-58.07zM480 284c0 15.46-12.54 28-28 28h-8.22c-3.88 13.02-8.98 25.51-15.34 37.24l5.76 5.76c10.93 10.93 10.93 28.66 0 39.6l-39.6 39.6c-5.47 5.47-12.63 8.2-19.8 8.2s-14.33-2.73-19.8-8.2l-5.76-5.76c-11.73 6.36-24.22 11.46-37.24 15.34V452c0 15.46-12.54 28-28 28h-56c-15.46 0-28-12.54-28-28v-8.22c-13.02-3.88-25.51-8.98-37.24-15.34L157 434.2c-5.47 5.47-12.63 8.2-19.8 8.2s-14.33-2.73-19.8-8.2l-39.6-39.6c-10.93-10.93-10.93-28.66 0-39.6l5.76-5.76C77.21 337.51 72.1 325.02 68.22 312H60c-15.46 0-28-12.54-28-28v-56c0-15.46 12.54-28 28-28h8.22c3.88-13.02 8.98-25.51 15.34-37.24L77.8 157c-10.93-10.94-10.93-28.67 0-39.6l39.6-39.6c5.47-5.47 12.63-8.2 19.8-8.2s14.33 2.73 19.8 8.2l5.76 5.76C174.49 77.2 186.98 72.1 200 68.22V60c0-15.46 12.54-28 28-28h56c15.46 0 28 12.54 28 28v8.22c13.02 3.88 25.51 8.98 37.24 15.34L355 77.8c5.47-5.47 12.63-8.2 19.8-8.2s14.33 2.73 19.8 8.2l39.6 39.6c10.93 10.93 10.93 28.66 0 39.6l-5.76 5.76c6.36 11.73 11.46 24.22 15.34 37.24H452c15.46 0 28 12.54 28 28v56zM256 95.98c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm0 288c-70.58 0-128-57.42-128-128s57.42-128 128-128 128 57.42 128 128-57.42 128-128 128zM256 160c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm0 143.98c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24-10.75-24-24-24zM328 232c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm-144 0c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24z\"]\n};\nvar faTired = {\n prefix: 'fal',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm113.8-322.3l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.6 6.9 24-7.7 15.4-18L343.6 208l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18zM134.2 266.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.6 10.3 3.8 24.9 15.4 18zM248 272c-51.9 0-115.3 43.8-123.2 106.7-.8 6.3.9 12.7 4.6 16.9.6.7 5.8 6.7 13.2 3.6 25.9-11.1 64.4-17.4 105.5-17.4s79.6 6.3 105.5 17.4c5.5 2.4 10.5-.5 13.2-3.6 3.6-4.2 5.3-10.6 4.6-16.9C363.3 315.8 299.9 272 248 272zm0 77.7c-30.6 0-59.5 3.2-84.3 9.1 15.8-32.5 53-54.8 84.3-54.8 31.3 0 68.5 22.3 84.3 54.8-24.8-5.9-53.6-9.1-84.3-9.1z\"]\n};\nvar faToggleOff = {\n prefix: 'fal',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 96c42.738 0 82.917 16.643 113.137 46.863S544 213.262 544 256s-16.643 82.917-46.863 113.137S426.738 416 384 416H192c-42.738 0-82.917-16.643-113.137-46.863S32 298.738 32 256s16.643-82.917 46.863-113.137S149.262 96 192 96h192m0-32H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zm-192 96c52.935 0 96 43.065 96 96s-43.065 96-96 96-96-43.065-96-96 43.065-96 96-96m0-32c-70.692 0-128 57.307-128 128s57.308 128 128 128 128-57.307 128-128-57.308-128-128-128z\"]\n};\nvar faToggleOn = {\n prefix: 'fal',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 96c88.426 0 160 71.561 160 160 0 88.426-71.561 160-160 160H192c-88.426 0-160-71.561-160-160 0-88.425 71.561-160 160-160h192m0-32H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zm0 304c61.856 0 112-50.144 112-112s-50.144-112-112-112-112 50.144-112 112c0 28.404 10.574 54.339 27.999 74.082C320.522 353.335 350.548 368 384 368z\"]\n};\nvar faToilet = {\n prefix: 'fal',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M376 32c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H8C3.6 0 0 3.6 0 8v16c0 4.4 3.6 8 8 8h24v172.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V32h24zM64 32h256v160.4c-34-10.2-78.8-16.4-128-16.4s-94 6.2-128 16.4V32zm128 176c83.9 0 152 14.3 152 32s-68.1 32-152 32-152-14.3-152-32 68.1-32 152-32zM96 480l19.5-63.9C139 426.3 164.8 432 192 432s53-5.7 76.5-15.9L288 480H96zm96-80c-75.2 0-138.1-52.3-155.1-122.4 34.9 16 91.3 26.4 155.1 26.4s120.2-10.4 155.1-26.4C330.1 347.7 267.2 400 192 400zM152 64h-48c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8z\"]\n};\nvar faToiletPaper = {\n prefix: 'fal',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M112 192c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.17-16-16-16zm64 0c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.17-16-16-16zm64 0c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.17-16-16-16zm64 0c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.17-16-16-16zM464 0H144C82.14 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h312.92c13.77 0 26-8.81 30.36-21.88 11.16-33.48 21.59-63.54 24.11-106.12H464c61.86 0 112-85.96 112-192S525.86 0 464 0zM352 192v172.07c0 46.83-9.67 75.79-21.9 112.45l-1.16 3.48H38.29c.54-1.61 1.08-3.18 1.61-4.72C55.44 429.55 64 404.37 64 364.07V192c0-94.29 42.16-160 80-160h258.14C371.93 66.39 352 125.18 352 192zm112 160c-37.84 0-80-65.71-80-160s42.16-160 80-160 80 65.71 80 160-42.16 160-80 160zm0-208c-13.25 0-24 21.49-24 48s10.75 48 24 48c13.26 0 24-21.49 24-48s-10.74-48-24-48z\"]\n};\nvar faToiletPaperAlt = {\n prefix: 'fal',\n iconName: 'toilet-paper-alt',\n icon: [576, 512, [], \"f71f\", \"M464 0H144C82.14 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h312.92c13.77 0 26-8.81 30.36-21.88 11.16-33.48 21.59-63.54 24.11-106.12H464c61.86 0 112-85.96 112-192S525.86 0 464 0zM352 192v172.07c0 46.83-9.67 75.79-21.9 112.45l-1.16 3.48H38.29c.54-1.61 1.08-3.18 1.61-4.72C55.44 429.55 64 404.37 64 364.07V192c0-94.29 42.16-160 80-160h258.14C371.93 66.39 352 125.18 352 192zm112 160c-37.84 0-80-65.71-80-160s42.16-160 80-160 80 65.71 80 160-42.16 160-80 160zm0-208c-13.25 0-24 21.49-24 48s10.75 48 24 48c13.26 0 24-21.49 24-48s-10.74-48-24-48z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fal',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M472,192c0,26.52,10.75,48,24,48s24-21.48,24-48-10.73-48-24-48S472,165.48,472,192ZM176,32H434.14C403.94,66.39,384,125.19,384,192v33l39,30.71A285.69,285.69,0,0,1,416,192c0-94.3,42.16-160,80-160s80,65.7,80,160c0,68.5-22.32,121.52-49,145.62l25.43,20C585.64,324.33,608,262.71,608,192,608,86,557.86,0,496,0H176c-18.35,0-35.62,7.71-50.9,21.12l26,20.45C159.27,35.66,167.72,32,176,32ZM362.09,476.52,360.94,480H70.3c.53-1.61,1.07-3.19,1.61-4.72C87.44,429.55,96,404.38,96,364.06V192c0-10.29.7-20.08,1.65-29.64L68.37,139.3A322.2,322.2,0,0,0,64,192V364.06c0,41.13-9.8,62.78-31.17,126.88A16,16,0,0,0,48,512H360.94a32,32,0,0,0,30.36-21.87C400,464,408.11,439.8,412.53,410.31L382.79,386.9C380.15,420.87,372.16,446.36,362.09,476.52Zm274.9,8.8L23,1.8A7.88,7.88,0,0,0,11.77,3l-10,12.5A7.94,7.94,0,0,0,3,26.71L216,194.42h0l3.92,3.09h0L617,510.23A8,8,0,0,0,628.2,509l10-12.5A7.86,7.86,0,0,0,637,485.32Z\"]\n};\nvar faTombstone = {\n prefix: 'fal',\n iconName: 'tombstone',\n icon: [512, 512, [], \"f720\", \"M496 416h-48V200.05C448 94.92 366.99 3.24 261.9.09 153.17-3.17 64 84 64 192v224H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM96 192c0-88.22 71.78-160 160-160s160 71.78 160 160v224H96V192zm383.95 288H32.01l.04-32h447.94l-.04 32zM336.02 144h-32v-32c0-8.84-7.16-16-16-16h-64.01c-8.85 0-16 7.16-16 16v32h-32c-8.85 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h32v96c0 8.84 7.16 16 16 16h64.01c8.85 0 16-7.16 16-16v-96h32c8.85 0 16-7.16 16-16v-64c0-8.84-7.15-16-16-16zm-16 64h-48.01v112h-32V208H192v-32h48.01v-48h32v48h48.01v32z\"]\n};\nvar faTombstoneAlt = {\n prefix: 'fal',\n iconName: 'tombstone-alt',\n icon: [512, 512, [], \"f721\", \"M496 416h-48V200.05C448 94.92 366.99 3.24 261.9.09 153.17-3.17 64 84 64 192v224H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM96 192c0-88.22 71.78-160 160-160s160 71.78 160 160v224H96V192zm383.95 288H32.01l.04-32h447.94l-.04 32z\"]\n};\nvar faToolbox = {\n prefix: 'fal',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.26c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.47-21.53-48-48-48H176c-26.47 0-48 21.53-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V448c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V237.25c0-8.48-3.37-16.62-9.37-22.62zM160 80c0-8.83 7.19-16 16-16h160c8.81 0 16 7.17 16 16v80H160V80zm320 368H32v-96h96v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h192v24c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-24h96v96zm-96-128v-24c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24H160v-24c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v24H32v-82.75L77.25 192h357.49L480 237.25V320h-96z\"]\n};\nvar faTools = {\n prefix: 'fal',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M502.6 389.5L378.2 265c-15.6-15.6-36.1-23.4-56.6-23.4-15.4 0-30.8 4.4-44.1 13.3L192 169.4V96L64 0 0 64l96 128h73.4l85.5 85.5c-20.6 31.1-17.2 73.3 10.2 100.7l124.5 124.5c6.2 6.2 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l67.9-67.9c12.4-12.6 12.4-32.8-.1-45.3zM160 158.1v1.9h-48L42.3 67 67 42.3l93 69.7v46.1zM412.1 480L287.7 355.5c-9.1-9.1-14.1-21.1-14.1-33.9 0-12.8 5-24.9 14.1-33.9 9.1-9.1 21.1-14.1 33.9-14.1 12.8 0 24.9 5 33.9 14.1L480 412.1 412.1 480zM64 432c0 8.8 7.2 16 16 16s16-7.2 16-16-7.2-16-16-16-16 7.2-16 16zM276.8 66.9C299.5 44.2 329.4 32 360.6 32c6.9 0 13.8.6 20.7 1.8L312 103.2l13.8 83 83.1 13.8 69.3-69.3c6.7 38.2-5.3 76.8-33.1 104.5-8.9 8.9-19.1 16-30 21.5l23.6 23.6c10.4-6.2 20.2-13.6 29-22.5 37.8-37.8 52.7-91.4 39.7-143.3-2.3-9.5-9.7-17-19.1-19.6-9.5-2.6-19.7 0-26.7 7l-63.9 63.9-44.2-7.4-7.4-44.2L410 50.3c6.9-6.9 9.6-17.1 7-26.5-2.6-9.5-10.2-16.8-19.7-19.2C345.6-8.3 292 6.5 254.1 44.3c-12.9 12.9-22.9 27.9-30.1 44v67.8l22.1 22.1c-9.6-40.4 1.6-82.2 30.7-111.3zM107 467.1c-16.6 16.6-45.6 16.6-62.2 0-17.1-17.1-17.1-45.1 0-62.2l146.1-146.1-22.6-22.6L22.2 382.3c-29.6 29.6-29.6 77.8 0 107.5C36.5 504.1 55.6 512 75.9 512c20.3 0 39.4-7.9 53.7-22.3L231.4 388c-6.7-9.2-11.8-19.3-15.5-29.8L107 467.1z\"]\n};\nvar faTooth = {\n prefix: 'fal',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.94 96.25c-11.03-45.28-47.12-82.08-92.02-93.73-27.93-7.22-57.56 1.12-89.08 24.34-12.58 9.24-44.2 24.48-77.59.06l-.4-.28c-.06-.04-.13-.04-.19-.08C153.32 3.6 123.92-4.66 96.05 2.54c-44.87 11.64-80.99 48.44-92 93.72-9.61 39.48-1.97 78.7 21.5 110.44 20.51 27.73 32.06 61.84 36.29 107.34 3.62 38.69 9.25 89.61 20.93 140.31l7.81 33.97c3.22 13.95 15.4 23.69 29.65 23.69 14.03 0 26.18-9.55 29.53-23.16l34.5-138.44c4.56-18.33 20.9-31.14 39.74-31.14s35.18 12.81 39.74 31.16l34.5 138.41a30.348 30.348 0 0 0 29.53 23.17c14.25 0 26.43-9.73 29.65-23.69l7.81-33.97c11.69-50.72 17.31-101.64 20.93-140.31 4.28-45.56 15.81-79.66 36.31-107.34 23.47-31.76 31.1-70.98 21.47-110.45zm-47.21 91.41c-24.09 32.56-37.59 71.76-42.43 123.39-3.5 37.7-9 87.23-20.25 136.11l-6.34 27.59-32.9-132.06c-8.12-32.64-37.25-55.42-70.8-55.42s-62.68 22.78-70.8 55.41l-31.43 138.45-7.81-33.97c-11.25-48.86-16.75-98.39-20.25-136.09-4.81-51.56-18.31-90.78-42.45-123.41-17.72-23.97-23.45-53.75-16.12-83.84 8.26-33.98 35.32-61.58 68.94-70.3 24.3-6.27 48.55 9.13 62.12 19.14.07.05.15.08.21.13.03.02.04.05.07.07l80.33 56.25c10.7 7.43 20.15-.87 22.28-3.94 5.09-7.23 3.31-17.2-3.91-22.28L245.5 69.11c13.05-3.13 25.54-8.55 36.31-16.47 23.5-17.36 43.74-23.89 62.09-19.14 33.62 8.73 60.71 36.33 68.99 70.31 7.3 30.1 1.59 59.88-16.16 83.85z\"]\n};\nvar faToothbrush = {\n prefix: 'fal',\n iconName: 'toothbrush',\n icon: [640, 512, [], \"f635\", \"M624 416H448V224h-32v192h-32V224h-32v192h-32V224h-32v192h-32V224h-32v192h-32V224h-32v192h-32V224H96v192H64V224H32v192H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-16 64H32v-32h576v32zM64 192h352c35.35 0 64-28.65 64-64C480 57.31 422.69 0 352 0c23.62 23.62 6.89 64-26.51 64H64C28.65 64 0 92.65 0 128s28.65 64 64 64zm0-96h261.49c28.21 0 53.41-16.84 64.2-42.9 1.59-3.84 2.82-7.76 3.69-11.72C425.66 56.87 448 89.88 448 128c0 17.64-14.36 32-32 32H64c-17.64 0-32-14.36-32-32s14.36-32 32-32z\"]\n};\nvar faTorah = {\n prefix: 'fal',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M210.64 255l-33.39 55.86a24.16 24.16 0 0 0 20.69 36.58H266l33.44 55.87A23.72 23.72 0 0 0 320 415a24.13 24.13 0 0 0 20.76-11.86l33.31-55.68h68a24.31 24.31 0 0 0 21.13-12.25 23.67 23.67 0 0 0-.28-24.15L429.35 255l33.42-55.86a24.16 24.16 0 0 0-20.7-36.58H374l-33.45-55.87A23.71 23.71 0 0 0 320.06 95a24.11 24.11 0 0 0-20.83 11.86l-33.31 55.68h-68a24.3 24.3 0 0 0-21.13 12.26 23.67 23.67 0 0 0 .28 24.12zm-4.14 63.46l21-35.24 21.1 35.24zm113.56 62.87l-20.29-33.89h40.55zm113.49-62.87H391.4l21.06-35.22zm-.06-126.92l-21 35.24-21.11-35.24zM320 128.69l20.22 33.87h-40.54zm-37.65 62.83h75.22l38 63.48-37.92 63.46h-75.23l-38-63.46zm-33.76 0l-21 35.22-21.1-35.22zM576-1c-28.32 0-51.57 13.22-60.2 32H124.2C115.57 12.22 92.32-1 64-1 28.12-1 0 20.08 0 47v416c0 26.92 28.12 48 64 48 28.32 0 51.57-13.22 60.2-32h391.6c8.63 18.78 31.88 32 60.2 32 35.88 0 64-21.08 64-48V47c0-26.92-28.12-48-64-48zM96 63v400c0 6.38-12.75 16-32 16s-32-9.62-32-16V47c0-6.37 12.75-16 32-16s32 9.63 32 16zm416 384H128V63h384zm96 16c0 6.38-12.75 16-32 16s-32-9.62-32-16V47c0-6.37 12.75-16 32-16s32 9.63 32 16z\"]\n};\nvar faToriiGate = {\n prefix: 'fal',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M480 160c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32h-240.9A303.17 303.17 0 0 1 0 0v128c0 17.67 14.33 32 32 32h32v96H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h56v216c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V288h320v216c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V288h56c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8h-56v-96h32zM32 128V47.56C65.39 58.38 100.49 64 135.55 64h240.89c35.07 0 70.17-5.62 103.55-16.44V128H32zm64 32h144v96H96v-96zm320 96H272v-96h144v96z\"]\n};\nvar faTornado = {\n prefix: 'fal',\n iconName: 'tornado',\n icon: [512, 512, [], \"f76f\", \"M429.1 25.2c7.4-10.6 0-25.2-12.9-25.2h-400C7.1 0-.3 7.6 0 16.5c13.3 352.7 452 219.8 331.7 472.6-5 10.6 2.6 22.9 14.3 22.9h27.4c7.9 0 15.8-3 21.7-8.3 320.6-286.7-138.9-229.8 34-478.5zM386.7 32c-13.7 23.5-22 44.6-26.4 64H45.5C39.4 77.1 35 56 33 32h353.7zM58.4 128h298c-.1 24.5 6.8 45.5 17.2 64h-265c-19.9-17.3-37.1-38.1-50.2-64zm95.3 96h242.6c11.1 12.9 23.2 24.5 34.4 35.2 11.2 10.7 20.2 19.9 27.9 28.8H287.7c-15.9-8-32.7-15.5-49.8-23-28.6-12.6-57.5-25.3-84.2-41zm185.2 96h138.8c1.2 4.4 2.4 8.7 2.4 13.3-.2 14.4-6.8 31.4-19.1 50.7h-80.5c-1-4-1.6-8.1-3-11.9-7.9-21.2-21.5-37.9-38.6-52.1zm34.5 160h-2.9c8.9-23.3 13.2-44.4 13.6-64h53.1c-16.6 19.5-37.8 40.8-63.8 64z\"]\n};\nvar faTractor = {\n prefix: 'fal',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M176 256c-44.18 0-80 35.82-80 80s35.82 80 80 80 80-35.82 80-80-35.82-80-80-80zm0 120c-22.06 0-40-17.94-40-40s17.94-40 40-40 40 17.94 40 40-17.94 40-40 40zm432-184h-64v-10.95c0-22.36 7.8-43.5 22.13-60.33 2.77-3.25 2.81-7.98-.21-11l-11.33-11.33c-3.22-3.22-8.62-3.23-11.63.2-20.02 22.82-30.96 51.79-30.96 82.46V192H368.57L284.73 18.1A32.02 32.02 0 0 0 255.9 0H128c-17.67 0-32 14.33-32 32v155.75c-10.76-1.46-22.02 1.41-30.31 9.65l-28.28 28.28c-12.81 12.83-13.94 33-3.31 47.09-1.12 2.5-2.19 5.03-3.16 7.58C13.47 282.83 0 297.86 0 316v40c0 18.14 13.47 33.17 30.94 35.64.97 2.55 2.03 5.08 3.16 7.58-4.69 6.2-7.22 13.7-7.22 21.61-.03 9.62 3.72 18.69 10.53 25.48l28.28 28.28c12.88 12.83 33.03 13.94 47.09 3.33 2.5 1.11 5.03 2.16 7.56 3.14C122.81 498.52 137.88 512 156 512h40c18.12 0 33.19-13.48 35.66-30.94 2.53-.98 5.06-2.03 7.56-3.14 14.12 10.61 34.28 9.5 47.09-3.33l28.28-28.28c6.81-6.8 10.56-15.86 10.53-25.48 0-7.91-2.53-15.44-7.22-21.61 1.12-2.5 2.19-5.03 3.16-7.58 6.35-.9 11.82-3.88 16.66-7.64h84.15c-3.57 10.05-5.88 20.72-5.88 32 0 53.02 42.98 96 96 96s96-42.98 96-96c0-26.51-10.74-50.51-28.12-67.88l50.74-50.74c6-6 9.37-14.14 9.37-22.63V224c.02-17.67-14.31-32-31.98-32zM128 32h127.9l77.14 160h-54.6c-10.94-6.21-24.08-6.16-35.06 0h-9.17c-.86-.35-1.7-.73-2.56-1.06C229.19 173.48 214.12 160 196 160h-40c-11.53 0-21.4 5.81-28 14.27V32zm192 324c0 2.2-1.78 4-4 4h-18.41c-7.11 23.63-6.71 22.85-18.62 44.98l12.97 13.03.03 5.67-28.28 28.28c-1.56 1.61-4.09 1.55-5.66 0l-13-13c-21.74 11.68-21.66 11.65-45.03 18.61V476c0 2.2-1.78 4-4 4h-40c-2.22 0-4-1.8-4-4v-18.42c-23.37-6.96-23.29-6.93-45.03-18.61l-13 13a3.972 3.972 0 0 1-5.66 0l-28.28-28.28.03-5.67 12.97-13.03C61.11 382.84 61.51 383.6 54.41 360H36c-2.22 0-4-1.8-4-4v-40c0-2.2 1.78-4 4-4h18.41c7.15-23.77 6.72-22.83 18.62-45.02l-13-13a4.02 4.02 0 0 1 0-5.67l28.28-28.28c1.59-1.56 4.12-1.53 5.66 0l13 13c21.74-11.68 21.66-11.65 45.03-18.61V196c0-2.2 1.78-4 4-4h40c2.22 0 4 1.8 4 4v18.42c23.37 6.96 23.29 6.93 45.03 18.61l13-13c1.56-1.53 4.09-1.56 5.66 0l28.28 28.28a4.02 4.02 0 0 1 0 5.67l-13 13c11.91 22.2 11.48 21.28 18.62 45.02H316c2.22 0 4 1.8 4 4v40zm192 124c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64zm96-205.26l-54.85 54.85c-12.51-5.97-26.36-9.6-41.15-9.6-28.32 0-53.51 12.49-71.09 32H352v-36c0-18.14-13.47-33.17-30.94-35.64-.97-2.55-2.03-5.08-3.16-7.58 10.62-14.09 9.5-34.27-3.31-47.09l-1.69-1.69H608v50.75z\"]\n};\nvar faTrademark = {\n prefix: 'fal',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M264.1 96H23.9c-6.6 0-12 5.4-12 12v15c0 6.6 5.4 12 12 12h97.7v269c0 6.6 5.4 12 12 12h20.9c6.6 0 12-5.4 12-12V135h97.7c6.6 0 12-5.4 12-12v-15c-.1-6.6-5.4-12-12.1-12zM640 403l-23.9-296c-.5-6.2-5.7-11-12-11H576c-4.8 0-9.2 2.9-11 7.3l-70.3 165.8c-7.3 17.7-15.9 43.1-15.9 43.1h-.9s-8.6-25.4-15.9-43.1l-70.3-165.8c-1.9-4.4-6.2-7.3-11-7.3h-28.1c-6.3 0-11.5 4.8-12 11l-23.9 296c-.6 7 5 13 12 13h20.7c6.3 0 11.5-4.8 12-11.1L376 214.3c1.4-19.5.9-48 .9-48h.9s10 30.8 17.2 48l60.3 137c1.9 4.4 6.2 7.2 11 7.2h24.3c4.7 0 9-2.8 11-7.1l60.7-137c7.7-17.7 17.2-47.1 17.2-47.1h.9s-.9 27.6.5 47.1l15 190.6c.5 6.2 5.7 11.1 12 11.1H628c7-.1 12.5-6.1 12-13.1z\"]\n};\nvar faTrafficCone = {\n prefix: 'fal',\n iconName: 'traffic-cone',\n icon: [512, 512, [], \"f636\", \"M504 480h-23.02L294.54 11.52A18.284 18.284 0 0 0 277.55 0h-43.11c-7.49 0-14.22 4.57-16.99 11.52L31.02 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h496c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM382.87 320H129.13l50.94-128h151.85l50.95 128zM243.75 32h24.5l50.94 128H192.81l50.94-128zM65.46 480l50.94-128h279.2l50.94 128H65.46z\"]\n};\nvar faTrafficLight = {\n prefix: 'fal',\n iconName: 'traffic-light',\n icon: [416, 512, [], \"f637\", \"M416 64V48h-80V28.44C336 12.73 323.27 0 307.55 0h-199.1C92.73 0 80 12.73 80 28.44V48H0v16c0 50.55 33.89 92.77 80 106.57V176H0v16c0 50.55 33.89 92.77 80 106.57V304H0v16c0 53.54 38.07 97.51 88.38 108.43C106.49 477.13 153 512 208 512s101.51-34.87 119.62-83.57C377.93 417.51 416 373.54 416 320v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57zm-80 16h46.41c-5.24 25.62-23.05 46.21-46.41 56.56V80zM33.59 80H80v56.56C56.64 126.21 38.84 105.62 33.59 80zm0 128H80v56.56C56.64 254.21 38.84 233.62 33.59 208zm0 128H80v48c0 3.04.69 5.9.9 8.89-23.79-10.2-42-30.95-47.31-56.89zM304 384c0 52.93-43.06 96-96 96s-96-43.07-96-96V32h192v352zm78.41-48c-5.31 25.94-23.51 46.69-47.3 56.89.21-2.99.9-5.84.9-8.89v-48h46.4zm0-128c-5.24 25.62-23.05 46.21-46.41 56.56V208h46.41zM208 184c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zm0 216c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zm0 216c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32z\"]\n};\nvar faTrafficLightGo = {\n prefix: 'fal',\n iconName: 'traffic-light-go',\n icon: [416, 512, [], \"f638\", \"M416 64V48h-80V28.44C336 12.73 323.27 0 307.55 0h-199.1C92.73 0 80 12.73 80 28.44V48H0v16c0 50.55 33.89 92.77 80 106.57V176H0v16c0 50.55 33.89 92.77 80 106.57V304H0v16c0 53.54 38.07 97.51 88.38 108.43C106.49 477.13 153 512 208 512s101.51-34.87 119.62-83.57C377.93 417.51 416 373.54 416 320v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57zm-80 16h46.41c-5.24 25.62-23.05 46.21-46.41 56.56V80zM33.59 80H80v56.56C56.64 126.21 38.84 105.62 33.59 80zm0 128H80v56.56C56.64 254.21 38.84 233.62 33.59 208zm0 128H80v48c0 3.04.69 5.9.9 8.89-23.79-10.2-42-30.95-47.31-56.89zM304 384c0 52.93-43.06 96-96 96s-96-43.07-96-96V32h192v352zm78.41-48c-5.31 25.94-23.51 46.69-47.3 56.89.21-2.99.9-5.84.9-8.89v-48h46.4zm0-128c-5.24 25.62-23.05 46.21-46.41 56.56V208h46.41zM208 184c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zm0 216c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zm0 216c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56z\"]\n};\nvar faTrafficLightSlow = {\n prefix: 'fal',\n iconName: 'traffic-light-slow',\n icon: [416, 512, [], \"f639\", \"M416 64V48h-80V28.44C336 12.73 323.27 0 307.55 0h-199.1C92.73 0 80 12.73 80 28.44V48H0v16c0 50.55 33.89 92.77 80 106.57V176H0v16c0 50.55 33.89 92.77 80 106.57V304H0v16c0 53.54 38.07 97.51 88.38 108.43C106.49 477.13 153 512 208 512s101.51-34.87 119.62-83.57C377.93 417.51 416 373.54 416 320v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57zm-80 16h46.41c-5.24 25.62-23.05 46.21-46.41 56.56V80zM33.59 80H80v56.56C56.64 126.21 38.84 105.62 33.59 80zm0 128H80v56.56C56.64 254.21 38.84 233.62 33.59 208zm0 128H80v48c0 3.04.69 5.9.9 8.89-23.79-10.2-42-30.95-47.31-56.89zM304 384c0 52.93-43.06 96-96 96s-96-43.07-96-96V32h192v352zm78.41-48c-5.31 25.94-23.51 46.69-47.3 56.89.21-2.99.9-5.84.9-8.89v-48h46.4zm0-128c-5.24 25.62-23.05 46.21-46.41 56.56V208h46.41zM208 184c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zm0 216c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0 128c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32z\"]\n};\nvar faTrafficLightStop = {\n prefix: 'fal',\n iconName: 'traffic-light-stop',\n icon: [416, 512, [], \"f63a\", \"M416 64V48h-80V28.44C336 12.73 323.27 0 307.55 0h-199.1C92.73 0 80 12.73 80 28.44V48H0v16c0 50.55 33.89 92.77 80 106.57V176H0v16c0 50.55 33.89 92.77 80 106.57V304H0v16c0 53.54 38.07 97.51 88.38 108.43C106.49 477.13 153 512 208 512s101.51-34.87 119.62-83.57C377.93 417.51 416 373.54 416 320v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57v-16h-80v-5.43c46.11-13.8 80-56.02 80-106.57zm-80 16h46.41c-5.24 25.62-23.05 46.21-46.41 56.56V80zM33.59 80H80v56.56C56.64 126.21 38.84 105.62 33.59 80zm0 128H80v56.56C56.64 254.21 38.84 233.62 33.59 208zm0 128H80v48c0 3.04.69 5.9.9 8.89-23.79-10.2-42-30.95-47.31-56.89zM304 384c0 52.93-43.06 96-96 96s-96-43.07-96-96V32h192v352zm78.41-48c-5.31 25.94-23.51 46.69-47.3 56.89.21-2.99.9-5.84.9-8.89v-48h46.4zm0-128c-5.24 25.62-23.05 46.21-46.41 56.56V208h46.41zM208 184c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0 128c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32zm0 216c30.93 0 56-25.07 56-56s-25.07-56-56-56-56 25.07-56 56 25.07 56 56 56zm0-88c17.64 0 32 14.36 32 32s-14.36 32-32 32-32-14.36-32-32 14.36-32 32-32z\"]\n};\nvar faTrailer = {\n prefix: 'fal',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M632,352H544V96a32,32,0,0,0-32-32H32A32,32,0,0,0,0,96V352a32,32,0,0,0,32,32H68.58c7.59,0,13.69-5.44,15.64-12.78C96.91,323.36,140.14,288,192,288s95.09,35.36,107.78,83.22c2,7.34,8.05,12.78,15.64,12.78H632a8,8,0,0,0,8-8V360A8,8,0,0,0,632,352Zm-120,0H326.61c-19.72-55.77-72.06-96-134.61-96S77.11,296.23,57.39,352H32V96H512ZM192,320a80,80,0,1,0,80,80A80,80,0,0,0,192,320Zm0,128a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,448ZM360,320h16a8,8,0,0,0,8-8V136a8,8,0,0,0-8-8H360a8,8,0,0,0-8,8V312A8,8,0,0,0,360,320Zm96,0h16a8,8,0,0,0,8-8V136a8,8,0,0,0-8-8H456a8,8,0,0,0-8,8V312A8,8,0,0,0,456,320ZM96,136a8,8,0,0,0-8-8H72a8,8,0,0,0-8,8V279.45A177.09,177.09,0,0,1,96,252.6Zm96,0a8,8,0,0,0-8-8H168a8,8,0,0,0-8,8v91.05A175.77,175.77,0,0,1,192,224Zm96,0a8,8,0,0,0-8-8H264a8,8,0,0,0-8,8V236.18a175,175,0,0,1,32,16.42Z\"]\n};\nvar faTrain = {\n prefix: 'fal',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M224 320c8.823 0 16 7.177 16 16s-7.177 16-16 16-16-7.177-16-16 7.177-16 16-16m0-32c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM320 0H128C64 0 0 42.981 0 96v256c0 47.169 50.656 86.391 106.9 94.473l-55.285 55.285c-3.78 3.78-1.103 10.243 4.243 10.243h25.798c3.183 0 6.235-1.264 8.485-3.515L150.627 448h146.745l60.486 60.485a12.002 12.002 0 0 0 8.485 3.515h25.798c5.345 0 8.022-6.463 4.243-10.243L341.1 446.472C397.344 438.391 448 399.169 448 352V96c0-53.019-63-96-128-96zM32 128h384v96H32v-96zm96-96h192c58.237 0 96 37.881 96 64H32c0-32.299 47.552-64 96-64zm192 384H128c-48.448 0-96-31.701-96-64v-96h384v96c0 32.299-47.552 64-96 64z\"]\n};\nvar faTram = {\n prefix: 'fal',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M511.6 76.4c-2-8.6-10.5-13.9-19.2-11.9l-480 112c-8.6 2-14 10.6-12 19.2C2.2 203 8.7 208 16 208c1.2 0 2.4-.1 3.6-.4L240 156.2V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-75.3l227.6-53.1c8.6-2 14-10.6 12-19.2zM64 256h96v96H64v-96zm288 0h96v96h-96v-96zm96 128v96H64v-96h384zM320 256v96H192v-96h128zM176 128c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm0-64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm128 32c26.5 0 48-21.5 48-48S330.5 0 304 0s-48 21.5-48 48 21.5 48 48 48zm0-64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faTransgender = {\n prefix: 'fal',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M160 383.1c72-8 128-69 128-143.1 0-34-11.8-65.2-31.5-89.9L352 54.6V100c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V12c0-6.6-5.4-12-12-12h-88c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h45.4l-95.5 95.5C209.2 107.8 178 96 144 96 64.5 96 0 160.5 0 240c0 74.1 56 135.2 128 143.1V424H76c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h52v44c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-44h52c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-52v-40.9zM144 352c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fal',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-88c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h45.4l-95.5 95.5C305.2 107.8 274 96 240 96s-65.2 11.8-89.9 31.5l-28.9-28.9 31.1-31.1c4.7-4.7 4.7-12.3 0-17l-5.7-5.7c-4.7-4.7-12.3-4.7-17 0L98.6 76l-44-44H100c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12H12C5.4 0 0 5.4 0 12v88c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V54.6l44 44-31.1 31.1c-4.7 4.7-4.7 12.3 0 17l5.7 5.7c4.7 4.7 12.3 4.7 17 0l31.1-31.1 28.9 28.9C107.8 174.8 96 206 96 240c0 74.1 56 135.2 128 143.1V424h-52c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h52v44c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-44h52c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-52v-40.9c72-8 128-69 128-143.1 0-34-11.8-65.2-31.5-89.9L448 54.6V100c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12V12c0-6.6-5.4-12-12-12zM240 352c-61.9 0-112-50-112-112 0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112z\"]\n};\nvar faTransporter = {\n prefix: 'fal',\n iconName: 'transporter',\n icon: [512, 512, [], \"e042\", \"M509.789,44.43164l-29.786-12.41992L467.5828,2.22656a3.99313,3.99313,0,0,0-7.15449,0L448.00806,32.01172l-29.786,12.41992a4.00079,4.00079,0,0,0,0,7.1543l29.786,12.41992L460.42831,93.791a3.9947,3.9947,0,0,0,7.15449,0l12.42025-29.78516,29.786-12.41992a3.99921,3.99921,0,0,0,0-7.1543ZM95.98694,111.99609a4.37766,4.37766,0,0,0-2.211-3.57617L63.99194,96,51.57169,66.21484a3.99471,3.99471,0,0,0-7.15644,0L31.995,96,2.211,108.41992a3.99921,3.99921,0,0,0,0,7.1543l29.784,12.41992L44.41525,157.7793a3.99628,3.99628,0,0,0,7.15644,0l12.42025-29.78516,29.784-12.41992A4.38918,4.38918,0,0,0,95.98694,111.99609Zm263.02265,34.541a95.381,95.381,0,0,0-46.73953-30.17773A71.27468,71.27468,0,0,0,327.99509,72,72.0822,72.0822,0,0,0,255.99316,0H255.96A72.0822,72.0822,0,0,0,183.958,72a71.28393,71.28393,0,0,0,15.73479,44.375,95.36491,95.36491,0,0,0-46.6946,30.16406L84.98274,228.1543a55.97446,55.97446,0,0,0,7.16621,78.873,56.12369,56.12369,0,0,0,67.85532,2.92774V416h-.00976A63.999,63.999,0,0,0,95.9928,480v16a15.99975,15.99975,0,0,0,16.00042,16h288.0077a16.001,16.001,0,0,0,16.00042-16V480a64.00028,64.00028,0,0,0-63.99194-63.998V309.96875a56.00117,56.00117,0,0,0,74.99419-81.84766ZM255.96,32l.01758.002.01562-.002a40,40,0,1,1,0,80l-.01562-.00195L255.96,112a40,40,0,1,1,0-80ZM384.00049,480H127.99365a32.03709,32.03709,0,0,1,32.00086-32H351.99963A32.03709,32.03709,0,0,1,384.00049,480Zm15.38517-197.5625a24.00925,24.00925,0,0,1-33.8134-3.07812l-45.5852-54.69922V256h.02149V416H271.9975V320H239.99664v96H192.00513V224.70117l-45.56372,54.65821a23.99729,23.99729,0,1,1-36.876-30.71876l68.01548-81.61328A64.0009,64.0009,0,0,1,226.74824,144h58.51328a64.00441,64.00441,0,0,1,49.16538,23.02539l68.02135,81.61523A23.976,23.976,0,0,1,399.38566,282.4375Z\"]\n};\nvar faTransporter1 = {\n prefix: 'fal',\n iconName: 'transporter-1',\n icon: [512, 512, [], \"e043\", \"M159.99451,309.95508V320h32.00085V224.70117l-45.56372,54.65821c-5.174,6.20117-20.22514,14.34374-33.8134,3.07812a23.976,23.976,0,0,1-3.06258-33.79688l68.01549-81.61328A64.0009,64.0009,0,0,1,226.73848,144h58.51328a64.0044,64.0044,0,0,1,49.16537,23.02539l68.02135,81.61523a23.976,23.976,0,0,1-3.06258,33.79688c-13.58044,11.26953-28.47928,3.32617-33.8134-3.07812l-45.58521-54.69922V256h.02149v64h32.00085V309.96875a56.00117,56.00117,0,0,0,74.99419-81.84766l-67.994-81.584a95.381,95.381,0,0,0-46.73953-30.17773A71.27468,71.27468,0,0,0,327.98532,72,72.0822,72.0822,0,0,0,255.9834,0h-.03321a72.0822,72.0822,0,0,0-72.00192,72,71.28394,71.28394,0,0,0,15.7348,44.375,95.365,95.365,0,0,0-46.69461,30.16406L84.973,228.1543a55.97448,55.97448,0,0,0,7.16621,78.873,56.12371,56.12371,0,0,0,67.85533,2.92774ZM255.95019,32l.01758.002L255.9834,32a40,40,0,1,1,0,80l-.01563-.00195L255.95019,112a40,40,0,1,1,0-80Zm64.04859,352h32.00085V352H319.99878ZM95.98694,144a4.38058,4.38058,0,0,0-2.20905-3.57812L63.99194,128.002,51.57169,98.21875a3.99313,3.99313,0,0,0-7.15449,0L31.997,128.002,2.211,140.42188a4.00078,4.00078,0,0,0,0,7.15624l29.786,12.41993,12.42025,29.7832a3.99313,3.99313,0,0,0,7.15449,0l12.42025-29.7832,29.786-12.41993A4.39161,4.39161,0,0,0,95.98694,144ZM351.99963,416.002V416H159.98474A63.999,63.999,0,0,0,95.983,480v16a15.99975,15.99975,0,0,0,16.00043,16H399.99115a16.001,16.001,0,0,0,16.00043-16V480A64.00028,64.00028,0,0,0,351.99963,416.002ZM127.98389,480a32.03709,32.03709,0,0,1,32.00085-32H351.98987a32.03709,32.03709,0,0,1,32.00085,32ZM509.789,364.41992,480.005,352l-12.42026-29.78516a3.99471,3.99471,0,0,0-7.15644,0L448.00806,352l-29.784,12.41992a3.99921,3.99921,0,0,0,0,7.1543l29.784,12.41992,12.42025,29.78516a3.99628,3.99628,0,0,0,7.15644,0L480.005,383.99414l29.784-12.41992a3.99921,3.99921,0,0,0,0-7.1543ZM159.99451,384h32.00085V352H159.99451Zm111.99322,0V352H239.98688v32Z\"]\n};\nvar faTransporter2 = {\n prefix: 'fal',\n iconName: 'transporter-2',\n icon: [512, 512, [], \"e044\", \"M191.99609,256V224.70117L165.90545,256Zm79.99268,128V352h-32.001v32ZM352.001,352H320v32h32.001ZM319.97851,224.66016V256h26.118ZM177.57183,167.02734A64.00122,64.00122,0,0,1,226.73934,144h58.51351a64.00476,64.00476,0,0,1,49.16556,23.02539L355.2335,192H396.891l-37.88983-45.46289a95.38141,95.38141,0,0,0-46.73971-30.17773A71.2745,71.2745,0,0,0,327.98657,72a72.08234,72.08234,0,0,0-72.0022-72h-.0332A72.08235,72.08235,0,0,0,183.949,72a71.28375,71.28375,0,0,0,15.73486,44.375A95.36539,95.36539,0,0,0,152.989,146.53906L115.10312,192h41.65752ZM255.95117,32l.01758.002.01562-.002a40,40,0,1,1,0,80l-.01562-.00195L255.95117,112a40,40,0,1,1,0-80ZM130.09186,224H88.43629c-13.88714,16.6582-14.895,26.08984-15.74071,32h32.874C107.681,250.08984,107.30406,251.3418,130.09186,224ZM320,320h32.001V309.96875A55.675,55.675,0,0,0,434.45271,288H320Zm32.001,96.002V416H159.98535a63.99914,63.99914,0,0,0-64.002,64v16a15.99979,15.99979,0,0,0,16.00049,16H399.99268a16.001,16.001,0,0,0,16.00048-16V480A64.00039,64.00039,0,0,0,352.001,416.002ZM127.98437,480a32.03716,32.03716,0,0,1,32.001-32H351.99121a32.03716,32.03716,0,0,1,32.001,32ZM381.90423,224c22.75656,27.30469,22.4128,26.0957,24.52419,32h32.87014c-.85745-5.99219-1.91607-15.41211-15.73681-32ZM159.99512,309.95508V320h32.001V288H77.54143a55.62546,55.62546,0,0,0,14.5981,19.02734,56.12409,56.12409,0,0,0,67.85559,2.92774Zm0,74.04492h32.001V352h-32.001ZM509.791,140.416l-29.78607-12.41993-12.4203-29.7832a3.99315,3.99315,0,0,0-7.15451,0l-12.4203,29.7832L418.2237,140.416a4.00079,4.00079,0,0,0,0,7.15625l29.78607,12.41992,12.4203,29.7832a3.99315,3.99315,0,0,0,7.15451,0l12.4203-29.7832L509.791,147.57227a4.00237,4.00237,0,0,0,0-7.15625ZM95.9873,48a4.37811,4.37811,0,0,0-2.211-3.57812L63.99023,32.002,51.56993,2.21875a3.99315,3.99315,0,0,0-7.15451,0L31.99512,32.002,2.20905,44.42188a4.00078,4.00078,0,0,0,0,7.15429L31.99512,63.99609l12.4203,29.78516a3.99315,3.99315,0,0,0,7.15451,0l12.4203-29.78516L93.7763,51.57617A4.38313,4.38313,0,0,0,95.9873,48Z\"]\n};\nvar faTransporter3 = {\n prefix: 'fal',\n iconName: 'transporter-3',\n icon: [512, 512, [], \"e045\", \"M191.99609,287.99658H77.54143a55.62634,55.62634,0,0,0,14.5981,19.02764,56.12343,56.12343,0,0,0,67.85559,2.92778v10.04507h32.001Zm63.98828-256.0039h-.0332l.01758.002Zm56.27711,84.36066a73.90664,73.90664,0,0,0,11.44566-20.35969H287.15329c-7.31663,9.48648-18.26813,16.00025-31.16892,16.00025l-.01562-.002-.01758.002c-12.90078,0-23.85229-6.51377-31.16892-16.00025H188.2284A73.92186,73.92186,0,0,0,199.68383,116.369a99.67188,99.67188,0,0,0-25.58867,11.62518H337.88922A99.67424,99.67424,0,0,0,312.26148,116.35334ZM271.98877,383.99805V351.99756h-32.001v32.00049ZM255.95117,31.99268H196.13684a71.52385,71.52385,0,0,0-11.37925,32.00048h32.81546C221.40324,45.87765,236.77285,31.99268,255.95117,31.99268Zm64.02734,192.66309v31.34032h26.118ZM352.001,351.99756H320v32.00049h32.001ZM294.3625,63.99316H327.178A71.52373,71.52373,0,0,0,315.7987,31.99268H255.98437C275.16269,31.99268,290.5323,45.87765,294.3625,63.99316Zm40.05591,103.027,20.81509,24.975H396.891l-26.66878-32.00049H327.1135A63.421,63.421,0,0,1,334.41841,167.02013ZM320,319.99707h32.001v-10.0314a55.67477,55.67477,0,0,0,82.45173-21.96909H320Zm61.90423-96.00146,20.53579,24.641a23.60865,23.60865,0,0,1,3.9884,7.35948h32.87014c-.85745-5.99228-1.91607-15.41234-15.73681-32.00048ZM159.99512,383.99805h32.001V351.99756h-32.001ZM352.001,416.00049v-.002H159.98535a63.99963,63.99963,0,0,0-64.002,64.001v16.00025A15.99991,15.99991,0,0,0,111.98389,512H399.99268a16.00115,16.00115,0,0,0,16.00048-16.00024V479.99951A64.00087,64.00087,0,0,0,352.001,416.00049Zm-224.01661,63.999a32.0374,32.0374,0,0,1,32.001-32.00049H351.99121a32.0374,32.0374,0,0,1,32.001,32.00049Zm49.58746-312.97743a63.29146,63.29146,0,0,1,7.30686-7.02745H141.7719l-26.66878,32.00049h41.65752Zm14.42426,57.67471-26.09064,31.2993h26.09064Zm-82.44,23.93982,20.53578-24.641H88.43629c-13.88714,16.65845-14.895,26.09024-15.74071,32.00048h32.874A23.60261,23.60261,0,0,1,109.55608,248.63661ZM509.791,44.42451,480.00488,32.00439,467.58458,2.21878a3.99313,3.99313,0,0,0-7.15451,0l-12.4203,29.78561L418.2237,44.42451a3.99929,3.99929,0,0,0,0,7.1544L448.00977,63.999l12.4203,29.78561a3.99469,3.99469,0,0,0,7.15451,0L480.00488,63.999,509.791,51.57891a4.00087,4.00087,0,0,0,0-7.1544ZM93.7763,364.42158,63.99023,352.00146l-12.4203-29.78365a3.99312,3.99312,0,0,0-7.15451,0l-12.4203,29.78365L2.20905,364.42158a4.00246,4.00246,0,0,0,0,7.15636l29.78607,12.42011,12.4203,29.78365a3.99312,3.99312,0,0,0,7.15451,0l12.4203-29.78365L93.7763,371.57794a4.00088,4.00088,0,0,0,0-7.15636Z\"]\n};\nvar faTransporterEmpty = {\n prefix: 'fal',\n iconName: 'transporter-empty',\n icon: [512, 512, [], \"e046\", \"M509.791,268.419l-29.78607-12.42-12.4203-29.78527a3.99315,3.99315,0,0,0-7.15451,0L448.00977,255.999l-29.78607,12.42a3.99924,3.99924,0,0,0,0,7.15433l29.78607,12.42,12.4203,29.78527a3.99471,3.99471,0,0,0,7.15451,0l12.4203-29.78527,29.78607-12.42a4.00082,4.00082,0,0,0,0-7.15433ZM93.7763,44.422l-29.78607-12.42L51.56993,2.21876a3.99314,3.99314,0,0,0-7.15451,0L31.99512,32.00208,2.20905,44.422a4.0024,4.0024,0,0,0,0,7.15628l29.78607,12.42,12.4203,29.78332a3.99314,3.99314,0,0,0,7.15451,0l12.4203-29.78332,29.78607-12.42a4.00082,4.00082,0,0,0,0-7.15628ZM352.001,416.00159v-.002H159.98535a63.99927,63.99927,0,0,0-64.002,64.00025v16.00006A15.99982,15.99982,0,0,0,111.98389,512H399.99268a16.00106,16.00106,0,0,0,16.00048-16.00006V479.99988A64.0005,64.0005,0,0,0,352.001,416.00159ZM127.98437,479.99988a32.03721,32.03721,0,0,1,32.001-32.00012H351.99121a32.03721,32.03721,0,0,1,32.001,32.00012Z\"]\n};\nvar faTrash = {\n prefix: 'fal',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M440 64H336l-33.6-44.8A48 48 0 0 0 264 0h-80a48 48 0 0 0-38.4 19.2L112 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h18.9l33.2 372.3a48 48 0 0 0 47.8 43.7h232.2a48 48 0 0 0 47.8-43.7L421.1 96H440a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM171.2 38.4A16.1 16.1 0 0 1 184 32h80a16.1 16.1 0 0 1 12.8 6.4L296 64H152zm184.8 427a15.91 15.91 0 0 1-15.9 14.6H107.9A15.91 15.91 0 0 1 92 465.4L59 96h330z\"]\n};\nvar faTrashAlt = {\n prefix: 'fal',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M296 432h16a8 8 0 0 0 8-8V152a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8zm-160 0h16a8 8 0 0 0 8-8V152a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8zM440 64H336l-33.6-44.8A48 48 0 0 0 264 0h-80a48 48 0 0 0-38.4 19.2L112 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v368a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V96h24a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM171.2 38.4A16.1 16.1 0 0 1 184 32h80a16.1 16.1 0 0 1 12.8 6.4L296 64H152zM384 464a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V96h320zm-168-32h16a8 8 0 0 0 8-8V152a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v272a8 8 0 0 0 8 8z\"]\n};\nvar faTrashRestore = {\n prefix: 'fal',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M440 64H336l-33.6-44.8A48 48 0 0 0 264 0h-80a48 48 0 0 0-38.4 19.2L112 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h18.9l33.2 372.3a48 48 0 0 0 47.8 43.7h232.2a48 48 0 0 0 47.8-43.7L421.1 96H440a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM171.2 38.4A16.1 16.1 0 0 1 184 32h80a16.1 16.1 0 0 1 12.8 6.4L296 64H152zm184.8 427a15.91 15.91 0 0 1-15.9 14.6H107.9A15.91 15.91 0 0 1 92 465.4L59 96h330zM155.33 288H208v120a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V288h52.66a26.94 26.94 0 0 0 25-16.72 28.38 28.38 0 0 0-5.44-30.81l-68.12-71.78c-10.69-11.19-29.51-11.2-40.19 0l-68.12 71.75a28.43 28.43 0 0 0-5.44 30.83A26.94 26.94 0 0 0 155.33 288zM224 194l58.84 62h-117.7z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fal',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M440 64H336l-33.6-44.8A48 48 0 0 0 264 0h-80a48 48 0 0 0-38.4 19.2L112 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v368a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V96h24a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM171.2 38.4A16.1 16.1 0 0 1 184 32h80a16.1 16.1 0 0 1 12.8 6.4L296 64H152zM384 464a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V96h320zM155.35 288H208v120a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V288h52.66a26.94 26.94 0 0 0 25-16.72 28.38 28.38 0 0 0-5.44-30.81l-68.12-71.8c-10.69-11.19-29.51-11.2-40.19 0l-68.12 71.75a28.43 28.43 0 0 0-5.44 30.83 26.94 26.94 0 0 0 25 16.75zM224 194l58.84 62H165.16z\"]\n};\nvar faTrashUndo = {\n prefix: 'fal',\n iconName: 'trash-undo',\n icon: [448, 512, [], \"f895\", \"M440 64H336l-33.59-44.8C294.44 8.59 277.25 0 264 0h-80c-13.25 0-30.44 8.59-38.41 19.2L112 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h18.91l33.18 372.3c2.19 24.12 23.6 43.7 47.82 43.7h232.18c24.22 0 45.63-19.58 47.82-43.7L421.09 96H440a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM171.19 38.41A18.15 18.15 0 0 1 184 32h80a18.15 18.15 0 0 1 12.81 6.41L296 64H152zm184.81 427A16.2 16.2 0 0 1 340.16 480H107.84A16.2 16.2 0 0 1 92 465.41L59 96h330zM192.75 360.34A28 28 0 0 0 240 340v-52h16a48.05 48.05 0 0 1 48 48 16 16 0 0 0 32 0 80.09 80.09 0 0 0-80-80h-16v-52a28 28 0 0 0-47.25-20.34l-72 68a28 28 0 0 0 0 40.68zM208 213.28v117.44L145.81 272z\"]\n};\nvar faTrashUndoAlt = {\n prefix: 'fal',\n iconName: 'trash-undo-alt',\n icon: [448, 512, [], \"f896\", \"M440 64H336l-33.59-44.8C294.44 8.59 277.25 0 264 0h-80c-13.25 0-30.44 8.59-38.41 19.2L112 64H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v368a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V96h24a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM171.19 38.41A18.15 18.15 0 0 1 184 32h80a18.15 18.15 0 0 1 12.81 6.41L296 64H152zM384 464a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V96h320zM192.75 360.34A28 28 0 0 0 240 340v-52h16a48.05 48.05 0 0 1 48 48 16 16 0 0 0 32 0 80.09 80.09 0 0 0-80-80h-16v-52a28 28 0 0 0-47.25-20.34l-72 68a28 28 0 0 0 0 40.68zM208 213.28v117.44L145.81 272z\"]\n};\nvar faTreasureChest = {\n prefix: 'fal',\n iconName: 'treasure-chest',\n icon: [576, 512, [], \"f723\", \"M480 32H96C42.98 32 0 74.98 0 128v320c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V128c0-53.02-42.98-96-96-96zM96 448H32V288h64v160zm0-192H32V128c0-35.29 28.71-64 64-64v192zm352 192H128V288h64v48c0 26.47 21.53 48 48 48h96c26.47 0 48-21.53 48-48v-48h64v160zM224 336V208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v128c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16zm224-80h-64v-48c0-26.47-21.53-48-48-48h-96c-26.47 0-48 21.53-48 48v48h-64V64h320v192zm96 192h-64V288h64v160zm0-192h-64V64c35.29 0 64 28.71 64 64v128zm-256 64c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16s-16 7.16-16 16v64c0 8.84 7.16 16 16 16z\"]\n};\nvar faTree = {\n prefix: 'fal',\n iconName: 'tree',\n icon: [448, 512, [], \"f1bb\", \"M444.09 389.46l-74.12-85.55H400c6.22 0 11.91-3.61 14.5-9.27 2.62-5.66 1.75-12.32-2.28-17.07l-72.5-85.71H368c6.31 0 12.03-3.72 14.62-9.49 2.56-5.78 1.5-12.52-2.72-17.23L235.9 5.07c-6.12-6.75-17.69-6.75-23.81 0l-144 160.07a16.06 16.06 0 0 0-2.72 17.23c2.59 5.77 8.31 9.49 14.62 9.49h28.28l-72.5 85.71c-4.03 4.75-4.91 11.41-2.28 17.07 2.59 5.66 8.28 9.27 14.5 9.27h30.03L3.91 389.46c-4.09 4.74-5.06 11.44-2.47 17.13 2.62 5.71 8.31 9.36 14.56 9.36h160v24.46l-24.2 48.42c-5.32 10.64 2.42 23.17 14.31 23.17h115.78c11.89 0 19.63-12.52 14.31-23.17L272 440.41v-24.46h160c6.25 0 11.94-3.66 14.56-9.36 2.6-5.69 1.63-12.39-2.47-17.13zM192 479.98l16-32.01v-32.02h32v32.02l16 32.01h-64zM50.78 384l96-112H82.5l94.78-112h-61.34L224 39.92 332.06 160h-61.34l94.78 112h-64.28l96 112H50.78z\"]\n};\nvar faTreeAlt = {\n prefix: 'fal',\n iconName: 'tree-alt',\n icon: [512, 512, [], \"f400\", \"M459.94 202.98c2.69-8.86 4.06-17.89 4.06-26.98 0-52.94-43.06-96-96-96-5.75 0-11.44.53-17.09 1.56C343.94 35.45 304.03 0 256 0s-87.94 35.45-94.91 81.56A95.058 95.058 0 0 0 144 80c-52.94 0-96 43.06-96 96 0 9.09 1.38 18.12 4.06 26.98C20.34 219.17 0 251.53 0 288c0 52.94 43.06 96 96 96h112v56.45l-24.2 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h115.78c11.89 0 19.63-12.52 14.31-23.16l-24.2-48.4V384h112c52.94 0 96-43.06 96-96 0-36.47-20.34-68.83-52.06-85.02zM224 480l16-32v-64h32v64l16 32h-64zm192-128H96c-35.28 0-64-28.7-64-64 0-28.12 18.28-52.59 45.47-60.88l18.16-5.53-8.53-16.97C82.41 195.25 80 185.61 80 176c0-35.3 28.72-64 64-64 14.34 0 19.95 2.94 51.16 16.98-2.9-31.7-2.28-25.42-3.16-32.98 0-35.3 28.72-64 64-64s64 28.7 63.75 66.42l-2.91 30.56C345.08 116.28 352.1 112 368 112c35.28 0 64 28.7 64 64 0 9.61-2.41 19.25-7.09 28.62l-8.53 16.97 18.16 5.53C461.72 235.41 480 259.88 480 288c0 35.3-28.72 64-64 64z\"]\n};\nvar faTreeChristmas = {\n prefix: 'fal',\n iconName: 'tree-christmas',\n icon: [512, 512, [], \"f7db\", \"M304 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm-32-144c0-26.5-21.5-48-48-48s-48 21.5-48 48 21.5 48 48 48 48-21.5 48-48zm-48 16c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm281.3 172.4l-84.5-108.7c10.5-1.6 19.7-8.3 24.3-18.1 5.3-11.2 3.6-24.5-4.4-34.1l-134.1-161 27.9-13.9c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-33.1-16.6-16.6-33.1C279.2 6.8 268.1 0 256 0c-12.1 0-23.2 6.8-28.6 17.7l-16.6 33.1-33.1 16.6C166.8 72.8 160 83.9 160 96s6.8 23.2 17.7 28.6l27.9 13.9-134.1 161c-7.9 9.5-9.7 22.8-4.4 34.1 4.6 9.8 13.8 16.5 24.3 18.1L6.7 460.4c-7.5 9.6-8.9 22.7-3.5 33.7S19.8 512 32 512h448c12.2 0 23.4-7 28.7-17.9s4.1-24.1-3.4-33.7zM192 96l42.7-21.3L256 32l21.3 42.7L320 96l-42.7 21.3L256 160l-21.3-42.7L192 96zM32 480l124.4-160H96l127.6-153.2 3.7 7.5c5.4 10.8 16.5 17.7 28.6 17.7 12.1 0 23.2-6.8 28.6-17.7l3.7-7.5L416 320h-60.4L480 480H32z\"]\n};\nvar faTreeDecorated = {\n prefix: 'fal',\n iconName: 'tree-decorated',\n icon: [512, 512, [], \"f7dc\", \"M505.3 460.4L445.9 384h2.1c12.1 0 23.2-6.8 28.6-17.7 5.4-10.8 4.3-23.8-3-33.5l-82.2-109.7c9.3-2.2 17.2-8.5 21.5-17.3 5.3-11.1 3.8-24.2-3.9-33.9L281 12c-6.1-7.6-15.3-12-25-12s-18.9 4.4-25 12L103 172c-7.7 9.6-9.2 22.8-3.9 33.9 4.2 8.8 12.2 15.1 21.5 17.3L38.4 332.8c-7.3 9.7-8.4 22.7-3 33.5C40.8 377.2 51.9 384 64 384h2.1L6.7 460.4c-7.5 9.6-8.9 22.7-3.5 33.7C8.6 505 19.8 512 32 512h448c12.2 0 23.4-7 28.7-17.9 5.4-11 4.1-24.1-3.4-33.7zM32 480l99.6-128H64l120-160h-56L256 32l128 160h-56l120 160h-67.6L480 480H32zm272-128c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM192 256c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm80-96c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm0-64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faTreeLarge = {\n prefix: 'fal',\n iconName: 'tree-large',\n icon: [512, 512, [], \"f7dd\", \"M505.3 460.4L445.9 384h2.1c12.1 0 23.2-6.8 28.6-17.7 5.4-10.8 4.3-23.8-3-33.5l-82.2-109.7c9.3-2.2 17.2-8.5 21.5-17.3 5.3-11.1 3.8-24.2-3.9-33.9L281 12c-6.1-7.6-15.3-12-25-12s-18.9 4.4-25 12L103 172c-7.7 9.6-9.2 22.8-3.9 33.9 4.2 8.8 12.2 15.1 21.5 17.3L38.4 332.8c-7.3 9.7-8.4 22.7-3 33.5C40.8 377.2 51.9 384 64 384h2.1L6.7 460.4c-7.5 9.6-8.9 22.7-3.5 33.7S19.8 512 32 512h448c12.2 0 23.4-7 28.7-17.9s4.1-24.1-3.4-33.7zM32 480l99.6-128H64l120-160h-56L256 32l128 160h-56l120 160h-67.6L480 480H32z\"]\n};\nvar faTreePalm = {\n prefix: 'fal',\n iconName: 'tree-palm',\n icon: [640, 512, [], \"f82b\", \"M464.75 64c-44.62 0-87.12 14.79-119.87 39.86C323.48 44 255.61 0 175.25 0 87.35 0 13.85 51.27.54 121.89-3.14 141.44 12.45 160 34 160h59.63L128 132.48l13.29 10.65c-.57.56-1.22 1-1.79 1.54-62.19 62.19-77.88 150.39-37.35 209.72 11 16.08 34.89 19.05 51.1 2.77l120.63-132.22c3 101.71-20.34 201.93-32.72 246.59A31.84 31.84 0 0 0 271.63 512h90.43a31.66 31.66 0 0 0 31.38-26.77c15-93 1.68-192.71-12.49-261.23h89.67L496 198.62 521.37 224H606c21.46 0 37.14-18.44 33.46-38.11C626.15 115.27 552.65 64 464.75 64zM128 91.52L82.41 128 32 127.83C42.29 73.2 103.88 32 175.25 32c53.68 0 100.35 22.88 125.34 56.57-43.22-8.29-92.35 3.48-134.31 33.55zm.59 244.82c-31.37-45.89-16.94-118.56 33.53-169 32.5-32.49 73.47-49.8 110.84-49.8a104.67 104.67 0 0 1 46.22 10.23zM362.06 480l-90.06.05c14.13-50.91 42.32-171.45 32.29-288.46l28.14-30.84C344.55 202.9 382.73 351 362.06 480zm172.56-288L496 153.38 457.37 192h-83.53c-8.77-36.44-15.86-57.13-16.15-58 27.79-24 66.41-38 107.06-38 71.37 0 133 41.2 141.25 96z\"]\n};\nvar faTrees = {\n prefix: 'fal',\n iconName: 'trees',\n icon: [640, 512, [], \"f724\", \"M636.09 389.46l-74.12-85.55H592c6.22 0 11.91-3.61 14.5-9.27 2.62-5.66 1.75-12.32-2.28-17.07l-72.5-85.71H560c6.31 0 12.03-3.72 14.62-9.49 2.56-5.78 1.5-12.52-2.72-17.23L427.9 5.07c-6.12-6.75-17.69-6.75-23.81 0L320 98.55 235.91 5.07c-6.12-6.75-17.69-6.75-23.81 0l-144 160.07a16.06 16.06 0 0 0-2.72 17.23c2.59 5.77 8.31 9.49 14.62 9.49h28.28l-72.5 85.71c-4.03 4.75-4.91 11.41-2.28 17.07 2.59 5.66 8.28 9.27 14.5 9.27h30.03L3.91 389.46c-4.09 4.74-5.06 11.44-2.47 17.13 2.62 5.71 8.31 9.36 14.56 9.36h160v24.46l-24.2 48.42c-5.32 10.64 2.42 23.17 14.31 23.17h115.78c11.89 0 19.63-12.52 14.31-23.17L272 440.41v-24.46h96v24.46l-24.2 48.42c-5.32 10.64 2.42 23.17 14.31 23.17h115.78c11.89 0 19.63-12.52 14.31-23.17L464 440.41v-24.46h160c6.25 0 11.94-3.66 14.56-9.36 2.6-5.69 1.63-12.39-2.47-17.13zM192 479.98l16-32.01v-32.02h32v32.02l16 32.01h-64zM50.78 384l96-112H82.5l94.78-112h-61.34L224 39.92 332.06 160h-61.34l94.78 112h-64.28l96 112H50.78zM384 479.98l16-32.01v-32.02h32v32.02l16 32.01h-64zM439.36 384l-69.39-80.1H400c6.22 0 11.91-3.61 14.5-9.27 2.62-5.66 1.75-12.32-2.28-17.07l-72.5-85.71H368c6.31 0 12.03-3.72 14.62-9.49 2.56-5.78 1.5-12.52-2.72-17.23l-38.29-42.56L416 39.92 524.06 160h-61.34l94.78 112h-64.28l96 112H439.36z\"]\n};\nvar faTriangle = {\n prefix: 'fal',\n iconName: 'triangle',\n icon: [576, 512, [], \"f2ec\", \"M329.6 24c-18.4-32-64.7-32-83.2 0L6.5 440c-18.4 31.9 4.6 72 41.6 72H528c36.9 0 60-40 41.6-72l-240-416zM528 480H48c-12.3 0-20-13.3-13.9-24l240-416c6.1-10.6 21.6-10.7 27.7 0l240 416c6.2 10.6-1.5 24-13.8 24z\"]\n};\nvar faTriangleMusic = {\n prefix: 'fal',\n iconName: 'triangle-music',\n icon: [512, 512, [], \"f8e2\", \"M256.07 256A64.69 64.69 0 1 0 311 287.68L509.66 89a8 8 0 0 0 0-11.31l-11.31-11.35a8 8 0 0 0-11.31 0L288.38 265.05a63.34 63.34 0 0 0-32.31-9.05zm0 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zM413 230.88l-23.25 23.25 80.83 130.81a60.79 60.79 0 0 1 1.42 62.39A64.17 64.17 0 0 1 415.86 480H96.14A64.18 64.18 0 0 1 40 447.31a60.79 60.79 0 0 1 1.43-62.39l159.87-258.7a64.69 64.69 0 0 1 109.47 0l27.2 44L361.18 147 338 109.38C323.26 85.61 299.22 70.54 272.06 66V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v58c-27.21 4.49-51.31 19.57-66 43.4L14.19 368.09A92.46 92.46 0 0 0 12 462.91 96.16 96.16 0 0 0 96.14 512h319.72A96.16 96.16 0 0 0 500 462.91a92.46 92.46 0 0 0-2.16-94.82z\"]\n};\nvar faTrophy = {\n prefix: 'fal',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M448 64V12c0-6.6-5.4-12-12-12H140c-6.6 0-12 5.4-12 12v52H12C5.4 64 0 69.4 0 76v61.6C0 199.7 68.1 272 160.7 285.7c29.4 60.7 73.7 90.3 111.3 96.9V480h-86c-14.4 0-26 11.7-26 26.1 0 3.3 2.7 5.9 6 5.9h244c3.3 0 6-2.6 6-5.9 0-14.4-11.6-26.1-26-26.1h-86v-97.4c37.7-6.6 81.9-36.2 111.3-96.9C508 272 576 199.6 576 137.6V76c0-6.6-5.4-12-12-12H448zM32 137.6V96h96v24c0 51.8 7 94.9 18.5 130.2C77.9 232.5 32 178 32 137.6zM288 352c-72 0-128-104-128-232V32h256v88c0 128-56 232-128 232zm256-214.4c0 40.4-46 94.9-114.5 112.6C441 214.9 448 171.8 448 120V96h96v41.6z\"]\n};\nvar faTrophyAlt = {\n prefix: 'fal',\n iconName: 'trophy-alt',\n icon: [576, 512, [], \"f2eb\", \"M370.5 138.9l-50.2-7.3-22.5-45.5c-4-8.1-15.7-8.2-19.7 0l-22.5 45.5-50.2 7.3c-9 1.3-12.6 12.4-6.1 18.8l36.3 35.4-8.6 50c-1.5 8.9 7.9 15.8 16 11.6l44.9-23.6 44.9 23.6c8 4.2 17.5-2.6 16-11.6l-8.6-50 36.3-35.4c6.7-6.4 3-17.5-6-18.8zm-60.3 44.4l5.2 30.6-27.4-14.4-27.5 14.4 5.2-30.6-22.2-21.6 30.7-4.5 13.7-27.8 13.7 27.8 30.7 4.5-22.1 21.6zM448 64V12c0-6.6-5.4-12-12-12H140c-6.6 0-12 5.4-12 12v52H12C5.4 64 0 69.4 0 76v61.6C0 199.7 68.1 272 160.7 285.7c29.4 60.7 73.7 90.3 111.3 96.9V480h-86c-14.4 0-26 11.7-26 26.1 0 3.3 2.7 5.9 6 5.9h244c3.3 0 6-2.6 6-5.9 0-14.4-11.6-26.1-26-26.1h-86v-97.4c37.7-6.6 81.9-36.2 111.3-96.9C508 272 576 199.6 576 137.6V76c0-6.6-5.4-12-12-12H448zM32 137.6V96h96v24c0 51.8 7 94.9 18.5 130.2C77.9 232.5 32 178 32 137.6zM288 352c-72 0-128-104-128-232V32h256v88c0 128-56 232-128 232zm256-214.4c0 40.4-46 94.9-114.5 112.6C441 214.9 448 171.8 448 120V96h96v41.6z\"]\n};\nvar faTruck = {\n prefix: 'fal',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M632 384h-24V275.9c0-16.8-6.8-33.3-18.8-45.2l-83.9-83.9c-11.8-12-28.3-18.8-45.2-18.8H416V78.6c0-25.7-22.2-46.6-49.4-46.6H49.4C22.2 32 0 52.9 0 78.6v290.8C0 395.1 22.2 416 49.4 416h16.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16h195.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H632c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM460.1 160c8.4 0 16.7 3.4 22.6 9.4l83.9 83.9c.8.8 1.1 1.9 1.8 2.8H416v-96h44.1zM144 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm63.6-96C193 364.7 170 352 144 352s-49 12.7-63.6 32h-31c-9.6 0-17.4-6.5-17.4-14.6V78.6C32 70.5 39.8 64 49.4 64h317.2c9.6 0 17.4 6.5 17.4 14.6V384H207.6zM496 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-128c-26.1 0-49 12.7-63.6 32H416v-96h160v96h-16.4c-14.6-19.3-37.5-32-63.6-32z\"]\n};\nvar faTruckContainer = {\n prefix: 'fal',\n iconName: 'truck-container',\n icon: [640, 512, [], \"f4dc\", \"M32 320h336c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v224c0 17.7 14.3 32 32 32zm0-256h336v224H32V64zm589.3 141.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H448c-8.8 0-16 7.2-16 16v208H228.7c-12.3-9.9-27.7-16-44.7-16-22.8 0-42.8 10.8-56 27.3-13.2-16.6-33.2-27.4-56-27.4-39.8 0-72 32.2-72 72s32.2 72 72 72c22.8 0 42.8-10.8 56-27.3 13.2 16.5 33.2 27.3 56 27.3 39.8 0 72-32.2 72-72 0-8.5-1.7-16.5-4.4-24h198c-2.7 13.2-2.2 27.6 2.8 42.4 8.4 25.1 29.9 44.9 55.6 51.1 52.8 12.8 100-26.9 100-77.6 0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16V250.5c0-17-6.7-33.2-18.7-45.2zM72 448c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm112 0c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm280-288h53.5c8.5 0 16.6 3.3 22.6 9.4l54.6 54.6H464v-64zm64 288c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-96h-16.4c-14.6-19.3-37.5-32-63.6-32s-49 12.7-63.6 32h-.4v-96h144v96zm-504-96h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm96 0h16c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8z\"]\n};\nvar faTruckCouch = {\n prefix: 'fal',\n iconName: 'truck-couch',\n icon: [640, 512, [], \"f4dd\", \"M416 32h224V0H416c-35.3 0-64 28.7-64 64v307.9L5.9 480.8c-4.3 1.2-6.8 5.6-5.6 9.8L4.5 506c1.2 4.3 5.6 6.8 9.8 5.6L367.2 400H416c0 61.9 50.1 112 112 112s112-50.1 112-112-50.1-112-112-112c-50.6 0-92.8 33.9-106.7 80H384V64c0-17.6 14.4-32 32-32zm112 288c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80zM3 325.7l21.4 68.8c5.3 16.8 23.2 26.2 40 21h.1L320 336.1v-33.5L55 385l-21.4-68.8c-4-12.8 3.2-26.1 15.8-30 12.6-3.9 26.1 3.2 30 15.8l11.9 38.2 213.9-66.5-11.9-38.2c-3.9-12.6 3.1-26.1 15.8-30.1 3.7-1.1 7.3-1.3 10.8-.7v-45.3l-2.2-7c-13.1-42.1-58-65.7-100-52.7h-.1L64.9 147.3C22.7 160.4-.9 205.2 12.3 247.4l6.4 20.6C1.6 283.8-3.1 306.1 3 325.7zm71.4-147.8l152.8-47.5h.1c25.2-7.8 52.1 6.4 60 31.6l5 16.1c-24.7 11.8-37.8 40.1-29.5 67l2.4 7.6-152.8 47.5-2.4-7.6c-8.3-26.9-35.2-42.7-62.2-38.5l-5-16.1c-7.9-25.4 6.3-52.2 31.6-60.1z\"]\n};\nvar faTruckLoading = {\n prefix: 'fal',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M100.4 414.6l213.4-68.2c16.8-5.4 26.1-23.4 20.7-40.2L276 123.3c-5.4-16.9-23.5-26.2-40.2-20.8L22.5 170.7C5.7 176-3.7 194 1.7 210.9l58.4 182.9c5.3 16.6 23.2 26.2 40.3 20.8zm53.7-252.4l19.5 61-30.4 9.8-19.5-61 30.4-9.8zm-61 19.5l29.3 91.4 91.4-29.2-29.2-91.4 60.9-19.5L304 315.9 90.6 384.1 32.2 201.2l60.9-19.5zM416 32h224V0H416c-35.3 0-64 28.7-64 64v307.9L5.9 480.8c-4.3 1.2-6.8 5.6-5.6 9.8L4.5 506c1.2 4.3 5.6 6.8 9.8 5.6L367.2 400H416c0 61.9 50.1 112 112 112s112-50.1 112-112-50.1-112-112-112c-50.6 0-92.8 33.9-106.7 80H384V64c0-17.6 14.4-32 32-32zm112 288c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80z\"]\n};\nvar faTruckMonster = {\n prefix: 'fal',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M632 256h-24v-80c0-26.51-21.49-48-48-48h-57.6L419.21 24.02A63.99 63.99 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H80c-26.51 0-48 21.49-48 48v80H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h24v.88c9.09-12.21 19.85-22.98 32-32.15V176c0-8.82 7.18-16 16-16h480c8.82 0 16 7.18 16 16v80.72c12.15 9.18 22.91 19.94 32 32.15V288h24c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM256 128V32h113.24c9.77 0 18.88 4.38 24.99 12.01L461.42 128H256zm16 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zM160 464c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm432-112h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.68-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67a110.85 110.85 0 0 0-20.89-8.65V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.68-3.67c3.58-6.61 6.45-13.56 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zM480 464c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80z\"]\n};\nvar faTruckMoving = {\n prefix: 'fal',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 205.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H464V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16V250.5c0-17-6.7-33.2-18.7-45.2zM80 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm224-96H271.6c-14.6-19.3-37.5-32-63.6-32s-49 12.7-63.6 32h-.7C129 332.7 106 320 80 320c-18.1 0-34.6 6.2-48 16.4V64h400zm32-192h53.5c8.5 0 16.6 3.3 22.6 9.4l54.6 54.6H464zm64 288c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-96h-16.4c-14.6-19.3-37.5-32-63.6-32s-49 12.7-63.6 32h-.4v-96h144z\"]\n};\nvar faTruckPickup = {\n prefix: 'fal',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M632 352h-24V224c0-26.51-21.49-48-48-48h-44.8L419.21 56.02A63.99 63.99 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v112H80c-26.51 0-48 21.49-48 48v128H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h72c0 53.02 42.98 96 96 96s96-42.98 96-96h96c0 53.02 42.98 96 96 96s96-42.98 96-96h72c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM256 64h113.24c9.78 0 18.88 4.38 24.99 12.01L474.22 176H256V64zm-80 384c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm288 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm112-96h-21.88c-13.22-37.2-48.38-64-90.12-64s-76.9 26.8-90.12 64H266.12c-13.22-37.2-48.38-64-90.12-64s-76.9 26.8-90.12 64H64V224c0-8.82 7.18-16 16-16h480c8.82 0 16 7.18 16 16v128z\"]\n};\nvar faTruckPlow = {\n prefix: 'fal',\n iconName: 'truck-plow',\n icon: [640, 512, [], \"f7de\", \"M572.4 391.4c-9-9-14.1-21.2-14.1-34v-139c0-12.7 5.1-25 14.1-34l65.2-63.6c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-65.3 63.6c-15 15-23.4 35.4-23.4 56.6V272H480v-32c0-26.5-21.5-48-48-48h-38.9L306.4 47.6C300.7 38 290.1 32 278.9 32H152c-13.2 0-24 10.8-24 24v136H48c-26.5 0-48 21.5-48 48v96c0 21 13.5 38.6 32.3 45.2 0 1-.3 1.9-.3 2.8 0 53 43 96 96 96s96-43 96-96h64c0 53 43 96 96 96s96-43 96-96v-80h46.3v53.5c0 21.2 8.4 41.6 23.4 56.6l65.2 63.6c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-65.1-63.7zM160 64h118.9l76.8 128H160V64zm-32 384c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm165.9-96h-75.8c-13.2-37.2-48.4-64-90.1-64-40.6 0-75.1 25.2-89.1 60.8-4.1-2.9-6.9-7.4-6.9-12.8v-96c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v72.9c-17-15.3-39.3-24.9-64-24.9-41.7 0-76.9 26.8-90.1 64zm90.1 96c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faTruckRamp = {\n prefix: 'fal',\n iconName: 'truck-ramp',\n icon: [640, 512, [], \"f4e0\", \"M416 32h224V0H416c-35.3 0-64 28.7-64 64v307.9L5.9 480.8c-4.3 1.2-6.8 5.6-5.6 9.8L4.5 506c1.2 4.3 5.6 6.8 9.8 5.6L367.2 400H416c0 61.9 50.1 112 112 112s112-50.1 112-112-50.1-112-112-112c-50.7 0-93 33.9-106.8 80H384V64c0-17.6 14.4-32 32-32zm112 288c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80z\"]\n};\nvar faTrumpet = {\n prefix: 'fal',\n iconName: 'trumpet',\n icon: [640, 512, [], \"f8e3\", \"M617.38 65.36l-.09-.07a32.32 32.32 0 0 0-35.85 12.94c-.44.66-44.93 66.33-112.36 102-14.57 7.67-31.95 11.77-50.3 11.77h-50.36v-24a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24h-32v-24a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24h-31.8v-24a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H33v-8a8 8 0 0 0-8-8H9a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-8h48.49a103.74 103.74 0 0 0 87.25 160h239.62A103.93 103.93 0 0 0 512.2 344a100.34 100.34 0 0 0-1.83-16.84c43.6 34.41 70.73 74.07 71.1 74.63A32 32 0 0 0 608.05 416a32.85 32.85 0 0 0 9.33-1.41A31.83 31.83 0 0 0 640 384V96a31.82 31.82 0 0 0-22.62-30.64zM168.74 416a71.74 71.74 0 0 1-44.63-128h84.56v128zm71.88 0V288h31.95v128zm63.9 0V288h32v128zm103.84 0h-39.94V288h50.36a108.77 108.77 0 0 1 44 9.43A71.65 71.65 0 0 1 408.36 416zM484 271.45C464.87 261.32 442.31 256 418.78 256H33v-32h385.78c23.53 0 46.09-5.34 65.21-15.47C559.38 168.62 607.77 96.42 608 96l.16 288.25c-.39-.73-48.78-72.92-124.16-112.8z\"]\n};\nvar faTshirt = {\n prefix: 'fal',\n iconName: 'tshirt',\n icon: [608, 512, [], \"f553\", \"M606.4 111.6c-2.6-7.8-8-14.1-15.2-17.8L403.8 0l-7.9 11.1c-15.7 22-51.8 36.2-91.9 36.2s-76.2-14.2-91.9-36.2L204.2 0 16.8 93.8c-7.3 3.7-12.7 10-15.2 17.8-2.6 7.8-2 16.1 1.7 23.4l51.5 104c3.6 7.4 9.8 12.9 17.5 15.4 7.7 2.7 16 2 23.2-1.6l48.6-24v237.8c0 25 20.1 45.3 44.8 45.3h230.4c24.7 0 44.8-20.3 44.8-45.3V228.9l48.5 24c7.2 3.7 15.5 4.3 23.3 1.6 7.7-2.6 13.9-8.1 17.5-15.4L604.9 135c3.5-7.3 4.1-15.6 1.5-23.4zm-79.7 112.3L432 177.1v289.7c0 7.1-5.7 12.9-12.8 12.9H188.8c-7.1 0-12.8-5.8-12.8-12.9V177.1l-92.6 47.6-52.3-101.9 164.1-82.2c24 24.3 64.2 39 108.9 39S389 64.9 413 40.6L575.5 122l-48.8 101.9z\"]\n};\nvar faTty = {\n prefix: 'fal',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M364 464H148c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h216c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12zm-180-68c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12h-24c-6.6 0-12 5.4-12 12v24zm-48-24c0-6.6-5.4-12-12-12h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24zm-60 84H52c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12zM52 312h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12H52c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12zm216-48h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12zm-96 0h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12zm288 0h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12zm42.2-161.7C366.1-34.2 145.6-33.9 9.8 102.3c-11 11-12.9 27.9-4.7 41.1l40.5 65c8.5 13.7 25.5 19.2 40.5 13.3l81-32.5c13.6-5.5 22.1-19.5 20.7-34.2l-4.3-43.2c47.2-14.5 97.9-14.5 145.1 0l-4.3 43.2c-1.5 14.7 7 28.7 20.7 34.2l81 32.5c14.9 6 31.9.4 40.5-13.3l40.5-65c8.2-13.2 6.2-30.1-4.8-41.1zm-22.4 24.1l-40.5 65c-.3.5-.9.7-1.4.5l-81-32.5c-.5-.2-.8-.7-.7-1.2l6.8-68.4c-79-28.6-137.8-27.5-213.8 0l6.8 68.4c.1.5-.2 1-.7 1.2l-81 32.5c-.5.2-1.1 0-1.4-.5l-40.5-65c-.3-.5-.2-1.1.2-1.5C156 1 356.1 1.1 479.6 124.9c.4.4.5 1.1.2 1.5zM460 456h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12zm-180-60c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12h-24c-6.6 0-12 5.4-12 12v24zm144-24c0-6.6-5.4-12-12-12h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24c6.6 0 12-5.4 12-12v-24zm-60-60c6.6 0 12-5.4 12-12v-24c0-6.6-5.4-12-12-12h-24c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12h24z\"]\n};\nvar faTurkey = {\n prefix: 'fal',\n iconName: 'turkey',\n icon: [640, 512, [], \"f725\", \"M579.77 75.55c5.52-33.13-19.71-70.89-58.88-75.13-46.18-5.18-83.29 38.92-71.17 83.83 2.9 11.06.5 21.06-6.46 26.76-11.92 9.79-15 12.73-29.5 21.66C375.87 110.18 333.51 96 288.56 96 129.74 96 0 269.14 0 384s129.74 128 288.56 128 287.55-13.12 287.55-128c0-52.74-27.36-117.63-72.09-172.54 4-3.64 1.55-2.23 10-9.17 10.76-8.89 24.4-2.62 28.3-.5a64.79 64.79 0 0 0 24.27 7.62c36 4.05 69.16-22.41 73-59.79 3.73-35.33-20.59-69.71-59.82-74.07zM544.17 384c0 70.88-66.89 96-255.6 96S32 454.89 32 384c0-98.75 118-256 256.61-256 31.18 0 61.14 8.26 89 21.71-23.1 7.91-38.83 9.48-58.87 10.15-56.86 1.94-106.69 40-121.2 92.7-12 43.54-1.31 89.2 28.58 122.13A125.85 125.85 0 0 0 319.73 416c77.87 0 113.27-63.53 122.68-102 7.09-29 20.95-55.83 39.38-78.88 38.61 48.37 62.38 104.5 62.38 148.88zm13.51-210.27C480.61 131.64 419.44 273.48 411 307.89c-9.58 39.08-38.63 68.34-74 74.54-33.2 5.91-65.09-4.78-87.28-29.23-22.5-24.78-30.48-59.2-21.4-92.12 4-14.51 23.43-67 98.92-69.48C374.53 190 500.46 151.48 480.58 76a35.38 35.38 0 0 1 11.95-36.43c23.12-18.73 58.91-.63 55.6 31.46a35.05 35.05 0 0 1-5.34 15 16 16 0 0 0 19.13 23.45 33.57 33.57 0 0 1 15.29-2.08c18.94 2 32.67 19.48 30.67 38.86-2.67 25.41-29.58 38.76-50.2 27.43z\"]\n};\nvar faTurntable = {\n prefix: 'fal',\n iconName: 'turntable',\n icon: [576, 512, [], \"f8e4\", \"M484.59 304.5l-4.74-2.37c0-.48.15-.93.15-1.41V136a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v152a31.57 31.57 0 0 0-34 15l.53.31c-4.59 7.27-12 21.85-27.18 52.08a32 32 0 0 0 14.31 42.92l28.62 14.31a31.78 31.78 0 0 0 14.28 3.4 32.31 32.31 0 0 0 10.19-1.66 31.78 31.78 0 0 0 18.44-16l25.66-50.91a32 32 0 0 0-14.29-42.95zm-40 79.5L416 369.73s23.59-46.79 25.78-50.78l-.13-.07v-.07l28.62 14.31zM224 232a24 24 0 1 0 24 24 24 24 0 0 0-24-24zM512 32H64A64 64 0 0 0 0 96v320a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V96a64 64 0 0 0-64-64zm32 384a32 32 0 0 1-32 32H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h448a32 32 0 0 1 32 32zM224 96a160 160 0 1 0 160 160A160 160 0 0 0 224 96zm0 288a128 128 0 1 1 128-128 128.14 128.14 0 0 1-128 128z\"]\n};\nvar faTurtle = {\n prefix: 'fal',\n iconName: 'turtle',\n icon: [576, 512, [], \"f726\", \"M464 128c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm81.59-19.77C510.52 83.36 487.21 63.89 458.64 64c-70.67.28-74.64 70.17-74.64 73v71.19c-.02 6.89-2.07 13.4-4.99 19.59C306.47-5.44 87.67 22.02 33.15 241.28c-1.28 5.16-1.28 10.24-.52 15.11C14.53 257.47 0 272.21 0 290.59c0 14.91 9.5 28.11 23.66 32.81l47.69 15.91L36.31 400c-5.78 10.02-5.78 21.98 0 32s16.16 16 27.72 16h36.94c11.38 0 22-6.12 27.72-16l33.88-58.66C183.78 379.75 204.75 384 240 384s56.22-4.25 77.44-10.66l33.88 58.69c5.72 9.84 16.34 15.97 27.72 15.97h36.94c11.56 0 21.94-5.98 27.72-16 5.78-10.02 5.78-21.98 0-32l-38.47-66.64c17.81-9.58 32.88-22.28 44.91-37.91 12.75-16.58 21.47-35.19 26.03-55.45h27.19c40.06 0 72.66-32.59 72.66-72.66-.02-23.39-11.4-45.48-30.43-59.11zM351.8 249.01c.89 3.59-1.52 6.99-4.04 6.99H68.25c-2.53 0-4.93-3.42-4.04-7 50.42-202.79 236.99-203.48 287.59.01zM503.34 208h-54.75l-1.75 14c-2.53 20.03-9.97 38.17-22.09 53.94-19.88 25.87-43.07 33.45-65.25 42.25L415.97 416H379l-46.75-81.05C303.17 344.49 284.62 352 240 352c-45.86 0-64.64-8-92.25-17.05L100.97 416H64l54.66-94.63L32 288h303.06c29.22 0 51.64-15.08 64.38-31.59 10.78-14.05 16.53-30.7 16.56-48.19V137c0-26.99 22.44-40.55 42.26-41 19.93-.45 36.75 15.44 68.71 38.26 10.66 7.62 17.03 20 17.03 33.08 0 22.43-18.25 40.66-40.66 40.66z\"]\n};\nvar faTv = {\n prefix: 'fal',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h256v64H136a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h368a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H336v-64h256a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm16 368a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h544a16 16 0 0 1 16 16z\"]\n};\nvar faTvAlt = {\n prefix: 'fal',\n iconName: 'tv-alt',\n icon: [640, 512, [], \"f8e5\", \"M536 480H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM608 0H32A32 32 0 0 0 0 32v352a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm0 384H32V32h576z\"]\n};\nvar faTvMusic = {\n prefix: 'fal',\n iconName: 'tv-music',\n icon: [640, 512, [], \"f8e6\", \"M608 0H32A32 32 0 0 0 0 32v352a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zm0 384H32V32h576zm-72 96H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zM240 320c26.5 0 48-14.33 48-32V179.16l96-37.52V226a69.89 69.89 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32 48-14.33 48-32V112a16 16 0 0 0-20.81-15.25l-128 47.25A16 16 0 0 0 256 159.25V258a69.89 69.89 0 0 0-16-2c-26.5 0-48 14.33-48 32s21.5 32 48 32z\"]\n};\nvar faTvRetro = {\n prefix: 'fal',\n iconName: 'tv-retro',\n icon: [512, 512, [], \"f401\", \"M416 243v-8c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12zm96-100v288c0 26.5-21.5 48-48 48h-16v33h-16l-11-33H91l-11 33H64v-33H48c-26.5 0-48-21.5-48-48V143c0-26.5 21.5-48 48-48h160.1l-74.8-67.1c-6.6-5.9-7.2-16-1.3-22.6 5.9-6.6 16-7.2 22.6-1.3L256 95h.8L357.3 4.1c6.6-5.9 16.7-5.4 22.6 1.2 5.9 6.6 5.4 16.7-1.2 22.6L304.5 95H464c26.5 0 48 21.5 48 48zm-32 0c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V143zm-256 49c-68.8 0-106.2 2.3-125.3 4.3-1.3 14.4-2.7 41.5-2.7 90.7 0 50.5 1.4 78 2.7 92.8 19.2 1.9 56.5 4.2 125.3 4.2s106.1-2.3 125.3-4.2c1.3-14.7 2.7-42.3 2.7-92.8 0-49.2-1.4-76.3-2.7-90.7-19.1-2-56.5-4.3-125.3-4.3m0-32c128 0 152 8 152 8s8 0 8 119c0 121-8 121-8 121s-24 8-152 8-152-8-152-8-8 0-8-121c0-119 8-119 8-119s24-8 152-8zm204 159h8c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-8c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12z\"]\n};\nvar faTypewriter = {\n prefix: 'fal',\n iconName: 'typewriter',\n icon: [512, 512, [], \"f8e7\", \"M312 384h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm64 0h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-256 0h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm360-192h-32v-82.73a32.07 32.07 0 0 0-9.38-22.65L361.38 9.38A32 32 0 0 0 338.75 0H112a48 48 0 0 0-48 48v144H32a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32v128a64 64 0 0 0 64 64h320a64 64 0 0 0 64-64V320a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32zM352 45.25L402.75 96H352zM96 48a16 16 0 0 1 16-16h208v64a32 32 0 0 0 32 32h64v64h-50.75a32 32 0 0 0-22.62 9.37l-13.26 13.26a32 32 0 0 1-22.62 9.37h-101.5a32 32 0 0 1-22.62-9.37l-13.26-13.26a32 32 0 0 0-22.62-9.37H96zm352 400a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V320h384zm32-160H32v-64h114.75L160 237.25A63.58 63.58 0 0 0 205.25 256h101.5A63.58 63.58 0 0 0 352 237.25L365.25 224H480zM144 440a8 8 0 0 0 8 8h208a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H152a8 8 0 0 0-8 8zm40-56h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm64 0h16a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\"]\n};\nvar faUfo = {\n prefix: 'fal',\n iconName: 'ufo',\n icon: [640, 512, [], \"e047\", \"M320,344a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,320,344ZM128,296a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,128,296Zm384,0a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,512,296Zm-21.00391-83.79883C479.42969,128.63672,407.25977,64,320,64S160.57031,128.63672,149.00391,212.20117C59.7207,234.9043,0,274.54688,0,320c0,70.69141,143.26953,128,320,128s320-57.30859,320-128C640,274.54688,580.2793,234.9043,490.99609,212.20117ZM320,96c77.76172,0,140.80078,62.51562,140.80078,139.63672,0,6.26953-1.05273,12.25586-1.86133,18.30664A299.64457,299.64457,0,0,1,320,288a299.64457,299.64457,0,0,1-138.93945-34.05664c-.8086-6.05078-1.86133-12.03711-1.86133-18.30664C179.19922,158.51562,242.23828,96,320,96Zm0,320c-175.80664,0-288-56.85742-288-96,0-24.00977,42.82031-54.46875,116.05859-74.58984.543,5.31.12628,4.44162,1.28321,12.77148a31.99835,31.99835,0,0,0,16.92578,24.13672A333.93177,333.93177,0,0,0,320,320a333.93177,333.93177,0,0,0,153.73242-37.68164,31.99835,31.99835,0,0,0,16.92578-24.13672c1.15479-8.31444.74077-7.466,1.28321-12.77344C565.17969,265.5293,608,295.99023,608,320,608,359.14258,495.80664,416,320,416Z\"]\n};\nvar faUfoBeam = {\n prefix: 'fal',\n iconName: 'ufo-beam',\n icon: [640, 512, [], \"e048\", \"M320,216.00007a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,320,216.00007Zm-168-32a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,152,184.00007Zm336,0a24,24,0,1,0,24,24A23.99993,23.99993,0,0,0,488,184.00007Zm120,24c0-40.92969-56.92578-76.45312-141.21875-95.98633C449.06445,47.33015,389.36523.00007,320,.00007S190.93555,47.33015,173.21875,112.01374C88.92578,131.547,32,167.07038,32,208.00007c0,61.85547,128.94141,112,288,112S608,269.85554,608,208.00007Zm-288-176a119.89847,119.89847,0,0,1,119.79883,110.957c-35.75586,10.84571-76.4961,17.043-119.79883,17.043s-84.043-6.19726-119.79883-17.043A119.89847,119.89847,0,0,1,320,32.00007Zm0,256c-165.64062,0-256-52.84765-256-80,0-17.13672,36.58008-44.332,104.79492-62.1875,1.17774,12.77539,9.51172,23.94336,22.11719,27.76758C231.209,185.80281,274.64062,192.00007,320,192.00007s88.791-6.19726,129.08789-18.41992c12.60547-3.82422,20.93945-14.99219,22.11719-27.76758C539.41992,163.668,576,190.86335,576,208.00007,576,235.15242,485.64062,288.00007,320,288.00007Zm200.9082,34.252c-9.98828,3.41016-20.30664,6.59571-31.08984,9.42579L578.5293,507.57624a8.00084,8.00084,0,0,0,10.73242,3.57813l14.31445-7.1582a8.00142,8.00142,0,0,0,3.57813-10.73243ZM32.8457,493.26374a8.00142,8.00142,0,0,0,3.57813,10.73243l14.31445,7.1582a8.00084,8.00084,0,0,0,10.73242-3.57813l88.71094-175.89843c-10.7832-2.83008-21.10156-6.01563-31.08984-9.42579Z\"]\n};\nvar faUmbrella = {\n prefix: 'fal',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.2 253.8C545.9 130.8 430.5 54.5 304 48.4V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v32.4C146 54.4 30.9 129.9.8 253.7c-6 23.9 22.8 44.1 44.1 25.1 49.5-46.1 89.9-27.7 125.4 27.7 11.4 17.8 34.8 16.9 45.6 0 15.2-23.5 31.2-45 56.2-51.5v193.1c0 17.7-14.3 32-32 32-13.6 0-25.7-8.6-30.2-21.3-3-8.3-12.1-12.7-20.4-9.8-8.3 2.9-12.7 12.1-9.7 20.4 9 25.5 33.3 42.7 60.4 42.7 35.3 0 64-28.7 64-64V255.2c30.1 8.3 44.6 33.3 56.2 51.2 10.8 17 34.3 17.7 45.6 0 36.2-55.9 76.6-73 125.4-27.7 20.9 18.9 49.7-1 43.8-24.9zm-191.9 28.7C359 242.8 325.4 221 288 221c-44.5 0-71.6 27-94.7 61.5-41.6-67.8-107.5-77.5-156.1-39.3C72.1 138.7 178.8 80 288 80c109.3 0 217 59.3 251.2 163.7-58.3-43.9-114.1-21.9-155.9 38.8z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fal',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M443.48 18.08C409.77 5.81 375.31 0 341.41 0c-90.47 0-176.84 41.45-233.44 112.33-6.7 8.39-2.67 21.04 7.42 24.71l236.15 85.95L257.99 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h560c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H292.03l89.56-246.07 236.75 86.17c1.83.67 3.7.98 5.53.98 8.27 0 15.82-6.35 16.04-15.14 3.03-124.66-72.77-242.85-196.43-287.86zm-295.31 96.84C198.11 62.64 268.77 32 341.42 32c7.81 0 15.6.35 23.36 1.04-36.87 23.16-73.76 66.62-103.06 123.21l-113.55-41.33zm315.21 114.73l-171.12-62.28C332.69 90.93 384.89 46.1 420.4 46.09c4.35 0 8.32.68 12.13 2.06 19.56 7.12 33.97 35.16 38.56 75 3.66 31.83.53 68.45-7.71 106.5zm30.8 11.21c13.83-61.57 13.67-118.28.7-159.64 65.33 46.08 107.58 119.45 112.61 200.89l-113.31-41.25z\"]\n};\nvar faUnderline = {\n prefix: 'fal',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M440 0H296a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v224a128 128 0 0 1-256 0V32h56a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h56v224c0 88.22 71.78 160 160 160s160-71.78 160-160V32h56a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8zm0 480H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faUndo = {\n prefix: 'fal',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M20 8h10c6.627 0 12 5.373 12 12v110.625C85.196 57.047 165.239 7.715 256.793 8.001 393.18 8.428 504.213 120.009 504 256.396 503.786 393.181 392.834 504 256 504c-63.926 0-122.202-24.187-166.178-63.908-5.113-4.618-5.354-12.561-.482-17.433l7.069-7.069c4.503-4.503 11.749-4.714 16.482-.454C150.782 449.238 200.935 470 256 470c117.744 0 214-95.331 214-214 0-117.744-95.331-214-214-214-82.862 0-154.737 47.077-190.289 116H180c6.627 0 12 5.373 12 12v10c0 6.627-5.373 12-12 12H20c-6.627 0-12-5.373-12-12V20c0-6.627 5.373-12 12-12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fal',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M256.2 8c-57 0-109.5 19.2-151.5 51.5L54.6 9.4C34.6-10.7 0 3.5 0 32v128c0 17.7 14.3 32 32 32h128c28.5 0 42.7-34.5 22.6-54.6L129 83.7C165.3 56.9 209.5 42 256 42c118.4 0 214 96 214 214 0 118.4-96 214-214 214-53.7 0-104.2-19.8-143.1-54.9-4.7-4.3-12-4-16.5.5l-7.1 7.1c-4.9 4.9-4.6 12.8.5 17.4 44 39.7 102.3 63.9 166.2 63.9 136.8 0 247.7-110.8 248-247.5S392.8 8.1 256.2 8zM160 160H32V32z\"]\n};\nvar faUnicorn = {\n prefix: 'fal',\n iconName: 'unicorn',\n icon: [640, 512, [], \"f727\", \"M448 80c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm183.98-16h-96.93l-.24-.3c5.39-9.45 8.38-20.32 8.38-31.7 0-17.67-14.33-32-32-32H400c-70.58 0-128 57.42-128 128H163.36c-35.98 0-67.27 19.42-84.7 48.13C35.11 176.87 0 212.28 0 256v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56c0-21.5 14.23-39.48 33.71-45.59-.96 5.54-1.71 11.15-1.71 16.96 0 24.2 8.9 47.33 24.53 65.24l-21.97 74.27c-3.12 10.77-3.38 22.03-.8 32.74l21.13 87.86C90.34 501.86 103.21 512 118 512h57.53c20.95 0 36.12-19.76 31.02-39.86l-21.68-85.57 19.29-53.73L256 344.36V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V323.8c20.5-21.5 32-49.75 32-79.59v-50.52l14.55 21.82c19.11 28.67 49.98 20.67 55.45 18.8l25.52-8.71c19.44-6.63 32.5-24.89 32.49-45.44l-.03-64.83 92.46-36.67c6.57-4.39 3.46-14.66-4.46-14.66zM501.17 195.31l-25.52 8.71c-9.33 3.19-16.14-2.76-18.48-6.27L432 160l-48-16v100.21c0 26.67-12.65 50.17-32 65.6V480h-64V318.69l-104.43-23.21-32.12 89.47L175.53 480H118l-21.13-87.86a31.698 31.698 0 0 1 .37-16.18l27.63-93.41C107.45 270.37 96 250.24 96 227.37c0-37.21 30.16-67.37 67.37-67.37H304v-32c0-53.02 42.98-96 96-96h111.19c0 13.29-8.1 24.66-19.63 29.5l20.39 24.78.05 93.88a16 16 0 0 1-10.83 15.15z\"]\n};\nvar faUnion = {\n prefix: 'fal',\n iconName: 'union',\n icon: [320, 512, [], \"f6a2\", \"M170.65 447.65C255.69 442.15 320 367.74 320 282.52V72c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v211.48c0 68.11-51.28 127.67-119.24 132.22C94.24 420.7 32 361.48 32 288V72c0-4.42-3.58-8-8-8H8c-4.42 0-8 3.58-8 8v216c0 91.89 77.46 165.69 170.65 159.65z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fal',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 464c-118.663 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.663 0 216 96.055 216 216 0 118.663-96.055 216-216 216zm139.701-299.677c2.03 8.601-3.296 17.218-11.896 19.249-31.006 7.321-59.956 13.775-88.689 17.114.535 114.852 13.167 139.988 27.255 176.036 4.02 10.289-1.063 21.888-11.352 25.906-10.296 4.022-21.89-1.069-25.906-11.352-9.319-23.841-18.551-44.565-24.271-87.277h-9.685c-5.728 42.773-14.986 63.515-24.27 87.276-4.023 10.299-15.633 15.369-25.906 11.353-10.289-4.019-15.371-15.617-11.353-25.906 14.103-36.083 26.72-61.235 27.255-176.036-28.734-3.339-57.683-9.793-88.689-17.114-8.6-2.031-13.926-10.648-11.895-19.249 2.03-8.6 10.647-13.926 19.249-11.896 105.222 24.845 135.48 24.893 240.904 0 8.599-2.022 17.218 3.297 19.249 11.896zm-177.895-42.517c0-21.094 17.1-38.193 38.194-38.193s38.194 17.1 38.194 38.193S277.094 168 256 168s-38.194-17.1-38.194-38.194z\"]\n};\nvar faUniversity = {\n prefix: 'fal',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 448h-16v-40c0-13.255-10.745-24-24-24h-40V208h-32v176h-64V208h-32v176h-64V208h-32v176h-64V208H96v176H56c-13.255 0-24 10.745-24 24v40H16c-8.837 0-16 7.163-16 16v8a8 8 0 0 0 8 8h496a8 8 0 0 0 8-8v-8c0-8.837-7.163-16-16-16zM64 416h384v32H64v-32zm440.267-280L271.179 34.463a48.004 48.004 0 0 0-30.358 0L7.733 136A11.999 11.999 0 0 0 0 147.216V156c0 6.627 5.373 12 12 12h20v12c0 6.627 5.373 12 12 12h424c6.627 0 12-5.373 12-12v-12h20c6.627 0 12-5.373 12-12v-8.784c0-4.982-3.077-9.445-7.733-11.216zM448 160H64v-13.606l187.943-81.871a16.004 16.004 0 0 1 8.114 0L448 146.394V160z\"]\n};\nvar faUnlink = {\n prefix: 'fal',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M207.889 137.235c-4.686-4.686-4.686-12.284 0-16.971l82.159-82.159c50.81-50.813 133.046-50.803 183.848 0 50.812 50.81 50.802 133.048-.001 183.847l-82.159 82.159c-4.686 4.686-12.284 4.686-16.971 0l-8.485-8.485c-4.686-4.686-4.686-12.284 0-16.971l82.159-82.159c36.739-36.741 36.735-96.2 0-132.936-36.741-36.741-96.199-36.736-132.937-.001l-82.159 82.159c-4.686 4.686-12.284 4.686-16.971 0l-8.483-8.483zm-11.391 311.294c-36.65 36.65-96.286 36.651-132.937-.001-36.736-36.736-36.739-96.194 0-132.936l82.19-82.19c4.686-4.686 4.686-12.284 0-16.971l-8.485-8.485c-4.686-4.686-12.284-4.686-16.971 0l-82.19 82.189c-50.802 50.8-50.813 133.038 0 183.848 50.686 50.688 133.162 50.687 183.847 0l82.19-82.19c4.686-4.686 4.686-12.284 0-16.971l-8.484-8.484c-4.686-4.686-12.284-4.686-16.971 0l-82.189 82.191zM11.999 3.515L3.514 12c-4.686 4.686-4.686 12.284 0 16.971L483.03 508.485c4.686 4.686 12.284 4.686 16.971 0l8.485-8.485c4.686-4.686 4.686-12.284 0-16.971L28.97 3.515c-4.686-4.687-12.284-4.687-16.971 0z\"]\n};\nvar faUnlock = {\n prefix: 'fal',\n iconName: 'unlock',\n icon: [384, 512, [], \"f09c\", \"M336 256H96v-96c0-70.6 25.4-128 96-128s96 57.4 96 128v20c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-18.5C320 73.1 280.9.3 192.5 0 104-.3 64 71.6 64 160v96H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm16 208c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fal',\n iconName: 'unlock-alt',\n icon: [384, 512, [], \"f13e\", \"M336 256H96v-96c0-70.6 25.4-128 96-128s96 57.4 96 128v20c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-18.5C320 73.1 280.9.3 192.5 0 104-.3 64 71.6 64 160v96H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm16 208c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v160zm-160-32c-8.8 0-16-7.2-16-16v-64c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 8.8-7.2 16-16 16z\"]\n};\nvar faUpload = {\n prefix: 'fal',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M452 432c0 11-9 20-20 20s-20-9-20-20 9-20 20-20 20 9 20 20zm-84-20c-11 0-20 9-20 20s9 20 20 20 20-9 20-20-9-20-20-20zm144-48v104c0 24.3-19.7 44-44 44H44c-24.3 0-44-19.7-44-44V364c0-24.3 19.7-44 44-44h124v-99.3h-52.7c-35.6 0-53.4-43.1-28.3-68.3L227.7 11.7c15.6-15.6 40.9-15.6 56.6 0L425 152.4c25.2 25.2 7.3 68.3-28.3 68.3H344V320h124c24.3 0 44 19.7 44 44zM200 188.7V376c0 4.4 3.6 8 8 8h96c4.4 0 8-3.6 8-8V188.7h84.7c7.1 0 10.7-8.6 5.7-13.7L261.7 34.3c-3.1-3.1-8.2-3.1-11.3 0L109.7 175c-5 5-1.5 13.7 5.7 13.7H200zM480 364c0-6.6-5.4-12-12-12H344v24c0 22.1-17.9 40-40 40h-96c-22.1 0-40-17.9-40-40v-24H44c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12V364z\"]\n};\nvar faUsbDrive = {\n prefix: 'fal',\n iconName: 'usb-drive',\n icon: [640, 512, [], \"f8e9\", \"M536 240h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm0 80h16a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-16a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16zm88-192H480v-16a16 16 0 0 0-16-16H64a64 64 0 0 0-64 64v192a64 64 0 0 0 64 64h400a16 16 0 0 0 16-16v-16h144a16 16 0 0 0 16-16V144a16 16 0 0 0-16-16zM448 384H64a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h384zm160-32H480V160h128z\"]\n};\nvar faUsdCircle = {\n prefix: 'fal',\n iconName: 'usd-circle',\n icon: [496, 512, [], \"f2e8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 464c-119.1 0-216-96.9-216-216S128.9 40 248 40s216 96.9 216 216-96.9 216-216 216zm40.3-221.3l-72-20.2c-12.1-3.4-20.6-14.4-20.6-26.7 0-15.3 12.8-27.8 28.5-27.8h45c11.2 0 21.9 3.6 30.6 10.1 3.2 2.4 7.6 2 10.4-.8l11.3-11.5c3.4-3.4 3-9-.8-12-14.6-11.6-32.6-17.9-51.6-17.9H264v-40c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v40h-7.8c-33.3 0-60.5 26.8-60.5 59.8 0 26.6 18.1 50.2 43.9 57.5l72 20.2c12.1 3.4 20.6 14.4 20.6 26.7 0 15.3-12.8 27.8-28.5 27.8h-45c-11.2 0-21.9-3.6-30.6-10.1-3.2-2.4-7.6-2-10.4.8l-11.3 11.5c-3.4 3.4-3 9 .8 12 14.6 11.6 32.6 17.9 51.6 17.9h5.2v40c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-40h7.8c33.3 0 60.5-26.8 60.5-59.8-.1-26.6-18.1-50.2-44-57.5z\"]\n};\nvar faUsdSquare = {\n prefix: 'fal',\n iconName: 'usd-square',\n icon: [448, 512, [], \"f2e9\", \"M264.3 250.7l-72-20.2c-12.1-3.4-20.6-14.4-20.6-26.7 0-15.3 12.8-27.8 28.5-27.8h45c11.2 0 21.9 3.6 30.6 10.1 3.2 2.4 7.6 2 10.4-.8l11.3-11.5c3.4-3.4 3-9-.8-12-14.6-11.6-32.6-17.9-51.6-17.9H240v-40c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v40h-7.8c-33.3 0-60.5 26.8-60.5 59.8 0 26.6 18.1 50.2 43.9 57.5l72 20.2c12.1 3.4 20.6 14.4 20.6 26.7 0 15.3-12.8 27.8-28.5 27.8h-45c-11.2 0-21.9-3.6-30.6-10.1-3.2-2.4-7.6-2-10.4.8l-11.3 11.5c-3.4 3.4-3 9 .8 12 14.6 11.6 32.6 17.9 51.6 17.9h5.2v40c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-40h7.8c33.3 0 60.5-26.8 60.5-59.8-.1-26.6-18.1-50.2-44-57.5zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h352c8.8 0 16 7.2 16 16v352z\"]\n};\nvar faUser = {\n prefix: 'fal',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M313.6 288c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zM416 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 56.5 0 102.4 45.9 102.4 102.4V464zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"]\n};\nvar faUserAlien = {\n prefix: 'fal',\n iconName: 'user-alien',\n icon: [448, 512, [], \"e04a\", \"M252,288h40a60.00047,60.00047,0,0,0,60-60V204a12.0006,12.0006,0,0,0-12-12H300a60.00047,60.00047,0,0,0-60,60v24A12.0006,12.0006,0,0,0,252,288Zm20-36a28.03146,28.03146,0,0,1,28-28h20v4a28.03146,28.03146,0,0,1-28,28H272Zm-76,36a12.0006,12.0006,0,0,0,12-12V252a60.00047,60.00047,0,0,0-60-60H108a12.0006,12.0006,0,0,0-12,12v24a60.00047,60.00047,0,0,0,60,60Zm-68-60v-4h20a28.03146,28.03146,0,0,1,28,28v4H156A28.03146,28.03146,0,0,1,128,228ZM352,352h-8.81445c39.14843-43.77734,72.8789-96.6582,72.8789-149.36719C416.06445,76.73633,330.05273,0,224,0,117.918,0,31.93555,76.73633,31.93555,202.63281c0,52.709,33.73047,105.58985,72.8789,149.36719H96A95.99975,95.99975,0,0,0,0,448v16a47.99987,47.99987,0,0,0,48,48H400a47.99987,47.99987,0,0,0,48-48V448A95.99975,95.99975,0,0,0,352,352ZM63.93555,202.63281C63.93555,100.57227,128.25977,32,224,32s160.06445,68.57227,160.06445,170.63281c0,87.58789-121.332,185.05664-158.51953,212.84571a2.5483,2.5483,0,0,1-3.0918-.002C185.26758,387.68945,63.93555,290.2207,63.93555,202.63281ZM416,464a16.01833,16.01833,0,0,1-16,16H48a16.01833,16.01833,0,0,1-16-16V448a64.07333,64.07333,0,0,1,64-64h39.79883a744.84828,744.84828,0,0,0,67.5,57.11133,34.54892,34.54892,0,0,0,41.40234,0A744.84828,744.84828,0,0,0,312.20117,384H352a64.07333,64.07333,0,0,1,64,64Z\"]\n};\nvar faUserAlt = {\n prefix: 'fal',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 32c61.8 0 112 50.2 112 112s-50.2 112-112 112-112-50.2-112-112S194.2 32 256 32m128 320c52.9 0 96 43.1 96 96v32H32v-32c0-52.9 43.1-96 96-96 85 0 67.3 16 128 16 60.9 0 42.9-16 128-16M256 0c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144S335.5 0 256 0zm128 320c-92.4 0-71 16-128 16-56.8 0-35.7-16-128-16C57.3 320 0 377.3 0 448v32c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-32c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fal',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M637 485.2L23 1.8C19.6-1 14.5-.4 11.8 3l-10 12.5C-1 19-.4 24 3 26.8l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.6 2.2-8.6-1.2-11.4zM320 32c61.8 0 112 50.2 112 112 0 34.8-16.3 65.6-41.3 86.2l25.6 20.2C445.4 224 464 186.3 464 144 464 64.5 399.5 0 320 0c-54.6 0-101.4 30.7-125.9 75.4l25.4 20C237.7 58 275.7 32 320 32zM96 480v-32c0-52.9 43.1-96 96-96h36.8c22.4 0 40.3 16 91.2 16 11.7 0 23.3-1.1 34.8-3.1l-36.9-29.1c-46.2-.6-59.3-15.8-89.2-15.8H192c-70.7 0-128 57.3-128 128v32c0 17.7 14.3 32 32 32h445.6L501 480H96z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fal',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M288 128H160c-35.3 0-64 28.7-64 64v16c0 61.8 50.2 112 112 112h32c61.8 0 112-50.2 112-112v-16c0-35.3-28.7-64-64-64zm32 80c0 44.1-35.9 80-80 80h-32c-44.1 0-80-35.9-80-80v-16c0-17.6 14.3-32 32-32h128c17.7 0 32 14.4 32 32v16zm-128-32l-12 36-36 12 36 12 12 36 12-36 36-12-36-12-12-36zm112 224H144c-26.5 0-48 21.5-48 48v56c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v56c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56c0-26.5-21.5-48-48-48zm-32 48c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v40c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-40c0-8.8-7.2-16-16-16zm183.2-119.7c20.3-20.1 35.9-44.8 45.7-72.3H416c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-11.2C378.5 53.5 307.6 0 224 0S69.5 53.5 43.2 128H32c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h11.2c9.7 27.5 25.4 52.2 45.7 72.3C37.1 347 0 396.2 0 454.4V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-49.6c0-51.6 38.5-94 88.3-101C150.2 372.7 185.8 384 224 384s73.8-11.3 103.7-30.6c49.8 6.9 88.3 49.3 88.3 101V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-49.6c0-58.2-37.1-107.4-88.8-126.1zM224 352c-88.2 0-160-71.8-160-160S135.8 32 224 32s160 71.8 160 160-71.8 160-160 160z\"]\n};\nvar faUserChart = {\n prefix: 'fal',\n iconName: 'user-chart',\n icon: [640, 512, [], \"f6a3\", \"M608 0H192c-17.67 0-32 14.33-32 32v96c-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-41.74-26.8-76.9-64-90.12V32h416v352H305.34c-.59-.94-1.03-1.96-1.65-2.88-17.25-25.62-46.67-39.11-76.9-39.11C199 342.02 192.02 352 160 352c-31.97 0-38.95-9.98-66.79-9.98-30.23 0-59.65 13.48-76.9 39.11C6.01 396.42 0 414.84 0 434.67V472c0 22.09 17.91 40 40 40h240c22.09 0 40-17.91 40-40v-37.33c0-6.41-.84-12.6-2.04-18.67H608c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zM224 224c0 35.29-28.71 64-64 64s-64-28.71-64-64 28.71-64 64-64 64 28.71 64 64zm64 248c0 4.41-3.59 8-8 8H40c-4.41 0-8-3.59-8-8v-37.33c0-12.79 3.75-25.13 10.85-35.67 10.53-15.64 29.35-24.98 50.36-24.98 21.8 0 29.99 9.98 66.79 9.98 36.79 0 45.01-9.98 66.79-9.98 21 0 39.83 9.34 50.36 24.98 7.1 10.54 10.85 22.88 10.85 35.67V472zm50.62-319.31c-9.38-9.38-24.56-9.38-33.94 0l-25.49 25.49c4.56 11.72 7.3 24.17 8.21 37.04l34.25-34.25L384.69 244c4.69 4.69 10.81 7.02 16.97 7.02s12.28-2.33 16.97-7.02l58.97-58.97 33.24 33.24c3.96 3.96 8.82 5.73 13.6 5.73 9.99 0 19.57-7.76 19.57-19.47v-95.58c0-7.15-5.8-12.95-12.95-12.95h-95.58c-17.31 0-25.98 20.93-13.74 33.17l33.24 33.24-53.31 53.31-63.05-63.03zM512 128v46.18L465.82 128H512z\"]\n};\nvar faUserCheck = {\n prefix: 'fal',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M637.7 144.6l-14.1-14.2c-3.1-3.1-8.2-3.2-11.3 0L497.1 242.1l-53.3-53.4c-3.1-3.1-8.2-3.1-11.3 0l-14.2 14.1c-3.1 3.1-3.1 8.2 0 11.3l70.2 70.4c4.7 4.7 12.3 4.7 17 0l132.1-128.6c3.2-3.1 3.2-8.2.1-11.3zM313.6 288c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zM416 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 56.5 0 102.4 45.9 102.4 102.4V464zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"]\n};\nvar faUserCircle = {\n prefix: 'fal',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm128 421.6c-35.9 26.5-80.1 42.4-128 42.4s-92.1-15.9-128-42.4V416c0-35.3 28.7-64 64-64 11.1 0 27.5 11.4 64 11.4 36.6 0 52.8-11.4 64-11.4 35.3 0 64 28.7 64 64v13.6zm30.6-27.5c-6.8-46.4-46.3-82.1-94.6-82.1-20.5 0-30.4 11.4-64 11.4S204.6 320 184 320c-48.3 0-87.8 35.7-94.6 82.1C53.9 363.6 32 312.4 32 256c0-119.1 96.9-216 216-216s216 96.9 216 216c0 56.4-21.9 107.6-57.4 146.1zM248 120c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 144c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"]\n};\nvar faUserClock = {\n prefix: 'fal',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm272 192c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm0 256c-61.8 0-112-50.2-112-112s50.2-112 112-112 112 50.2 112 112-50.2 112-112 112zm-135.8 0H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 4.4 0 8.6.8 12.9 1.3 2.9-10.7 6.9-21 11.7-30.8-8-1.5-16.1-2.5-24.5-2.5-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h346.9c-12.9-9.1-24.7-19.8-34.7-32zm190.1-128H512v-54.3c0-5.3-4.4-9.7-9.7-9.7h-12.6c-5.3 0-9.7 4.4-9.7 9.7v76.6c0 5.3 4.4 9.7 9.7 9.7h60.6c5.3 0 9.7-4.4 9.7-9.7v-12.6c0-5.3-4.4-9.7-9.7-9.7z\"]\n};\nvar faUserCog = {\n prefix: 'fal',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M628.3 358.3l-16.5-9.5c.8-8.5.8-17.1 0-25.6l16.6-9.5c9.5-5.5 13.8-16.7 10.5-27-7.2-23.4-19.9-45.4-36.7-63.5-7.4-8.1-19.3-9.9-28.7-4.4l-16.5 9.5c-7-5-14.4-9.3-22.2-12.8v-19c0-11-7.5-20.3-18.2-22.7-23.9-5.4-49.3-5.4-73.2 0-10.7 2.4-18.2 11.8-18.2 22.7v19c-7.8 3.5-15.2 7.8-22.2 12.8l-16.5-9.5c-9.5-5.5-21.3-3.7-28.7 4.4-16.7 18.1-29.4 40.1-36.7 63.4-3.3 10.4 1.2 21.8 10.6 27.2l16.5 9.5c-.8 8.5-.8 17.1 0 25.6l-16.6 9.5c-9.3 5.4-13.8 16.9-10.5 27.1 7.2 23.4 19.9 45.4 36.7 63.5 7.4 8 19.2 9.8 28.7 4.4l16.5-9.5c7 5 14.4 9.3 22.2 12.8v19c0 11 7.5 20.3 18.2 22.7 12 2.7 24.3 4 36.6 4s24.7-1.3 36.6-4c10.7-2.4 18.2-11.8 18.2-22.7v-19c7.8-3.5 15.2-7.8 22.2-12.8l16.5 9.5c9.4 5.4 21.3 3.6 28.7-4.4 16.7-18.1 29.4-40.1 36.7-63.4 3.3-10.4-1.2-21.9-10.6-27.3zm-51.6 7.2l29.4 17c-5.2 14.3-13 27.8-22.8 39.5l-29.4-17c-21.4 18.3-24.5 20.1-51.1 29.5v34c-15.1 2.6-30.6 2.6-45.6 0v-34c-26.9-9.5-30.2-11.7-51.1-29.5l-29.4 17c-9.8-11.8-17.6-25.2-22.8-39.5l29.4-17c-4.9-26.8-5.2-30.6 0-59l-29.4-17c5.2-14.3 13-27.7 22.8-39.5l29.4 17c21.4-18.3 24.5-20.1 51.1-29.5v-34c15.1-2.5 30.7-2.5 45.6 0v34c26.8 9.5 30.2 11.6 51.1 29.5l29.4-17c9.8 11.8 17.6 25.2 22.8 39.5l-29.4 17c4.9 26.8 5.2 30.6 0 59zm-96.7-94c-35.6 0-64.5 29-64.5 64.5s28.9 64.5 64.5 64.5 64.5-29 64.5-64.5-28.9-64.5-64.5-64.5zm0 97c-17.9 0-32.5-14.6-32.5-32.5s14.6-32.5 32.5-32.5 32.5 14.6 32.5 32.5-14.6 32.5-32.5 32.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zM48 480c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 19.2 0 38-3.3 56.5-8.7.5-11.6 1.8-23 4.2-34-8.9 2.7-30.1 10.7-60.7 10.7-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h337c-16-8.6-30.6-19.5-43.5-32H48z\"]\n};\nvar faUserCowboy = {\n prefix: 'fal',\n iconName: 'user-cowboy',\n icon: [448, 512, [], \"f8ea\", \"M99.46 165.1A150.52 150.52 0 0 0 96 192a128 128 0 0 0 256 0 150.48 150.48 0 0 0-3.5-27.07c72.19-35.62 97.88-93.86 98.25-94.7a16 16 0 0 0-29.47-12.53c-1.16 2.67-19.77 43.52-71.21 72.78C336.2 80.21 314.75 0 278.1 0c-10.33 0-19.55 4.45-27.3 10.47a42.32 42.32 0 0 1-26 8.93 42.32 42.32 0 0 1-26-8.93C191 4.45 181.76 0 171.43 0c-36.78 0-58.26 80.78-68.08 131-52.26-29.32-71.51-70.75-72.69-73.44a16 16 0 0 0-29.28 13c1.52 3.38 27.44 59.81 98.08 94.54zm73.4-132.88a19.71 19.71 0 0 1 6.23 3.51 74.77 74.77 0 0 0 45.67 15.67 74.83 74.83 0 0 0 45.68-15.66 19.57 19.57 0 0 1 6.23-3.52c9.17 6.89 26.59 41.8 39.5 112.27v.06C291.24 153.84 260.85 160 224 160c-36.13 0-66-6-90.71-15.1 12.9-70.71 30.37-105.77 39.57-112.68zm-43.27 145C156.07 186.12 187.12 192 224 192s67.91-5.92 94.4-14.87A95 95 0 0 1 320 192a96 96 0 0 1-192 0 95.31 95.31 0 0 1 1.59-14.8zm184 174.8c-28.72 0-42.43 16-89.59 16s-60.88-16-89.56-16A134.46 134.46 0 0 0 0 486.41 25.61 25.61 0 0 0 25.59 512H422.4a25.61 25.61 0 0 0 25.6-25.59A134.46 134.46 0 0 0 313.59 352zM32.19 480c3.4-52.94 49.18-95.95 102.25-96 19.81 0 38.93 16 89.56 16 51 0 69.59-16 89.59-16 53 .06 98.85 43.08 102.22 96z\"]\n};\nvar faUserCrown = {\n prefix: 'fal',\n iconName: 'user-crown',\n icon: [448, 512, [], \"f6a4\", \"M313.6 320c-28.71 0-42.6 16-89.6 16-47.09 0-60.82-16-89.6-16C60.17 320 0 380.17 0 454.4v9.6c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-9.6c0-74.23-60.17-134.4-134.4-134.4zM416 464c0 8.82-7.18 16-16 16H48c-8.82 0-16-7.18-16-16v-9.6C32 397.94 77.94 352 134.4 352c19.38 0 39.33 16 89.6 16 49.4 0 70.66-16 89.6-16 56.46 0 102.4 45.94 102.4 102.4v9.6zM224 288c70.7 0 128-57.31 128-128V0l-64 32-64-32-64 32L96 0v160c0 70.69 57.31 128 128 128zM128 51.78l32 16 64-32 64 32 32-16V112H128V51.78zm0 92.22h192v16c0 52.93-43.06 96-96 96s-96-43.07-96-96v-16z\"]\n};\nvar faUserEdit = {\n prefix: 'fal',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm406.6 204.1l-34.7-34.7c-6.3-6.3-14.5-9.4-22.8-9.4-8.2 0-16.5 3.1-22.8 9.4L327.8 424l-7.6 68.2c-1.2 10.7 7.2 19.8 17.7 19.8.7 0 1.3 0 2-.1l68.2-7.6 222.5-222.5c12.5-12.7 12.5-33.1 0-45.7zM393.3 473.7l-39.4 4.5 4.4-39.5 156.9-156.9 35 35-156.9 156.9zm179.5-179.5l-35-35L573 224h.1l.2.1 34.7 35-35.2 35.1zM134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 20.7 0 39.9 6.3 56 16.9l22.8-22.8c-22.2-16.2-49.3-26-78.8-26-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h243.5c-2.8-7.4-4.1-15.4-3.2-23.4l1-8.6H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320z\"]\n};\nvar faUserFriends = {\n prefix: 'fal',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm0-160c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm0-192c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80zm80.1 212c-33.4 0-41.7 12-80.1 12-38.4 0-46.7-12-80.1-12-36.3 0-71.6 16.2-92.3 46.9C7.2 341.3 0 363.4 0 387.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-44.8c0-23.8-7.2-45.9-19.6-64.3-20.7-30.7-56-46.9-92.3-46.9zM352 432c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-44.8c0-16.6 4.9-32.7 14.1-46.4 13.8-20.5 38.4-32.8 65.7-32.8 27.4 0 37.2 12 80.2 12s52.8-12 80.1-12c27.3 0 51.9 12.3 65.7 32.8 9.2 13.7 14.1 29.8 14.1 46.4V432zm271.7-114.9C606.4 291.5 577 278 546.8 278c-27.8 0-34.8 10-66.8 10s-39-10-66.8-10c-13.2 0-26.1 3-38.1 8.1 15.2 15.4 18.5 23.6 20.2 26.6 5.7-1.6 11.6-2.6 17.9-2.6 21.8 0 30 10 66.8 10s45-10 66.8-10c21 0 39.8 9.3 50.4 25 7.1 10.5 10.9 22.9 10.9 35.7V408c0 4.4-3.6 8-8 8H416c0 17.7.3 22.5-1.6 32H600c22.1 0 40-17.9 40-40v-37.3c0-19.9-6-38.3-16.3-53.6z\"]\n};\nvar faUserGraduate = {\n prefix: 'fal',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 400l-95.4-79.4C110.2 321.4 0 336.1 0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48 0-127.9-110.1-142.6-128.6-143.4zM208 480H48c-8.8 0-16-7.2-16-16 0-99.6 84.1-109.9 86.4-110.3l89.6 74.6V480zm208-16c0 8.8-7.2 16-16 16H240v-51.7l89.6-74.6c2.3.4 86.4 10.7 86.4 110.3zM13.2 100l6.8 2v37.6c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3v-30.5L90.7 123C84 139.4 80 157.2 80 176c0 79.5 64.5 144 144 144s144-64.5 144-144c0-18.8-4-36.6-10.7-53l77.5-23c17.6-5.2 17.6-34.8 0-40L240.9 2.5C235.3.8 229.7 0 224 0s-11.3.8-16.9 2.5L13.2 60c-17.6 5.2-17.6 34.8 0 40zM224 288c-61.8 0-112-50.2-112-112 0-15.7 3.7-30.3 9.6-43.8l85.5 25.4c14.8 4.4 27.2 2 33.8 0l85.5-25.4c5.9 13.5 9.6 28.2 9.6 43.8 0 61.8-50.2 112-112 112zm-7.8-254.9c.8-.2 7.3-2.4 15.6 0l158 46.9-158 46.9c-.8.2-7.3 2.4-15.6 0L58.2 80l158-46.9z\"]\n};\nvar faUserHardHat = {\n prefix: 'fal',\n iconName: 'user-hard-hat',\n icon: [448, 512, [], \"f82c\", \"M313.6 352c-28.72 0-42.45 16-89.6 16s-60.88-16-89.56-16A134.4 134.4 0 0 0 0 486.4 25.6 25.6 0 0 0 25.6 512h396.8a25.6 25.6 0 0 0 25.6-25.6A134.4 134.4 0 0 0 313.6 352zM32.2 480a102.54 102.54 0 0 1 102.24-96c19.82 0 38.92 16 89.56 16 51 0 69.6-16 89.6-16a102.53 102.53 0 0 1 102.2 96zM88 160h12.66A124.32 124.32 0 0 0 96 192a128 128 0 0 0 256 0 124.32 124.32 0 0 0-4.66-32H360a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8h-8c0-51.52-35-94.46-82.33-107.52A31.89 31.89 0 0 0 240 0h-32a31.89 31.89 0 0 0-29.67 20.48C131 33.54 96 76.48 96 128h-8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zM272 54.91A79.94 79.94 0 0 1 320 128h-48zM208 32h32v96h-32zm-80 96a79.94 79.94 0 0 1 48-73.09V128zm6 32h180a92 92 0 0 1 6 32 96 96 0 0 1-192 0 92 92 0 0 1 6-32z\"]\n};\nvar faUserHeadset = {\n prefix: 'fal',\n iconName: 'user-headset',\n icon: [448, 512, [], \"f82d\", \"M320 352h-4.7c-12.16 0-24 2.9-35.5 6.8a173.76 173.76 0 0 1-111.64 0c-11.48-3.9-23.29-6.78-35.42-6.78H128A128 128 0 0 0 0 480a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32 128 128 0 0 0-128-128zM32 480a96.1 96.1 0 0 1 96-96h4.74c6.92 0 14.92 1.62 25.16 5.09a205.75 205.75 0 0 0 132.16 0c10.31-3.49 18.33-5.11 25.24-5.11h4.7a96.1 96.1 0 0 1 96 96zm16-256a16 16 0 0 0 16-16v-16c0-88.22 71.78-160 160-160s160 71.78 160 160v16a80.09 80.09 0 0 1-80 80h-32a32 32 0 0 0-32-32h-32a32 32 0 0 0 0 64h96a112.14 112.14 0 0 0 112-112v-16C416 86.12 329.88 0 224 0S32 86.12 32 192v16a16 16 0 0 0 16 16zM224 96a95.57 95.57 0 0 1 71.23 159.76c0 .09.13.15.18.24H304a47.89 47.89 0 0 0 40.55-22.58C349 220.36 352 206.58 352 192a128 128 0 0 0-256 0c0 40.42 19.1 76 48.35 99.47-.06-1.17-.35-2.28-.35-3.47a63.25 63.25 0 0 1 8.93-32A95.58 95.58 0 0 1 224 96z\"]\n};\nvar faUserInjured = {\n prefix: 'fal',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M313.6 288c-11.04 0-21.78 2.6-32.2 6.24-18 6.28-37.28 9.76-57.4 9.76-20.11 0-39.4-3.48-57.39-9.76-10.42-3.64-21.17-6.24-32.21-6.24C60.17 288 0 348.17 0 422.4V464c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4zM80 480H48c-8.82 0-16-7.18-16-16v-41.6c0-36.43 19.26-68.26 48-86.42V480zm32 0V322.64c7.23-1.62 14.69-2.64 22.4-2.64 1.47 0 3.18.36 4.75.52L210.04 480H112zm160 0h-26.93l-28.45-64H272c17.66 0 32 14.36 32 32s-14.34 32-32 32zm144-16c0 8.82-7.18 16-16 16h-72.9c5.51-9.45 8.9-20.29 8.9-32 0-35.3-28.72-64-64-64h-69.6l-23.9-53.76c14.96 3.41 30.11 5.76 45.5 5.76 23.12 0 45.98-3.89 67.95-11.55 8.69-3.04 15.57-4.45 21.65-4.45 56.46 0 102.4 45.94 102.4 102.4V464zM224 256c70.7 0 128-57.31 128-128C352 57.3 294.7 0 224 0 153.31 0 96 57.3 96 128c0 70.69 57.31 128 128 128zm90.1-160h-74.11l49.93-37.45c10.84 10.3 19.06 23.09 24.18 37.45zM224 32c13.38 0 26.1 2.78 37.68 7.75l-75 56.25H133.9c13.25-37.17 48.44-64 90.1-64zm96 96c0 52.93-43.06 96-96 96s-96-43.07-96-96h192z\"]\n};\nvar faUserLock = {\n prefix: 'fal',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M48 480a16 16 0 0 1-16-16v-41.6A102.47 102.47 0 0 1 134.4 320c19.6 0 39.1 16 89.6 16s70-16 89.6-16c2.7 0 5.3.6 7.9.8a79.45 79.45 0 0 1 13.1-30.7 132.34 132.34 0 0 0-21.1-2.1c-28.7 0-42.5 16-89.6 16s-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464a48 48 0 0 0 48 48h288.4a78.34 78.34 0 0 1-14.8-32zm176-224A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm0-224a96 96 0 1 1-96 96 96.15 96.15 0 0 1 96-96zm272 336a32 32 0 1 0 32 32 32 32 0 0 0-32-32zm96-80h-16v-48a80 80 0 0 0-160 0v48h-16a48 48 0 0 0-48 48v128a48 48 0 0 0 48 48h192a48 48 0 0 0 48-48V336a48 48 0 0 0-48-48zm-144-48a48 48 0 0 1 96 0v48h-96zm160 224a16 16 0 0 1-16 16H400a16 16 0 0 1-16-16V336a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faUserMd = {\n prefix: 'fal',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm93.7 256.1c-33.8-1-44.3 15.9-93.7 15.9-49.3 0-59.8-16.9-93.6-15.9C58 290.2 0 349.5 0 422.4V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-81.6c0-54.3 42.6-98.4 96-101.8v81.7c-23.1 6.9-40 28.3-40 53.7 0 30.9 25.1 56 56 56s56-25.1 56-56c0-25.4-16.9-46.8-40-53.7v-76.9c20.8 6.8 42.2 10.5 64 10.5 21.8 0 43.2-3.7 64-10.5v68.8c-28.2 7.5-48 34.5-48 64.6V488c0 4.2 1.7 8.3 4.7 11.3l10.3 10.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-5.7-5.7V456c0-19.4 17.4-34.8 37.4-31.6 15.7 2.6 26.6 17.4 26.6 33.3v23.6l-5.7 5.7c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l10.3-10.3c3-3 4.7-7.1 4.7-11.3v-32c0-29.7-20.5-54.5-48-61.6v-73.7c53.4 3.4 96 47.5 96 101.8V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-81.6c.2-72.9-57.8-132.2-130.1-134.3zM168 456c0 13.2-10.8 24-24 24s-24-10.8-24-24 10.8-24 24-24 24 10.8 24 24z\"]\n};\nvar faUserMdChat = {\n prefix: 'fal',\n iconName: 'user-md-chat',\n icon: [640, 512, [], \"f82e\", \"M512 0c-70.69 0-128 50.17-128 112 0 28.76 12.75 54.72 33.11 74.55a312.08 312.08 0 0 1-31.29 55.37 9.86 9.86 0 0 0-1.25 9.07c1.09 3.13 3.43 5 6.1 5 39.85 0 72.35-17.13 95.23-34.36A146 146 0 0 0 512 224c70.7 0 128-50.14 128-112S582.7 0 512 0zm0 192a114.76 114.76 0 0 1-20.38-1.84l-13.78-2.5-11.18 8.42a155.47 155.47 0 0 1-26.13 16.07c2-4.08 4-8.35 5.91-12.79l8.87-20.28-15.87-15.45C428.75 153.24 416 135.83 416 112c0-44.11 43.06-80 96-80s96 35.89 96 80-43.06 80-96 80zm-194.31 96.1c-33.8-1-44.3 15.9-93.7 15.9s-59.79-16.9-93.59-15.9A134.33 134.33 0 0 0 0 422.4V504a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-81.6c0-54.3 42.6-98.4 96-101.8v81.7a56 56 0 1 0 32 0v-76.9a200.3 200.3 0 0 0 128 0v68.8c-28.2 7.5-48 34.5-48 64.6V488a16.06 16.06 0 0 0 4.7 11.3l10.3 10.3a8 8 0 0 0 11.3 0l11.3-11.3a8 8 0 0 0 0-11.3l-5.7-5.7V456a32.14 32.14 0 0 1 37.4-31.6c15.7 2.6 26.6 17.4 26.6 33.3v23.6l-5.7 5.7a8 8 0 0 0 0 11.3l11.3 11.3a8 8 0 0 0 11.3 0l10.3-10.3a16.06 16.06 0 0 0 4.7-11.3v-32a63.8 63.8 0 0 0-48-61.6v-73.7c53.4 3.4 96 47.5 96 101.8V504a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-81.6a134 134 0 0 0-130.11-134.3zM168 456a24 24 0 1 1-24-24 24.06 24.06 0 0 1 24 24zm56-200A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm0-224a96 96 0 1 1-96 96 96.15 96.15 0 0 1 96-96z\"]\n};\nvar faUserMinus = {\n prefix: 'fal',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm408 192H424c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-318.4 64c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zM416 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 56.5 0 102.4 45.9 102.4 102.4V464z\"]\n};\nvar faUserMusic = {\n prefix: 'fal',\n iconName: 'user-music',\n icon: [640, 512, [], \"f8eb\", \"M598 97.64l-96.56 31.88C488.72 133.73 480 146 480 160v216.13C459.66 361.28 431.38 352 400 352c-61.86 0-112 35.82-112 80s50.14 80 112 80 112-35.82 112-80V288l106.12-35.37A32 32 0 0 0 640 222.27V128a32 32 0 0 0-42-30.36zM400 480c-47.14 0-80-25.3-80-48s32.86-48 80-48 80 25.3 80 48-32.86 48-80 48zm208-257.72l-96 32V160h-.56v-.13L608 128zM269.91 480H48a16 16 0 0 1-16-16v-41.59A102.49 102.49 0 0 1 134.41 320c19.59 0 39.09 16 89.59 16s70-16 89.59-16a101.48 101.48 0 0 1 36.64 7.06 184.33 184.33 0 0 1 49.49-7c-23.38-19.69-53.17-32-86.13-32-28.68 0-42.5 16-89.59 16s-60.81-16-89.59-16A134.43 134.43 0 0 0 0 422.41V464a48 48 0 0 0 48 48h250.42a113.81 113.81 0 0 1-28.51-32zM224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm0-224a96 96 0 1 1-96 96 96.14 96.14 0 0 1 96-96z\"]\n};\nvar faUserNinja = {\n prefix: 'fal',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M319.4 288.6L224 368l-95.4-79.4C57.1 291.7 0 350.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.2-57.1-130.7-128.6-133.8zM208 480H48c-8.8 0-16-7.2-16-16v-41.6c0-50.8 37.1-93 86.4-100.7 89.9 74.8 83.2 69.2 89.6 74.6V480zm208-16c0 8.8-7.2 16-16 16H240v-83.7c6.3-5.3-.2.2 89.6-74.6 49.3 7.7 86.4 49.9 86.4 100.7V464zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zM224 32c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm48 64h-96c-17.7 0-32 14.3-32 32h160c0-17.7-14.3-32-32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fal',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,318,224,413.39,128.59,318C57.09,321.09,0,379.59,0,451.8A58.23,58.23,0,0,0,58.2,510H389.8A58.23,58.23,0,0,0,448,451.8C448,379.59,390.91,321.09,319.41,318ZM208,478H58.2A26.28,26.28,0,0,1,32,451.8c0-47.46,38-92.44,84.73-100.41L208,442.66Zm181.8,0H240V442.64l91.25-91.25C378,359.36,416,404.34,416,451.8A26.28,26.28,0,0,1,389.8,478ZM224,302A128,128,0,0,0,352,174V63.82a32,32,0,0,0-20.76-30L246.47,2.07a64.06,64.06,0,0,0-44.94,0L116.76,33.86A32,32,0,0,0,96,63.82V174A128,128,0,0,0,224,302ZM128,63.82,212.77,32a32,32,0,0,1,22.47,0L320,63.82V142H128ZM320,174a96,96,0,0,1-192,0ZM259,72.67H237.33V51a5,5,0,0,0-5-5H215.67a5,5,0,0,0-5,5V72.67H189a5,5,0,0,0-5,5V94.33a5,5,0,0,0,5,5h21.67V121a5,5,0,0,0,5,5h16.66a5,5,0,0,0,5-5V99.33H259a5,5,0,0,0,5-5V77.67A5,5,0,0,0,259,72.67Z\"]\n};\nvar faUserPlus = {\n prefix: 'fal',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M632 224h-88v-88c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v88h-88c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h88v88c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-88h88c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm-318.4 64c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zM416 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 56.5 0 102.4 45.9 102.4 102.4V464zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"]\n};\nvar faUserRobot = {\n prefix: 'fal',\n iconName: 'user-robot',\n icon: [448, 512, [], \"e04b\", \"M144,288h32V256H144Zm128,0h32V256H272Zm-64,0h32V256H208Zm48,144a16,16,0,1,0,16,16A15.99954,15.99954,0,0,0,256,432ZM384,272h32a31.99908,31.99908,0,0,0,32-32V176a31.99908,31.99908,0,0,0-32-32H384V128a64.00067,64.00067,0,0,0-64-64H241.99926V18a18,18,0,1,0-36,0V64H128a64.00067,64.00067,0,0,0-64,64v16H32A31.99908,31.99908,0,0,0,0,176v64a31.99908,31.99908,0,0,0,32,32H64v16a63.57126,63.57126,0,0,0,10.32617,34.67383A95.88682,95.88682,0,0,0,0,416v64a31.99908,31.99908,0,0,0,32,32H416a31.99908,31.99908,0,0,0,32-32V416a95.88682,95.88682,0,0,0-74.32617-93.32617A63.57126,63.57126,0,0,0,384,288Zm0-96h32v64H384ZM64,240H32V176H64ZM96,128a32.03667,32.03667,0,0,1,32-32H320a32.03667,32.03667,0,0,1,32,32V288a32.03667,32.03667,0,0,1-32,32H128a32.03667,32.03667,0,0,1-32-32ZM320,480H208V448a16,16,0,0,0-32,0v32H128V432a16.00079,16.00079,0,0,1,16-16H304a16.00079,16.00079,0,0,1,16,16Zm96-64v64H352V432a48.055,48.055,0,0,0-48-48H144a48.055,48.055,0,0,0-48,48v48H32V416a64.07333,64.07333,0,0,1,64-64H352A64.07333,64.07333,0,0,1,416,416ZM288,224a48,48,0,1,0-48-48A47.99737,47.99737,0,0,0,288,224Zm0-64a16,16,0,1,1-16,16A16.01833,16.01833,0,0,1,288,160ZM160,224a48,48,0,1,0-48-48A47.99737,47.99737,0,0,0,160,224Zm0-64a16,16,0,1,1-16,16A16.01833,16.01833,0,0,1,160,160Z\"]\n};\nvar faUserSecret = {\n prefix: 'fal',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-43.2c1.5-7.8 2.4-15.8 2.4-24 0-7.2-.9-14.2-2.2-21.1 40.5-9.8 66.2-24.2 66.2-40.2 0-16.5-27-31.2-69.3-41-8.9-33.6-27.4-67.9-41.3-85.4-6.3-8-15.7-12.3-25.3-12.3-9.5 0-12.3 2.4-41.8 17.2-12.8 6.4-24.3 2.1-28.6 0C179.9 2.3 177.3 0 167.9 0c-9.6 0-18.9 4.3-25.2 12.2-13.9 17.5-32.4 51.8-41.3 85.4C59 107.4 32 122.2 32 138.7c0 16.1 25.7 30.5 66.2 40.2-1.3 6.9-2.2 13.9-2.2 21.1 0 8.2.9 16.2 2.4 24H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM128 200c0-2.7.3-5.3.6-7.9 1.3.8 5.1 3.3 5.8 5.4 3.9 11.9 7 24.6 16.5 33.4 8 7.4 47 25.1 64-25 2.8-8.4 15.4-8.4 18.3 0 16 47.4 53.9 34.4 64 25 9.5-8.8 12.7-21.5 16.5-33.4.7-2.1 4.4-4.6 5.8-5.4.3 2.6.6 5.2.6 7.9 0 52.9-43.1 96-96 96S128 252.9 128 200zm-.7-75.5c.7-2.7 12.3-57 40.5-92.5 28.7 14.4 37.7 20.5 56.2 20.5 18.6 0 27.7-6.3 56.2-20.5l.1.1c28.1 35.4 39.7 89.6 40.4 92.4 21.4 4.9 35.8 7.9 51 14.2-24.3 9.9-75.4 21.3-147.7 21.3s-123.4-11.4-147.7-21.3c15.2-6.3 29.9-9.3 51-14.2zM44.8 480c-7.1 0-12.8-5.7-12.8-12.8v-44.8c0-36.5 19.2-69.5 51.4-88.2L108 320l-27.4-64h28.9c4.7 9.6 64.3 108.5 64.3 108.5L142.9 480H44.8zm131.2 0l32-120-21.9-38.4c12.1 3.8 24.6 6.4 37.9 6.4s25.9-2.6 37.9-6.4L240 360l32 120h-96zm240-12.8c0 7.1-5.7 12.8-12.8 12.8h-98.1l-30.8-115.5s59.6-98.9 64.3-108.5h31l-25 65.6 22.5 13.9c30.6 18.9 48.9 51.4 48.9 86.9v44.8z\"]\n};\nvar faUserShield = {\n prefix: 'fal',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-3.5-1.4-7.3-2.1-11.1-2.1s-7.5.7-11.1 2.1l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 3.5 1.4 7.3 2.1 11.1 2.1s7.5-.7 11.1-2.1C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM480 472c-48.2-26.8-94.6-87.6-96-172.1l96-37.5V472zm16.6 8.1c-.1 0-.2-.1-.2-.1h.5c-.2 0-.3.1-.3.1zm15.4-7.6V262.4l96 37.5c-1.5 94.8-57.1 150.2-96 172.6zM48 480c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 2.6 0 5 .6 7.5.8-.7-8.1-1.1-16.3-1.1-24.8 0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-10.3-8.2-20.2-17.6-29.7-28H48zm176-224c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"]\n};\nvar faUserSlash = {\n prefix: 'fal',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M637 485.2L23 1.8C19.6-1 14.5-.4 11.8 3l-10 12.5C-1 19-.4 24 3 26.8l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.6 2.2-8.6-1.2-11.4zM320 32c52.9 0 96 43.1 96 96 0 35.9-20 66.9-49.3 83.3l26.8 21.1C426.4 209.3 448 171.2 448 128 448 57.3 390.7 0 320 0c-54 0-100 33.6-118.8 81l26.8 21.1C239.4 61.8 276.1 32 320 32zm176 448H144c-8.8 0-16-7.2-16-16v-41.6c0-56.5 45.9-102.4 102.4-102.4 6.1 0 13 1.4 21.7 4.4 21.3 7.4 43.4 11.1 65.8 11.4l-51.6-40.6c-17.5-5.7-26.8-7.2-35.9-7.2C156.2 288 96 348.2 96 422.4V464c0 26.5 21.5 48 48 48h352c11.9 0 22.6-4.5 30.9-11.6l-27-21.2c-1.2.3-2.5.8-3.9.8z\"]\n};\nvar faUserTag = {\n prefix: 'fal',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M223.9 256c70.7 0 128-57.3 128-128S294.6 0 223.9 0C153.3 0 96 57.3 96 128s57.3 128 127.9 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96c.1-52.9 43.1-96 96-96zm406.7 332.8l-90.2-90.3c-12-12-28.3-18.7-45.2-18.7h-79.3c-17.7 0-32 14.3-32 32v79.3c0 17 6.7 33.3 18.7 45.3l90.2 90.3c6.2 6.2 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l92.5-92.5c12.6-12.6 12.6-32.9.1-45.4zM515.5 480l-90.2-90.3c-6-6-9.4-14.1-9.4-22.6v-79.3h79.3c8.5 0 16.6 3.3 22.6 9.4l90.2 90.3-92.5 92.5zm-51.6-160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-64 160H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.3 0 70-16 89.6-16 13.6 0 26.5 2.8 38.4 7.6v-33.4c-12.2-3.7-25-6.2-38.4-6.2-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h351.9c15.6 0 29.3-7.6 38.1-19.1l-23.2-23.2c-2.4 6-8.1 10.3-14.9 10.3z\"]\n};\nvar faUserTie = {\n prefix: 'fal',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm91.9 272.2L276.2 442l-33.9-101.7 25-25c10.1-10.1 2.9-27.3-11.3-27.3h-64c-14.3 0-21.4 17.2-11.3 27.3l25 25L171.8 442l-39.7-137.7C58.9 305.5 0 365 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-73.4-58.9-132.9-132.1-134.2zM48 480c-8.8 0-16-7.2-16-16v-25.6c0-47.2 32.8-87.5 76.9-98.9L149.5 480H48zm144.9 0l31.1-93.4 31.1 93.4h-62.2zM416 464c0 8.8-7.2 16-16 16H298.5L339 339.5c44.1 11.4 76.9 51.7 76.9 98.9V464z\"]\n};\nvar faUserTimes = {\n prefix: 'fal',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M582.6 240l55-55c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-55 55-55-55c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l55 55-55 55c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l55-55 55 55c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-55-55zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm0-224c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96zm89.6 256c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zM416 464c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16v-41.6C32 365.9 77.9 320 134.4 320c19.6 0 39.1 16 89.6 16 50.4 0 70-16 89.6-16 56.5 0 102.4 45.9 102.4 102.4V464z\"]\n};\nvar faUserUnlock = {\n prefix: 'fal',\n iconName: 'user-unlock',\n icon: [640, 512, [], \"e058\", \"M592,288H448V208.79c0-26.32,20.86-48.34,47.18-48.78A48,48,0,0,1,544,208v8a8,8,0,0,0,8,8h16a8,8,0,0,0,8-8v-7c0-43.28-34-79.51-77.26-80.95A80,80,0,0,0,416,208v80H400a48,48,0,0,0-48,48V464a48,48,0,0,0,48,48H592a48,48,0,0,0,48-48V336A48,48,0,0,0,592,288Zm16,176a16,16,0,0,1-16,16H400a16,16,0,0,1-16-16V336a16,16,0,0,1,16-16H592a16,16,0,0,1,16,16ZM224,256A128,128,0,1,0,96,128,128,128,0,0,0,224,256Zm0-224a96,96,0,1,1-96,96A96,96,0,0,1,224,32ZM496,368a32,32,0,1,0,32,32A32,32,0,0,0,496,368ZM48,480a16,16,0,0,1-16-16V422.4A102.47,102.47,0,0,1,134.4,320c19.6,0,39.1,16,89.6,16s70-16,89.6-16c2.7,0,5.3.6,7.9.8a79.38,79.38,0,0,1,13.1-30.7,132.22,132.22,0,0,0-21.1-2.1c-28.7,0-42.5,16-89.6,16s-60.8-16-89.6-16C60.2,288,0,348.2,0,422.4V464a48,48,0,0,0,48,48H336.4a78.37,78.37,0,0,1-14.8-32Z\"]\n};\nvar faUserVisor = {\n prefix: 'fal',\n iconName: 'user-visor',\n icon: [448, 512, [], \"e04c\", \"M98.50586,152.8457a127.91341,127.91341,0,0,0,250.98828.002C360.37305,145.69141,368,133.97266,368,120V104c0-19.57422-14.38672-35.14648-32.98047-38.58008C313.04883,26.54688,271.834,0,224,0S134.95312,26.54688,112.98242,65.41992C94.38867,68.85352,80,84.42578,80,104v16C80,133.9707,87.62695,145.69141,98.50586,152.8457ZM224,224c-41.63281,0-76.834-26.8457-90.0957-64H314.0957C300.834,197.1543,265.63281,224,224,224Zm0-192c28.24023,0,53.42188,12.50586,71.00977,32H152.99023C170.57812,44.50586,195.75977,32,224,32ZM112,104a8.01545,8.01545,0,0,1,8-8H328a8.01545,8.01545,0,0,1,8,8v16a8.01545,8.01545,0,0,1-8,8H120a8.01545,8.01545,0,0,1-8-8ZM322.875,352h-.125a3.9709,3.9709,0,0,0-3.03125,1.39062c-19.8125,22.98438-31.8125,53.09376-35.6875,89.5a3.9982,3.9982,0,0,0,6.4375,3.57813c24.84375-19.32813,33.75-23.8125,37.03125-24.8125a6.629,6.629,0,0,1,1.375-.375c2.625,2.32813,8.1875,8.57813,19.875,25.03125A3.94519,3.94519,0,0,0,352,448a4.06435,4.06435,0,0,0,1.28125-.20312A4.01157,4.01157,0,0,0,356,443.875c-1.15625-35.32812-11.28125-65.70312-30.0625-90.29688A4.02082,4.02082,0,0,0,322.875,352Zm-9.28125-64c-28.6875,0-42.5,16-89.59375,16s-60.8125-16-89.59375-16A134.43133,134.43133,0,0,0,0,422.40625V464a48.01238,48.01238,0,0,0,48,48H400a48.01238,48.01238,0,0,0,48-48V422.40625A134.43133,134.43133,0,0,0,313.59375,288ZM416,464a16.041,16.041,0,0,1-16,16H48a16.041,16.041,0,0,1-16-16V422.40625A102.47984,102.47984,0,0,1,134.40625,320C153.99922,320,173.5,336,224,336c50.40625,0,69.99922-16,89.59375-16A102.47984,102.47984,0,0,1,416,422.40625Z\"]\n};\nvar faUsers = {\n prefix: 'fal',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M544 224c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM320 256c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm0-192c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80zm244 192h-40c-15.2 0-29.3 4.8-41.1 12.9 9.4 6.4 17.9 13.9 25.4 22.4 4.9-2.1 10.2-3.3 15.7-3.3h40c24.2 0 44 21.5 44 48 0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.1-34.1-80-76-80zM96 224c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm304.1 180c-33.4 0-41.7 12-80.1 12-38.4 0-46.7-12-80.1-12-36.3 0-71.6 16.2-92.3 46.9-12.4 18.4-19.6 40.5-19.6 64.3V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-44.8c0-23.8-7.2-45.9-19.6-64.3-20.7-30.7-56-46.9-92.3-46.9zM480 432c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16v-44.8c0-16.6 4.9-32.7 14.1-46.4 13.8-20.5 38.4-32.8 65.7-32.8 27.4 0 37.2 12 80.2 12s52.8-12 80.1-12c27.3 0 51.9 12.3 65.7 32.8 9.2 13.7 14.1 29.8 14.1 46.4V432zM157.1 268.9c-11.9-8.1-26-12.9-41.1-12.9H76c-41.9 0-76 35.9-76 80 0 8.8 7.2 16 16 16s16-7.2 16-16c0-26.5 19.8-48 44-48h40c5.5 0 10.8 1.2 15.7 3.3 7.5-8.5 16.1-16 25.4-22.4z\"]\n};\nvar faUsersClass = {\n prefix: 'fal',\n iconName: 'users-class',\n icon: [640, 512, [], \"f63d\", \"M544 224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm-304-48c0 44.2 35.8 80 80 80s80-35.8 80-80-35.8-80-80-80-80 35.8-80 80zm128 0c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48zM96 384c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm468 160h-40c-41.9 0-76 35.9-76 80 0 8.8 7.2 16 16 16s16-7.2 16-16c0-26.5 19.8-48 44-48h40c24.2 0 44 21.5 44 48 0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.1-34.1-80-76-80zm-448 0H76c-41.9 0-76 35.9-76 80 0 8.8 7.2 16 16 16s16-7.2 16-16c0-26.5 19.8-48 44-48h40c24.2 0 44 21.5 44 48 0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.1-34.1-80-76-80zm224 0h-40c-41.9 0-76 35.9-76 80 0 8.8 7.2 16 16 16s16-7.2 16-16c0-26.5 19.8-48 44-48h40c24.2 0 44 21.5 44 48 0 8.8 7.2 16 16 16s16-7.2 16-16c0-44.1-34.1-80-76-80zM64 48c0-8.83 7.19-16 16-16h480c8.81 0 16 7.17 16 16v149.22c11.51 3.46 22.37 8.36 32 15.11V48c0-26.47-21.53-48-48-48H80C53.53 0 32 21.53 32 48v164.33c9.63-6.75 20.49-11.64 32-15.11V48z\"]\n};\nvar faUsersCog = {\n prefix: 'fal',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M287.4 250.6c2.9-10.4 6.5-20.4 10.9-30-33.6-9.5-58.4-40.1-58.4-76.7 0-44.1 35.9-80 80-80 36.6 0 67.1 24.8 76.7 58.4 9.6-4.4 19.6-8.1 30-10.9C412.6 65.6 370.4 32 320 32c-61.9 0-112 50.1-112 112 0 50.4 33.6 92.6 79.4 106.6zM96 224c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm0-128c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm61.1 172.9c-11.9-8.1-26-12.9-41.1-12.9H76c-41.9 0-76 35.9-76 80 0 8.8 7.2 16 16 16s16-7.2 16-16c0-26.5 19.8-48 44-48h40c5.5 0 10.8 1.2 15.7 3.3 7.5-8.5 16.1-16 25.4-22.4zM176 448c-8.8 0-16-7.2-16-16v-44.8c0-16.6 4.9-32.7 14.1-46.4 13.8-20.5 38.4-32.8 65.7-32.8 14.3 0 18.8 2.4 40.7 7.2-.2-3.8-1.4-13.4.6-32.6-16.3-4.3-26.4-6.6-41.3-6.6-36.3 0-71.6 16.2-92.3 46.9-12.4 18.4-19.6 40.5-19.6 64.3V432c0 26.5 21.5 48 48 48h209c-16-8.6-30.6-19.5-43.5-32H176zm304-208.5c-35.6 0-64.5 29-64.5 64.5s28.9 64.5 64.5 64.5 64.5-29 64.5-64.5-28.9-64.5-64.5-64.5zm0 97c-17.9 0-32.5-14.6-32.5-32.5s14.6-32.5 32.5-32.5 32.5 14.6 32.5 32.5-14.6 32.5-32.5 32.5zm148.3-10.2l-16.5-9.5c.8-8.5.8-17.1 0-25.6l16.6-9.5c9.5-5.5 13.8-16.7 10.5-27-7.2-23.4-19.9-45.4-36.7-63.5-7.4-8.1-19.3-9.9-28.8-4.4l-16.5 9.5c-7-5-14.4-9.3-22.2-12.8v-19c0-11-7.5-20.3-18.2-22.7-23.9-5.4-49.3-5.4-73.3 0-10.7 2.4-18.2 11.8-18.2 22.7v19c-7.8 3.5-15.3 7.8-22.2 12.8l-16.5-9.5c-9.5-5.5-21.3-3.7-28.7 4.4-16.8 18.1-29.4 40.1-36.7 63.4-3.3 10.4 1.2 21.8 10.6 27.2l16.5 9.5c-.8 8.5-.8 17.1 0 25.6l-16.6 9.5c-9.3 5.4-13.8 16.9-10.5 27.1 7.3 23.4 19.9 45.4 36.7 63.5 7.4 8 19.2 9.8 28.8 4.4l16.5-9.5c7 5 14.4 9.3 22.2 12.8v19c0 11 7.5 20.3 18.2 22.7 12 2.7 24.3 4 36.6 4s24.7-1.3 36.6-4c10.7-2.4 18.2-11.8 18.2-22.7v-19c7.8-3.5 15.2-7.8 22.2-12.8l16.5 9.5c9.4 5.4 21.3 3.6 28.7-4.4 16.8-18.1 29.4-40.1 36.7-63.4 3.4-10.4-1.1-21.9-10.5-27.3zm-51.6 7.2l29.4 17c-5.3 14.3-13 27.8-22.8 39.5l-29.4-17c-21.4 18.3-24.5 20.1-51.1 29.5v34c-15.1 2.6-30.6 2.6-45.6 0v-34c-26.9-9.5-30.2-11.7-51.1-29.5l-29.4 17c-9.8-11.8-17.6-25.2-22.8-39.5l29.4-17c-4.9-26.8-5.2-30.6 0-59l-29.4-17c5.2-14.3 13-27.7 22.8-39.5l29.4 17c21.4-18.3 24.5-20.1 51.1-29.5v-34c15.1-2.5 30.7-2.5 45.6 0v34c26.8 9.5 30.2 11.6 51.1 29.5l29.4-17c9.8 11.8 17.6 25.2 22.8 39.5l-29.4 17c4.9 26.8 5.2 30.6 0 59z\"]\n};\nvar faUsersCrown = {\n prefix: 'fal',\n iconName: 'users-crown',\n icon: [640, 512, [], \"f6a5\", \"M564 288h-40c-15.18 0-29.27 4.83-41.15 12.93 9.38 6.37 17.93 13.87 25.45 22.37 4.89-2.05 10.15-3.3 15.7-3.3h40c24.25 0 44 21.53 44 48 0 8.84 7.16 16 16 16s16-7.16 16-16c0-44.11-34.09-80-76-80zm-20-32c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80zm0-128c26.47 0 48 21.53 48 48s-21.53 48-48 48-48-21.53-48-48 21.53-48 48-48zM400.15 308.02c-11.88 0-23.87 1.73-35.49 5.26-14.16 4.3-29.1 6.72-44.66 6.72s-30.5-2.42-44.66-6.71a122.209 122.209 0 0 0-35.49-5.26c-36.29 0-71.58 16.18-92.28 46.93C135.21 373.3 128 395.41 128 419.2V432c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-12.8c0-23.79-7.21-45.9-19.57-64.25-20.7-30.75-56-46.93-92.28-46.93zM480 432c0 8.82-7.18 16-16 16H176c-8.82 0-16-7.18-16-16v-12.8c0-16.63 4.88-32.67 14.11-46.38 13.83-20.54 38.4-32.8 65.74-32.8 8.9 0 17.71 1.31 26.19 3.88 17.69 5.37 35.84 8.1 53.96 8.1s36.27-2.72 53.96-8.1a89.887 89.887 0 0 1 26.19-3.88c27.34 0 51.91 12.26 65.74 32.8 9.23 13.71 14.11 29.75 14.11 46.38V432zM96 256c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80zm0-128c26.47 0 48 21.53 48 48s-21.53 48-48 48-48-21.53-48-48 21.53-48 48-48zm61.15 172.93C145.27 292.83 131.18 288 116 288H76c-41.91 0-76 35.89-76 80 0 8.84 7.16 16 16 16s16-7.16 16-16c0-26.47 19.75-48 44-48h40c5.55 0 10.81 1.25 15.7 3.3 7.52-8.5 16.07-16 25.45-22.37zM320 288c61.86 0 112-50.14 112-112V32l-56 28-56-28-56 28-56-28v144c0 61.86 50.14 112 112 112zM240 83.78l24 12 56-28 56 28 24-12V128H240V83.78zm0 76.22h160v16c0 44.11-35.89 80-80 80s-80-35.89-80-80v-16z\"]\n};\nvar faUsersMedical = {\n prefix: 'fal',\n iconName: 'users-medical',\n icon: [640, 512, [], \"f830\", \"M512 224a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 224a96 96 0 1 1 96-96 96 96 0 0 1-96 96zm58.67-117.33h-37.34v-37.34A5.33 5.33 0 0 0 528 288h-32a5.33 5.33 0 0 0-5.33 5.33v37.34h-37.34A5.33 5.33 0 0 0 448 336v32a5.33 5.33 0 0 0 5.33 5.33h37.34v37.34A5.33 5.33 0 0 0 496 416h32a5.33 5.33 0 0 0 5.33-5.33v-37.34h37.34A5.33 5.33 0 0 0 576 368v-32a5.33 5.33 0 0 0-5.33-5.33zM320 256a112 112 0 1 0-112-112 111.94 111.94 0 0 0 112 112zm0-192a80 80 0 1 1-80 80 80.11 80.11 0 0 1 80-80zM96 224a80 80 0 1 0-80-80 80 80 0 0 0 80 80zm0-128a48 48 0 1 1-48 48 48 48 0 0 1 48-48zm288.81 352H176a16 16 0 0 1-16-16v-44.8a83.08 83.08 0 0 1 14.1-46.4c13.8-20.5 38.4-32.8 65.7-32.8s37.2 12 80.2 12a164.08 164.08 0 0 0 36.33-3.66A157.66 157.66 0 0 1 370 279.85c-13.87 3.51-26.11 8.15-50 8.15-38.4 0-46.7-12-80.1-12-36.3 0-71.6 16.2-92.3 46.9a114.59 114.59 0 0 0-19.6 64.3V432a48 48 0 0 0 48 48h241a161 161 0 0 1-32.19-32zM157.1 268.9A72.83 72.83 0 0 0 116 256H76c-41.9 0-76 35.9-76 80a16 16 0 0 0 32 0c0-26.5 19.8-48 44-48h40a39.79 39.79 0 0 1 15.7 3.3 138.76 138.76 0 0 1 25.4-22.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fal',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M320,64a79.94,79.94,0,0,1,45,146.05l25.67,20.21C415.71,209.73,432,178.94,432,144A111.93,111.93,0,0,0,320,32c-44.42,0-82.41,26-100.53,63.44l25.91,20.4A80,80,0,0,1,320,64ZM544,224a80,80,0,1,0-80-80A80,80,0,0,0,544,224Zm0-128a48,48,0,1,1-48,48A48,48,0,0,1,544,96Zm20,160H524a72.22,72.22,0,0,0-41.09,12.91A135.38,135.38,0,0,1,508.3,291.3,39.79,39.79,0,0,1,524,288h40c24.2,0,44,21.5,44,48a16,16,0,0,0,32,0C640,291.91,605.91,256,564,256ZM176,448a16,16,0,0,1-16-16V387.2a83.2,83.2,0,0,1,14.09-46.4C187.91,320.3,212.5,308,239.8,308c21.3,0,32.15,7.19,56,10.42L242.09,276.1c-.77,0-1.39-.1-2.18-.1-36.32,0-71.61,16.2-92.32,46.91A114.63,114.63,0,0,0,128,387.2V432a48,48,0,0,0,48,48H464a47.73,47.73,0,0,0,26.7-8.13L460.39,448ZM26,106a79.12,79.12,0,0,0-10,38,79.7,79.7,0,0,0,133.45,59.15L123.83,183a47.86,47.86,0,0,1-72.28-56.92Zm131.06,163A72.73,72.73,0,0,0,116,256H76c-41.91,0-76,35.91-76,80a16,16,0,0,0,32,0c0-26.5,19.8-48,44-48h40a39.79,39.79,0,0,1,15.7,3.3A138.6,138.6,0,0,1,157.09,268.91ZM23,1.8A7.88,7.88,0,0,0,11.77,3l-10,12.5A7.94,7.94,0,0,0,3,26.71L617,510.23A8,8,0,0,0,628.2,509l10-12.5a7.86,7.86,0,0,0-1.21-11.2Z\"]\n};\nvar faUtensilFork = {\n prefix: 'fal',\n iconName: 'utensil-fork',\n icon: [512, 512, [], \"f2e3\", \"M458.5 107.1c.4-27.4-27.3-54-53.6-53.6.4-34.4-43.8-68.7-75.3-46.5-8.8 6.1-80.1 55.7-105.2 80.7-42.1 42.1-51.5 97.7-32 145.8L13 395c-16.8 15.1-17.5 41.2-1.5 57.2l48.3 48.3c16.2 16.2 42.3 15 57.2-1.5l161.4-179.2c49 19.8 104.3 9.4 145.8-32 25.1-25.1 74.5-96.4 80.6-105.2 22-31.3-10.2-76-46.3-75.5zm20.2 57s-53.2 77-77.2 101c-38.1 38.1-89.2 41.9-130.4 14.8l-178 197.6c-2.8 3.2-7.7 3.3-10.7.3l-48.3-48.3c-3-3-2.9-7.9.3-10.7l197.6-178c-27.1-41.3-23.2-92.4 14.8-130.4 23.9-23.9 101-77.2 101-77.2 9.2-6.7 30.6 15 23.6 24l-98.6 98.6c-8.5 10 13.3 32.2 23.6 24l105-93.1c9.1-6.5 30.3 14.7 23.8 23.8l-93.1 105c-8.2 10.3 14 32.1 24 23.6l98.6-98.6c9.1-7 30.7 14.4 24 23.6z\"]\n};\nvar faUtensilKnife = {\n prefix: 'fal',\n iconName: 'utensil-knife',\n icon: [512, 512, [], \"f2e4\", \"M72.9 498.4l-48.3-48.3C7 432.5 6.2 404.5 23.3 387.4l375-375C415.2-4.5 443.4-4 461 13.7c20.8 20.6 40 60.8 40 122.3 0 102.8-67.6 225.8-231.9 205.2L138.1 497c-16.6 19.7-46.7 19.9-65.2 1.4zM421 35L46 410c-4.6 4.6-3.7 12.5 1.3 17.5l48.3 48.3c5.4 5.4 13.8 5.7 18 .7L256.1 307c82.8 12.7 153.2-4 191.3-79.3 14.7-29 21.7-61.4 21.7-91.7 0-48-11.3-80.4-30.6-99.7-5.2-5.2-13-5.8-17.5-1.3z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fal',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M60.3 499.8l-48.1-48.1C-4.6 435-4 407.4 13.8 391.5L206 219c-22.3-53.2-10.6-111.8 35.2-157.7C303.3-.8 416.7-26 477.3 34.6c60.7 60.7 35.3 174.2-26.7 236.1-45.8 45.9-104.4 57.7-157.6 35.3L120.5 498.2c-15.9 17.7-43.4 18.5-60.2 1.6zM263.8 83.9c-45.7 45.7-44.5 92.6-18.4 142.7L35.2 415.3c-4.1 3.6-4.2 9.9-.4 13.8l48.1 48.1c3.9 3.9 10.2 3.6 13.8-.4l188.7-210.3c49.5 25.8 96.7 27.7 142.7-18.4 49.3-49.4 74-143.7 26.7-191-45.4-45.3-139-25.2-191 26.8z\"]\n};\nvar faUtensils = {\n prefix: 'fal',\n iconName: 'utensils',\n icon: [480, 512, [], \"f2e7\", \"M344.1 470.3l14.2-164.8c-42.1-33.1-70.4-77-70.4-129.5C288 81.7 376.1 0 440 0c22.1 0 40 17.3 40 38.5v435c0 21.2-17.9 38.5-40 38.5h-56c-22.8 0-41.8-18.7-39.9-41.7zM320 176c0 51 32.2 85.5 71.8 114.5L376 473.1c-.3 3.7 3.4 6.9 8 6.9h56c4.3 0 8-3 8-6.5v-435c0-3.5-3.7-6.5-8-6.5-44.6 0-120 65.8-120 144zM240.7 33.8C237.4 14.3 219.5 0 194.6 0c-11.9 0-24.1 3.4-33.3 11.2C152.9 4.1 141.3 0 128 0s-24.9 4.1-33.3 11.2C85.5 3.4 73.3 0 61.4 0 36.2 0 18.6 14.5 15.3 33.8 13.5 43.2 0 118.4 0 149.9c0 50.9 26.7 91.6 71 110.7L59.6 471.4C58.4 493.4 75.9 512 98 512h60c22 0 39.6-18.5 38.4-40.6L185 260.6c44.2-19.1 71-59.8 71-110.7 0-31.5-13.5-106.7-15.3-116.1zM152.3 240l12.2 233.1c.2 3.7-2.7 6.9-6.5 6.9H98c-3.7 0-6.7-3.1-6.5-6.9L103.7 240C61.3 231.2 32 197 32 149.9c0-29.7 14.8-110.6 14.8-110.6 1.6-9.9 28.3-9.7 29.5.2V162c.9 11.5 28.2 11.7 29.5.2l7.4-122.9c1.6-9.7 27.9-9.7 29.5 0l7.4 122.9c1.3 11.4 28.6 11.2 29.5-.2V39.6c1.2-9.9 27.9-10.1 29.5-.2 0 0 14.8 80.9 14.8 110.6.1 46.8-29 81.2-71.6 90z\"]\n};\nvar faUtensilsAlt = {\n prefix: 'fal',\n iconName: 'utensils-alt',\n icon: [576, 512, [], \"f2e6\", \"M0 60c0 142.9 69.8 215.8 188.6 226.5L84.2 379.1c-25.8 22.9-27 63-2.6 87.3l28 28c24.6 24.6 64.6 23.1 87.3-2.6L290 386.7c96.3 113.5 89.4 105.4 90.3 106.3 22.9 24.4 61.9 25.7 86.2 1.4l28-28c24.1-24.1 23.2-63.3-1.6-86.4L384.8 279.7l7.2-7.7c38.8 12.1 77.1 7 110.3-26.1 20.9-20.9 61.7-79.7 66.8-87.1 20.1-28.5-7.3-66.8-37.4-70.6-2.8-22.1-23.6-41.5-43.9-44-3.9-31-42.6-57.1-70.6-37.4-7.4 5.1-66.2 46-87.1 66.9C298 105.8 291.4 144 304 184l-11.2 10.3-192-178.2C62.6-19.4 0 7.7 0 60zm379.7 177.2l-18.4 20.7-44.9-41.7 22.5-19.9c-18.8-33-15.4-70.7 13.9-100C372.3 76.7 435.6 33 435.6 33c7.6-5.5 25.1 12.3 19.4 19.7l-81 80.9c-7 8.2 10.9 26.4 19.4 19.7l86.1-76.4c7.4-5.4 24.9 12 19.5 19.5l-76.4 86.1C416 191 434.1 209 442.4 202l80.9-80.9c7.4-5.8 25.2 11.8 19.7 19.4 0 0-43.7 63.2-63.3 82.9-29.6 29.4-67.3 32.4-100 13.8zm-161 65.5l50.4 59.3L173 470.6c-10.7 12-29.3 12.7-40.8 1.2l-28-28c-11.4-11.4-10.8-30.1 1.2-40.8l113.3-100.3zM32 60c0-24.4 29.1-37.2 47.1-20.5l392 364c11.6 10.8 12 29.1.7 40.3l-28 28c-11.2 11.2-29.4 10.9-40.2-.6L221 256C81 256 32 177.2 32 60z\"]\n};\nvar faVacuum = {\n prefix: 'fal',\n iconName: 'vacuum',\n icon: [640, 512, [], \"e04d\", \"M352,400a16,16,0,1,0,16,16A16,16,0,0,0,352,400ZM640,112A112.14,112.14,0,0,0,528,0H302.16A112.4,112.4,0,0,0,192.5,89.31L124.91,416H80A80,80,0,0,0,0,496a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V432a16,16,0,0,0-16-16H157.57L223.81,95.78A80.33,80.33,0,0,1,302.16,32H528a80,80,0,0,1,0,160H494.82A191.28,191.28,0,0,0,352,128a32,32,0,0,0-32,32V325.9c-37.17,13.25-64,48.44-64,90.1a96.1,96.1,0,0,0,96,96H480a64,64,0,0,0,64-64V320a190.78,190.78,0,0,0-25.9-96H528A112.14,112.14,0,0,0,640,112ZM192,448v32H34.74A48.1,48.1,0,0,1,80,448Zm160,32a64,64,0,1,1,64-64A64.07,64.07,0,0,1,352,480Zm160-32a32,32,0,0,1-32,32H423a95.58,95.58,0,0,0-71-160h0l0-160h0c88.22,0,160,71.78,160,160Z\"]\n};\nvar faVacuumRobot = {\n prefix: 'fal',\n iconName: 'vacuum-robot',\n icon: [512, 512, [], \"e04e\", \"M431.36,80.64a248,248,0,0,0-350.72,0c-96.85,96.85-96.85,253.87,0,350.72a248,248,0,0,0,350.72,0C528.21,334.51,528.21,177.49,431.36,80.64ZM408.74,408.73a216,216,0,0,1-305.48,0c-84.21-84.21-84.21-221.25,0-305.47a216,216,0,0,1,305.48,0C493,187.48,493,324.52,408.74,408.73ZM140.12,304a16,16,0,0,0-22.63,22.63l67.88,67.88A16,16,0,0,0,208,371.88Zm22.62-67.88a16,16,0,0,0-22.62,22.62L253.25,371.88a16,16,0,0,0,22.63-22.63Zm67.89-22.63A16,16,0,0,0,208,236.12L275.88,304a16,16,0,0,0,22.63-22.63Zm149.82-81.94c-68.62-68.63-180.28-68.63-248.9,0a16,16,0,0,0,22.62,22.62c56.16-56.15,147.5-56.15,203.66,0s56.14,147.5,0,203.66a16,16,0,1,0,22.62,22.62C449.08,311.83,449.08,200.17,380.45,131.55Z\"]\n};\nvar faValueAbsolute = {\n prefix: 'fal',\n iconName: 'value-absolute',\n icon: [448, 512, [], \"f6a6\", \"M24 32H8c-4.4 0-8 3.6-8 8v432c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V40c0-4.4-3.6-8-8-8zm416 0h-16c-4.4 0-8 3.6-8 8v432c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V40c0-4.4-3.6-8-8-8zM325.7 165.6l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0l-79 79-79-79c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l79 79-79 79c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l79-79 79 79c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-79-79 79-79c3.1-3.1 3.1-8.1 0-11.3z\"]\n};\nvar faVectorSquare = {\n prefix: 'fal',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M486.4 128c14.14 0 25.6-11.46 25.6-25.6V25.6C512 11.46 500.54 0 486.4 0h-76.8C395.46 0 384 11.46 384 25.6V48H128V25.6C128 11.46 116.54 0 102.4 0H25.6C11.46 0 0 11.46 0 25.6v76.8C0 116.54 11.46 128 25.6 128H48v256H25.6C11.46 384 0 395.46 0 409.6v76.8C0 500.54 11.46 512 25.6 512h76.8c14.14 0 25.6-11.46 25.6-25.6V464h256v22.4c0 14.14 11.46 25.6 25.6 25.6h76.8c14.14 0 25.6-11.46 25.6-25.6v-76.8c0-14.14-11.46-25.6-25.6-25.6H464V128h22.4zM416 32h64v64h-64V32zM32 96V32h64v64H32zm64 384H32v-64h64v64zm384-64v64h-64v-64h64zm-48-32h-22.4c-14.14 0-25.6 11.46-25.6 25.6V432H128v-22.4c0-14.14-11.46-25.6-25.6-25.6H80V128h22.4c14.14 0 25.6-11.46 25.6-25.6V80h256v22.4c0 14.14 11.46 25.6 25.6 25.6H432v256z\"]\n};\nvar faVenus = {\n prefix: 'fal',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 74.1 56 135.2 128 143.1V384H76c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h52v52c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-52h52c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-52v-64.9c72-7.9 128-69 128-143.1zm-256 0c0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112-61.9 0-112-50-112-112z\"]\n};\nvar faVenusDouble = {\n prefix: 'fal',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 74.1 56 135.2 128 143.1V384H76c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h52v52c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-52h52c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-52v-64.9c72-7.9 128-69 128-143.1zm-256 0c0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112-61.9 0-112-50-112-112zm352 143.1V384h52c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12v-52h-52c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h52v-64.9c-27.4-3-52.6-13.8-73.2-30 6.9-8.2 13-17 18.3-26.3 19.9 16.3 44.7 25.2 70.8 25.2 62 0 112-50.1 112-112 0-62-50.1-112-112-112-26.1 0-50.9 8.9-70.8 25.2-5.3-9.3-11.4-18.2-18.3-26.3C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 74.1-56 135.2-128 143.1z\"]\n};\nvar faVenusMars = {\n prefix: 'fal',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M288 208c0-79.5-64.5-144-144-144S0 128.5 0 208c0 74.1 56 135.2 128 143.1V416H76c-6.6 0-12 5.4-12 12v8c0 6.6 5.4 12 12 12h52v52c0 6.6 5.4 12 12 12h8c6.6 0 12-5.4 12-12v-52h52c6.6 0 12-5.4 12-12v-8c0-6.6-5.4-12-12-12h-52v-64.9c72-7.9 128-69 128-143.1zm-256 0c0-61.9 50-112 112-112 61.9 0 112 50 112 112 0 61.9-50 112-112 112-61.9 0-112-50-112-112zM576 12v88c0 6.6-5.4 12-12 12h-8c-6.6 0-12-5.4-12-12V54.6l-63.5 63.5C500.2 142.8 512 174 512 208c0 79.5-64.5 144-144 144-33.7 0-64.6-11.6-89.2-30.9 6.9-8.2 13-17 18.3-26.3 19.9 16.3 44.7 25.2 70.8 25.2 62 0 112-50.1 112-112 0-62-50.1-112-112-112-26.1 0-50.9 8.9-70.8 25.2-5.3-9.3-11.4-18.2-18.3-26.3C303.4 75.6 334.3 64 368 64c34 0 65.2 11.8 89.9 31.5L521.4 32H476c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h88c6.6 0 12 5.4 12 12z\"]\n};\nvar faVest = {\n prefix: 'fal',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M60.688,396.688a16,16,0,1,0,22.624,22.624l48-48a16,16,0,0,0-22.624-22.624ZM434.562,231,384,155.156V48A48.052,48.052,0,0,0,336,0H320a15.991,15.991,0,0,0-8.871,2.693l0,0-.018.011-.019.012L286.125,19.359a111.712,111.712,0,0,1-124.25,0l-25-16.671L136.8,2.8A15.9,15.9,0,0,0,128,0H112A48.052,48.052,0,0,0,64,48V155.156L13.438,231A79.628,79.628,0,0,0,0,275.375V464a48.052,48.052,0,0,0,48,48H400a48.052,48.052,0,0,0,48-48V275.375A79.628,79.628,0,0,0,434.562,231ZM193.2,281.906A15.989,15.989,0,0,0,192,288V480H48a16.011,16.011,0,0,1-16-16V275.375a47.759,47.759,0,0,1,8.062-26.625l53.25-79.875A16.016,16.016,0,0,0,96,160V48a16.011,16.011,0,0,1,16-16h4.672l82.82,234.633ZM158.4,54.039A143.466,143.466,0,0,0,224,70.234a143.511,143.511,0,0,0,62.254-14.306l-68.486,166.32ZM416,464a16.011,16.011,0,0,1-16,16H224V291.172L330.719,32H336a16.011,16.011,0,0,1,16,16V160a16.016,16.016,0,0,0,2.688,8.875l53.25,79.875A47.759,47.759,0,0,1,416,275.375ZM339.312,348.688a16,16,0,0,0-22.624,22.624l48,48a16,16,0,0,0,22.624-22.624Z\"]\n};\nvar faVestPatches = {\n prefix: 'fal',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M352.375,287.7c-4-16.844-18.156-29.953-35.5-31.531a40.263,40.263,0,0,0-31.156,10.406,41.271,41.271,0,0,0-13.5,30.063L272,345.156A22.648,22.648,0,0,0,294.656,368h.094l48.594-.219a40.944,40.944,0,0,0,40.5-44.593C382.281,305.859,369.188,291.719,352.375,287.7Zm-2.656,45.109a8.983,8.983,0,0,1-6.563,2.969l-39.125.172.188-39.062A8.987,8.987,0,0,1,313.156,288a7.687,7.687,0,0,1,.844.047c4.156.375,7.531,4.594,7.5,9.265l-.25,21.36,21.344-.125c4.812,0,9,3.359,9.375,7.5A8.765,8.765,0,0,1,349.719,332.812ZM112,352a48,48,0,1,0,48,48A48,48,0,0,0,112,352Zm0,64a16,16,0,1,1,16-16A16.019,16.019,0,0,1,112,416ZM96.5,239.516a12.01,12.01,0,0,0-17,16.968L95.016,272,79.5,287.516a12.01,12.01,0,0,0,17,16.968l15.5-15.5,15.5,15.5a12.01,12.01,0,0,0,17-16.968L128.984,272,144.5,256.484a12.01,12.01,0,0,0-17-16.968l-15.5,15.5ZM434.562,231,384,155.156V48A48.052,48.052,0,0,0,336,0H320a15.991,15.991,0,0,0-8.871,2.693l0,0-.018.011-.019.012L286.125,19.359a111.712,111.712,0,0,1-124.25,0l-25-16.671L136.8,2.8A15.9,15.9,0,0,0,128,0H112A48.052,48.052,0,0,0,64,48V155.156L13.438,231A79.628,79.628,0,0,0,0,275.375V464a48.052,48.052,0,0,0,48,48H400a48.052,48.052,0,0,0,48-48V275.375A79.628,79.628,0,0,0,434.562,231ZM193.2,281.906A15.989,15.989,0,0,0,192,288V480H48a16.011,16.011,0,0,1-16-16V275.375a47.759,47.759,0,0,1,8.062-26.625l53.25-79.875A16.016,16.016,0,0,0,96,160V48a16.011,16.011,0,0,1,16-16h4.672l82.82,234.633ZM158.4,54.039A143.466,143.466,0,0,0,224,70.234a143.511,143.511,0,0,0,62.254-14.306l-68.486,166.32ZM416,464a16.011,16.011,0,0,1-16,16H224V291.172L330.719,32H336a16.011,16.011,0,0,1,16,16V160a16.016,16.016,0,0,0,2.688,8.875l53.25,79.875A47.759,47.759,0,0,1,416,275.375Z\"]\n};\nvar faVhs = {\n prefix: 'fal',\n iconName: 'vhs',\n icon: [512, 512, [], \"f8ec\", \"M496 64H16A16 16 0 0 0 0 80v320a48 48 0 0 0 48 48h416a48 48 0 0 0 48-48V80a16 16 0 0 0-16-16zm-16 336a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V192h59.45A130.66 130.66 0 0 0 113 374.12c7.88 6.38 18.31 9.88 29.38 9.88h227.24c11.07 0 21.5-3.5 29.38-9.86A130.68 130.68 0 0 0 420.55 192H480zm-320-78.39V352h-17.62C131.86 352 96 321.73 96 272c0-49.51 35.41-80 46.38-80H160v30.39a63.27 63.27 0 0 0 0 99.22zM192 352V192h128v160zm160-129.61V192h17.62c10.52 0 46.38 30.27 46.38 80 0 49.51-35.41 80-46.38 80H352v-30.39a63.27 63.27 0 0 0 0-99.22zM480 160H32V96h448z\"]\n};\nvar faVial = {\n prefix: 'fal',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 188L308 18.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l17 17L28.1 332.1c-37.5 37.5-37.6 98.2 0 135.7 37.5 37.5 98.2 37.6 135.7 0L438 193.6l17 17c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.2-3.1 3.2-8.1.1-11.3zM141.3 445.2c-24.2 24.2-66.3 24.2-90.5 0-25-25-25-65.5 0-90.5l66.7-66.7h181L141.3 445.2zM330.5 256h-181L324.9 80.6l90.5 90.5-84.9 84.9z\"]\n};\nvar faVials = {\n prefix: 'fal',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 32h24v304c0 44.1 35.9 80 80 80s80-35.9 80-80V32h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm56 0h96v128h-96V32zm0 160h96v144c0 63.5-96 63.5-96 0V192zM360 32h24v304c0 44.1 35.9 80 80 80s80-35.9 80-80V32h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm56 0h96v128h-96V32zm0 160h96v144c0 63.5-96 63.5-96 0V192zm216 288H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faVideo = {\n prefix: 'fal',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M543.9 96c-6.2 0-12.5 1.8-18.2 5.7L416 171.6v-59.8c0-26.4-23.2-47.8-51.8-47.8H51.8C23.2 64 0 85.4 0 111.8v288.4C0 426.6 23.2 448 51.8 448h312.4c28.6 0 51.8-21.4 51.8-47.8v-59.8l109.6 69.9c5.7 4 12.1 5.7 18.2 5.7 16.6 0 32.1-13 32.1-31.5v-257c.1-18.5-15.4-31.5-32-31.5zM384 400.2c0 8.6-9.1 15.8-19.8 15.8H51.8c-10.7 0-19.8-7.2-19.8-15.8V111.8c0-8.6 9.1-15.8 19.8-15.8h312.4c10.7 0 19.8 7.2 19.8 15.8v288.4zm160-15.7l-1.2-1.3L416 302.4v-92.9L544 128v256.5z\"]\n};\nvar faVideoPlus = {\n prefix: 'fal',\n iconName: 'video-plus',\n icon: [576, 512, [], \"f4e1\", \"M543.9 96c-6.2 0-12.5 1.8-18.2 5.7L416 171.6v-59.8c0-26.4-23.2-47.8-51.8-47.8H51.8C23.2 64 0 85.4 0 111.8v288.4C0 426.6 23.2 448 51.8 448h312.4c28.6 0 51.8-21.4 51.8-47.8v-59.8l109.6 69.9c5.7 4 12.1 5.7 18.2 5.7 16.6 0 32.1-13 32.1-31.5v-257c.1-18.5-15.4-31.5-32-31.5zM384 192v208.2c0 8.6-9.1 15.8-19.8 15.8H51.8c-10.7 0-19.8-7.2-19.8-15.8V111.8c0-8.6 9.1-15.8 19.8-15.8h312.4c10.7 0 19.8 7.2 19.8 15.8V192zm160 192.5l-1.2-1.3L416 302.4v-92.9L544 128v256.5zM296 240h-72v-72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v72h-72c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h72v72c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-72h72c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fal',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M637 485.2L142.7 96l-16.2-12.7L23 1.8C19.6-1 14.5-.4 11.8 3l-10 12.5C-1 19-.4 24 3 26.8L438.9 370l9.1 7.2 169 133.1c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.6 2.2-8.6-1.2-11.4zM396.2 416H83.8c-10.7 0-19.8-7.2-19.8-15.8V135.9l-31.9-25.1c0 .4-.1.7-.1 1.1v288.4c0 26.4 23.2 47.8 51.8 47.8h312.4c16.6 0 31.2-7.3 40.7-18.5l-25.3-19.9c-3.7 3.7-9.1 6.3-15.4 6.3zm0-320c10.7 0 19.8 7.2 19.8 15.8v138.3l32 25.2v-65.8L576 128v248.1l28.4 22.4c2.1-4.2 3.6-8.8 3.6-14v-257C608 109 592.5 96 575.9 96c-6.2 0-12.5 1.8-18.2 5.7L448 171.6v-59.8c0-26.4-23.2-47.8-51.8-47.8H179.6l40.6 32h176z\"]\n};\nvar faVihara = {\n prefix: 'fal',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-10.22 6.82-9.27 22.13 1.72 27.62L64 448v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h208v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56h208v56c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-56l55.15-19.67c10.99-5.49 11.95-20.81 1.73-27.62zM320 35.36L449.06 96h-258.1L320 35.36zM192 128h256v64H192v-64zM94.6 253.94L166.4 224h307.2l71.81 29.94L539 256H101.01l-6.41-2.06zM128 288h384v64H128v-64zm442.47 128H69.53l-14.38-5.13L104.19 384H535.8l49.04 26.87-14.37 5.13z\"]\n};\nvar faViolin = {\n prefix: 'fal',\n iconName: 'violin',\n icon: [640, 512, [], \"f8ed\", \"M472 96a24 24 0 1 0-24-24 24 24 0 0 0 24 24zM349.66 13.66L338.34 2.34a8 8 0 0 0-11.31 0L2.34 327a8 8 0 0 0 0 11.32l11.32 11.31a8 8 0 0 0 11.31 0L349.66 25a8 8 0 0 0 0-11.34zM520 48a24 24 0 1 0-24-24 24 24 0 0 0 24 24zm96 48a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm-48 48a24 24 0 1 0 24 24 24 24 0 0 0-24-24zm-86.86 48.8L635.31 38.62a16 16 0 0 0 0-22.62L624 4.69a16 16 0 0 0-22.62 0l-154.2 154.19c-15.44-12.84-33.06-23-52.59-27.53a128.23 128.23 0 0 0-28.69-3.3c-21.11 0-47.55 5.52-69.35 27.33-3.68 3.69-6.5 7.9-9.4 12.05A63.51 63.51 0 0 1 224.36 240a64.53 64.53 0 0 1-23.16-4.35c-15.23 5.15-29.31 13.11-41 24.86-38.2 38.13-41.2 99.6-13.3 153.55L138 420a22.41 22.41 0 0 0-3.41 34.48l50.95 50.95a22.22 22.22 0 0 0 8.06 5.06 20.75 20.75 0 0 0 2.93.56 22.54 22.54 0 0 0 4.83.94c.36 0 .67-.23 1-.25a22.35 22.35 0 0 0 6.54-1.59 20.62 20.62 0 0 0 3.2-1A22 22 0 0 0 220 502l5.81-8.71c23.39 12.11 48.14 18.61 71.88 18.61 31 0 60.18-10.53 81.8-32.16 11.75-11.68 19.71-25.77 24.87-41-16.1-42.18 15-86.46 59.09-86.46a68.11 68.11 0 0 1 8.93.6c4.21-2.94 8.48-5.8 12.23-9.54 24.94-25 32.43-61.48 24-97.91-4.52-19.55-14.61-37.18-27.47-52.63zM199.86 474.53l-34.39-34.39 80.08-53.39 7.7 7.7zm262.52-154.26a95.45 95.45 0 0 0-91.83 117 67.49 67.49 0 0 1-13.7 19.86C338 476 314.28 479.92 297.68 479.92c-17.76 0-36.41-4.72-54.08-13.32l40.64-61a22.4 22.4 0 0 0-2.8-28.26l-18.83-18.83a25.73 25.73 0 0 0-14.85-6.36c-.34 0-.65-.2-1-.2a22.17 22.17 0 0 0-3.51.51 21.39 21.39 0 0 0-2.27.33 22.39 22.39 0 0 0-6.64 2.92l-60.78 40.52C153 354.45 156 309.9 182.91 283a67 67 0 0 1 19.68-13.58 95.34 95.34 0 0 0 93.78-30.33 94 94 0 0 0 23.42-61.72c11.83-11.52 27.34-17.36 46.11-17.36a96.24 96.24 0 0 1 21.44 2.46c12.24 2.86 24.64 9.55 36.92 19.29l-99.57 99.58a16 16 0 0 0 0 22.62L336 315.31a16 16 0 0 0 22.62 0l99.59-99.59c9.72 12.26 16.39 24.65 19.22 36.9 6.22 26.92.73 51.54-15.05 67.65z\"]\n};\nvar faVirus = {\n prefix: 'fal',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22A55.74,55.74,0,0,1,341.74,107c-29.24,0-57.29-22.7-57.29-57V28.44a28.45,28.45,0,0,0-56.9,0V50c0,34.29-28.05,57-57.29,57a55.7,55.7,0,0,1-39.82-16.77L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25A55.7,55.7,0,0,1,170.25,405c29.25,0,57.3,22.7,57.3,57v21.54a28.45,28.45,0,0,0,56.9,0V462c0-34.29,28.05-57,57.3-57a55.7,55.7,0,0,1,39.81,16.77L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM379.88,307.32c-10.64,25.71-8.94,53.3,3.84,76.44a86.92,86.92,0,0,0-42-10.75A89.42,89.42,0,0,0,256,437.11,89.42,89.42,0,0,0,170.25,373a86.92,86.92,0,0,0-42,10.75c12.78-23.14,14.48-50.73,3.84-76.44s-31.33-44-56.69-51.32c25.36-7.34,46.05-25.63,56.69-51.32s8.94-53.3-3.84-76.44a87,87,0,0,0,42,10.75A89.42,89.42,0,0,0,256,74.88,89.42,89.42,0,0,0,341.74,139a87,87,0,0,0,42-10.75c-12.78,23.14-14.48,50.73-3.84,76.44s31.33,44,56.69,51.32C411.21,263.33,390.52,281.63,379.88,307.32ZM224,176a48,48,0,1,0,48,48A48,48,0,0,0,224,176Zm0,64a16,16,0,1,1,16-16A16,16,0,0,1,224,240Zm80,48a16,16,0,1,0,16,16A16,16,0,0,0,304,288Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fal',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M320,437.11A89.42,89.42,0,0,0,234.26,373a87,87,0,0,0-42,10.75c12.79-23.14,14.49-50.73,3.84-76.44s-31.32-44-56.68-51.32c16.55-4.79,30.76-14.64,41.84-27.78l-25.12-19.78A55.23,55.23,0,0,1,114,227.55H92.45a28.45,28.45,0,1,0,0,56.89H114c50.68,0,76.06,61.28,40.22,97.12L139,396.8A28.44,28.44,0,1,0,179.2,437l15.24-15.25A55.7,55.7,0,0,1,234.26,405c29.25,0,57.3,22.7,57.3,57v21.54a28.45,28.45,0,1,0,56.89,0V462c0-34.29,28.06-57,57.31-57h0l-32.57-25.64A89.36,89.36,0,0,0,320,437.11Zm0-362.23A89.42,89.42,0,0,0,405.76,139a87,87,0,0,0,42-10.75C435,151.38,433.25,179,443.9,204.68s31.32,44,56.68,51.32c-16.58,4.79-30.8,14.66-41.88,27.83l25.11,19.77A55.26,55.26,0,0,1,526,284.44h21.55a28.45,28.45,0,1,0,0-56.89H526c-50.68,0-76.06-61.27-40.23-97.11L501,115.19A28.44,28.44,0,1,0,460.82,75L445.57,90.22A55.74,55.74,0,0,1,405.76,107c-29.25,0-57.31-22.7-57.31-57V28.44a28.45,28.45,0,0,0-56.89,0V50c0,34.29-28.05,57-57.3,57h-.15l32.62,25.69A89.41,89.41,0,0,0,320,74.88ZM637,485.32,23,1.82A7.87,7.87,0,0,0,11.77,3l-10,12.5A8,8,0,0,0,3,26.73l614,483.5A8,8,0,0,0,628.2,509l10-12.5A7.86,7.86,0,0,0,637,485.32Z\"]\n};\nvar faViruses = {\n prefix: 'fal',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58a31.34,31.34,0,0,1-22.4,9.43c-16.45,0-32.23-12.77-32.23-32.06V240a16,16,0,0,0-32,0v12.12c0,19.29-15.78,32.06-32.23,32.06a31.34,31.34,0,0,1-22.4-9.43l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58a31.34,31.34,0,0,1,22.4-9.43c16.45,0,32.23,12.77,32.23,32.06V496a16,16,0,0,0,32,0V483.88c0-19.29,15.78-32.06,32.23-32.06a31.32,31.32,0,0,1,22.4,9.43l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32Zm-71.25,39.51A64.17,64.17,0,0,0,548,419.92c-1.23-.07-2.48-.1-3.73-.1A64.19,64.19,0,0,0,496,441.61a64.19,64.19,0,0,0-48.23-21.79c-1.25,0-2.5,0-3.73.1A64.38,64.38,0,0,0,422.51,368,64.38,64.38,0,0,0,444,316.08c1.23.07,2.48.1,3.73.1A64.19,64.19,0,0,0,496,294.39a64.19,64.19,0,0,0,48.23,21.79c1.25,0,2.5,0,3.73-.1A64.38,64.38,0,0,0,569.49,368,64.11,64.11,0,0,0,552.75,391.51ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,1,0,297.6,56.23L286.17,67.66a41.78,41.78,0,0,1-29.86,12.58c-21.94,0-43-17-43-42.75V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,25.72-21,42.75-43,42.75A41.74,41.74,0,0,1,97.83,67.66L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43a41.75,41.75,0,0,1,29.86-12.59c21.94,0,43,17,43,42.76v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-25.72,21-42.76,43-42.76a41.75,41.75,0,0,1,29.86,12.59l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33Zm-69,14.09A74.56,74.56,0,0,0,274,273.9a73.24,73.24,0,0,0-17.66-2.15A75,75,0,0,0,192,308.11a75,75,0,0,0-64.31-36.36A73.24,73.24,0,0,0,110,273.9,74.88,74.88,0,0,0,76,192a74.89,74.89,0,0,0,34-81.9,73.24,73.24,0,0,0,17.66,2.15A75.07,75.07,0,0,0,192,75.89a75.07,75.07,0,0,0,64.31,36.36A73.24,73.24,0,0,0,274,110.1,74.89,74.89,0,0,0,308,192,74.52,74.52,0,0,0,277.52,227.42ZM160,128a32,32,0,1,0,32,32A32,32,0,0,0,160,128Zm64,80a16,16,0,1,0,16,16A16,16,0,0,0,224,208ZM480,336a16,16,0,1,0,16,16A16,16,0,0,0,480,336Z\"]\n};\nvar faVoicemail = {\n prefix: 'fal',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M640 272a144 144 0 0 0-288 0c0 45.52 21.54 85.61 54.51 112h-173c33-26.39 54.51-66.48 54.51-112A144 144 0 0 0 0 272c0 74.05 56.1 134.33 128 142.39V416h384v-1.61c71.9-8.06 128-68.34 128-142.39zm-608 0a112 112 0 1 1 112 112A112.12 112.12 0 0 1 32 272zm464 112a112 112 0 1 1 112-112 112.12 112.12 0 0 1-112 112z\"]\n};\nvar faVolcano = {\n prefix: 'fal',\n iconName: 'volcano',\n icon: [512, 512, [], \"f770\", \"M505.5 460.6l-175.9-225c-4.9-6.3-12.1-9.7-19.8-11.1l16.4-49.4H352c44.1 0 80-36 80-80.2s-35.9-80.2-80-80.2c-13.1 0-26 3.4-37.6 9.6-29.9-32.6-86.9-32.6-116.9 0-11.6-6.3-24.5-9.6-37.6-9.6-44.1 0-80 36-80 80.2s35.9 80.2 80 80.2h25.8l16.4 49.4c-7.7 1.4-14.9 4.8-19.8 11.1L6.5 460.6C-9.4 481.8 5.7 512 32.1 512H480c26.3 0 41.4-30.2 25.5-51.4zM160 143.1c-26.5 0-48-21.6-48-48.1s21.5-48.1 48-48.1c14.2 0 24.6 6.3 30.8 11.6l14.4 12.2 9.7-16.2c17.7-29.7 64.5-29.7 82.2 0l9.7 16.2 14.4-12.2c6.2-5.3 16.7-11.6 30.8-11.6 26.5 0 48 21.6 48 48.1s-21.5 48.1-48 48.1h-48.9l-26.7 80.2h-40.9l-26.7-80.2H160zm47.6 112.3h96.8l51 65.2-35 41c-6.7 7.9-19.7 7.8-26.3 0L268.8 332c-9.6-11.2-23.1-17-38.3-17.3-14.8.3-28.5 7-37.7 18.6-6.6 8.3-20.5 8.3-27.1 0l-9.6-12 51.5-65.9zm-175.9 225l104.1-133.2 4.9 6.1c18.8 23.5 58.3 23.6 77.1 0 3.3-4.1 8.1-6.5 13.3-6.5 5.3.1 10.1 2.2 13.4 6.1l25.3 29.5c9.4 11 23.1 17.3 37.5 17.3 14.4 0 28.1-6.3 37.5-17.3l30.8-36.1L480 479.9l-448.3.5z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fal',\n iconName: 'volleyball-ball',\n icon: [496, 512, [], \"f45f\", \"M248 8C111.2 8 0 119.2 0 256s111.2 248 248 248 248-111.2 248-248S384.8 8 248 8zm172 378.1c-85.6 22.4-176.5 4.8-247.7-46.9 21.3-25.6 47.1-47.5 76.5-64.8 84.3 47.1 159.8 45.1 207.5 37.9-7.3 27-19.8 52-36.3 73.8zm42.8-107.2c-24.4 4.6-48.9 6.4-73.2 4.9 8.7-81.6-13.6-162.9-61.8-228.3 59.2 23.6 148.2 98.2 135 223.4zM274.4 41.8c62.3 62.9 92.6 150.4 83.4 238.1-32.8-5.6-64.5-17-94.2-33.7-1-72.8-25.7-142.2-70.9-198.9 40.2-10.5 69.3-7 81.7-5.5zM160.5 58.7c16.1 18.8 30 39.1 40.8 60.8C126.4 152.7 67.1 212.7 34.5 287 14 145.8 123.2 75.3 160.5 58.7zM49.2 340.4c23.3-85.5 84-155.6 164.6-191.5 11.5 31.2 17.5 64.4 17.9 98.4-62.6 37.2-110.3 93.5-136.8 160.9-19.2-19.4-34.9-42.3-45.7-67.8zm71.7 89.9c8.1-23.2 18.8-45.2 32.1-65.3 47.5 34.6 125.7 71.9 228.5 60.5-52.5 41.4-160.7 77.9-260.6 4.8z\"]\n};\nvar faVolume = {\n prefix: 'fal',\n iconName: 'volume',\n icon: [480, 512, [], \"f6a8\", \"M342.91 193.57c-7.81-3.8-17.5-.48-21.34 7.5-3.81 7.97-.44 17.53 7.53 21.34C343.22 229.2 352 242.06 352 256c0 13.94-8.78 26.8-22.9 33.58-7.97 3.81-11.34 13.38-7.53 21.34 3.86 8.05 13.54 11.29 21.34 7.5C368.25 306.28 384 282.36 384 256s-15.75-50.29-41.09-62.43zM231.81 64c-5.91 0-11.92 2.18-16.78 7.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c4.87 4.87 10.88 7.05 16.78 7.05 12.33 0 24.19-9.52 24.19-24.02V88.02C256 73.51 244.13 64 231.81 64zM224 404.67L139.31 320H32V192h107.31L224 107.33v297.34zm256-148.68c0-66.12-34.02-126.62-88.81-157.87-7.69-4.38-17.59-1.78-22.04 5.89-4.45 7.66-1.77 17.44 5.96 21.86 44.77 25.55 72.61 75.4 72.61 130.12s-27.84 104.58-72.61 130.12c-7.72 4.42-10.4 14.2-5.96 21.86 4.3 7.38 14.06 10.44 22.04 5.89C445.98 382.62 480 322.12 480 255.99z\"]\n};\nvar faVolumeDown = {\n prefix: 'fal',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M342.91 194.57c-7.81-3.8-17.5-.48-21.34 7.5-3.81 7.97-.44 17.53 7.53 21.34C343.22 230.2 352 243.06 352 257c0 13.94-8.78 26.8-22.9 33.58-7.97 3.81-11.34 13.38-7.53 21.34 3.86 8.05 13.54 11.29 21.34 7.5C368.25 307.28 384 283.36 384 257s-15.75-50.29-41.09-62.43zM231.81 65c-5.91 0-11.92 2.18-16.78 7.05L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c4.87 4.87 10.88 7.05 16.78 7.05 12.33 0 24.19-9.52 24.19-24.02V89.02C256 74.51 244.13 65 231.81 65zM224 405.67L139.31 321H32V193h107.31L224 108.33v297.34z\"]\n};\nvar faVolumeMute = {\n prefix: 'fal',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M454.63 256l55.03-55.03c3.12-3.12 3.12-8.19 0-11.31l-11.31-11.31c-3.12-3.12-8.19-3.12-11.31 0L432 233.37l-55.03-55.03c-3.12-3.12-8.19-3.12-11.31 0l-11.31 11.31c-3.12 3.12-3.12 8.19 0 11.31L409.37 256l-55.03 55.03c-3.12 3.12-3.12 8.19 0 11.31l11.31 11.31c3.12 3.12 8.19 3.12 11.31 0L432 278.63l55.03 55.03c3.12 3.12 8.19 3.12 11.31 0l11.31-11.31c3.12-3.12 3.12-8.19 0-11.31L454.63 256zM231.81 64c-5.91 0-11.92 2.18-16.78 7.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c4.87 4.87 10.88 7.05 16.78 7.05 12.33 0 24.19-9.52 24.19-24.02V88.02C256 73.51 244.13 64 231.81 64zM224 404.67l-75.32-75.3-9.37-9.37H32V192h107.31l9.37-9.37 75.32-75.3v297.34z\"]\n};\nvar faVolumeOff = {\n prefix: 'fal',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M231.81 64a23.44 23.44 0 0 0-16.78 7l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441a23.47 23.47 0 0 0 16.81 7c12.33 0 24.19-9.52 24.19-24V88c0-14.51-11.86-24-24.19-24zM224 404.67L139.31 320H32V192h107.31L224 107.33v297.34z\"]\n};\nvar faVolumeSlash = {\n prefix: 'fal',\n iconName: 'volume-slash',\n icon: [640, 512, [], \"f2e2\", \"M256 107.3v37.2l32 25.2V88c0-14.5-11.9-24-24.2-24-5.9 0-11.9 2.2-16.8 7l-37.1 37.1 25.3 19.9zm152 18.6c44.4 25.5 72 75.4 72 130.1 0 19.8-3.7 39-10.5 56.6l25.9 20.4c10.6-23.6 16.6-49.8 16.6-77 0-66.1-33.7-126.6-88-157.9-7.6-4.4-17.4-1.8-21.8 5.9-4.5 7.7-1.8 17.5 5.8 21.9zm30.8-95.7C523.4 74.7 576 161.2 576 256c0 41.8-10.7 81.7-29.4 117.3l25.5 20.1C595 352 608 305.1 608 256c0-106.7-59.1-204.1-154.2-254.2-7.9-4.1-17.5-1.1-21.6 6.7-4.2 7.9-1.2 17.5 6.6 21.7zm-77.7 192.2c9.5 4.5 16.3 12 19.9 20.5l33.1 26c.9-4.3 1.9-8.5 1.9-13 0-26.4-15.8-50.3-41.1-62.4-7.8-3.8-17.5-.5-21.3 7.5s-.5 17.6 7.5 21.4zM637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zm-198.2-3.4c-7.8 4.1-10.8 13.8-6.7 21.6 2.8 5.3 8.2 8.6 14.2 8.5 2.5 0 5.1-.6 7.5-1.8 21.7-11.4 41.2-25.5 58.8-41.4l-25.7-20.2c-14.7 12.6-30.5 24.1-48.1 33.3zM256 404.7L171.3 320H64V192h97.1l-40.6-32H56c-13.3 0-24 10.7-24 24v144c0 13.2 10.7 24 24 24h102.1l89 89c4.9 4.9 10.9 7 16.8 7 12.3 0 24.2-9.5 24.2-24V291.9l-32-25.2v138z\"]\n};\nvar faVolumeUp = {\n prefix: 'fal',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M342.91 193.57c-7.81-3.8-17.5-.48-21.34 7.5-3.81 7.97-.44 17.53 7.53 21.34C343.22 229.2 352 242.06 352 256s-8.78 26.8-22.9 33.58c-7.97 3.81-11.34 13.38-7.53 21.34 3.86 8.05 13.54 11.29 21.34 7.5C368.25 306.28 384 282.36 384 256s-15.75-50.29-41.09-62.43zM231.81 64c-5.91 0-11.92 2.18-16.78 7.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c4.87 4.87 10.88 7.05 16.78 7.05 12.33 0 24.19-9.52 24.19-24.02V88.02C256 73.51 244.13 64 231.81 64zM224 404.67L139.31 320H32V192h107.31L224 107.33v297.34zM421.51 1.83c-7.89-4.08-17.53-1.12-21.66 6.7-4.13 7.81-1.13 17.5 6.7 21.61 84.76 44.55 137.4 131.1 137.4 225.85s-52.64 181.3-137.4 225.85c-7.82 4.11-10.83 13.8-6.7 21.61 4.1 7.75 13.68 10.84 21.66 6.7C516.78 460.06 576 362.67 576 255.99c0-106.67-59.22-204.06-154.49-254.16zM480 255.99c0-66.12-34.02-126.62-88.81-157.87-7.69-4.38-17.59-1.78-22.04 5.89-4.45 7.66-1.77 17.44 5.96 21.86 44.77 25.55 72.61 75.4 72.61 130.12s-27.84 104.58-72.61 130.12c-7.72 4.42-10.4 14.2-5.96 21.86 4.3 7.38 14.06 10.44 22.04 5.89C445.98 382.62 480 322.12 480 255.99z\"]\n};\nvar faVoteNay = {\n prefix: 'fal',\n iconName: 'vote-nay',\n icon: [640, 512, [], \"f771\", \"M393.5 153.8l-11.3-11.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3L320 193.4l-50.9-50.9c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l50.9 50.9-50.9 50.9c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l50.9-50.9 50.9 50.9c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3l-51-50.9 50.9-50.9c3.2-3.1 3.2-8.2 0-11.3zM608 288h-64V62.5c0-16.8-14.3-30.5-32-30.5H128c-17.7 0-32 13.7-32 30.5V288H32c-17.7 0-32 14.3-32 32v128c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zM128 64h384v304H128V64zm480 384H32V320h64v48H73.6c-5.3 0-9.6 3.6-9.6 8v16c0 4.4 4.3 8 9.6 8h492.8c5.3 0 9.6-3.6 9.6-8v-16c0-4.4-4.3-8-9.6-8H544v-48h64v128z\"]\n};\nvar faVoteYea = {\n prefix: 'fal',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M409.3 138.6c-1.6-1.6-3.6-2.3-5.7-2.3-2 0-4.1.8-5.7 2.3L290.5 246.1 242 197.5c-1.6-1.6-3.6-2.3-5.7-2.3-2 0-4.1.8-5.7 2.3l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l65.5 65.5c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l124.5-124.5c3.1-3.1 3.1-8.2 0-11.3l-11.4-11.2zM608 288h-64V62.5c0-16.8-14.3-30.5-32-30.5H128c-17.7 0-32 13.7-32 30.5V288H32c-17.7 0-32 14.3-32 32v128c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zM128 64h384v304H128V64zm480 384H32V320h64v48H73.6c-5.3 0-9.6 3.6-9.6 8v16c0 4.4 4.3 8 9.6 8h492.8c5.3 0 9.6-3.6 9.6-8v-16c0-4.4-4.3-8-9.6-8H544v-48h64v128z\"]\n};\nvar faVrCardboard = {\n prefix: 'fal',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M592 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h165.82c25.19 0 48.03-14.77 58.36-37.74l16.56-36.8C294.66 360.31 306.76 352 320 352s25.34 8.31 31.26 21.46l16.56 36.8C378.15 433.23 401 448 426.18 448H592c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm16 336c0 8.82-7.18 16-16 16H426.18c-12.57 0-24.02-7.41-29.18-18.87l-16.56-36.8C369.42 335.83 345.69 320 320 320s-49.42 15.83-60.44 40.33L243 397.13c-5.16 11.46-16.61 18.87-29.18 18.87H48c-8.82 0-16-7.18-16-16V112c0-8.82 7.18-16 16-16h544c8.82 0 16 7.18 16 16v288zM176 160c-44.18 0-80 35.81-80 80 0 44.18 35.82 80 80 80s80-35.82 80-80-35.82-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288-128c-44.18 0-80 35.81-80 80 0 44.18 35.82 80 80 80s80-35.82 80-80-35.82-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faWagonCovered = {\n prefix: 'fal',\n iconName: 'wagon-covered',\n icon: [640, 512, [], \"f8ee\", \"M544.15,256l91-169.67A62.18,62.18,0,0,0,577.68,0C560.75,0,426.09,32,410.05,32A63.67,63.67,0,0,0,368,16H272A63.67,63.67,0,0,0,230,32C213.92,32,79.49,0,62.39,0A62.18,62.18,0,0,0,4.75,85.85L96,256v65.83A111.88,111.88,0,0,0,176,512c56.37,0,102.56-41.79,110.39-96h67.22c7.83,54.21,54,96,110.39,96a111.88,111.88,0,0,0,80-190.22V256ZM572,32.51c3.35-.61,18.45-2.66,29.24,10.71a30.14,30.14,0,0,1,4.78,29.54L525,224H432V79.59A62.62,62.62,0,0,0,429.2,62ZM244.71,64c5.54-9.5,15.46-16.21,27.29-16.21h96c11.83,0,21.75,6.71,27.29,16.21,2.06,3.54,4.71,9.85,4.71,15.59V224H240V79.59C240,73.85,242.65,67.54,244.71,64Zm-206-20.76A30.53,30.53,0,0,1,67.31,32.38l143.5,29.56A62.48,62.48,0,0,0,208,79.59V224H115.18L33.79,72.29A29.78,29.78,0,0,1,38.75,43.24ZM254.38,384H192V321.62A80.22,80.22,0,0,1,254.38,384ZM160,384H97.62A80.22,80.22,0,0,1,160,321.62ZM97.62,416H160v62.38A80.22,80.22,0,0,1,97.62,416ZM192,478.38V416h62.38A80.22,80.22,0,0,1,192,478.38ZM542.38,384H480V321.62A80.22,80.22,0,0,1,542.38,384ZM448,384H385.62A80.22,80.22,0,0,1,448,321.62Zm-62.38,32H448v62.38A80.22,80.22,0,0,1,385.62,416ZM480,478.38V416h62.38A80.22,80.22,0,0,1,480,478.38Zm32.12-179.13A111,111,0,0,0,464,288c-56.38,0-102.56,41.79-110.39,96H286.39c-7.83-54.21-54-96-110.39-96a111,111,0,0,0-48.12,11.25V256H512.12Z\"]\n};\nvar faWalker = {\n prefix: 'fal',\n iconName: 'walker',\n icon: [448, 512, [], \"f831\", \"M400.85 386.53V80a80 80 0 0 0-80-80h-134a79.92 79.92 0 0 0-77.63 60.61L.24 498.18a8 8 0 0 0 5.83 9.7l15.53 3.88a8 8 0 0 0 9.7-5.82L85.57 288h283.28v98a64.18 64.18 0 1 0 32 .53zM140.26 68.36A47.92 47.92 0 0 1 186.82 32h134a48 48 0 0 1 48 48v112H109.47zM93.53 256l8-32h267.32v32zM384 480a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faWalkieTalkie = {\n prefix: 'fal',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M104 192h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm248-96h-32V80a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16h-32V80a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v16H96V8a8 8 0 0 0-8-8H72a8 8 0 0 0-8 8v88H32a32.09 32.09 0 0 0-32 32v178.74a32 32 0 0 0 9.38 22.63L32 352v112a48 48 0 0 0 48 48h224a48 48 0 0 0 48-48V352l22.62-22.63a32 32 0 0 0 9.38-22.63V128a32.09 32.09 0 0 0-32-32zm0 210.75l-22.63 22.62-9.37 9.38V464a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V338.75l-9.37-9.38L32 306.74V128h320zM104 256h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm0 64h176a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H104a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8z\"]\n};\nvar faWalking = {\n prefix: 'fal',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M305.5 247.3l-19.6-21.1-8.7-28.5c-7.9-26.1-23.3-47.8-43.2-62.8 19.3-13.4 32-35.7 32-60.9 0-40.8-33.2-74-74-74s-74 33.2-74 74c0 15.7 4.9 30.3 13.3 42.3-14.7 3.8-28.4 9.8-45.3 17.4l-8.6 3.8c-24 10.5-43.4 30.1-54.9 55.2l-11.8 28c-7.3 17.2-5.7 35.7 4.2 50.7C24.6 286 41.2 295 58.4 295c12.5 0 24-4.7 32.9-12.9.2 1.4.4 2.7.6 4.1l-14.2 38.9-16.3 44.6L14 422.1c-18.7 20.4-18.7 52.4 0 72.9 9.6 10.5 23.2 16.6 37.2 16.6 14 0 27.6-6 37.2-16.6l46.7-51.2c9.6-10.6 17-22.9 22-36.5l8.7-23.9 10.6 10.7c.5.5.8 1.3.9 1.9l15.6 74.2C198 494.5 219 512 242.8 512c4 0 8.1-.5 12.1-1.5 27.4-6.9 44-34.6 38-62.9l-15.6-74.1c-2.8-13.2-7.8-25.6-14.7-36.7 1.8.2 3.6.3 5.5.3 20.3 0 38.9-12.6 47.4-32.2 8.6-19.5 4.7-41.6-10-57.6zM192 32c23.2 0 42 18.8 42 42s-18.8 42-42 42-42-18.8-42-42 18.8-42 42-42zm-65 364.3c-3.5 9.7-8.8 18.4-15.6 25.9l-46.7 51.2c-3.7 4.1-8.6 6.2-13.6 6.2-4.9 0-9.8-2.1-13.6-6.2-7.5-8.2-7.5-21.5 0-29.7l46.7-51.2c3.1-3.4 5.5-7.4 7.1-11.8l16.3-44.6.1.1 1 1.2 29 29.3-10.7 29.6zm141.1-91.1c-4.4 0-9-1.8-13-6.2l-23.5-25.3c-5-5.4-8.8-12.1-11-19.4-11.4-37.5-11.5-39.9-17.5-48.5l-20.9 91.7 43 43.4c10.4 10.6 17.7 24.2 20.8 39.3l15.6 74.1c2.4 11.3-4 22.6-14.4 25.2-1.5.4-3 .5-4.4.5-9.4 0-16.7-7.6-18.6-16.3l-15.6-74.2c-1.4-6.9-4.7-13-9.5-17.8L136 307.8c-11.6-13.8-15.7-31.2-11.9-47.7l15.8-69.3c-9 3.2-18.1 7.3-35.4 15-8 3.5-14.5 10-18.3 18.4L75 250.8c-3.7 8.7-10.1 12.3-16.6 12.3-12.5 0-25.2-13.4-18.2-29.9L51.7 206c8.3-18.2 21.9-31.9 38.6-39.2 34.2-15.1 48.7-22.8 76.6-22.8 36.3 0 68.3 25.3 79.8 63l10.3 33.9c.3 1 .8 2 1.6 2.8L282 269c14.1 15.3.9 36.2-13.9 36.2z\"]\n};\nvar faWallet = {\n prefix: 'fal',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M384 256c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm80-160h-16V80c0-26.51-21.49-48-48-48H96C42.98 32 0 74.98 0 128v256c0 53.02 42.98 96 96 96h352c35.35 0 64-28.65 64-64V144c0-26.51-21.49-48-48-48zm16 320c0 17.64-14.36 32-32 32H96c-35.29 0-64-28.71-64-64V128c0-35.29 28.71-64 64-64h304c8.82 0 16 7.18 16 16v16H112c-8.84 0-16 7.16-16 16s7.16 16 16 16h352c8.82 0 16 7.18 16 16v272z\"]\n};\nvar faWand = {\n prefix: 'fal',\n iconName: 'wand',\n icon: [512, 512, [], \"f72a\", \"M400 192c8.84 0 16-7.16 16-16v-27.96l91.87-101.83c5.72-6.32 5.48-16.02-.55-22.05L487.84 4.69A15.97 15.97 0 0 0 476.52 0c-3.84 0-7.68 1.37-10.73 4.13L186.6 256H144c-8.84 0-16 7.16-16 16v36.87L10.53 414.84c-13.57 12.28-14.1 33.42-1.16 46.36l41.43 41.43c6.26 6.27 14.45 9.37 22.62 9.37 8.71 0 17.4-3.53 23.73-10.53L376.34 192H400zM73.43 480l-41.46-41.4L455.35 56.65 73.43 480z\"]\n};\nvar faWandMagic = {\n prefix: 'fal',\n iconName: 'wand-magic',\n icon: [512, 512, [], \"f72b\", \"M458.66 341.33L432 288l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67zM432 384c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zm176 96c8.84 0 16-7.16 16-16v-27.96l91.87-101.83c5.72-6.32 5.48-16.02-.55-22.05L487.84 4.69A15.97 15.97 0 0 0 476.52 0c-3.84 0-7.68 1.37-10.73 4.13L186.6 256H144c-8.84 0-16 7.16-16 16v36.87L10.53 414.84c-13.57 12.28-14.1 33.42-1.16 46.36l41.43 41.43c6.26 6.27 14.45 9.37 22.62 9.37 8.71 0 17.4-3.53 23.73-10.53L376.34 192H400zM73.43 480l-41.46-41.4L455.35 56.65 73.43 480zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm0-96c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16z\"]\n};\nvar faWarehouse = {\n prefix: 'fal',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M512 224H128c-17.7 0-32 14.4-32 32v248c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-56h384v56c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V256c0-17.6-14.3-32-32-32zm0 192H128v-64h384v64zm0-96H128v-64h384v64zm98.6-201.7L338.6 3.7c-11.8-5-25.3-5-37.2 0l-272 114.6C11.5 125.8 0 143.2 0 162.5V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V162.5c0-6.5 3.8-12.2 9.8-14.8l272-114.6c3.9-1.7 8.5-1.7 12.4 0l272 114.6c6 2.5 9.8 8.3 9.8 14.8V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V162.5c0-19.3-11.5-36.7-29.4-44.2z\"]\n};\nvar faWarehouseAlt = {\n prefix: 'fal',\n iconName: 'warehouse-alt',\n icon: [640, 512, [], \"f495\", \"M528 352H352V240c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM320 480H128v-96h192v96zm0-128H128v-96h192v96zm192 128H352v-96h160v96zm98.6-361.7L338.6 3.7c-11.8-5-25.3-5-37.2 0l-272 114.6C11.5 125.8 0 143.2 0 162.5V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V162.5c0-6.5 3.8-12.2 9.8-14.8l272-114.6c3.9-1.7 8.5-1.7 12.4 0l272 114.6c6 2.5 9.8 8.3 9.8 14.8V504c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V162.5c0-19.3-11.5-36.7-29.4-44.2z\"]\n};\nvar faWasher = {\n prefix: 'fal',\n iconName: 'washer',\n icon: [446, 512, [], \"f898\", \"M384-1H64A64 64 0 0 0 0 63v416a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V63a64 64 0 0 0-64-64zm32 480H32V63a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32zM80 95a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm64 0a16 16 0 1 0-16-16 16 16 0 0 0 16 16zm80 32a160 160 0 1 0 160 160 160 160 0 0 0-160-160zm0 288a128 128 0 1 1 128-128 128.14 128.14 0 0 1-128 128zm36.87-131.66a51.23 51.23 0 0 1-73.74 0A51.81 51.81 0 0 1 150 299c-7.71 0-14.74-2.15-21.31-5.16C132.27 343.53 173.41 383 224 383s91.73-39.47 95.31-89.16c-6.57 3-13.6 5.16-21.31 5.16a51.81 51.81 0 0 1-37.13-15.66z\"]\n};\nvar faWatch = {\n prefix: 'fal',\n iconName: 'watch',\n icon: [384, 512, [], \"f2e1\", \"M320 112.9V24c0-13.2-10.8-24-24-24H88C74.8 0 64 10.8 64 24v88.9C24.7 148.1 0 199.1 0 256s24.7 107.9 64 143.1V488c0 13.2 10.8 24 24 24h208c13.2 0 24-10.8 24-24v-88.9c39.3-35.2 64-86.2 64-143.1s-24.7-107.9-64-143.1zM96 32h192v57.7C259.8 73.3 227 64 192 64s-67.8 9.3-96 25.7V32zm192 448H96v-57.7c28.2 16.3 61 25.7 96 25.7s67.8-9.4 96-25.7V480zm-96-64c-88.6 0-160-71.8-160-160S103.5 96 192 96c88.4 0 160 71.6 160 160s-71.6 160-160 160zm49-92.2l-60.1-43.7c-3.1-2.3-4.9-5.9-4.9-9.7V150.3c0-6.6 5.4-12 12-12h8c6.6 0 12 5.4 12 12v109.9l51.8 37.7c5.4 3.9 6.5 11.4 2.6 16.8l-4.7 6.5c-3.8 5.3-11.3 6.5-16.7 2.6z\"]\n};\nvar faWatchCalculator = {\n prefix: 'fal',\n iconName: 'watch-calculator',\n icon: [384, 512, [], \"f8f0\", \"M136 232h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zm72 72h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zm-72 0h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zm144 0h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zm-72-72h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zM320 81.61V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v49.61A80 80 0 0 0 0 160v192a80 80 0 0 0 64 78.39V480a32 32 0 0 0 32 32h192a32 32 0 0 0 32-32v-49.61A80 80 0 0 0 384 352V160a80 80 0 0 0-64-78.39zM96 32h192v48H96zm192 448H96v-48h192zm64-128a48.05 48.05 0 0 1-48 48H80a48.05 48.05 0 0 1-48-48V160a48.05 48.05 0 0 1 48-48h224a48.05 48.05 0 0 1 48 48zm-72-192H104a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8zm0 72h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8z\"]\n};\nvar faWatchFitness = {\n prefix: 'fal',\n iconName: 'watch-fitness',\n icon: [384, 512, [], \"f63e\", \"M248.42 168.01c-15.76 0-35.02 6.7-56.42 27.74-21.4-21.04-40.66-27.74-56.42-27.74-16.47 0-29.11 7.31-36.38 13.22-28.27 22.95-29.75 64.17-4.45 89.04l87.08 85.59c5.61 5.52 14.73 5.53 20.36 0l87.08-85.59c25.3-24.87 23.81-66.09-4.46-89.04-7.28-5.91-19.93-13.22-36.39-13.22zm18.41 79.44L192 321l-74.83-73.55c-11.77-11.57-11.19-30.51 2.2-41.38 11.1-9.02 27.15-10.16 50.2 12.5L192 240.63l22.43-22.05c22.96-22.57 39.01-21.58 50.2-12.49 13.42 10.88 13.94 29.81 2.2 41.36zM320 81.61V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v49.61C27.48 89.03 0 121.3 0 160v192c0 38.7 27.48 70.97 64 78.39V480c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-49.61c36.52-7.41 64-39.69 64-78.39V160c0-38.7-27.48-70.97-64-78.39zM96 32h192v48H96V32zm192 448H96v-48h192v48zm64-128c0 26.47-21.53 48-48 48H80c-26.47 0-48-21.53-48-48V160c0-26.47 21.53-48 48-48h224c26.47 0 48 21.53 48 48v192z\"]\n};\nvar faWater = {\n prefix: 'fal',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M568.3 416c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.7-20.2.1-20.2 16.6-48.4 26.7-78.2 28.2-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c0-4.3-3.4-7.7-7.7-7.9zm0-106.7c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.7-20.2.1-20.2 16.6-48.3 26.7-78.1 28.2-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c-.1-4.3-3.5-7.7-7.8-7.9zm0-106.7c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.7-20.2.1-20.2 16.6-48.4 26.7-78.2 28.2-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c0-4.3-3.4-7.7-7.7-7.9zm0-106.7c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.7-20.2.1C65.7 84.3 37.5 94.4 7.7 95.9c-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c0-4.3-3.4-7.7-7.7-7.9z\"]\n};\nvar faWaterLower = {\n prefix: 'fal',\n iconName: 'water-lower',\n icon: [576, 512, [], \"f774\", \"M276.7 235.7c3.1 2.9 7.2 4.4 11.3 4.4s8.2-1.5 11.3-4.4l90.3-84.7c3.1-2.9 3.1-7.7 0-10.6l-11.3-10.6c-3.1-2.9-8.2-2.9-11.3 0l-63 59.1V7.5c0-4.1-3.6-7.5-8-7.5h-16c-4.4 0-8 3.4-8 7.5v181.3l-63-59.1c-3.1-2.9-8.2-2.9-11.3 0l-11.3 10.6c-3.1 2.9-3.1 7.7 0 10.6l90.3 84.8zM568.3 450c-29.5-1.4-57.7-10.9-78.2-26.5-5.9-4.5-14.3-4.5-20.2.1-43.7 33.6-127 34-171.8-.1-5.9-4.5-14.3-4.5-20.2.1-43.7 33.6-127 34-171.8-.1-5.9-4.5-14.3-4.4-20.2.1-20.2 15.6-48.3 25-78.1 26.4-4.3.2-7.7 3.4-7.7 7.4v15c0 4.2 3.8 7.8 8.3 7.6 32.3-1.4 63.3-10.6 87.8-26.2 53.8 33.9 139.2 33.5 192 0 53.7 33.9 139.2 33.5 192 0 24.6 15.5 55.6 24.8 87.6 26.2 4.5.2 8.3-3.3 8.3-7.6v-15c-.1-4-3.5-7.2-7.8-7.4zm0-119.9c-29.5-1.4-57.7-10.9-78.2-26.5-5.9-4.5-14.3-4.5-20.2.1-43.7 33.6-127 34-171.8-.1-5.9-4.5-14.3-4.5-20.2.1-43.7 33.6-127 34-171.8-.1-5.9-4.5-14.3-4.4-20.2.1-20.2 15.6-48.3 25-78.1 26.4-4.3.2-7.7 3.4-7.7 7.4v15c0 4.2 3.8 7.8 8.3 7.6 32.3-1.4 63.3-10.6 87.8-26.2 53.8 33.9 139.2 33.5 192 0 53.7 33.9 139.2 33.5 192 0 24.6 15.5 55.6 24.8 87.6 26.2 4.5.2 8.3-3.3 8.3-7.6v-15c-.1-4-3.5-7.2-7.8-7.4z\"]\n};\nvar faWaterRise = {\n prefix: 'fal',\n iconName: 'water-rise',\n icon: [576, 512, [], \"f775\", \"M197.7 117.7c3.1 3.1 8.2 3.1 11.3 0l63-63v193.4c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V54.6l63 63c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L299.3 4.7C296.2 1.6 292.1 0 288 0s-8.2 1.6-11.3 4.7l-90.3 90.4c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3zM568.3 480c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.7-20.2.1-20.2 16.6-48.4 26.7-78.2 28.2-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c0-4.3-3.4-7.7-7.7-7.9zm0-128.1c-29.5-1.5-57.7-11.6-78.2-28.3-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.8-20.2.1-43.7 35.9-127 36.3-171.8-.1-5.9-4.8-14.3-4.7-20.2.1-20.2 16.6-48.3 26.7-78.1 28.2-4.3.2-7.7 3.6-7.7 7.9v16c0 4.5 3.8 8.3 8.3 8.1 32.3-1.5 63.3-11.4 87.8-27.9 53.8 36.1 139.2 35.8 192 0 53.7 36.1 139.2 35.8 192 0 24.6 16.5 55.6 26.4 87.6 27.9 4.5.2 8.3-3.6 8.3-8.1v-16c-.1-4.3-3.5-7.6-7.8-7.9z\"]\n};\nvar faWaveSine = {\n prefix: 'fal',\n iconName: 'wave-sine',\n icon: [640, 512, [], \"f899\", \"M634.1 260.56l-15.4-4.27a8 8 0 0 0-9.77 5.33C592.08 317.9 521.8 448 464 448c-57.47 0-93.81-100.38-129-197.45C296.16 143.11 255.94 32 176 32 87.29 32 13.05 198.62.33 241.55a7.92 7.92 0 0 0 5.57 9.89l15.4 4.26a7.93 7.93 0 0 0 9.77-5.32C47.92 194.1 118.2 64 176 64c57.47 0 93.81 100.38 129 197.45C343.84 368.89 384.06 480 464 480c88.71 0 163-166.62 175.67-209.55a7.92 7.92 0 0 0-5.57-9.89z\"]\n};\nvar faWaveSquare = {\n prefix: 'fal',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M632 240H496a32 32 0 0 0-32 32v176H336V64a32 32 0 0 0-32-32H176a32 32 0 0 0-32 32v176H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h136a32 32 0 0 0 32-32V64h128v384a32 32 0 0 0 32 32h128a32 32 0 0 0 32-32V272h136a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\"]\n};\nvar faWaveTriangle = {\n prefix: 'fal',\n iconName: 'wave-triangle',\n icon: [640, 512, [], \"f89a\", \"M636.73 235.05l-12.91-9.47a8 8 0 0 0-11.18 1.72L464.38 436.44 189.16 38.93A16 16 0 0 0 176.22 32c-6.22-.43-10 2.38-13.13 6.54L1.55 265.82A8 8 0 0 0 3.27 277l12.91 9.47a8 8 0 0 0 11.18-1.72L175.62 75.6l275.22 397.51a16 16 0 0 0 12.94 6.89h.22a16 16 0 0 0 12.91-6.53l161.54-227.24a8 8 0 0 0-1.72-11.18z\"]\n};\nvar faWaveform = {\n prefix: 'fal',\n iconName: 'waveform',\n icon: [640, 512, [], \"f8f1\", \"M232 96h-16a8 8 0 0 0-8 8v304a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V104a8 8 0 0 0-8-8zm-96 96h-16a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V200a8 8 0 0 0-8-8zm-96 32H24a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zm384-96h-16a8 8 0 0 0-8 8v240a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V136a8 8 0 0 0-8-8zm192 96h-16a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8zM520 64h-16a8 8 0 0 0-8 8v368a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V72a8 8 0 0 0-8-8zM328 0h-16a8 8 0 0 0-8 8v496a8 8 0 0 0 8 8h16a8 8 0 0 0 8-8V8a8 8 0 0 0-8-8z\"]\n};\nvar faWaveformPath = {\n prefix: 'fal',\n iconName: 'waveform-path',\n icon: [640, 512, [], \"f8f2\", \"M632 276h-61.72l-14.44-93.83A12 12 0 0 0 544.25 172c-4.69.11-10.91 4.11-12 9.66L498 353 459.88 86.3a12 12 0 0 0-23.76-.16L385 412.42l-53.06-402a12 12 0 0 0-23.82 0l-53.12 402-51.12-326.28a12 12 0 0 0-23.76.16L142 353l-34.25-171.36c-1.16-5.81-7.87-9.53-12.19-9.64a12 12 0 0 0-11.44 10.17L69.72 276H8a8 8 0 0 0-8 8v8a8 8 0 0 0 8 8h72a12 12 0 0 0 11.84-10.17l5.72-36.91 34.69 173.44c1.16 5.92 5.56 9.34 12.37 9.64a11.92 11.92 0 0 0 11.26-10.3L192.56 169l51.56 332.91c.5 3.08 2.63 10.14 11.6 10.14h.37a12.09 12.09 0 0 0 11.82-10.42L320 106.78l52.09 394.8a12 12 0 0 0 23.79.28L447.44 169l36.68 256.7a12 12 0 0 0 11.57 10.3c4.75-.25 10.81-3.39 12.09-9.66l34.66-173.42 5.72 36.91A11.88 11.88 0 0 0 560 300h72a8 8 0 0 0 8-8v-8a8 8 0 0 0-8-8z\"]\n};\nvar faWebcam = {\n prefix: 'fal',\n iconName: 'webcam',\n icon: [448, 512, [], \"f832\", \"M401 438.6l-49.19-30.75C409.88 367.39 448 300.19 448 224 448 100.29 347.71 0 224 0S0 100.29 0 224c0 76.19 38.12 143.39 96.23 183.85L47 438.6a32 32 0 0 0-15 27.14V480a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32v-14.26a32 32 0 0 0-15-27.14zM32 224c0-106 86-192 192-192s192 86 192 192-86 192-192 192S32 330 32 224zm352 256H64v-14.26L127.62 426a221.84 221.84 0 0 0 192.76 0L384 465.74zm0-256a160 160 0 1 0-160 160 160 160 0 0 0 160-160zm-288 0a128 128 0 1 1 128 128A128.14 128.14 0 0 1 96 224zm144-80a16 16 0 0 0-16-16 96.1 96.1 0 0 0-96 96 16 16 0 0 0 32 0 64.07 64.07 0 0 1 64-64 16 16 0 0 0 16-16z\"]\n};\nvar faWebcamSlash = {\n prefix: 'fal',\n iconName: 'webcam-slash',\n icon: [640, 512, [], \"f833\", \"M637 485.25L23 1.75A8 8 0 0 0 11.76 3l-10 12.51A8 8 0 0 0 3 26.75l614 483.5a8 8 0 0 0 11.25-1.25l10-12.51a8 8 0 0 0-1.25-11.24zM320 32c106 0 192 86 192 192a190.79 190.79 0 0 1-28.24 99.86l25.12 19.78A222 222 0 0 0 544 224C544 100.29 443.72 0 320 0a223.19 223.19 0 0 0-160.81 68.27l25.19 19.84A191.38 191.38 0 0 1 320 32zM163.07 193.53A159.34 159.34 0 0 0 320 384a158.7 158.7 0 0 0 66.24-14.73L356.69 346c-11.7 3.53-23.85 6-36.68 6A128.15 128.15 0 0 1 192 224c0-2.44.59-4.72.72-7.12zM458 303.6c13.6-23.53 22-50.47 22-79.6a159.65 159.65 0 0 0-270-115.72l25.65 20.2C258.24 108.52 287.56 96 320 96a128.14 128.14 0 0 1 128 128c0 21.62-5.9 41.69-15.4 59.57zm-196.79-155l26.15 20.59A63.31 63.31 0 0 1 320 160a16 16 0 0 0 0-32 95.06 95.06 0 0 0-58.75 20.64zM320 416c-106 0-192-86-192-192a191.88 191.88 0 0 1 7.39-52.27l-26.83-21.13A223.05 223.05 0 0 0 96 224c0 76.19 38.12 143.39 96.24 183.85L143 438.6a32 32 0 0 0-15 27.14V480a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32v-11.7l-97.87-77.06A190.94 190.94 0 0 1 320 416zm160 49.74V480H160v-14.26L223.63 426a221.82 221.82 0 0 0 192.75 0z\"]\n};\nvar faWeight = {\n prefix: 'fal',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-64.81C353.95 25.38 308.07 0 256 0s-97.95 25.38-127.19 64H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 32c70.69 0 128 57.31 128 128s-57.31 128-128 128-128-57.31-128-128S185.31 32 256 32zm224 416c0 17.67-14.33 32-32 32H64c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h45.56C100.94 115.63 96 137.22 96 160c0 88.22 71.78 160 160 160s160-71.78 160-160c0-22.78-4.94-44.37-13.56-64H448c17.67 0 32 14.33 32 32v320zM256 256c26.47 0 48-21.53 48-48 0-13.92-6.05-26.36-15.54-35.13l30.24-70.57c3.48-8.11-.28-17.52-8.41-21-8.08-3.48-17.52.27-21 8.41l-30.26 70.6C223.57 158 208 188.65 208 208c0 26.47 21.53 48 48 48zm0-64c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16z\"]\n};\nvar faWeightHanging = {\n prefix: 'fal',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-86.74C329.77 114.6 336 98.09 336 80c0-44.18-35.82-80-80-80s-80 35.82-80 80c0 18.09 6.23 34.6 16.36 48h-86.74c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM208 80c0-26.47 21.53-48 48-48s48 21.53 48 48-21.53 48-48 48-48-21.53-48-48zm267.27 393.92c-2.17 2.77-5.88 6.08-11.3 6.08H48.03c-5.42 0-9.13-3.3-11.3-6.08-4.29-5.49-5.77-13.08-3.96-20.3l73.03-292.13c.21-.83.52-1.32.43-1.48h299.31c.2.26.47.72.66 1.48l73.03 292.13c1.81 7.22.33 14.81-3.96 20.3z\"]\n};\nvar faWhale = {\n prefix: 'fal',\n iconName: 'whale',\n icon: [640, 512, [], \"f72c\", \"M432 288c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16zm80-160c-210.5 0-287.35 224-332.12 224-10.96 0-19.88-8.92-19.88-19.88V224l47.38-24.9c10.39-5.93 16.62-15.93 16.62-26.62V80.03c0-9.41-9.01-16.03-18.72-16.03-3.47 0-7.03.85-10.3 2.71L112 114.13 29.02 66.71A20.781 20.781 0 0 0 18.72 64C9.01 64 0 70.61 0 80.03v92.45c0 10.7 6.24 20.69 16.62 26.62L64 224v108.12c0 64 51.88 115.88 115.88 115.88H560c44.18 0 80-35.82 80-80V256.54C640 183.59 576 128 512 128zm96 240c0 26.47-21.53 48-48 48H179.88C133.63 416 96 378.37 96 332.12V204.67l-64-33.84v-65.56l80 45.71 80-45.71v65.76l-64 33.64v127.46c0 28.6 23.27 51.88 51.88 51.88 29.8 0 49.95-25.95 80.45-65.23C309.41 255.54 383.6 160 512 160c45.41 0 96 39.65 96 96.54V368z\"]\n};\nvar faWheat = {\n prefix: 'fal',\n iconName: 'wheat',\n icon: [512, 512, [], \"f72d\", \"M454.06 171.37c-4.44-4.43-9.24-8.25-14.25-11.64 14.69-5.26 28.28-12.24 39.23-22.42 26.58-28.86 34.78-75.04 32.64-120.09-.44-9.23-8.03-16.47-17.26-16.91-4.28-.19-8.76-.31-13.4-.31-34.31 0-76.99 6.42-105.77 33.15-10.84 10.88-18.32 24.1-23.46 37.97-3.19-4.56-6.61-9.01-10.68-13.07l-34.45-34.43c-6.24-6.24-16.37-6.25-22.62 0L250.33 57.3c-17.5 17.49-26.49 40.07-27.66 62.97l-6.34-6.33c-6.24-6.24-16.37-6.25-22.62 0L160 147.63c-17.58 17.57-26.59 40.28-27.69 63.3l-6.48-6.48c-6.24-6.24-16.37-6.25-22.62 0L69.5 238.14c-37.51 37.49-37.51 98.3 0 135.8l22.96 22.95-87.76 87.8c-6.25 6.25-6.25 16.38 0 22.62C7.81 510.44 11.91 512 16 512s8.19-1.56 11.31-4.69l87.55-87.59 22.84 22.83c18.74 18.73 43.3 28.1 67.87 28.1s49.12-9.37 67.87-28.1l33.77-33.75c6.25-6.25 6.25-16.38 0-22.63l-6.47-6.47c22.98-1.11 45.66-10.11 63.21-27.66l33.77-33.75c6.25-6.25 6.25-16.38 0-22.63l-6.33-6.32c22.87-1.19 45.42-10.16 62.89-27.62l33.77-33.75c6.25-6.25 6.25-16.38 0-22.63l-33.99-33.97zM397.03 56.59c21.59-20.06 56.82-24.48 82.96-24.59-.21 36.03-8.62 65.65-23.67 82.71-21.99 19.63-56.99 23.78-82.66 23.78h-.38c-.34-25.94 3.95-61.99 23.75-81.9zM272.95 79.94l22.4-22.39 23.14 23.12c24.38 24.37 25.42 64.13.69 89.69-.29.25-.66.34-.93.62l-22.38 22.39-22.92-22.91c-25.01-24.99-25.04-65.49 0-90.52zm-90.33 90.33l22.4-22.39 23.14 23.13c13.62 13.62 33.75 53.21 1.95 88.16l-24.55 24.56-22.94-22.93c-25.02-25-25.04-65.5 0-90.53zM92.11 351.31c-25.02-25-25.04-65.5 0-90.53l22.4-22.39 23.14 23.13c23.78 23.76 25.63 62.42 1.75 88.4l-24.33 24.34-22.96-22.95zm158.7 68.61c-25 24.98-65.46 25.01-90.49 0l-22.66-22.65 22.45-22.43c24.99-24.98 65.46-25.02 90.49 0l22.66 22.65-22.45 22.43zm90.51-90.51c-25 24.98-65.46 25.01-90.49 0l-22.66-22.65 22.45-22.43c24.99-24.98 65.46-25.02 90.49 0l22.66 22.65-22.45 22.43zm90.33-90.33c-25 24.98-65.46 25.01-90.49 0l-22.66-22.65L340.95 194c24.99-24.98 65.46-25.02 90.49 0l22.66 22.65-22.45 22.43z\"]\n};\nvar faWheelchair = {\n prefix: 'fal',\n iconName: 'wheelchair',\n icon: [448, 512, [], \"f193\", \"M443.875 396.323l3.151 7.353c2.611 6.092-.211 13.146-6.303 15.757l-42.421 19.273c-7.658 3.284-17.345.3-21.175-8.797L317.376 288H176a16 16 0 0 1-15.839-13.737C125.779 33.586 128.211 51.165 128 48c0-27.13 22.508-49.003 49.87-47.964 24.878.945 45.15 21.216 46.095 46.094C225.004 73.491 203.131 96 176 96c-3.115 0-6.156-.307-9.105-.874L176.162 160H308c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12H180.734l9.143 64H328a16 16 0 0 1 14.746 9.791l57.752 137.159 27.621-12.929c6.091-2.611 13.146.211 15.756 6.302zm-127.488-28.211C301.755 432.107 244.366 480 176 480c-79.401 0-144-64.599-144-144 0-58.714 35.326-109.325 85.836-131.717l-4.671-32.679C47.059 196.957 0 261.081 0 336c0 97.047 78.953 176 176 176 69.906 0 130.418-40.969 158.801-100.155l-18.414-43.733z\"]\n};\nvar faWhistle = {\n prefix: 'fal',\n iconName: 'whistle',\n icon: [640, 512, [], \"f460\", \"M210 189.4c-35.7 0-64.6 28.9-64.6 64.6 0 35.7 28.9 64.6 64.6 64.6s64.6-28.9 64.6-64.6c0-35.7-28.9-64.6-64.6-64.6zm0 96.9c-17.8 0-32.3-14.5-32.3-32.3 0-17.8 14.5-32.3 32.3-32.3s32.3 14.5 32.3 32.3c0 17.8-14.5 32.3-32.3 32.3zm254.2-83.7L436.5 219c-2.9 1.7-6.5 1.5-9.2-.6L401.9 198c-2.7-2.1-3.7-5.7-2.6-8.9l10.3-29.8c2.2-6.5.1-13.6-5.2-17.9-68-54.4-107.8-97.3-194.5-97.3-33 0-66 7.8-96.1 23.3C101.5 52.8 83.8 44 64.6 44 29 44 0 73 0 108.6c0 19.5 8.7 37.5 23.2 49.6-40.5 79-27.8 178.2 38.3 244.3 41 41 94.7 61.5 148.5 61.5s107.5-20.5 148.5-61.5c10.1-10.1 18.9-20.9 26.5-32.4l151.9 86.8c7.1 4 16 2.2 20.9-4.3l79-105.3c5.2-7 4-16.9-2.8-22.3L482.5 203.8c-5.2-4.2-12.5-4.7-18.3-1.2zm-431.9-94c0-17.8 14.5-32.3 32.3-32.3 8.1 0 15.8 3 21.6 8.3-8.6 6.3-17 13.1-24.7 20.9-7.7 7.7-14.4 16-20.7 24.5-5.2-5.8-8.5-13.2-8.5-21.4zm512.5 307.5c-2.4 3.3-6.9 4.2-10.5 2.2l-159.5-91.2c-13.2 19.9-57 104.2-164.1 104.6-158 .6-238.3-191.4-126.4-303.3 82.3-82.3 183.4-48 220.5-24.5 9.2 6.7 70.5 55.6 70.5 55.6l-12.1 35.2c-2.2 6.5-.1 13.6 5.2 17.9l51.9 41.5c5.2 4.2 12.5 4.7 18.3 1.3l32.5-19.2 124.4 99.5c3.4 2.7 4 7.7 1.4 11.2l-52.1 69.2z\"]\n};\nvar faWifi = {\n prefix: 'fal',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M320 320c-44.18 0-80 35.82-80 80 0 44.19 35.83 80 80 80 44.19 0 80-35.84 80-80 0-44.18-35.82-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm316.21-290.05C459.22-9.9 180.95-10.06 3.79 157.95c-4.94 4.69-5.08 12.51-.26 17.32l5.69 5.69c4.61 4.61 12.07 4.74 16.8.25 164.99-156.39 423.64-155.76 587.97 0 4.73 4.48 12.19 4.35 16.8-.25l5.69-5.69c4.81-4.81 4.67-12.63-.27-17.32zM526.02 270.31c-117.34-104.48-294.86-104.34-412.04 0-5.05 4.5-5.32 12.31-.65 17.2l5.53 5.79c4.46 4.67 11.82 4.96 16.66.67 105.17-93.38 264-93.21 368.98 0 4.83 4.29 12.19 4.01 16.66-.67l5.53-5.79c4.65-4.89 4.38-12.7-.67-17.2z\"]\n};\nvar faWifi1 = {\n prefix: 'fal',\n iconName: 'wifi-1',\n icon: [640, 512, [], \"f6aa\", \"M320 320c-44.18 0-80 35.82-80 80 0 44.19 35.83 80 80 80 44.19 0 80-35.84 80-80 0-44.18-35.82-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faWifi2 = {\n prefix: 'fal',\n iconName: 'wifi-2',\n icon: [640, 512, [], \"f6ab\", \"M526.02 270.31c-117.34-104.48-294.86-104.34-412.04 0-5.05 4.5-5.32 12.31-.65 17.2l5.53 5.79c4.46 4.67 11.82 4.96 16.66.67 105.17-93.38 264-93.21 368.98 0 4.83 4.29 12.19 4.01 16.66-.67l5.53-5.79c4.65-4.89 4.38-12.7-.67-17.2zM320 320c-44.18 0-80 35.82-80 80 0 44.19 35.83 80 80 80 44.19 0 80-35.84 80-80 0-44.18-35.82-80-80-80zm0 128c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faWifiSlash = {\n prefix: 'fal',\n iconName: 'wifi-slash',\n icon: [640, 512, [], \"f6ac\", \"M324.2 320.4c-1.4-.1-2.8-.4-4.2-.4-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80c0-8-1.5-15.5-3.7-22.8zM320 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM3.8 158c-4.9 4.7-5.1 12.5-.3 17.3l5.7 5.7c4.6 4.6 12.1 4.7 16.8.3 19.1-18.1 39.5-33.9 60.8-47.8l-26.4-20.8C40.8 126.3 21.7 141 3.8 158zM614 181.3c4.7 4.5 12.2 4.4 16.8-.3l5.7-5.7c4.8-4.8 4.7-12.6-.3-17.3C503.6 32.2 314.1.6 152.9 63.3l30.2 23.8C328.9 37.9 495.8 69.2 614 181.3zm-297.5 10.8l44.6 35.2c51.8 7.7 101.8 29.8 143.3 66.7 4.8 4.3 12.2 4 16.6-.7l5.5-5.8c4.7-4.9 4.4-12.7-.7-17.2-59.4-53-134.4-79-209.3-78.2zM637 485.2L23 1.8C19.6-1 14.5-.5 11.8 3l-10 12.5C-1 19-.4 24 3 26.7l614 483.5c3.4 2.8 8.5 2.2 11.2-1.2l10-12.5c2.8-3.5 2.3-8.5-1.2-11.3zM114 270.3c-5 4.5-5.3 12.3-.6 17.2l5.5 5.8c4.5 4.7 11.8 5 16.7.7 25.8-23 55.7-40.9 88.1-52.8L195 218.6c-29 12.7-56.4 29.8-81 51.7z\"]\n};\nvar faWind = {\n prefix: 'fal',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M8 224h344c59.8 0 106.8-54.6 93.8-116.7-7.6-36.3-36.9-65.6-73.2-73.2-59.1-12.3-111.5 29.8-116.3 85.4-.4 4.6 3.5 8.4 8 8.4h16.2c4.2 0 7.4-3.3 7.9-7.4 4.3-36.6 39.5-63.8 78.7-54.8 23.1 5.3 41.8 24.1 47.2 47.2 9.6 41.8-22.1 79.1-62.3 79.1H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm148 32H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h149.1c33.4 0 63.3 24.4 66.5 57.6 3.7 38.1-26.3 70.4-63.7 70.4-32.8 0-59.9-24.8-63.6-56.5-.5-4.2-3.7-7.4-7.9-7.4h-16c-4.6 0-8.4 3.9-8 8.4 4.3 49.1 45.5 87.6 95.6 87.6 54 0 97.6-44.6 96-98.9-1.6-52.7-47.5-93.2-100-93.2zm239.3 0H243.8c10.5 9.2 19.4 19.9 26.4 32h126.2c41.8 0 79.1 30.4 83.2 72 4.7 47.7-32.9 88-79.6 88-36.5 0-67.3-24.5-76.9-58-1-3.5-4-6-7.7-6h-16.1c-5 0-9 4.6-7.9 9.5C302.9 443 347 480 400 480c63 0 113.9-52 112-115.4-1.9-61.3-55.4-108.6-116.7-108.6z\"]\n};\nvar faWindTurbine = {\n prefix: 'fal',\n iconName: 'wind-turbine',\n icon: [514, 512, [], \"f89b\", \"M323.48 430.84a45.94 45.94 0 0 0 77.94-47l-67.74-155.58a16.75 16.75 0 0 1-.22-12.89L393.92 62.7A45.82 45.82 0 0 0 314.18 19L218 152.06a16.9 16.9 0 0 1-11 6.74L39.45 185.34a45.93 45.93 0 0 0 2.24 91L207 294.27 195 480h-32.3a36.94 36.94 0 0 0-33 20.42 8 8 0 0 0 7.11 11.58h240a8 8 0 0 0 7.15-11.58 36.93 36.93 0 0 0-33-20.42h-32.33l-3.86-59.58 7 8.3zM227 480l9.83-151.64 43.16 51L286.56 480zm17-199.46a48.85 48.85 0 0 0-32.84-18l-166-18a13.83 13.83 0 0 1-12.35-13.44v-.2a13.82 13.82 0 0 1 11.65-14L212 190.41a48.75 48.75 0 0 0 31.91-19.6l96.2-133.09a13.83 13.83 0 0 1 24.06 13.19l-60.46 152.68a48.77 48.77 0 0 0 .64 37.45l67.73 155.52a13.82 13.82 0 0 1-5.49 17.33l-.17.1a13.83 13.83 0 0 1-18-3.17zM256.8 200a24 24 0 1 0 24 24 24 24 0 0 0-24-24z\"]\n};\nvar faWindWarning = {\n prefix: 'fal',\n iconName: 'wind-warning',\n icon: [640, 512, [], \"f776\", \"M192 0C86 0 0 86 0 192s86 192 192 192 192-86 192-192S298 0 192 0zm0 352c-88.2 0-160-71.8-160-160S103.8 32 192 32s160 71.8 160 160-71.8 160-160 160zm-8.5-144h17c4.2 0 7.7-3.3 8-7.5l7-112c.3-4.6-3.4-8.5-8-8.5h-31c-4.6 0-8.3 3.9-8 8.5l7 112c.3 4.2 3.8 7.5 8 7.5zm8.5 24c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm347.7 88H375.6c-8 11.5-17.1 22.2-27.1 32h192.4c33.4 0 63.3 24.4 66.5 57.6 3.7 38.1-26.3 70.4-63.7 70.4-32.8 0-59.9-24.8-63.6-56.5-.5-4.2-3.7-7.4-7.9-7.4h-16.1c-4.6 0-8.4 3.9-8 8.4 4.3 49.1 45.5 87.6 95.6 87.6 54 0 97.6-44.6 96-98.9-1.6-52.7-47.5-93.2-100-93.2zm98.1-148.7c-7.6-36.3-36.9-65.6-73.2-73.2-59.1-12.3-111.5 29.8-116.3 85.4-.4 4.6 3.5 8.4 8 8.4h16.2c4.2 0 7.4-3.3 7.9-7.4 4.2-36.6 39.5-63.8 78.7-54.8 23.1 5.3 41.8 24.1 47.2 47.2 9.6 41.8-22.1 79.1-62.3 79.1H406.6c-3.3 11.1-7.6 21.7-12.5 32H544c59.8 0 106.8-54.6 93.8-116.7z\"]\n};\nvar faWindow = {\n prefix: 'fal',\n iconName: 'window',\n icon: [512, 512, [], \"f40e\", \"M96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm192-48v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h416c26.5 0 48 21.5 48 48zm-32 144H32v208c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V224zm0-32V80c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v112h448z\"]\n};\nvar faWindowAlt = {\n prefix: 'fal',\n iconName: 'window-alt',\n icon: [512, 512, [], \"f40f\", \"M224 160c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm96 0c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm64-48v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h416c26.5 0 48 21.5 48 48zm-32 144H32v208c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V224zm0-32V80c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v112h448z\"]\n};\nvar faWindowClose = {\n prefix: 'fal',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16v352zM348.6 188.3L280.9 256l67.7 67.7c4.6 4.6 4.6 12 0 16.6l-8.3 8.3c-4.6 4.6-12 4.6-16.6 0L256 280.9l-67.7 67.7c-4.6 4.6-12 4.6-16.6 0l-8.3-8.3c-4.6-4.6-4.6-12 0-16.6l67.7-67.7-67.7-67.7c-4.6-4.6-4.6-12 0-16.6l8.3-8.3c4.6-4.6 12-4.6 16.6 0l67.7 67.7 67.7-67.7c4.6-4.6 12-4.6 16.6 0l8.3 8.3c4.5 4.6 4.5 12 0 16.6z\"]\n};\nvar faWindowFrame = {\n prefix: 'fal',\n iconName: 'window-frame',\n icon: [512, 512, [], \"e04f\", \"M496,416H480V32A32,32,0,0,0,448,0H64A32,32,0,0,0,32,32V416H16A16,16,0,0,0,0,432v64a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V432A16,16,0,0,0,496,416ZM272,32H448V208H272Zm0,208H448V416H272ZM64,32H240V208H64Zm0,208H240V416H64ZM480,480H32V448H480Z\"]\n};\nvar faWindowFrameOpen = {\n prefix: 'fal',\n iconName: 'window-frame-open',\n icon: [512, 512, [], \"e050\", \"M480,32A32,32,0,0,0,448,0H64A32,32,0,0,0,32,32V256H480ZM240,224H64V32H240Zm208,0H272V32H448Zm48,192H480V288H448V416H64V288H32V416H16A16,16,0,0,0,0,432v64a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V432A16,16,0,0,0,496,416Zm-16,64H32V448H480Z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fal',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm16 400c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V192h448v240zM32 160V80c0-8.8 7.2-16 16-16h416c8.8 0 16 7.2 16 16v80H32z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fal',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M496 480H16c-8.8 0-16-7.2-16-16s7.2-16 16-16h480c8.8 0 16 7.2 16 16s-7.2 16-16 16z\"]\n};\nvar faWindowRestore = {\n prefix: 'fal',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM32 144c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v80H32v-80zm352 320c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V256h352v208zm96-96c0 8.8-7.2 16-16 16h-48V144c0-26.5-21.5-48-48-48H128V48c0-8.8 7.2-16 16-16h320c8.8 0 16 7.2 16 16v320z\"]\n};\nvar faWindsock = {\n prefix: 'fal',\n iconName: 'windsock',\n icon: [512, 512, [], \"f777\", \"M497.3 158L64 100.3v-7.2C82.6 86.5 96 68.9 96 48 96 21.5 74.5 0 48 0S0 21.5 0 48c0 20.9 13.4 38.5 32 45.1v410.3c0 4.8 3.6 8.6 8 8.6h16c4.4 0 8-3.9 8-8.6v-99.7L497.3 346c8.4-1.1 14.7-7.9 14.7-15.8V173.9c0-8-6.3-14.7-14.7-15.9zM48 32c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm256 132.5l80 10.7v153.6l-80 10.7v-175zm-32 179.2l-96 12.8v-209l96 12.8v183.4zM64 132.5l80 10.7v217.6l-80 10.7v-239zM480 316l-64 8.5v-145l64 8.5v128z\"]\n};\nvar faWineBottle = {\n prefix: 'fal',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M502.91 72.46L439.3 8.81c-11.75-11.75-32.12-11.74-43.87-.01l-21.25 21.25c-7.91 7.94-10.63 19.17-8.13 29.36l-56.44 56.47c-48.66-16.23-102.17-3.88-138.89 32.85L22.2 297.29c-29.6 29.66-29.6 77.89 0 107.54l84.88 84.89C121.43 504.09 140.49 512 160.8 512s39.41-7.91 53.76-22.28l148.52-148.57c36.69-36.71 49.04-90.22 32.82-138.97l56.41-56.44c10.28 2.5 21.75-.55 29.41-8.19l21.19-21.2c5.84-5.86 9.09-13.65 9.09-21.95s-3.25-16.08-9.09-21.94zm-184.7 268.3l-89.39 89.42-147.1-147.16 89.4-89.43 147.09 147.17zm-188.5 126.32l-84.88-84.89c-17.13-17.17-17.13-45.1 0-62.27l14.27-14.27 147.1 147.17-14.26 14.27c-16.63 16.63-45.6 16.63-62.23-.01zm330.82-352.14l-11.34-11.35-90.82 90.89 4.19 9.93c16.55 39.1 7.98 83.65-21.73 113.69L193.79 170.99c50.83-50.29 111.75-22.55 113.63-21.76l9.91 4.21 90.79-89.46-11.28-11.32 19.81-21.23 62.94 63-19.06 20.51z\"]\n};\nvar faWineGlass = {\n prefix: 'fal',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M287.4 192.66L271.44 14.55C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.57 272.67 51.27 341.55 128 350.27V480H74.67C59.94 480 48 491.94 48 506.67c0 2.95 2.39 5.33 5.33 5.33h181.34c2.95 0 5.33-2.39 5.33-5.33 0-14.73-11.94-26.67-26.67-26.67H160V350.27c76.73-8.72 134.57-77.6 127.4-157.61zM144 318.27c-44.18 0-84.74-25.67-102.45-66.15-7.49-17.13-10.88-36.44-9.07-56.6L47.12 32h193.76l14.65 163.51c1.81 20.16-1.58 39.47-9.07 56.6-17.72 40.48-58.28 66.16-102.46 66.16z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fal',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M213.34 480H160V350.27c76.73-8.72 134.57-77.6 127.4-157.61L271.44 14.55C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.57 272.67 51.27 341.55 128 350.27V480H74.67C59.94 480 48 491.94 48 506.67c0 2.95 2.39 5.33 5.33 5.33h181.34c2.95 0 5.33-2.39 5.33-5.33 0-14.73-11.94-26.67-26.66-26.67zm27.54-448l8.6 96H38.52l8.6-96h193.76zM32.47 195.51L35.66 160h216.69l3.18 35.51c1.81 20.16-1.58 39.48-9.07 56.6-17.71 40.48-58.27 66.15-102.45 66.15s-84.74-25.67-102.45-66.15c-7.51-17.12-10.89-36.44-9.09-56.6z\"]\n};\nvar faWonSign = {\n prefix: 'fal',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 160c6.627 0 12-5.373 12-12v-16c0-6.627-5.373-12-12-12h-53.813l17.23-72.328c1.797-7.541-3.921-14.781-11.673-14.781h-16.275a11.999 11.999 0 0 0-11.691 9.296L469.781 120H327.096l-18.92-77.94a12 12 0 0 0-11.662-9.169h-18.723a12.001 12.001 0 0 0-11.662 9.169L247.209 120H106.656L89.318 42.278a12 12 0 0 0-11.712-9.387H61.313c-7.722 0-13.434 7.188-11.69 14.71L66.41 120H12c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h63.685l12.984 56H12c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h85.943l49.783 214.71a12 12 0 0 0 11.69 9.29h28.302c5.539 0 10.357-3.79 11.662-9.173L251.463 256h71.378l52.084 214.827A12 12 0 0 0 386.587 480h28.361a12 12 0 0 0 11.673-9.219L477.788 256H564c6.627 0 12-5.373 12-12v-16c0-6.627-5.373-12-12-12h-76.683l13.341-56H564zM286.582 98.399h1.14s1.484 9.036 3.793 21.601h-8.726a1280.842 1280.842 0 0 0 3.793-21.601zM115.579 160h121.919l-13.595 56H128.07l-12.491-56zm68.477 220.147c-5.696 22.896-8.544 47.7-9.114 47.7h-1.139s-3.987-24.804-9.113-47.7L136.995 256h77.199l-30.138 124.147zM261.161 216l12.321-50.82c.405-1.696.808-3.427 1.208-5.18h24.926c.4 1.753.803 3.484 1.208 5.18l12.32 50.82h-51.983zm148.454 164.147c-5.127 22.896-9.113 47.7-9.113 47.7h-1.14c-.569 0-3.418-24.804-9.113-47.7L360.111 256h78.216l-28.712 124.147zM447.579 216h-97.178l-13.595-56H460.53l-12.951 56z\"]\n};\nvar faWreath = {\n prefix: 'fal',\n iconName: 'wreath',\n icon: [448, 512, [], \"f7e2\", \"M310.8 193.4c-2.3-22.1-10.3-34.6-31.4-44.5-1.4-.7-.9-.3-1.9-1.5-15.8-18.2-30.5-22.3-52.1-17.6-1.7.4-.9.3-2.6 0-21.6-4.7-36.3-.6-52.1 17.6-1 1.2-.5.8-1.9 1.5-21.1 9.9-29.1 22.4-31.5 44.5-.2 2.3 0 1.5-.9 3.2-11 19.8-11.2 34.7 0 54.9 1 1.7.7.9.9 3.2 2.4 22.8 10.9 34.8 31.4 44.5 1.4.7.9.3 1.9 1.5 15.8 18.2 30.5 22.3 52.1 17.6 1.6-.3.9-.4 2.6 0 21.6 4.7 36.3.6 52.1-17.6 1-1.2.6-.8 1.9-1.5 21.1-9.9 29.1-22.4 31.5-44.5.2-2.3 0-1.5.9-3.2 10.9-19.7 11.2-34.6 0-54.9-.9-1.7-.6-.9-.9-3.2zm-30.4 49.7c-2 6.5-.8 14.7-4.6 20.1-3.8 5.4-11.7 6.8-16.9 10.8-5.2 3.9-8.8 11.4-15 13.5-6 2-13.2-1.7-19.8-1.7-6.6 0-13.8 3.7-19.8 1.7-6.2-2.1-9.9-9.5-15-13.5-5.2-4-13.1-5.3-16.9-10.8-3.8-5.4-2.6-13.6-4.6-20.1-1.9-6.2-7.6-12.2-7.6-19.1 0-6.9 5.7-12.8 7.6-19.1 2-6.5.8-14.7 4.6-20.1 3.8-5.4 11.7-6.8 16.9-10.8 5.2-3.9 8.8-11.4 15-13.5 6-2 13.2 1.7 19.8 1.7 6.6 0 13.8-3.7 19.8-1.7 6.2 2.1 9.9 9.5 15 13.5 5.2 4 13.1 5.3 16.9 10.8 3.8 5.4 2.6 13.6 4.6 20.1 1.9 6.2 7.6 12.2 7.6 19.1s-5.7 12.8-7.6 19.1zM448 224c0-15.3-4.7-29.8-13.2-41.9 3.2-14.4 2-29.7-3.8-43.8-5.9-14.4-16.1-26.1-28.8-34-2.4-14.6-9.2-28.1-19.8-38.7-10.5-10.5-24-17.4-38.7-19.8-7.9-12.7-19.6-22.8-34-28.8-18.6-7.7-35.1-5.8-43.8-3.8C253.8 4.7 239.3 0 224 0s-29.8 4.7-41.9 13.2c-8.7-1.9-25.2-3.9-43.8 3.8-14.3 5.9-26 16-33.9 28.8-14.7 2.4-28.1 9.2-38.7 19.8C55 76.2 48.3 89.7 45.8 104.3c-12.7 7.9-22.8 19.6-28.8 34-5.8 14.1-7.1 29.4-3.8 43.8C4.7 194.2 0 208.7 0 224c0 15.3 4.7 29.8 13.2 41.9-3.2 14.4-2 29.7 3.8 43.8 5.9 14.2 16 25.9 28.7 33.7 2.4 14.7 9.2 28.3 19.8 39C78.1 394.9 94.1 400 112 400v78.6c0 9.5 3.6 19 10.7 25.3 8.6 7.6 20.5 10.1 32.5 6l68.8-28.6 69.9 29c3.3 1.1 6.7 1.6 10.1 1.6 6.7 0 13.2-2.1 18.8-6 8.3-6 13.3-15.7 13.3-26v-80c17.8 0 33.8-5 46.4-17.6 10.7-10.7 17.4-24.3 19.8-39 12.8-7.9 22.8-19.5 28.7-33.7 5.8-14.1 7-29.4 3.8-43.8 8.5-12 13.2-26.5 13.2-41.8zM224 446.7L144 480l-1.1-96.4 81.1 33.7 80-33.3 1.1 96.4-81.1-33.7zm173.2-188.2c7.6 11.1 9.7 25.7 4.2 39-5.6 13.6-17.8 22.1-31.3 24.4 2.9 13.3 0 27.6-10.3 37.9-7.4 7.4-16.9 11-26.6 11.6-2.3-5.2-5.7-9.9-10.5-13.3-8.3-6-19-7.7-28.8-4.4l-69.9 29-69.9-29c-9.9-3.3-20.6-1.6-28.8 4.4-4.7 3.4-8.2 8.1-10.5 13.3-9.7-.6-19.2-4.2-26.6-11.6-10.3-10.3-13.3-24.6-10.3-37.9-13.5-2.3-25.7-10.8-31.3-24.4-5.5-13.4-3.5-27.9 4.2-39-11.3-7.4-18.8-20-18.8-34.5s7.5-27.1 18.8-34.5c-7.6-11.1-9.7-25.7-4.2-39 5.6-13.6 17.7-22.5 31.2-24.7-2.8-13.2.2-27.3 10.4-37.6C103 73.4 121.8 77 125.8 77.8c2.3-13.5 11.1-25.6 24.7-31.2 14.1-5.8 28.6-3 39 4.2 7.3-11.3 20-18.8 34.5-18.8s27.1 7.5 34.5 18.8c10.5-7.2 25-9.9 39-4.1 13.6 5.6 22.4 17.7 24.7 31.2 4-.9 22.8-4.4 37.6 10.4 10.2 10.2 13.2 24.4 10.4 37.5 13.5 2.3 25.6 11.1 31.2 24.7 5.5 13.4 3.5 27.9-4.2 39 11.3 7.3 18.8 20 18.8 34.5s-7.5 27.1-18.8 34.5z\"]\n};\nvar faWrench = {\n prefix: 'fal',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.42 114.49c-2.34-9.47-9.66-16.98-19.06-19.61-9.47-2.61-19.65 0-26.65 6.98l-63.87 63.87-44.25-7.36-7.38-44.24 63.87-63.87c6.94-6.92 9.62-17.09 7-26.54-2.62-9.47-10.19-16.83-19.75-19.2C345.6-8.31 291.95 6.54 254.14 44.3c-37.84 37.87-52.21 92.52-38.62 144.7L22.19 382.29c-29.59 29.63-29.59 77.83 0 107.45C36.54 504.09 55.63 512 75.94 512s39.37-7.91 53.71-22.26l193.14-193.11c52.03 13.73 106.8-.72 144.89-38.82 37.81-37.81 52.68-91.39 39.74-143.32zm-62.36 120.7c-31.87 31.81-78.43 42.63-121.77 28.23l-9.38-3.14-206.88 206.84c-16.62 16.62-45.59 16.62-62.21 0-17.12-17.14-17.12-45.06 0-62.21l207.01-206.98-3.09-9.34c-14.31-43.45-3.56-90.06 28.03-121.67C299.48 44.2 329.44 32 360.56 32c6.87 0 13.81.59 20.72 1.81l-69.31 69.35 13.81 83.02L408.84 200l69.3-69.35c6.72 38.25-5.34 76.79-33.08 104.54zM80 416c-8.84 0-16 7.16-16 16s7.16 16 16 16 16-7.16 16-16-7.16-16-16-16z\"]\n};\nvar faXRay = {\n prefix: 'fal',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M168 224h136v32H200c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h104v32h-64c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48v-16h64v16c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48h-64v-32h104c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H336v-32h136c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H336v-32h104c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H336v-24c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24H200c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h104v32H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm72 160c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm160-32c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zM632 32c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H8C3.6 0 0 3.6 0 8v16c0 4.4 3.6 8 8 8h56v448H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h624c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8h-56V32h56zm-88 448H96V32h448v448z\"]\n};\nvar faYenSign = {\n prefix: 'fal',\n iconName: 'yen-sign',\n icon: [320, 512, [], \"f157\", \"M307.982 32h-22.525a12 12 0 0 0-10.398 6.01l-87.337 153.306c-13.382 25.492-27.402 56.718-27.402 56.718h-1.274s-14.02-31.226-27.403-56.718L45.038 38.042A12 12 0 0 0 34.621 32H12.018c-9.237 0-15.01 9.998-10.394 17.998L100.974 224H44c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h75.442l18.573 32.182V320H44c-6.627 0-12 5.373-12 12v8c0 6.627 5.373 12 12 12h94.014v116c0 6.627 5.373 12 12 12h20.608c6.627 0 12-5.373 12-12V352H276c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-93.377v-31.818l17.7-32.182H276c6.627 0 12-5.373 12-12v-8c0-6.627-5.373-12-12-12h-58.062L318.35 50.042c4.662-8-1.109-18.042-10.368-18.042z\"]\n};\nvar faYinYang = {\n prefix: 'fal',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M232 192c26.47 0 48-21.53 48-48s-21.53-48-48-48-48 21.53-48 48 21.53 48 48 48zm0-64c8.81 0 16 7.17 16 16s-7.19 16-16 16-16-7.17-16-16 7.19-16 16-16zm32 192c-26.47 0-48 21.53-48 48s21.53 48 48 48 48-21.53 48-48-21.53-48-48-48zm0 64c-8.81 0-16-7.17-16-16s7.19-16 16-16 16 7.17 16 16-7.19 16-16 16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248c136.75 0 248-111.25 248-248S384.75 8 248 8zM32 256c0-119.1 96.9-216 216-216 55.12 0 100 44.86 100 100s-44.88 100-100 100c-72.78 0-132 59.22-132 132 0 24.96 7.37 48.08 19.46 68.01C73.53 401.99 32 333.84 32 256zm216 216c-55.12 0-100-44.86-100-100s44.88-100 100-100c72.78 0 132-59.22 132-132 0-24.83-6.88-48.08-18.84-67.94C422.81 110.14 464 178.34 464 256c0 119.11-96.91 216-216 216z\"]\n};\nvar _iconsCache = {\n faAbacus: faAbacus,\n faAcorn: faAcorn,\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirConditioner: faAirConditioner,\n faAirFreshener: faAirFreshener,\n faAlarmClock: faAlarmClock,\n faAlarmExclamation: faAlarmExclamation,\n faAlarmPlus: faAlarmPlus,\n faAlarmSnooze: faAlarmSnooze,\n faAlbum: faAlbum,\n faAlbumCollection: faAlbumCollection,\n faAlicorn: faAlicorn,\n faAlien: faAlien,\n faAlienMonster: faAlienMonster,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAlignSlash: faAlignSlash,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAmpGuitar: faAmpGuitar,\n faAnalytics: faAnalytics,\n faAnchor: faAnchor,\n faAngel: faAngel,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faAppleCrate: faAppleCrate,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowAltDown: faArrowAltDown,\n faArrowAltFromBottom: faArrowAltFromBottom,\n faArrowAltFromLeft: faArrowAltFromLeft,\n faArrowAltFromRight: faArrowAltFromRight,\n faArrowAltFromTop: faArrowAltFromTop,\n faArrowAltLeft: faArrowAltLeft,\n faArrowAltRight: faArrowAltRight,\n faArrowAltSquareDown: faArrowAltSquareDown,\n faArrowAltSquareLeft: faArrowAltSquareLeft,\n faArrowAltSquareRight: faArrowAltSquareRight,\n faArrowAltSquareUp: faArrowAltSquareUp,\n faArrowAltToBottom: faArrowAltToBottom,\n faArrowAltToLeft: faArrowAltToLeft,\n faArrowAltToRight: faArrowAltToRight,\n faArrowAltToTop: faArrowAltToTop,\n faArrowAltUp: faArrowAltUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowFromBottom: faArrowFromBottom,\n faArrowFromLeft: faArrowFromLeft,\n faArrowFromRight: faArrowFromRight,\n faArrowFromTop: faArrowFromTop,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowSquareDown: faArrowSquareDown,\n faArrowSquareLeft: faArrowSquareLeft,\n faArrowSquareRight: faArrowSquareRight,\n faArrowSquareUp: faArrowSquareUp,\n faArrowToBottom: faArrowToBottom,\n faArrowToLeft: faArrowToLeft,\n faArrowToRight: faArrowToRight,\n faArrowToTop: faArrowToTop,\n faArrowUp: faArrowUp,\n faArrows: faArrows,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faArrowsH: faArrowsH,\n faArrowsV: faArrowsV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAtomAlt: faAtomAlt,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faAxe: faAxe,\n faAxeBattle: faAxeBattle,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackpack: faBackpack,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBadge: faBadge,\n faBadgeCheck: faBadgeCheck,\n faBadgeDollar: faBadgeDollar,\n faBadgePercent: faBadgePercent,\n faBadgeSheriff: faBadgeSheriff,\n faBadgerHoney: faBadgerHoney,\n faBagsShopping: faBagsShopping,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBallPile: faBallPile,\n faBallot: faBallot,\n faBallotCheck: faBallotCheck,\n faBan: faBan,\n faBandAid: faBandAid,\n faBanjo: faBanjo,\n faBarcode: faBarcode,\n faBarcodeAlt: faBarcodeAlt,\n faBarcodeRead: faBarcodeRead,\n faBarcodeScan: faBarcodeScan,\n faBars: faBars,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBasketballHoop: faBasketballHoop,\n faBat: faBat,\n faBath: faBath,\n faBatteryBolt: faBatteryBolt,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatterySlash: faBatterySlash,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBedAlt: faBedAlt,\n faBedBunk: faBedBunk,\n faBedEmpty: faBedEmpty,\n faBeer: faBeer,\n faBell: faBell,\n faBellExclamation: faBellExclamation,\n faBellOn: faBellOn,\n faBellPlus: faBellPlus,\n faBellSchool: faBellSchool,\n faBellSchoolSlash: faBellSchoolSlash,\n faBellSlash: faBellSlash,\n faBells: faBells,\n faBetamax: faBetamax,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBikingMountain: faBikingMountain,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlanket: faBlanket,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlinds: faBlinds,\n faBlindsOpen: faBlindsOpen,\n faBlindsRaised: faBlindsRaised,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBoneBreak: faBoneBreak,\n faBong: faBong,\n faBook: faBook,\n faBookAlt: faBookAlt,\n faBookDead: faBookDead,\n faBookHeart: faBookHeart,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookSpells: faBookSpells,\n faBookUser: faBookUser,\n faBookmark: faBookmark,\n faBooks: faBooks,\n faBooksMedical: faBooksMedical,\n faBoombox: faBoombox,\n faBoot: faBoot,\n faBoothCurtain: faBoothCurtain,\n faBorderAll: faBorderAll,\n faBorderBottom: faBorderBottom,\n faBorderCenterH: faBorderCenterH,\n faBorderCenterV: faBorderCenterV,\n faBorderInner: faBorderInner,\n faBorderLeft: faBorderLeft,\n faBorderNone: faBorderNone,\n faBorderOuter: faBorderOuter,\n faBorderRight: faBorderRight,\n faBorderStyle: faBorderStyle,\n faBorderStyleAlt: faBorderStyleAlt,\n faBorderTop: faBorderTop,\n faBowArrow: faBowArrow,\n faBowlingBall: faBowlingBall,\n faBowlingPins: faBowlingPins,\n faBox: faBox,\n faBoxAlt: faBoxAlt,\n faBoxBallot: faBoxBallot,\n faBoxCheck: faBoxCheck,\n faBoxFragile: faBoxFragile,\n faBoxFull: faBoxFull,\n faBoxHeart: faBoxHeart,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxUp: faBoxUp,\n faBoxUsd: faBoxUsd,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faBoxingGlove: faBoxingGlove,\n faBrackets: faBrackets,\n faBracketsCurly: faBracketsCurly,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadLoaf: faBreadLoaf,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBringForward: faBringForward,\n faBringFront: faBringFront,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrowser: faBrowser,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBullseyeArrow: faBullseyeArrow,\n faBullseyePointer: faBullseyePointer,\n faBurgerSoda: faBurgerSoda,\n faBurn: faBurn,\n faBurrito: faBurrito,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusSchool: faBusSchool,\n faBusinessTime: faBusinessTime,\n faCabinetFiling: faCabinetFiling,\n faCactus: faCactus,\n faCalculator: faCalculator,\n faCalculatorAlt: faCalculatorAlt,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarEdit: faCalendarEdit,\n faCalendarExclamation: faCalendarExclamation,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarStar: faCalendarStar,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamcorder: faCamcorder,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faCameraHome: faCameraHome,\n faCameraMovie: faCameraMovie,\n faCameraPolaroid: faCameraPolaroid,\n faCameraRetro: faCameraRetro,\n faCampfire: faCampfire,\n faCampground: faCampground,\n faCandleHolder: faCandleHolder,\n faCandyCane: faCandyCane,\n faCandyCorn: faCandyCorn,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarBuilding: faCarBuilding,\n faCarBump: faCarBump,\n faCarBus: faCarBus,\n faCarCrash: faCarCrash,\n faCarGarage: faCarGarage,\n faCarMechanic: faCarMechanic,\n faCarSide: faCarSide,\n faCarTilt: faCarTilt,\n faCarWash: faCarWash,\n faCaravan: faCaravan,\n faCaravanAlt: faCaravanAlt,\n faCaretCircleDown: faCaretCircleDown,\n faCaretCircleLeft: faCaretCircleLeft,\n faCaretCircleRight: faCaretCircleRight,\n faCaretCircleUp: faCaretCircleUp,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCars: faCars,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCassetteTape: faCassetteTape,\n faCat: faCat,\n faCatSpace: faCatSpace,\n faCauldron: faCauldron,\n faCctv: faCctv,\n faCertificate: faCertificate,\n faChair: faChair,\n faChairOffice: faChairOffice,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartLineDown: faChartLineDown,\n faChartNetwork: faChartNetwork,\n faChartPie: faChartPie,\n faChartPieAlt: faChartPieAlt,\n faChartScatter: faChartScatter,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faCheeseSwiss: faCheeseSwiss,\n faCheeseburger: faCheeseburger,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBishopAlt: faChessBishopAlt,\n faChessBoard: faChessBoard,\n faChessClock: faChessClock,\n faChessClockAlt: faChessClockAlt,\n faChessKing: faChessKing,\n faChessKingAlt: faChessKingAlt,\n faChessKnight: faChessKnight,\n faChessKnightAlt: faChessKnightAlt,\n faChessPawn: faChessPawn,\n faChessPawnAlt: faChessPawnAlt,\n faChessQueen: faChessQueen,\n faChessQueenAlt: faChessQueenAlt,\n faChessRook: faChessRook,\n faChessRookAlt: faChessRookAlt,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDoubleDown: faChevronDoubleDown,\n faChevronDoubleLeft: faChevronDoubleLeft,\n faChevronDoubleRight: faChevronDoubleRight,\n faChevronDoubleUp: faChevronDoubleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronSquareDown: faChevronSquareDown,\n faChevronSquareLeft: faChevronSquareLeft,\n faChevronSquareRight: faChevronSquareRight,\n faChevronSquareUp: faChevronSquareUp,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChimney: faChimney,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClarinet: faClarinet,\n faClawMarks: faClawMarks,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClipboardListCheck: faClipboardListCheck,\n faClipboardPrescription: faClipboardPrescription,\n faClipboardUser: faClipboardUser,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudDrizzle: faCloudDrizzle,\n faCloudHail: faCloudHail,\n faCloudHailMixed: faCloudHailMixed,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudMusic: faCloudMusic,\n faCloudRain: faCloudRain,\n faCloudRainbow: faCloudRainbow,\n faCloudShowers: faCloudShowers,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSleet: faCloudSleet,\n faCloudSnow: faCloudSnow,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faClouds: faClouds,\n faCloudsMoon: faCloudsMoon,\n faCloudsSun: faCloudsSun,\n faClub: faClub,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCodeCommit: faCodeCommit,\n faCodeMerge: faCodeMerge,\n faCoffee: faCoffee,\n faCoffeePot: faCoffeePot,\n faCoffeeTogo: faCoffeeTogo,\n faCoffin: faCoffin,\n faCoffinCross: faCoffinCross,\n faCog: faCog,\n faCogs: faCogs,\n faCoin: faCoin,\n faCoins: faCoins,\n faColumns: faColumns,\n faComet: faComet,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentAltCheck: faCommentAltCheck,\n faCommentAltDollar: faCommentAltDollar,\n faCommentAltDots: faCommentAltDots,\n faCommentAltEdit: faCommentAltEdit,\n faCommentAltExclamation: faCommentAltExclamation,\n faCommentAltLines: faCommentAltLines,\n faCommentAltMedical: faCommentAltMedical,\n faCommentAltMinus: faCommentAltMinus,\n faCommentAltMusic: faCommentAltMusic,\n faCommentAltPlus: faCommentAltPlus,\n faCommentAltSlash: faCommentAltSlash,\n faCommentAltSmile: faCommentAltSmile,\n faCommentAltTimes: faCommentAltTimes,\n faCommentCheck: faCommentCheck,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentEdit: faCommentEdit,\n faCommentExclamation: faCommentExclamation,\n faCommentLines: faCommentLines,\n faCommentMedical: faCommentMedical,\n faCommentMinus: faCommentMinus,\n faCommentMusic: faCommentMusic,\n faCommentPlus: faCommentPlus,\n faCommentSlash: faCommentSlash,\n faCommentSmile: faCommentSmile,\n faCommentTimes: faCommentTimes,\n faComments: faComments,\n faCommentsAlt: faCommentsAlt,\n faCommentsAltDollar: faCommentsAltDollar,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompassSlash: faCompassSlash,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faCompressWide: faCompressWide,\n faComputerClassic: faComputerClassic,\n faComputerSpeaker: faComputerSpeaker,\n faConciergeBell: faConciergeBell,\n faConstruction: faConstruction,\n faContainerStorage: faContainerStorage,\n faConveyorBelt: faConveyorBelt,\n faConveyorBeltAlt: faConveyorBeltAlt,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCorn: faCorn,\n faCouch: faCouch,\n faCow: faCow,\n faCowbell: faCowbell,\n faCowbellMore: faCowbellMore,\n faCreditCard: faCreditCard,\n faCreditCardBlank: faCreditCardBlank,\n faCreditCardFront: faCreditCardFront,\n faCricket: faCricket,\n faCroissant: faCroissant,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCrutches: faCrutches,\n faCube: faCube,\n faCubes: faCubes,\n faCurling: faCurling,\n faCut: faCut,\n faDagger: faDagger,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDebug: faDebug,\n faDeer: faDeer,\n faDeerRudolph: faDeerRudolph,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faDewpoint: faDewpoint,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDiamond: faDiamond,\n faDice: faDice,\n faDiceD10: faDiceD10,\n faDiceD12: faDiceD12,\n faDiceD20: faDiceD20,\n faDiceD4: faDiceD4,\n faDiceD6: faDiceD6,\n faDiceD8: faDiceD8,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigging: faDigging,\n faDigitalTachograph: faDigitalTachograph,\n faDiploma: faDiploma,\n faDirections: faDirections,\n faDiscDrive: faDiscDrive,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDoNotEnter: faDoNotEnter,\n faDog: faDog,\n faDogLeashed: faDogLeashed,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyEmpty: faDollyEmpty,\n faDollyFlatbed: faDollyFlatbed,\n faDollyFlatbedAlt: faDollyFlatbedAlt,\n faDollyFlatbedEmpty: faDollyFlatbedEmpty,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawCircle: faDrawCircle,\n faDrawPolygon: faDrawPolygon,\n faDrawSquare: faDrawSquare,\n faDreidel: faDreidel,\n faDrone: faDrone,\n faDroneAlt: faDroneAlt,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstick: faDrumstick,\n faDrumstickBite: faDrumstickBite,\n faDryer: faDryer,\n faDryerAlt: faDryerAlt,\n faDuck: faDuck,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEar: faEar,\n faEarMuffs: faEarMuffs,\n faEclipse: faEclipse,\n faEclipseAlt: faEclipseAlt,\n faEdit: faEdit,\n faEgg: faEgg,\n faEggFried: faEggFried,\n faEject: faEject,\n faElephant: faElephant,\n faEllipsisH: faEllipsisH,\n faEllipsisHAlt: faEllipsisHAlt,\n faEllipsisV: faEllipsisV,\n faEllipsisVAlt: faEllipsisVAlt,\n faEmptySet: faEmptySet,\n faEngineWarning: faEngineWarning,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenDollar: faEnvelopeOpenDollar,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchange: faExchange,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationSquare: faExclamationSquare,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrows: faExpandArrows,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExpandWide: faExpandWide,\n faExternalLink: faExternalLink,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquare: faExternalLinkSquare,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeEvil: faEyeEvil,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFanTable: faFanTable,\n faFarm: faFarm,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFaucetDrip: faFaucetDrip,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFieldHockey: faFieldHockey,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCertificate: faFileCertificate,\n faFileChartLine: faFileChartLine,\n faFileChartPie: faFileChartPie,\n faFileCheck: faFileCheck,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileEdit: faFileEdit,\n faFileExcel: faFileExcel,\n faFileExclamation: faFileExclamation,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFileMinus: faFileMinus,\n faFileMusic: faFileMusic,\n faFilePdf: faFilePdf,\n faFilePlus: faFilePlus,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSearch: faFileSearch,\n faFileSignature: faFileSignature,\n faFileSpreadsheet: faFileSpreadsheet,\n faFileTimes: faFileTimes,\n faFileUpload: faFileUpload,\n faFileUser: faFileUser,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFilesMedical: faFilesMedical,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilmAlt: faFilmAlt,\n faFilmCanister: faFilmCanister,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFireSmoke: faFireSmoke,\n faFireplace: faFireplace,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFishCooked: faFishCooked,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagAlt: faFlagAlt,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlame: faFlame,\n faFlashlight: faFlashlight,\n faFlask: faFlask,\n faFlaskPoison: faFlaskPoison,\n faFlaskPotion: faFlaskPotion,\n faFlower: faFlower,\n faFlowerDaffodil: faFlowerDaffodil,\n faFlowerTulip: faFlowerTulip,\n faFlushed: faFlushed,\n faFlute: faFlute,\n faFluxCapacitor: faFluxCapacitor,\n faFog: faFog,\n faFolder: faFolder,\n faFolderDownload: faFolderDownload,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFolderTimes: faFolderTimes,\n faFolderTree: faFolderTree,\n faFolderUpload: faFolderUpload,\n faFolders: faFolders,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFontCase: faFontCase,\n faFootballBall: faFootballBall,\n faFootballHelmet: faFootballHelmet,\n faForklift: faForklift,\n faForward: faForward,\n faFragile: faFragile,\n faFrenchFries: faFrenchFries,\n faFrog: faFrog,\n faFrostyHead: faFrostyHead,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunction: faFunction,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGalaxy: faGalaxy,\n faGameBoard: faGameBoard,\n faGameBoardAlt: faGameBoardAlt,\n faGameConsoleHandheld: faGameConsoleHandheld,\n faGamepad: faGamepad,\n faGamepadAlt: faGamepadAlt,\n faGarage: faGarage,\n faGarageCar: faGarageCar,\n faGarageOpen: faGarageOpen,\n faGasPump: faGasPump,\n faGasPumpSlash: faGasPumpSlash,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGiftCard: faGiftCard,\n faGifts: faGifts,\n faGingerbreadMan: faGingerbreadMan,\n faGlass: faGlass,\n faGlassChampagne: faGlassChampagne,\n faGlassCheers: faGlassCheers,\n faGlassCitrus: faGlassCitrus,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlassWhiskeyRocks: faGlassWhiskeyRocks,\n faGlasses: faGlasses,\n faGlassesAlt: faGlassesAlt,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGlobeSnow: faGlobeSnow,\n faGlobeStand: faGlobeStand,\n faGolfBall: faGolfBall,\n faGolfClub: faGolfClub,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGramophone: faGramophone,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faGuitarElectric: faGuitarElectric,\n faGuitars: faGuitars,\n faHSquare: faHSquare,\n faH1: faH1,\n faH2: faH2,\n faH3: faH3,\n faH4: faH4,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHammerWar: faHammerWar,\n faHamsa: faHamsa,\n faHandHeart: faHandHeart,\n faHandHolding: faHandHolding,\n faHandHoldingBox: faHandHoldingBox,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMagic: faHandHoldingMagic,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingSeedling: faHandHoldingSeedling,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandReceiving: faHandReceiving,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHeart: faHandsHeart,\n faHandsHelping: faHandsHelping,\n faHandsUsd: faHandsUsd,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatChef: faHatChef,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatSanta: faHatSanta,\n faHatWinter: faHatWinter,\n faHatWitch: faHatWitch,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSide: faHeadSide,\n faHeadSideBrain: faHeadSideBrain,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideHeadphones: faHeadSideHeadphones,\n faHeadSideMask: faHeadSideMask,\n faHeadSideMedical: faHeadSideMedical,\n faHeadSideVirus: faHeadSideVirus,\n faHeadVr: faHeadVr,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartCircle: faHeartCircle,\n faHeartRate: faHeartRate,\n faHeartSquare: faHeartSquare,\n faHeartbeat: faHeartbeat,\n faHeat: faHeat,\n faHelicopter: faHelicopter,\n faHelmetBattle: faHelmetBattle,\n faHexagon: faHexagon,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyMask: faHockeyMask,\n faHockeyPuck: faHockeyPuck,\n faHockeySticks: faHockeySticks,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeHeart: faHomeHeart,\n faHomeLg: faHomeLg,\n faHomeLgAlt: faHomeLgAlt,\n faHoodCloak: faHoodCloak,\n faHorizontalRule: faHorizontalRule,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHorseSaddle: faHorseSaddle,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHospitals: faHospitals,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouse: faHouse,\n faHouseDamage: faHouseDamage,\n faHouseDay: faHouseDay,\n faHouseFlood: faHouseFlood,\n faHouseLeave: faHouseLeave,\n faHouseNight: faHouseNight,\n faHouseReturn: faHouseReturn,\n faHouseSignal: faHouseSignal,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faHumidity: faHumidity,\n faHurricane: faHurricane,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIceSkate: faIceSkate,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIconsAlt: faIconsAlt,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImagePolaroid: faImagePolaroid,\n faImages: faImages,\n faInbox: faInbox,\n faInboxIn: faInboxIn,\n faInboxOut: faInboxOut,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faIndustryAlt: faIndustryAlt,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faInfoSquare: faInfoSquare,\n faInhaler: faInhaler,\n faIntegral: faIntegral,\n faIntersection: faIntersection,\n faInventory: faInventory,\n faIslandTropical: faIslandTropical,\n faItalic: faItalic,\n faJackOLantern: faJackOLantern,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faJoystick: faJoystick,\n faJug: faJug,\n faKaaba: faKaaba,\n faKazoo: faKazoo,\n faKerning: faKerning,\n faKey: faKey,\n faKeySkeleton: faKeySkeleton,\n faKeyboard: faKeyboard,\n faKeynote: faKeynote,\n faKhanda: faKhanda,\n faKidneys: faKidneys,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKite: faKite,\n faKiwiBird: faKiwiBird,\n faKnifeKitchen: faKnifeKitchen,\n faLambda: faLambda,\n faLamp: faLamp,\n faLampDesk: faLampDesk,\n faLampFloor: faLampFloor,\n faLandmark: faLandmark,\n faLandmarkAlt: faLandmarkAlt,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLasso: faLasso,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLayerMinus: faLayerMinus,\n faLayerPlus: faLayerPlus,\n faLeaf: faLeaf,\n faLeafHeart: faLeafHeart,\n faLeafMaple: faLeafMaple,\n faLeafOak: faLeafOak,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDown: faLevelDown,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUp: faLevelUp,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightCeiling: faLightCeiling,\n faLightSwitch: faLightSwitch,\n faLightSwitchOff: faLightSwitchOff,\n faLightSwitchOn: faLightSwitchOn,\n faLightbulb: faLightbulb,\n faLightbulbDollar: faLightbulbDollar,\n faLightbulbExclamation: faLightbulbExclamation,\n faLightbulbOn: faLightbulbOn,\n faLightbulbSlash: faLightbulbSlash,\n faLightsHoliday: faLightsHoliday,\n faLineColumns: faLineColumns,\n faLineHeight: faLineHeight,\n faLink: faLink,\n faLips: faLips,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListMusic: faListMusic,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocation: faLocation,\n faLocationArrow: faLocationArrow,\n faLocationCircle: faLocationCircle,\n faLocationSlash: faLocationSlash,\n faLock: faLock,\n faLockAlt: faLockAlt,\n faLockOpen: faLockOpen,\n faLockOpenAlt: faLockOpenAlt,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLongArrowDown: faLongArrowDown,\n faLongArrowLeft: faLongArrowLeft,\n faLongArrowRight: faLongArrowRight,\n faLongArrowUp: faLongArrowUp,\n faLoveseat: faLoveseat,\n faLowVision: faLowVision,\n faLuchador: faLuchador,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMace: faMace,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMailbox: faMailbox,\n faMale: faMale,\n faMandolin: faMandolin,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapMarkerAltSlash: faMapMarkerAltSlash,\n faMapMarkerCheck: faMapMarkerCheck,\n faMapMarkerEdit: faMapMarkerEdit,\n faMapMarkerExclamation: faMapMarkerExclamation,\n faMapMarkerMinus: faMapMarkerMinus,\n faMapMarkerPlus: faMapMarkerPlus,\n faMapMarkerQuestion: faMapMarkerQuestion,\n faMapMarkerSlash: faMapMarkerSlash,\n faMapMarkerSmile: faMapMarkerSmile,\n faMapMarkerTimes: faMapMarkerTimes,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMeat: faMeat,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMegaphone: faMegaphone,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicrophoneStand: faMicrophoneStand,\n faMicroscope: faMicroscope,\n faMicrowave: faMicrowave,\n faMindShare: faMindShare,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusHexagon: faMinusHexagon,\n faMinusOctagon: faMinusOctagon,\n faMinusSquare: faMinusSquare,\n faMistletoe: faMistletoe,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMobileAndroid: faMobileAndroid,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMoneyCheckEdit: faMoneyCheckEdit,\n faMoneyCheckEditAlt: faMoneyCheckEditAlt,\n faMonitorHeartRate: faMonitorHeartRate,\n faMonkey: faMonkey,\n faMonument: faMonument,\n faMoon: faMoon,\n faMoonCloud: faMoonCloud,\n faMoonStars: faMoonStars,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMountains: faMountains,\n faMouse: faMouse,\n faMouseAlt: faMouseAlt,\n faMousePointer: faMousePointer,\n faMp3Player: faMp3Player,\n faMug: faMug,\n faMugHot: faMugHot,\n faMugMarshmallows: faMugMarshmallows,\n faMugTea: faMugTea,\n faMusic: faMusic,\n faMusicAlt: faMusicAlt,\n faMusicAltSlash: faMusicAltSlash,\n faMusicSlash: faMusicSlash,\n faNarwhal: faNarwhal,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOctagon: faOctagon,\n faOilCan: faOilCan,\n faOilTemp: faOilTemp,\n faOm: faOm,\n faOmega: faOmega,\n faOrnament: faOrnament,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faOutlet: faOutlet,\n faOven: faOven,\n faOverline: faOverline,\n faPageBreak: faPageBreak,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintBrushAlt: faPaintBrushAlt,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPalletAlt: faPalletAlt,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParagraphRtl: faParagraphRtl,\n faParking: faParking,\n faParkingCircle: faParkingCircle,\n faParkingCircleSlash: faParkingCircleSlash,\n faParkingSlash: faParkingSlash,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPawAlt: faPawAlt,\n faPawClaws: faPawClaws,\n faPeace: faPeace,\n faPegasus: faPegasus,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faPencilPaintbrush: faPencilPaintbrush,\n faPencilRuler: faPencilRuler,\n faPennant: faPennant,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPersonCarry: faPersonCarry,\n faPersonDolly: faPersonDolly,\n faPersonDollyEmpty: faPersonDollyEmpty,\n faPersonSign: faPersonSign,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneLaptop: faPhoneLaptop,\n faPhoneOffice: faPhoneOffice,\n faPhonePlus: faPhonePlus,\n faPhoneRotary: faPhoneRotary,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPi: faPi,\n faPiano: faPiano,\n faPianoKeyboard: faPianoKeyboard,\n faPie: faPie,\n faPig: faPig,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizza: faPizza,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneAlt: faPlaneAlt,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlanetMoon: faPlanetMoon,\n faPlanetRinged: faPlanetRinged,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusHexagon: faPlusHexagon,\n faPlusOctagon: faPlusOctagon,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPodium: faPodium,\n faPodiumStar: faPodiumStar,\n faPoliceBox: faPoliceBox,\n faPoll: faPoll,\n faPollH: faPollH,\n faPollPeople: faPollPeople,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPopcorn: faPopcorn,\n faPortalEnter: faPortalEnter,\n faPortalExit: faPortalExit,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPresentation: faPresentation,\n faPrint: faPrint,\n faPrintSearch: faPrintSearch,\n faPrintSlash: faPrintSlash,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faProjector: faProjector,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPumpkin: faPumpkin,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuestionSquare: faQuestionSquare,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRabbit: faRabbit,\n faRabbitFast: faRabbitFast,\n faRacquet: faRacquet,\n faRadar: faRadar,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRadio: faRadio,\n faRadioAlt: faRadioAlt,\n faRainbow: faRainbow,\n faRaindrops: faRaindrops,\n faRam: faRam,\n faRampLoading: faRampLoading,\n faRandom: faRandom,\n faRaygun: faRaygun,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRectangleLandscape: faRectangleLandscape,\n faRectanglePortrait: faRectanglePortrait,\n faRectangleWide: faRectangleWide,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRefrigerator: faRefrigerator,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faRepeat: faRepeat,\n faRepeat1: faRepeat1,\n faRepeat1Alt: faRepeat1Alt,\n faRepeatAlt: faRepeatAlt,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRetweetAlt: faRetweetAlt,\n faRibbon: faRibbon,\n faRing: faRing,\n faRingsWedding: faRingsWedding,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRocketLaunch: faRocketLaunch,\n faRoute: faRoute,\n faRouteHighway: faRouteHighway,\n faRouteInterstate: faRouteInterstate,\n faRouter: faRouter,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerTriangle: faRulerTriangle,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faRv: faRv,\n faSack: faSack,\n faSackDollar: faSackDollar,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSalad: faSalad,\n faSandwich: faSandwich,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSausage: faSausage,\n faSave: faSave,\n faSaxHot: faSaxHot,\n faSaxophone: faSaxophone,\n faScalpel: faScalpel,\n faScalpelPath: faScalpelPath,\n faScanner: faScanner,\n faScannerImage: faScannerImage,\n faScannerKeyboard: faScannerKeyboard,\n faScannerTouchscreen: faScannerTouchscreen,\n faScarecrow: faScarecrow,\n faScarf: faScarf,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faScrollOld: faScrollOld,\n faScrubber: faScrubber,\n faScythe: faScythe,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faSendBack: faSendBack,\n faSendBackward: faSendBackward,\n faSensor: faSensor,\n faSensorAlert: faSensorAlert,\n faSensorFire: faSensorFire,\n faSensorOn: faSensorOn,\n faSensorSmoke: faSensorSmoke,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAll: faShareAll,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faSheep: faSheep,\n faShekelSign: faShekelSign,\n faShield: faShield,\n faShieldAlt: faShieldAlt,\n faShieldCheck: faShieldCheck,\n faShieldCross: faShieldCross,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShippingTimed: faShippingTimed,\n faShishKebab: faShishKebab,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShovel: faShovel,\n faShovelSnow: faShovelSnow,\n faShower: faShower,\n faShredder: faShredder,\n faShuttleVan: faShuttleVan,\n faShuttlecock: faShuttlecock,\n faSickle: faSickle,\n faSigma: faSigma,\n faSign: faSign,\n faSignIn: faSignIn,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOut: faSignOut,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignal1: faSignal1,\n faSignal2: faSignal2,\n faSignal3: faSignal3,\n faSignal4: faSignal4,\n faSignalAlt: faSignalAlt,\n faSignalAlt1: faSignalAlt1,\n faSignalAlt2: faSignalAlt2,\n faSignalAlt3: faSignalAlt3,\n faSignalAltSlash: faSignalAltSlash,\n faSignalSlash: faSignalSlash,\n faSignalStream: faSignalStream,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSiren: faSiren,\n faSirenOn: faSirenOn,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkeleton: faSkeleton,\n faSkiJump: faSkiJump,\n faSkiLift: faSkiLift,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCow: faSkullCow,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSledding: faSledding,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSlidersHSquare: faSlidersHSquare,\n faSlidersV: faSlidersV,\n faSlidersVSquare: faSlidersVSquare,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmilePlus: faSmilePlus,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoke: faSmoke,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnake: faSnake,\n faSnooze: faSnooze,\n faSnowBlowing: faSnowBlowing,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowflakes: faSnowflakes,\n faSnowman: faSnowman,\n faSnowmobile: faSnowmobile,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSolarSystem: faSolarSystem,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAlt: faSortAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortCircle: faSortCircle,\n faSortCircleDown: faSortCircleDown,\n faSortCircleUp: faSortCircleUp,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortShapesDown: faSortShapesDown,\n faSortShapesDownAlt: faSortShapesDownAlt,\n faSortShapesUp: faSortShapesUp,\n faSortShapesUpAlt: faSortShapesUpAlt,\n faSortSizeDown: faSortSizeDown,\n faSortSizeDownAlt: faSortSizeDownAlt,\n faSortSizeUp: faSortSizeUp,\n faSortSizeUpAlt: faSortSizeUpAlt,\n faSortUp: faSortUp,\n faSoup: faSoup,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpaceStationMoon: faSpaceStationMoon,\n faSpaceStationMoonAlt: faSpaceStationMoonAlt,\n faSpade: faSpade,\n faSparkles: faSparkles,\n faSpeaker: faSpeaker,\n faSpeakers: faSpeakers,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpiderBlackWidow: faSpiderBlackWidow,\n faSpiderWeb: faSpiderWeb,\n faSpinner: faSpinner,\n faSpinnerThird: faSpinnerThird,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSprinkler: faSprinkler,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRoot: faSquareRoot,\n faSquareRootAlt: faSquareRootAlt,\n faSquirrel: faSquirrel,\n faStaff: faStaff,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarChristmas: faStarChristmas,\n faStarExclamation: faStarExclamation,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStarShooting: faStarShooting,\n faStarfighter: faStarfighter,\n faStarfighterAlt: faStarfighterAlt,\n faStars: faStars,\n faStarship: faStarship,\n faStarshipFreighter: faStarshipFreighter,\n faSteak: faSteak,\n faSteeringWheel: faSteeringWheel,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStocking: faStocking,\n faStomach: faStomach,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStretcher: faStretcher,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSunCloud: faSunCloud,\n faSunDust: faSunDust,\n faSunHaze: faSunHaze,\n faSunglasses: faSunglasses,\n faSunrise: faSunrise,\n faSunset: faSunset,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSword: faSword,\n faSwordLaser: faSwordLaser,\n faSwordLaserAlt: faSwordLaserAlt,\n faSwords: faSwords,\n faSwordsLaser: faSwordsLaser,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTabletAndroid: faTabletAndroid,\n faTabletAndroidAlt: faTabletAndroidAlt,\n faTabletRugged: faTabletRugged,\n faTablets: faTablets,\n faTachometer: faTachometer,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltAverage: faTachometerAltAverage,\n faTachometerAltFast: faTachometerAltFast,\n faTachometerAltFastest: faTachometerAltFastest,\n faTachometerAltSlow: faTachometerAltSlow,\n faTachometerAltSlowest: faTachometerAltSlowest,\n faTachometerAverage: faTachometerAverage,\n faTachometerFast: faTachometerFast,\n faTachometerFastest: faTachometerFastest,\n faTachometerSlow: faTachometerSlow,\n faTachometerSlowest: faTachometerSlowest,\n faTaco: faTaco,\n faTag: faTag,\n faTags: faTags,\n faTally: faTally,\n faTanakh: faTanakh,\n faTape: faTape,\n faTasks: faTasks,\n faTasksAlt: faTasksAlt,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTelescope: faTelescope,\n faTemperatureDown: faTemperatureDown,\n faTemperatureFrigid: faTemperatureFrigid,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureHot: faTemperatureHot,\n faTemperatureLow: faTemperatureLow,\n faTemperatureUp: faTemperatureUp,\n faTenge: faTenge,\n faTennisBall: faTennisBall,\n faTerminal: faTerminal,\n faText: faText,\n faTextHeight: faTextHeight,\n faTextSize: faTextSize,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faTheta: faTheta,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faThunderstorm: faThunderstorm,\n faThunderstormMoon: faThunderstormMoon,\n faThunderstormSun: faThunderstormSun,\n faTicket: faTicket,\n faTicketAlt: faTicketAlt,\n faTilde: faTilde,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTimesHexagon: faTimesHexagon,\n faTimesOctagon: faTimesOctagon,\n faTimesSquare: faTimesSquare,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTire: faTire,\n faTireFlat: faTireFlat,\n faTirePressureWarning: faTirePressureWarning,\n faTireRugged: faTireRugged,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperAlt: faToiletPaperAlt,\n faToiletPaperSlash: faToiletPaperSlash,\n faTombstone: faTombstone,\n faTombstoneAlt: faTombstoneAlt,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faToothbrush: faToothbrush,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTornado: faTornado,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficCone: faTrafficCone,\n faTrafficLight: faTrafficLight,\n faTrafficLightGo: faTrafficLightGo,\n faTrafficLightSlow: faTrafficLightSlow,\n faTrafficLightStop: faTrafficLightStop,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTransporter: faTransporter,\n faTransporter1: faTransporter1,\n faTransporter2: faTransporter2,\n faTransporter3: faTransporter3,\n faTransporterEmpty: faTransporterEmpty,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTrashUndo: faTrashUndo,\n faTrashUndoAlt: faTrashUndoAlt,\n faTreasureChest: faTreasureChest,\n faTree: faTree,\n faTreeAlt: faTreeAlt,\n faTreeChristmas: faTreeChristmas,\n faTreeDecorated: faTreeDecorated,\n faTreeLarge: faTreeLarge,\n faTreePalm: faTreePalm,\n faTrees: faTrees,\n faTriangle: faTriangle,\n faTriangleMusic: faTriangleMusic,\n faTrophy: faTrophy,\n faTrophyAlt: faTrophyAlt,\n faTruck: faTruck,\n faTruckContainer: faTruckContainer,\n faTruckCouch: faTruckCouch,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTruckPlow: faTruckPlow,\n faTruckRamp: faTruckRamp,\n faTrumpet: faTrumpet,\n faTshirt: faTshirt,\n faTty: faTty,\n faTurkey: faTurkey,\n faTurntable: faTurntable,\n faTurtle: faTurtle,\n faTv: faTv,\n faTvAlt: faTvAlt,\n faTvMusic: faTvMusic,\n faTvRetro: faTvRetro,\n faTypewriter: faTypewriter,\n faUfo: faUfo,\n faUfoBeam: faUfoBeam,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUnicorn: faUnicorn,\n faUnion: faUnion,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUsbDrive: faUsbDrive,\n faUsdCircle: faUsdCircle,\n faUsdSquare: faUsdSquare,\n faUser: faUser,\n faUserAlien: faUserAlien,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserChart: faUserChart,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserCowboy: faUserCowboy,\n faUserCrown: faUserCrown,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserHardHat: faUserHardHat,\n faUserHeadset: faUserHeadset,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMdChat: faUserMdChat,\n faUserMinus: faUserMinus,\n faUserMusic: faUserMusic,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserRobot: faUserRobot,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUserUnlock: faUserUnlock,\n faUserVisor: faUserVisor,\n faUsers: faUsers,\n faUsersClass: faUsersClass,\n faUsersCog: faUsersCog,\n faUsersCrown: faUsersCrown,\n faUsersMedical: faUsersMedical,\n faUsersSlash: faUsersSlash,\n faUtensilFork: faUtensilFork,\n faUtensilKnife: faUtensilKnife,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faUtensilsAlt: faUtensilsAlt,\n faVacuum: faVacuum,\n faVacuumRobot: faVacuumRobot,\n faValueAbsolute: faValueAbsolute,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVhs: faVhs,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoPlus: faVideoPlus,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faViolin: faViolin,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolcano: faVolcano,\n faVolleyballBall: faVolleyballBall,\n faVolume: faVolume,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeSlash: faVolumeSlash,\n faVolumeUp: faVolumeUp,\n faVoteNay: faVoteNay,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWagonCovered: faWagonCovered,\n faWalker: faWalker,\n faWalkieTalkie: faWalkieTalkie,\n faWalking: faWalking,\n faWallet: faWallet,\n faWand: faWand,\n faWandMagic: faWandMagic,\n faWarehouse: faWarehouse,\n faWarehouseAlt: faWarehouseAlt,\n faWasher: faWasher,\n faWatch: faWatch,\n faWatchCalculator: faWatchCalculator,\n faWatchFitness: faWatchFitness,\n faWater: faWater,\n faWaterLower: faWaterLower,\n faWaterRise: faWaterRise,\n faWaveSine: faWaveSine,\n faWaveSquare: faWaveSquare,\n faWaveTriangle: faWaveTriangle,\n faWaveform: faWaveform,\n faWaveformPath: faWaveformPath,\n faWebcam: faWebcam,\n faWebcamSlash: faWebcamSlash,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWhale: faWhale,\n faWheat: faWheat,\n faWheelchair: faWheelchair,\n faWhistle: faWhistle,\n faWifi: faWifi,\n faWifi1: faWifi1,\n faWifi2: faWifi2,\n faWifiSlash: faWifiSlash,\n faWind: faWind,\n faWindTurbine: faWindTurbine,\n faWindWarning: faWindWarning,\n faWindow: faWindow,\n faWindowAlt: faWindowAlt,\n faWindowClose: faWindowClose,\n faWindowFrame: faWindowFrame,\n faWindowFrameOpen: faWindowFrameOpen,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWindsock: faWindsock,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWreath: faWreath,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fal, prefix, faAbacus, faAcorn, faAd, faAddressBook, faAddressCard, faAdjust, faAirConditioner, faAirFreshener, faAlarmClock, faAlarmExclamation, faAlarmPlus, faAlarmSnooze, faAlbum, faAlbumCollection, faAlicorn, faAlien, faAlienMonster, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAlignSlash, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAmpGuitar, faAnalytics, faAnchor, faAngel, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faAppleCrate, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowAltDown, faArrowAltFromBottom, faArrowAltFromLeft, faArrowAltFromRight, faArrowAltFromTop, faArrowAltLeft, faArrowAltRight, faArrowAltSquareDown, faArrowAltSquareLeft, faArrowAltSquareRight, faArrowAltSquareUp, faArrowAltToBottom, faArrowAltToLeft, faArrowAltToRight, faArrowAltToTop, faArrowAltUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowFromBottom, faArrowFromLeft, faArrowFromRight, faArrowFromTop, faArrowLeft, faArrowRight, faArrowSquareDown, faArrowSquareLeft, faArrowSquareRight, faArrowSquareUp, faArrowToBottom, faArrowToLeft, faArrowToRight, faArrowToTop, faArrowUp, faArrows, faArrowsAlt, faArrowsAltH, faArrowsAltV, faArrowsH, faArrowsV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAtomAlt, faAudioDescription, faAward, faAxe, faAxeBattle, faBaby, faBabyCarriage, faBackpack, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBadge, faBadgeCheck, faBadgeDollar, faBadgePercent, faBadgeSheriff, faBadgerHoney, faBagsShopping, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBallPile, faBallot, faBallotCheck, faBan, faBandAid, faBanjo, faBarcode, faBarcodeAlt, faBarcodeRead, faBarcodeScan, faBars, faBaseball, faBaseballBall, faBasketballBall, faBasketballHoop, faBat, faBath, faBatteryBolt, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatterySlash, faBatteryThreeQuarters, faBed, faBedAlt, faBedBunk, faBedEmpty, faBeer, faBell, faBellExclamation, faBellOn, faBellPlus, faBellSchool, faBellSchoolSlash, faBellSlash, faBells, faBetamax, faBezierCurve, faBible, faBicycle, faBiking, faBikingMountain, faBinoculars, faBiohazard, faBirthdayCake, faBlanket, faBlender, faBlenderPhone, faBlind, faBlinds, faBlindsOpen, faBlindsRaised, faBlog, faBold, faBolt, faBomb, faBone, faBoneBreak, faBong, faBook, faBookAlt, faBookDead, faBookHeart, faBookMedical, faBookOpen, faBookReader, faBookSpells, faBookUser, faBookmark, faBooks, faBooksMedical, faBoombox, faBoot, faBoothCurtain, faBorderAll, faBorderBottom, faBorderCenterH, faBorderCenterV, faBorderInner, faBorderLeft, faBorderNone, faBorderOuter, faBorderRight, faBorderStyle, faBorderStyleAlt, faBorderTop, faBowArrow, faBowlingBall, faBowlingPins, faBox, faBoxAlt, faBoxBallot, faBoxCheck, faBoxFragile, faBoxFull, faBoxHeart, faBoxOpen, faBoxTissue, faBoxUp, faBoxUsd, faBoxes, faBoxesAlt, faBoxingGlove, faBrackets, faBracketsCurly, faBraille, faBrain, faBreadLoaf, faBreadSlice, faBriefcase, faBriefcaseMedical, faBringForward, faBringFront, faBroadcastTower, faBroom, faBrowser, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBullseyeArrow, faBullseyePointer, faBurgerSoda, faBurn, faBurrito, faBus, faBusAlt, faBusSchool, faBusinessTime, faCabinetFiling, faCactus, faCalculator, faCalculatorAlt, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarEdit, faCalendarExclamation, faCalendarMinus, faCalendarPlus, faCalendarStar, faCalendarTimes, faCalendarWeek, faCamcorder, faCamera, faCameraAlt, faCameraHome, faCameraMovie, faCameraPolaroid, faCameraRetro, faCampfire, faCampground, faCandleHolder, faCandyCane, faCandyCorn, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarBuilding, faCarBump, faCarBus, faCarCrash, faCarGarage, faCarMechanic, faCarSide, faCarTilt, faCarWash, faCaravan, faCaravanAlt, faCaretCircleDown, faCaretCircleLeft, faCaretCircleRight, faCaretCircleUp, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCars, faCartArrowDown, faCartPlus, faCashRegister, faCassetteTape, faCat, faCatSpace, faCauldron, faCctv, faCertificate, faChair, faChairOffice, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartLineDown, faChartNetwork, faChartPie, faChartPieAlt, faChartScatter, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faCheeseSwiss, faCheeseburger, faChess, faChessBishop, faChessBishopAlt, faChessBoard, faChessClock, faChessClockAlt, faChessKing, faChessKingAlt, faChessKnight, faChessKnightAlt, faChessPawn, faChessPawnAlt, faChessQueen, faChessQueenAlt, faChessRook, faChessRookAlt, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDoubleDown, faChevronDoubleLeft, faChevronDoubleRight, faChevronDoubleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronSquareDown, faChevronSquareLeft, faChevronSquareRight, faChevronSquareUp, faChevronUp, faChild, faChimney, faChurch, faCircle, faCircleNotch, faCity, faClarinet, faClawMarks, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClipboardListCheck, faClipboardPrescription, faClipboardUser, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownload, faCloudDownloadAlt, faCloudDrizzle, faCloudHail, faCloudHailMixed, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudMusic, faCloudRain, faCloudRainbow, faCloudShowers, faCloudShowersHeavy, faCloudSleet, faCloudSnow, faCloudSun, faCloudSunRain, faCloudUpload, faCloudUploadAlt, faClouds, faCloudsMoon, faCloudsSun, faClub, faCocktail, faCode, faCodeBranch, faCodeCommit, faCodeMerge, faCoffee, faCoffeePot, faCoffeeTogo, faCoffin, faCoffinCross, faCog, faCogs, faCoin, faCoins, faColumns, faComet, faComment, faCommentAlt, faCommentAltCheck, faCommentAltDollar, faCommentAltDots, faCommentAltEdit, faCommentAltExclamation, faCommentAltLines, faCommentAltMedical, faCommentAltMinus, faCommentAltMusic, faCommentAltPlus, faCommentAltSlash, faCommentAltSmile, faCommentAltTimes, faCommentCheck, faCommentDollar, faCommentDots, faCommentEdit, faCommentExclamation, faCommentLines, faCommentMedical, faCommentMinus, faCommentMusic, faCommentPlus, faCommentSlash, faCommentSmile, faCommentTimes, faComments, faCommentsAlt, faCommentsAltDollar, faCommentsDollar, faCompactDisc, faCompass, faCompassSlash, faCompress, faCompressAlt, faCompressArrowsAlt, faCompressWide, faComputerClassic, faComputerSpeaker, faConciergeBell, faConstruction, faContainerStorage, faConveyorBelt, faConveyorBeltAlt, faCookie, faCookieBite, faCopy, faCopyright, faCorn, faCouch, faCow, faCowbell, faCowbellMore, faCreditCard, faCreditCardBlank, faCreditCardFront, faCricket, faCroissant, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCrutches, faCube, faCubes, faCurling, faCut, faDagger, faDatabase, faDeaf, faDebug, faDeer, faDeerRudolph, faDemocrat, faDesktop, faDesktopAlt, faDewpoint, faDharmachakra, faDiagnoses, faDiamond, faDice, faDiceD10, faDiceD12, faDiceD20, faDiceD4, faDiceD6, faDiceD8, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigging, faDigitalTachograph, faDiploma, faDirections, faDiscDrive, faDisease, faDivide, faDizzy, faDna, faDoNotEnter, faDog, faDogLeashed, faDollarSign, faDolly, faDollyEmpty, faDollyFlatbed, faDollyFlatbedAlt, faDollyFlatbedEmpty, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawCircle, faDrawPolygon, faDrawSquare, faDreidel, faDrone, faDroneAlt, faDrum, faDrumSteelpan, faDrumstick, faDrumstickBite, faDryer, faDryerAlt, faDuck, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEar, faEarMuffs, faEclipse, faEclipseAlt, faEdit, faEgg, faEggFried, faEject, faElephant, faEllipsisH, faEllipsisHAlt, faEllipsisV, faEllipsisVAlt, faEmptySet, faEngineWarning, faEnvelope, faEnvelopeOpen, faEnvelopeOpenDollar, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchange, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationSquare, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrows, faExpandArrowsAlt, faExpandWide, faExternalLink, faExternalLinkAlt, faExternalLinkSquare, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeEvil, faEyeSlash, faFan, faFanTable, faFarm, faFastBackward, faFastForward, faFaucet, faFaucetDrip, faFax, faFeather, faFeatherAlt, faFemale, faFieldHockey, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCertificate, faFileChartLine, faFileChartPie, faFileCheck, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileEdit, faFileExcel, faFileExclamation, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFileMinus, faFileMusic, faFilePdf, faFilePlus, faFilePowerpoint, faFilePrescription, faFileSearch, faFileSignature, faFileSpreadsheet, faFileTimes, faFileUpload, faFileUser, faFileVideo, faFileWord, faFilesMedical, faFill, faFillDrip, faFilm, faFilmAlt, faFilmCanister, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFireSmoke, faFireplace, faFirstAid, faFish, faFishCooked, faFistRaised, faFlag, faFlagAlt, faFlagCheckered, faFlagUsa, faFlame, faFlashlight, faFlask, faFlaskPoison, faFlaskPotion, faFlower, faFlowerDaffodil, faFlowerTulip, faFlushed, faFlute, faFluxCapacitor, faFog, faFolder, faFolderDownload, faFolderMinus, faFolderOpen, faFolderPlus, faFolderTimes, faFolderTree, faFolderUpload, faFolders, faFont, faFontAwesomeLogoFull, faFontCase, faFootballBall, faFootballHelmet, faForklift, faForward, faFragile, faFrenchFries, faFrog, faFrostyHead, faFrown, faFrownOpen, faFunction, faFunnelDollar, faFutbol, faGalaxy, faGameBoard, faGameBoardAlt, faGameConsoleHandheld, faGamepad, faGamepadAlt, faGarage, faGarageCar, faGarageOpen, faGasPump, faGasPumpSlash, faGavel, faGem, faGenderless, faGhost, faGift, faGiftCard, faGifts, faGingerbreadMan, faGlass, faGlassChampagne, faGlassCheers, faGlassCitrus, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlassWhiskeyRocks, faGlasses, faGlassesAlt, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGlobeSnow, faGlobeStand, faGolfBall, faGolfClub, faGopuram, faGraduationCap, faGramophone, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faGuitarElectric, faGuitars, faHSquare, faH1, faH2, faH3, faH4, faHamburger, faHammer, faHammerWar, faHamsa, faHandHeart, faHandHolding, faHandHoldingBox, faHandHoldingHeart, faHandHoldingMagic, faHandHoldingMedical, faHandHoldingSeedling, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandReceiving, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHeart, faHandsHelping, faHandsUsd, faHandsWash, faHandshake, faHandshakeAlt, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatChef, faHatCowboy, faHatCowboySide, faHatSanta, faHatWinter, faHatWitch, faHatWizard, faHdd, faHeadSide, faHeadSideBrain, faHeadSideCough, faHeadSideCoughSlash, faHeadSideHeadphones, faHeadSideMask, faHeadSideMedical, faHeadSideVirus, faHeadVr, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartCircle, faHeartRate, faHeartSquare, faHeartbeat, faHeat, faHelicopter, faHelmetBattle, faHexagon, faHighlighter, faHiking, faHippo, faHistory, faHockeyMask, faHockeyPuck, faHockeySticks, faHollyBerry, faHome, faHomeAlt, faHomeHeart, faHomeLg, faHomeLgAlt, faHoodCloak, faHorizontalRule, faHorse, faHorseHead, faHorseSaddle, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHospitals, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouse, faHouseDamage, faHouseDay, faHouseFlood, faHouseLeave, faHouseNight, faHouseReturn, faHouseSignal, faHouseUser, faHryvnia, faHumidity, faHurricane, faICursor, faIceCream, faIceSkate, faIcicles, faIcons, faIconsAlt, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImagePolaroid, faImages, faInbox, faInboxIn, faInboxOut, faIndent, faIndustry, faIndustryAlt, faInfinity, faInfo, faInfoCircle, faInfoSquare, faInhaler, faIntegral, faIntersection, faInventory, faIslandTropical, faItalic, faJackOLantern, faJedi, faJoint, faJournalWhills, faJoystick, faJug, faKaaba, faKazoo, faKerning, faKey, faKeySkeleton, faKeyboard, faKeynote, faKhanda, faKidneys, faKiss, faKissBeam, faKissWinkHeart, faKite, faKiwiBird, faKnifeKitchen, faLambda, faLamp, faLampDesk, faLampFloor, faLandmark, faLandmarkAlt, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLasso, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLayerMinus, faLayerPlus, faLeaf, faLeafHeart, faLeafMaple, faLeafOak, faLemon, faLessThan, faLessThanEqual, faLevelDown, faLevelDownAlt, faLevelUp, faLevelUpAlt, faLifeRing, faLightCeiling, faLightSwitch, faLightSwitchOff, faLightSwitchOn, faLightbulb, faLightbulbDollar, faLightbulbExclamation, faLightbulbOn, faLightbulbSlash, faLightsHoliday, faLineColumns, faLineHeight, faLink, faLips, faLiraSign, faList, faListAlt, faListMusic, faListOl, faListUl, faLocation, faLocationArrow, faLocationCircle, faLocationSlash, faLock, faLockAlt, faLockOpen, faLockOpenAlt, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLongArrowDown, faLongArrowLeft, faLongArrowRight, faLongArrowUp, faLoveseat, faLowVision, faLuchador, faLuggageCart, faLungs, faLungsVirus, faMace, faMagic, faMagnet, faMailBulk, faMailbox, faMale, faMandolin, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapMarkerAltSlash, faMapMarkerCheck, faMapMarkerEdit, faMapMarkerExclamation, faMapMarkerMinus, faMapMarkerPlus, faMapMarkerQuestion, faMapMarkerSlash, faMapMarkerSmile, faMapMarkerTimes, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMeat, faMedal, faMedkit, faMegaphone, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicrophoneStand, faMicroscope, faMicrowave, faMindShare, faMinus, faMinusCircle, faMinusHexagon, faMinusOctagon, faMinusSquare, faMistletoe, faMitten, faMobile, faMobileAlt, faMobileAndroid, faMobileAndroidAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMoneyCheckEdit, faMoneyCheckEditAlt, faMonitorHeartRate, faMonkey, faMonument, faMoon, faMoonCloud, faMoonStars, faMortarPestle, faMosque, faMotorcycle, faMountain, faMountains, faMouse, faMouseAlt, faMousePointer, faMp3Player, faMug, faMugHot, faMugMarshmallows, faMugTea, faMusic, faMusicAlt, faMusicAltSlash, faMusicSlash, faNarwhal, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOctagon, faOilCan, faOilTemp, faOm, faOmega, faOrnament, faOtter, faOutdent, faOutlet, faOven, faOverline, faPageBreak, faPager, faPaintBrush, faPaintBrushAlt, faPaintRoller, faPalette, faPallet, faPalletAlt, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParagraphRtl, faParking, faParkingCircle, faParkingCircleSlash, faParkingSlash, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPawAlt, faPawClaws, faPeace, faPegasus, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencil, faPencilAlt, faPencilPaintbrush, faPencilRuler, faPennant, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPersonCarry, faPersonDolly, faPersonDollyEmpty, faPersonSign, faPhone, faPhoneAlt, faPhoneLaptop, faPhoneOffice, faPhonePlus, faPhoneRotary, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPi, faPiano, faPianoKeyboard, faPie, faPig, faPiggyBank, faPills, faPizza, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneAlt, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlanetMoon, faPlanetRinged, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusHexagon, faPlusOctagon, faPlusSquare, faPodcast, faPodium, faPodiumStar, faPoliceBox, faPoll, faPollH, faPollPeople, faPoo, faPooStorm, faPoop, faPopcorn, faPortalEnter, faPortalExit, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPresentation, faPrint, faPrintSearch, faPrintSlash, faProcedures, faProjectDiagram, faProjector, faPumpMedical, faPumpSoap, faPumpkin, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuestionSquare, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRabbit, faRabbitFast, faRacquet, faRadar, faRadiation, faRadiationAlt, faRadio, faRadioAlt, faRainbow, faRaindrops, faRam, faRampLoading, faRandom, faRaygun, faReceipt, faRecordVinyl, faRectangleLandscape, faRectanglePortrait, faRectangleWide, faRecycle, faRedo, faRedoAlt, faRefrigerator, faRegistered, faRemoveFormat, faRepeat, faRepeat1, faRepeat1Alt, faRepeatAlt, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRetweetAlt, faRibbon, faRing, faRingsWedding, faRoad, faRobot, faRocket, faRocketLaunch, faRoute, faRouteHighway, faRouteInterstate, faRouter, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerTriangle, faRulerVertical, faRunning, faRupeeSign, faRv, faSack, faSackDollar, faSadCry, faSadTear, faSalad, faSandwich, faSatellite, faSatelliteDish, faSausage, faSave, faSaxHot, faSaxophone, faScalpel, faScalpelPath, faScanner, faScannerImage, faScannerKeyboard, faScannerTouchscreen, faScarecrow, faScarf, faSchool, faScrewdriver, faScroll, faScrollOld, faScrubber, faScythe, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faSendBack, faSendBackward, faSensor, faSensorAlert, faSensorFire, faSensorOn, faSensorSmoke, faServer, faShapes, faShare, faShareAll, faShareAlt, faShareAltSquare, faShareSquare, faSheep, faShekelSign, faShield, faShieldAlt, faShieldCheck, faShieldCross, faShieldVirus, faShip, faShippingFast, faShippingTimed, faShishKebab, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShovel, faShovelSnow, faShower, faShredder, faShuttleVan, faShuttlecock, faSickle, faSigma, faSign, faSignIn, faSignInAlt, faSignLanguage, faSignOut, faSignOutAlt, faSignal, faSignal1, faSignal2, faSignal3, faSignal4, faSignalAlt, faSignalAlt1, faSignalAlt2, faSignalAlt3, faSignalAltSlash, faSignalSlash, faSignalStream, faSignature, faSimCard, faSink, faSiren, faSirenOn, faSitemap, faSkating, faSkeleton, faSkiJump, faSkiLift, faSkiing, faSkiingNordic, faSkull, faSkullCow, faSkullCrossbones, faSlash, faSledding, faSleigh, faSlidersH, faSlidersHSquare, faSlidersV, faSlidersVSquare, faSmile, faSmileBeam, faSmilePlus, faSmileWink, faSmog, faSmoke, faSmoking, faSmokingBan, faSms, faSnake, faSnooze, faSnowBlowing, faSnowboarding, faSnowflake, faSnowflakes, faSnowman, faSnowmobile, faSnowplow, faSoap, faSocks, faSolarPanel, faSolarSystem, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortCircle, faSortCircleDown, faSortCircleUp, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortShapesDown, faSortShapesDownAlt, faSortShapesUp, faSortShapesUpAlt, faSortSizeDown, faSortSizeDownAlt, faSortSizeUp, faSortSizeUpAlt, faSortUp, faSoup, faSpa, faSpaceShuttle, faSpaceStationMoon, faSpaceStationMoonAlt, faSpade, faSparkles, faSpeaker, faSpeakers, faSpellCheck, faSpider, faSpiderBlackWidow, faSpiderWeb, faSpinner, faSpinnerThird, faSplotch, faSprayCan, faSprinkler, faSquare, faSquareFull, faSquareRoot, faSquareRootAlt, faSquirrel, faStaff, faStamp, faStar, faStarAndCrescent, faStarChristmas, faStarExclamation, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStarShooting, faStarfighter, faStarfighterAlt, faStars, faStarship, faStarshipFreighter, faSteak, faSteeringWheel, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStocking, faStomach, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStretcher, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSunCloud, faSunDust, faSunHaze, faSunglasses, faSunrise, faSunset, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSword, faSwordLaser, faSwordLaserAlt, faSwords, faSwordsLaser, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTabletAndroid, faTabletAndroidAlt, faTabletRugged, faTablets, faTachometer, faTachometerAlt, faTachometerAltAverage, faTachometerAltFast, faTachometerAltFastest, faTachometerAltSlow, faTachometerAltSlowest, faTachometerAverage, faTachometerFast, faTachometerFastest, faTachometerSlow, faTachometerSlowest, faTaco, faTag, faTags, faTally, faTanakh, faTape, faTasks, faTasksAlt, faTaxi, faTeeth, faTeethOpen, faTelescope, faTemperatureDown, faTemperatureFrigid, faTemperatureHigh, faTemperatureHot, faTemperatureLow, faTemperatureUp, faTenge, faTennisBall, faTerminal, faText, faTextHeight, faTextSize, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faTheta, faThumbsDown, faThumbsUp, faThumbtack, faThunderstorm, faThunderstormMoon, faThunderstormSun, faTicket, faTicketAlt, faTilde, faTimes, faTimesCircle, faTimesHexagon, faTimesOctagon, faTimesSquare, faTint, faTintSlash, faTire, faTireFlat, faTirePressureWarning, faTireRugged, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperAlt, faToiletPaperSlash, faTombstone, faTombstoneAlt, faToolbox, faTools, faTooth, faToothbrush, faTorah, faToriiGate, faTornado, faTractor, faTrademark, faTrafficCone, faTrafficLight, faTrafficLightGo, faTrafficLightSlow, faTrafficLightStop, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTransporter, faTransporter1, faTransporter2, faTransporter3, faTransporterEmpty, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTrashUndo, faTrashUndoAlt, faTreasureChest, faTree, faTreeAlt, faTreeChristmas, faTreeDecorated, faTreeLarge, faTreePalm, faTrees, faTriangle, faTriangleMusic, faTrophy, faTrophyAlt, faTruck, faTruckContainer, faTruckCouch, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTruckPlow, faTruckRamp, faTrumpet, faTshirt, faTty, faTurkey, faTurntable, faTurtle, faTv, faTvAlt, faTvMusic, faTvRetro, faTypewriter, faUfo, faUfoBeam, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUnicorn, faUnion, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUsbDrive, faUsdCircle, faUsdSquare, faUser, faUserAlien, faUserAlt, faUserAltSlash, faUserAstronaut, faUserChart, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserCowboy, faUserCrown, faUserEdit, faUserFriends, faUserGraduate, faUserHardHat, faUserHeadset, faUserInjured, faUserLock, faUserMd, faUserMdChat, faUserMinus, faUserMusic, faUserNinja, faUserNurse, faUserPlus, faUserRobot, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUserUnlock, faUserVisor, faUsers, faUsersClass, faUsersCog, faUsersCrown, faUsersMedical, faUsersSlash, faUtensilFork, faUtensilKnife, faUtensilSpoon, faUtensils, faUtensilsAlt, faVacuum, faVacuumRobot, faValueAbsolute, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVhs, faVial, faVials, faVideo, faVideoPlus, faVideoSlash, faVihara, faViolin, faVirus, faVirusSlash, faViruses, faVoicemail, faVolcano, faVolleyballBall, faVolume, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeSlash, faVolumeUp, faVoteNay, faVoteYea, faVrCardboard, faWagonCovered, faWalker, faWalkieTalkie, faWalking, faWallet, faWand, faWandMagic, faWarehouse, faWarehouseAlt, faWasher, faWatch, faWatchCalculator, faWatchFitness, faWater, faWaterLower, faWaterRise, faWaveSine, faWaveSquare, faWaveTriangle, faWaveform, faWaveformPath, faWebcam, faWebcamSlash, faWeight, faWeightHanging, faWhale, faWheat, faWheelchair, faWhistle, faWifi, faWifi1, faWifi2, faWifiSlash, faWind, faWindTurbine, faWindWarning, faWindow, faWindowAlt, faWindowClose, faWindowFrame, faWindowFrameOpen, faWindowMaximize, faWindowMinimize, faWindowRestore, faWindsock, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWreath, faWrench, faXRay, faYenSign, faYinYang };\n","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"\n}), 'LastPage');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"\n}), 'FirstPage');","import {generateUtilityClass, generateUtilityClasses} from '@mui/base';\n\nexport const ICON_BUTTON_CLASS_NAME = 'IconButton';\nexport const ICON_BUTTON_CLASS_SLOTS = ['root', 'icon'] as const;\n\nexport type IconButtonClassSlot = typeof ICON_BUTTON_CLASS_SLOTS[number];\n\nexport interface IconButtonClasses {\n\t/** Styles applied to the root element. */\n\troot: string;\n\ticon: string;\n\n\tdefault: string;\n\n\tcontained: string;\n\tcontainedInherit: string;\n\tcontainedPrimary: string;\n\tcontainedSecondary: string;\n\tcontainedError: string;\n\tcontainedInfo: string;\n\tcontainedSuccess: string;\n\tcontainedWarning: string;\n\n\tfab: string;\n\tfabInherit: string;\n\tfabPrimary: string;\n\tfabSecondary: string;\n\tfabError: string;\n\tfabInfo: string;\n\tfabSuccess: string;\n\tfabWarning: string;\n\n\toutlined: string;\n\toutlinedInherit: string;\n\toutlinedPrimary: string;\n\toutlinedSecondary: string;\n\toutlinedError: string;\n\toutlinedInfo: string;\n\toutlinedSuccess: string;\n\toutlinedWarning: string;\n}\n\nexport const getIconButtonUtilityClass = (slot: string) =>\n\tgenerateUtilityClass('IconButton', slot);\n\nexport const iconButtonClasses: IconButtonClasses = generateUtilityClasses(\n\t'IconButton',\n\t[\n\t\t'root',\n\t\t'default',\n\t\t'contained',\n\t\t'containedInherit',\n\t\t'containedPrimary',\n\t\t'containedSecondary',\n\t\t'containedError',\n\t\t'containedInfo',\n\t\t'containedSuccess',\n\t\t'containedWarning',\n\t\t'fab',\n\t\t'fabInherit',\n\t\t'fabPrimary',\n\t\t'fabSecondary',\n\t\t'fabError',\n\t\t'fabInfo',\n\t\t'fabSuccess',\n\t\t'fabWarning',\n\t\t'icon',\n\t\t'outlined',\n\t\t'outlinedInherit',\n\t\t'outlinedPrimary',\n\t\t'outlinedSecondary',\n\t\t'outlinedError',\n\t\t'outlinedInfo',\n\t\t'outlinedSuccess',\n\t\t'outlinedWarning',\n\t],\n);\nexport default iconButtonClasses;\n","import React from 'react';\nimport clsx from 'clsx';\n\nimport MuiIconButton, {\n\tIconButtonProps as MuiIconButtonProps,\n\ticonButtonClasses as muiIconButtonClasses,\n} from '@mui/material/IconButton';\n\nimport {capitalize} from '@mui/material';\n\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithMuiPropOverrides,\n\tWithClasses,\n} from '@netx/core-components/Theme';\nimport {\n\ticonButtonClasses,\n\tgetIconButtonUtilityClass,\n\tIconButtonClasses,\n\tICON_BUTTON_CLASS_NAME,\n} from './iconButtonClasses';\n\nimport Tooltip, {TooltipProps} from '../Tooltip';\n\nimport {IconProp} from '@fortawesome/fontawesome-svg-core';\nimport {\n\tFontAwesomeIcon,\n\tFontAwesomeIconProps,\n} from '@fortawesome/react-fontawesome';\n\nimport {getSeverityColors} from '../Theme';\n\nexport const ICON_BUTTON_VARIANTS = [\n\t'fab',\n\t'outlined',\n\t'contained',\n\t'default',\n] as const;\n\nexport const ICON_BUTTON_SIZE_VALUES = [28, 48, 56] as const;\n\nexport const ICON_BUTTON_SIZE_VALUE = {\n\tsmall: 28,\n\tmedium: 42,\n\tlarge: 56,\n} as const;\n\nexport const ICON_SIZE_VALUE = {\n\tsmall: 12,\n\tmedium: 16,\n\tlarge: 24,\n} as const;\n\nexport type IconButtonVariant = typeof ICON_BUTTON_VARIANTS[number];\n\nexport type IconButtonColor = Required['color'];\n\ntype IconButtonUtiltiyClassProps = WithClasses<\n\tIconButtonClasses,\n\t{\n\t\tcolor: IconButtonColor;\n\t\tvariant?: IconButtonVariant;\n\t\tsize: Required['size'];\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: IconButtonUtiltiyClassProps) => {\n\tconst {classes, color, variant} = ownerState;\n\tconst slots = {\n\t\troot: [\n\t\t\t'root',\n\t\t\t(variant && variant) || 'default',\n\t\t\tvariant && `${variant}${capitalize(color)}`,\n\t\t],\n\t\ticon: ['icon'],\n\t};\n\treturn composeClasses(slots, getIconButtonUtilityClass, classes);\n};\n\nconst IconButtonRoot = styled(MuiIconButton, {\n\tname: ICON_BUTTON_CLASS_NAME,\n\tslot: 'Root',\n\toverridesResolver: (props, styles) => styles.root,\n})(({theme, ...props}) => {\n\tconst ownerState = props.ownerState as IconButtonUtiltiyClassProps;\n\tconst colors = getSeverityColors(theme);\n\treturn {\n\t\theight: ICON_BUTTON_SIZE_VALUE[ownerState.size],\n\t\twidth: ICON_BUTTON_SIZE_VALUE[ownerState.size],\n\n\t\t...(ownerState.variant === 'fab'\n\t\t\t? {\n\t\t\t\t\tboxShadow: theme.shadows[4],\n\t\t\t\t\ttransition: theme.transitions.create(\n\t\t\t\t\t\t['background-color', 'box-shadow'],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: theme.transitions.duration.short,\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\t'&:active': {\n\t\t\t\t\t\tboxShadow: theme.shadows[6],\n\t\t\t\t\t},\n\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\tbackground: theme.palette.secondary.light,\n\t\t\t\t\t},\n\t\t\t\t\t[`&.${muiIconButtonClasses.disabled}`]: {\n\t\t\t\t\t\tboxShadow: 'none', // theme.shadows[0],\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: {}),\n\n\t\t...(ownerState.variant === 'fab' || ownerState.variant === 'contained'\n\t\t\t? {\n\t\t\t\t\tfontWeight: theme.typography.fontWeightMedium,\n\t\t\t\t\t...(ownerState.color === 'default'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.secondary.main,\n\t\t\t\t\t\t\t\tcolor: `${theme.palette.secondary.contrastText} !important`,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: ownerState.color === 'inherit'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tcolor: 'inherit',\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: colors[ownerState.color]?.default,\n\t\t\t\t\t\t\t\tcolor: `${colors[ownerState.color]?.text} !important`,\n\t\t\t\t\t\t\t\t'&:hover': {\n\t\t\t\t\t\t\t\t\tbackground: colors[ownerState.color].hover,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t }),\n\t\t\t }\n\t\t\t: ownerState.variant === 'outlined'\n\t\t\t? {\n\t\t\t\t\tborderWidth: 1,\n\t\t\t\t\tborderStyle: 'solid',\n\t\t\t\t\t...(ownerState.color === 'default'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tborderColor: theme.palette.custom.border,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: ownerState.color === 'inherit'\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tborderColor: 'inherit',\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tborderColor: colors[ownerState.color]?.default,\n\t\t\t\t\t\t }),\n\t\t\t }\n\t\t\t: {}),\n\n\t\t...(ownerState.variant === 'default' || ownerState.variant === 'outlined'\n\t\t\t? {\n\t\t\t\t\tcolor:\n\t\t\t\t\t\townerState.color === 'inherit'\n\t\t\t\t\t\t\t? 'inherit'\n\t\t\t\t\t\t\t: ownerState.color === 'default'\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: colors[ownerState.color]?.default,\n\t\t\t }\n\t\t\t: {}),\n\n\t\t[`&.${muiIconButtonClasses.disabled}`]: {\n\t\t\topacity: 0.5,\n\t\t\t// ownerState.color !== 'inherit' && ownerState.color !== 'default'\n\t\t\t// \t? 0.5\n\t\t\t// \t: undefined,\n\t\t\t[`&.${iconButtonClasses.outlined}, &.${iconButtonClasses.default}`]: {\n\t\t\t\tcolor:\n\t\t\t\t\townerState.color === 'inherit'\n\t\t\t\t\t\t? 'inherit'\n\t\t\t\t\t\t: ownerState.color === 'default'\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: colors[ownerState.color]?.default,\n\t\t\t},\n\t\t\t[`&.${iconButtonClasses.fab}, &.${iconButtonClasses.contained}`]: {\n\t\t\t\tbackgroundColor:\n\t\t\t\t\townerState.color === 'inherit'\n\t\t\t\t\t\t? 'inherit'\n\t\t\t\t\t\t: ownerState.color === 'default'\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: colors[ownerState.color]?.default,\n\t\t\t\tcolor: theme.palette.common.white,\n\t\t\t},\n\t\t},\n\n\t\t[`& .${iconButtonClasses.icon}`]: {\n\t\t\theight: ICON_SIZE_VALUE[ownerState.size],\n\t\t\twidth: ICON_SIZE_VALUE[ownerState.size],\n\t\t},\n\t};\n});\n\nconst IconButtonIconRoot = styled(FontAwesomeIcon, {\n\tname: 'IconButton',\n\tslot: 'Icon',\n\toverridesResolver: (props, styles) => styles.icon,\n})(({theme}) => ({\n\tzIndex: 2,\n}));\n\ninterface IconProps extends Partial> {}\n\nexport interface IconButtonProps\n\textends Omit>, 'classes'>,\n\t\tWithClasses<\n\t\t\tIconButtonClasses,\n\t\t\tReact.PropsWithChildren<{\n\t\t\t\ticon: IconProp;\n\t\t\t\tlabel?: string | NonNullable;\n\t\t\t\tvariant?: IconButtonVariant;\n\t\t\t\tIconProps?: Omit;\n\t\t\t\tTooltipProps?: Partial;\n\t\t\t}>\n\t\t> {}\n\nexport const IconButtonPrimitive = ({\n\tclasses: _classes,\n\tchildren,\n\tclassName,\n\tdisabled,\n\ticon,\n\tlabel = '',\n\tsize = 'medium',\n\tcolor,\n\tvariant = 'default',\n\ttitle,\n\tIconProps,\n\tTooltipProps,\n\t...props\n}: IconButtonProps) => {\n\tcolor = color ? color : variant === 'fab' ? 'secondary' : 'default';\n\n\tconst ownerState = {\n\t\tclasses: _classes,\n\t\tcolor,\n\t\tvariant,\n\t\tsize,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n};\n\nIconButtonPrimitive.displayName = 'IconButton';\n\nexport const IconButton = React.memo(IconButtonPrimitive);\nexport default IconButton;\n","import {useEffect, useRef} from 'react';\nimport equal from 'fast-deep-equal/react';\n\ntype Options = {\n\texecuteAtMount?: boolean;\n\tonlyOnUpdate?: boolean;\n};\n\nexport const useWhenChangedEffect = (\n\tthingThatMightChange: T,\n\tcallback: (thingThatMightChange: T, oldValue?: T) => void | (() => void),\n\toptions?: Options,\n) => {\n\tconst thingThatMightChangeRef = useRef(thingThatMightChange);\n\tconst ranOnceRef = useRef(false);\n\tconst callbackRef = useRef(callback);\n\tcallbackRef.current = callback;\n\n\tuseEffect(() => {\n\t\tif (equal(thingThatMightChangeRef.current, thingThatMightChange)) return;\n\t\tconst oldValue = thingThatMightChangeRef.current;\n\t\tthingThatMightChangeRef.current = thingThatMightChange;\n\t\tif (options?.onlyOnUpdate && !ranOnceRef.current) {\n\t\t\tranOnceRef.current = true;\n\t\t\treturn;\n\t\t}\n\t\treturn callbackRef.current(thingThatMightChange, oldValue);\n\t}, [thingThatMightChange, options?.onlyOnUpdate]);\n\n\tuseEffect(() => {\n\t\tif (!options?.executeAtMount) return;\n\t\treturn callback(thingThatMightChange);\n\t}, []);\n};\n\nexport default useWhenChangedEffect;\n","// https://github.com/facebook/react/issues/13029\nimport {MutableRefObject, useRef} from 'react';\n\ntype InputRef =\n\t| ((instance: T | null) => void)\n\t| MutableRefObject\n\t| null\n\t| undefined;\n\n/**\n * Works like normal useRef, but accepts second argument which is array\n * of additional refs of the same type. Ref value will be shared with\n * all of those provided refs as well\n @example\n const Foo = forwardRef((props, refToForward) => {\n const ref = useSharedRef(null, [refToForward]);\n return
baz
\n })\n */\nexport const useSharedRef = (\n\tinitialValue: T,\n\trefsToShare: Array>,\n) => {\n\t// actual ref that will hold the value\n\tconst innerRef = useRef(initialValue);\n\n\t// ref function that will update innerRef value as well as will publish value to all provided refs\n\tfunction sharingRef(value: T) {\n\t\t// update inner value\n\t\tinnerRef.current = value;\n\t\t// for each provided ref - update it as well\n\t\trefsToShare.forEach((resolvableRef) => {\n\t\t\t// react supports various types of refs\n\t\t\tif (typeof resolvableRef === 'function') {\n\t\t\t\t// if it's functional ref - call it with new value\n\t\t\t\tresolvableRef(value);\n\t\t\t} else {\n\t\t\t\t// it should be ref with .current prop\n\t\t\t\t// make sure it exists - if so - assign new value\n\t\t\t\tif (resolvableRef) {\n\t\t\t\t\t(resolvableRef as any).current = value;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * We want ref we return to work using .current, but it has to be function in order\n\t * to share value with other refs.\n\t *\n\t * Let's add custom get property called 'current' that will return\n\t * fresh value of innerRef.current\n\t */\n\tif (!(sharingRef as any).current) {\n\t\tObject.defineProperty(sharingRef, 'current', {\n\t\t\tget() {\n\t\t\t\treturn innerRef.current;\n\t\t\t},\n\t\t});\n\t}\n\n\treturn sharingRef as typeof sharingRef & {current: T};\n};\n\nexport default useSharedRef;\n","export {default as ActionButton} from './ActionButton';\nexport * from './ActionButton';\n\nexport {default as ActionMenu} from './ActionMenu';\nexport * from './ActionMenu';\n\nexport {default as ActionMenuList} from './ActionMenuList';\nexport * from './ActionMenuList';\n\nexport {default as AddActionButton} from './AddActionButton';\nexport * from './AddActionButton';\n\nexport {default as Alert} from './Alert';\nexport * from './Alert';\n\nexport {default as Button} from './Button';\nexport * from './Button';\n\nexport {default as Chip} from './Chip';\nexport * from './Chip';\n\nexport {default as ConfirmationServiceProvider} from './Confirmation';\nexport * from './Confirmation';\n\nexport {default as ContextMenuServiceProvider} from './ContextMenu';\nexport * from './ContextMenu';\n\nexport {default as CountChip} from './CountChip';\nexport * from './CountChip';\n\nexport {default as Drawer} from './Drawer';\nexport * from './Drawer';\n\nexport {default as DeleteActionButton} from './DeleteActionButton';\nexport * from './DeleteActionButton';\n\nexport {default as Dialog} from './Dialog';\nexport * from './Dialog';\n\nexport {default as DialogTitle} from './DialogTitle';\nexport * from './DialogTitle';\n\nexport {default as DownloadServiceProvider} from './DownloadDialog';\nexport * from './DownloadDialog';\n\nexport {default as EditActionButton} from './EditActionButton';\nexport * from './EditActionButton';\n\nexport {default as ErrorBoundary} from './ErrorBoundary';\nexport * from './ErrorBoundary';\n\nexport * from './Form';\n\nexport {default as FormDialog} from './FormDialog';\nexport * from './FormDialog';\n\nexport {default as IconButton} from './IconButton';\nexport * from './IconButton';\n\nexport * from './ItemManager';\n\nexport {default as MenuItem} from './MenuItem';\nexport * from './MenuItem';\n\nexport {default as MenuList} from './MenuList';\nexport * from './MenuList';\n\nexport {default as ScrollShadow} from './ScrollShadow';\nexport * from './ScrollShadow';\n\nexport {default as SnackbarServiceProvider} from './Snackbar';\nexport * from './Snackbar';\n\nexport {default as SubmitButton} from './SubmitButton';\nexport * from './SubmitButton';\n\nexport {default as Tab} from './Tab';\nexport * from './Tab';\n\nexport {default as TabPanel} from './TabPanel';\nexport * from './TabPanel';\n\nexport {default as Tabs} from './Tabs';\nexport * from './Tabs';\n\nexport {default as Table} from './Table';\nexport * from './Table';\n\nexport {default as Theme} from './Theme';\nexport * from './Theme';\n\nexport {default as Title} from './Title';\nexport * from './Title';\n\nexport {default as ToggleButton} from './ToggleButton';\nexport * from './ToggleButton';\n\nexport {default as Tooltip} from './Tooltip';\nexport * from './Tooltip';\n\nexport * from './hooks';\nexport * from './util';\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/**\n * Asset attribute set collection for generic events and methods shared betwen all our attribute set types\n * This collection is never to be used by itself - it should only ever be extended by other collections\n * @class\n * @todo DAM-11838 and then delete this class\n */\nimport Base from '@netx/core/lib/netx-collection';\n\nexport default class AssetAttributeSets_ extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attributes\n\t * @param {object} opts Collection options\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.comparator = opts.comparator || 'name';\n\n\t\tsuper(models, opts);\n\n\t\t// Throttled/debounced methods\n\t\tthis.attributeSetsChanged = _.debounce(this.attributeSetsChanged, 25);\n\n\t\t/**\n\t\t * Contains all avialable attribute templates\n\t\t * @memberOf Netx.Collections.AssetAttributeSetsFiltered\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t/**\n\t\t * Store all attribute ids returned in sets\n\t\t * This way we can quickly check if an attribute template is not in any of the attribute sets\n\t\t * @memberOf Netx.Collections.AssetAttributeSets\n\t\t * @alias allAttributeIds\n\t\t * @type {array}\n\t\t */\n\t\tthis.allAttributeIds = [];\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tthis,\n\t\t\t'change:attributeIds',\n\t\t\tthis.attributeSetsChanged,\n\t\t).listenTo(this, 'sync', this.attributeSetsChanged);\n\t}\n\n\t/**\n\t * Keep track of all attribute ids that belong to sets\n\t * @method\n\t */\n\tattributeSetsChanged() {\n\t\t// Get all the attribute ids in our sets\n\t\tthis.allAttributeIds = [\n\t\t\t...new Set(this.map(attrSet => attrSet.get('attributeIds')).flat()),\n\t\t];\n\t}\n\n\t/**\n\t * Middle man for `deleteMultiple`\n\t * @method\n\t * @param {array} ids Attribute set ids\n\t */\n\tdeleteAttributeSets(ids) {\n\t\treturn this.deleteMultiple(ids);\n\t}\n\n\t/**\n\t * Return a subset of our collection that omits any sets that are empty,\n\t * This is for the various places where we allow users to select an attribute set from\n\t * the complete list.\n\t * @method\n\t * @param {boolean} forEditing The sets are for editing (omit system attributes)\n\t * @returns {array} Array of `attributeSet` models\n\t */\n\tselectableSets(forEditing) {\n\t\tconst allAttributeIds = this.assetAttributes.ids(forEditing);\n\t\t// We do not want to show empty attribute sets\n\t\t// not empty\n\t\treturn this.filter(\n\t\t\tmodel =>\n\t\t\t\t_.intersection(allAttributeIds, model.get('attributeIds')).length > 0,\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSets_';\n\t}\n}\n","/**\n * System attribute sets (managed by admins)\n * @class\n * @extends Netx.Collections.AssetAttributeSets_\n * @todo DAM-11838 and then delete this class\n */\nimport Base from './assetAttributeSets_';\nimport Model from '../models/assetAttributeSet_system';\n\nexport default class AssetAttributeSets_System extends Base {\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {array} methods.getIds - Fetch collection ids\n\t * @property {array} methods.getObjects - Fetch collection objects\n\t * @property {function} methods.read - Fetch the collection ids and the collection object in one read\n\t */\n\tget methods() {\n\t\treturn _.extend(super.methods, {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\t// Get object IDs:\n\t\t\t\treturn this.getIds(opts).then(ids => this.getObjects(ids, opts));\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @todo get a call that returns all collection objects without needing to fetch ids first\n\t\t\t */\n\t\t\tgetIds: ['getAllCollectionIds'],\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {array} collectionIds Collection ids\n\t\t\t * @param {object} opts Options\n\t\t\t * @todo get a call that returns all collection objects without needing to fetch ids first\n\t\t\t */\n\t\t\tgetObjects(collectionIds, opts) {\n\t\t\t\treturn ['getCollectionObjects', collectionIds];\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @property {object} parsers - Collection parsers\n\t * @property {function} parsers.getObjects - Parse the results of our collection objects (see TODO in `methods`)\n\t */\n\tget parsers() {\n\t\treturn _.extend(super.parsers, {\n\t\t\t/**\n\t\t\t * @function\n\t\t\t * @param {array} data Attribute set objects\n\t\t\t * @param {array} collectionIds Collection ids\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetObjects(data, collectionIds, opts) {\n\t\t\t\t// This is to ensure we do not get placeholder objects or the \"All Attributes\"\n\t\t\t\t// (which is not maintained and needs to be renamed to 'default' as the name 'All Attributes' is incorrect since it does not add attributes to it as they are added to the system)\n\t\t\t\treturn data\n\t\t\t\t\t? data.filter(\n\t\t\t\t\t\t\td =>\n\t\t\t\t\t\t\t\td.collectionid &&\n\t\t\t\t\t\t\t\td.collectionid !== 0 &&\n\t\t\t\t\t\t\t\td.name !== 'All Attributes',\n\t\t\t\t\t )\n\t\t\t\t\t: [];\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @listens module:system#system:attributes:attributeSet:edit:success\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tdispatcher,\n\t\t\t'system:attributes:attributeSet:edit:success',\n\t\t\t(attributeSet, isNew) => {\n\t\t\t\tisNew && this.unshift(attributeSet);\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Return a subset of our collection that omits any sets that are empty or inactive.\n\t * This is for the various places where we allow users to select an attribute set from\n\t * the complete list.\n\t * @override\n\t * @param {boolean} forEditing The sets are for editing (omit system attributes)\n\t * @returns {array} `attributeSet` models\n\t */\n\tselectableSets(forEditing) {\n\t\tconst allAttributeIds = this.assetAttributes.ids(forEditing);\n\t\t// We do not want to show inactive or empty attribute sets\n\t\t// not empty && not inactive\n\t\treturn this.filter(\n\t\t\tmodel =>\n\t\t\t\tmodel.get('active') === 1 &&\n\t\t\t\t_.intersection(allAttributeIds, model.get('attributeIds')).length > 0,\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSets_System';\n\t}\n}\n","/**\n * User attribute sets\n * @class\n * @todo DAM-11838 This collection is recreating everything in Netx.Collections.AssetAttributeSets due to the fact in 8.12\n * we have to maintain the system sets (collections) - the system sets do not relate to a shared resource at all and\n * so cannot extend the shared resource collection. When we are able to deprecate the system sets this collection will\n * be renamed to AssetAttributeSets and be the only collection for attribute sets (period).\n */\nimport Base from '@netx/core-share/collections/sharedResources';\nimport Model from '../models/assetAttributeSet_user';\n\nexport default class AssetAttributeSets_User extends Base {\n\t/** @type {object} */\n\tget xhrLoadingMessages() {\n\t\treturn _.extend(super.xhrLoadingMessages, {\n\t\t\tgetSharedResources() {\n\t\t\t\treturn this.isFiltered()\n\t\t\t\t\t? 'Filtering attribute sets'\n\t\t\t\t\t: 'Loading attribute sets';\n\t\t\t},\n\t\t});\n\t}\n\n\t/** @type {object} */\n\tget xhrLoadedMessages() {\n\t\treturn _.extend(super.xhrLoadedMessages, {\n\t\t\tgetSharedResources() {\n\t\t\t\treturn this.isFiltered()\n\t\t\t\t\t? 'Filtered attribute sets'\n\t\t\t\t\t: 'Loaded attribute sets';\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @listens module:user#user:attributeSet:edit:success\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.comparator = opts.comparator || 'name';\n\t\topts.model = opts.model || Model;\n\t\topts.resourceName = 'attributeSet';\n\t\tsuper(models, opts);\n\n\t\t/**\n\t\t * Contains all avialable attribute templates\n\t\t * @memberOf Netx.Collections.AssetAttributeSetsFiltered\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t/**\n\t\t * Store all attribute ids returned in sets\n\t\t * This way we can quickly check if an attribute template is not in any of the attribute sets\n\t\t * @memberOf Netx.Collections.AssetAttributeSets\n\t\t * @alias allAttributeIds\n\t\t * @type {array}\n\t\t */\n\t\tthis.allAttributeIds = [];\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tthis,\n\t\t\t'change:attributeIds',\n\t\t\t_.debounce(this.attributeSetsChanged, 50),\n\t\t)\n\t\t\t.listenTo(this, 'sync', this.attributeSetsChanged)\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'user:attributeSet:edit:success',\n\t\t\t\t(model, isNew) => {\n\t\t\t\t\t// TODO: Check mode filters first once we introduce filters/paging in the UI\n\t\t\t\t\tisNew && this.add(model.attributes);\n\t\t\t\t},\n\t\t\t);\n\t}\n\n\t/**\n\t * Keep track of all attribute ids that belong to sets\n\t * @method\n\t */\n\tattributeSetsChanged() {\n\t\t// Get all the attribute ids in our sets\n\t\tthis.allAttributeIds = [\n\t\t\t...new Set(\n\t\t\t\tthis.map(attrSet => attrSet.get('attributeIds'))\n\t\t\t\t\t.flat()\n\t\t\t\t\t.filter(id => id != null),\n\t\t\t),\n\t\t];\n\t}\n\n\t/**\n\t * Middle man for `deleteMultiple`\n\t * @method\n\t * @param {array} ids Attribute set ids\n\t */\n\tdeleteAttributeSets(ids) {\n\t\treturn this.deleteMultiple(ids);\n\t}\n\n\t/**\n\t * Return a subset of our collection that omits any sets that are empty,\n\t * This is for the various places where we allow users to select an attribute set from\n\t * the complete list.\n\t * @method\n\t * @param {boolean} forEditing The sets are for editing (omit system attributes)\n\t * @returns {array} `attributeSet` models\n\t */\n\tselectableSets(forEditing) {\n\t\tconst allAttributeIds = this.assetAttributes.ids(forEditing);\n\t\t// We do not want to show empty attribute sets\n\t\t// not empty\n\t\treturn this.filter(\n\t\t\tmodel =>\n\t\t\t\tmodel.get('contentCount') > 0 ||\n\t\t\t\t_.intersection(allAttributeIds, model.get('attributeIds')).length > 0,\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSets_User';\n\t}\n}\n","/**\n * Filter attribute sets (managed by portals)\n * @class\n * @extends Netx.Collections.AssetAttributeSets_\n */\nimport Base from './assetAttributeSets_';\nimport Model from '../models/assetAttributeSet';\n\nexport default class AssetAttributeSets_Filter extends Base {\n\t/**\n\t * @override\n\t * @listens module:system#system:attributes:attributeSet:edit:success\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\t}\n\n\t/**\n\t * Return a subset of our collection that omits any sets that are empty or inactive.\n\t * This is for the various places where we allow users to select an attribute set from\n\t * the complete list.\n\t * @override\n\t * @param {boolean} forEditing The sets are for editing (omit system attributes)\n\t * @returns {array} `attributeSet` models\n\t */\n\tselectableSets(forEditing) {\n\t\tconst allAttributeIds = this.assetAttributes.ids(forEditing);\n\t\t// We do not want to show inactive or empty attribute sets\n\t\t// not empty && not inactive\n\t\treturn this.filter(\n\t\t\t(model) =>\n\t\t\t\t_.intersection(allAttributeIds, model.get('attributeIds')).length > 0,\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSets_Filter';\n\t}\n}\n","/**\n * This is our generic attribute sets collection\n * This allows us to present both the user and system defined attributes sets in one place\n * Do not use this collection for data manipulation - just fetch it and forget it\n * @class\n * @todo DAM-11838 When we are able to deprecate the system sets this collection will cease to exist\n * and UserAssetAttributeSets will be renamed to AssetAttributeSets and be the only collection\n * for attribute sets (period).\n */\nimport Base from '@netx/core/lib/netx-collection';\nimport Model from '../models/assetAttributeSet';\n\nimport Netx from '@netx/core/bootstrap';\nimport {i18n} from '@netx/core/i18n';\n\nimport SystemAssetAttributeSetsCollection from '../collections/assetAttributeSets_system';\nimport UserAssetAttributeSetsCollection from '../collections/assetAttributeSets_user';\nimport FilterAttributeSetCollection from '../collections/assetAttributeSets_filter';\n\nimport {ATTRIBUTE_CONTEXT as PORTAL_ATTRIBUTE_CONTEXT} from '@netx/core-cms/services/settings/constants';\nimport {ATTRIBUTE_CONTEXT_LABELS as PORTAL_ATTRIBUTE_CONTEXT_LABELS} from '@netx/core-cms/services/settings/locales';\nimport {getAttributesIdsForContext} from '@netx/core-cms/services/settings/utils';\nimport {isPortal} from '@netx/core/lib/utils';\n\nimport {SEARCH_SORT_SYSTEM_ATTRIBUTES} from '@netx/core-search-rules/constants';\n\nconst getPortal = () => isPortal() && Netx.cms?.portal?.id && Netx.cms?.portal;\nexport default class AssetAttributeSets extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/** @type {boolean} */\n\tget xhrTrackProgress() {\n\t\treturn true;\n\t}\n\n\t/** @type {function} */\n\tcomparator(a, b) {\n\t\t// Mandatory comes first\n\t\tif (a.id === 'mandatory') return -1;\n\t\tif (b.id === 'mandatory') return 1;\n\n\t\t// Default name comparison\n\t\treturn a.get('name').localeCompare(b.get('name'));\n\t}\n\n\t/**\n\t * @property {object} methods - Collection RPC methods\n\t * @property {function} methods.read - Fetch user and system attribute sets\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * We need to fetch both the system and user sets, as well as add in our \"all\" client side set\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\t// Not for token users\n\t\t\t\t// but not an error either\n\t\t\t\tif (Netx.session.getToken()) {\n\t\t\t\t\treturn new $.Deferred().resolve([]);\n\t\t\t\t}\n\n\t\t\t\treturn this.when(\n\t\t\t\t\tthis.fetchSets('system', opts),\n\t\t\t\t\tthis.fetchSets('user', opts),\n\t\t\t\t).then((systemSets, userSets) => {\n\t\t\t\t\tconst assetAttributes = this.assetAttributes;\n\n\t\t\t\t\t// DAM-20153\n\t\t\t\t\t// portal attributes - this will one day be a feature of theme proper\n\t\t\t\t\t// as well\n\t\t\t\t\tconst portal = getPortal();\n\t\t\t\t\tif (portal) {\n\t\t\t\t\t\tthis.filters\n\t\t\t\t\t\t\t.set(\n\t\t\t\t\t\t\t\tObject.values(PORTAL_ATTRIBUTE_CONTEXT).reduce(\n\t\t\t\t\t\t\t\t\t(accum, context) => {\n\t\t\t\t\t\t\t\t\t\tconst portalContextAttrIds = getAttributesIdsForContext(\n\t\t\t\t\t\t\t\t\t\t\tportal.attributes,\n\t\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\t\tassetAttributes.ids(),\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\t\t...accum,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattributeNames: portalContextAttrIds.map((attrId) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tassetAttributes.get(attrId)?.get('name'),\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tattributeIds: portalContextAttrIds,\n\t\t\t\t\t\t\t\t\t\t\t\tid: context,\n\t\t\t\t\t\t\t\t\t\t\t\tname: PORTAL_ATTRIBUTE_CONTEXT_LABELS[context],\n\t\t\t\t\t\t\t\t\t\t\t\tactive: 1,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.forEach((model) => model.populateAttributes());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst attributeNames = assetAttributes.pluck('name');\n\t\t\t\t\t\tconst attributeIds = assetAttributes.ids();\n\t\t\t\t\t\tthis.filters\n\t\t\t\t\t\t\t.set(\n\t\t\t\t\t\t\t\tObject.values(PORTAL_ATTRIBUTE_CONTEXT).reduce(\n\t\t\t\t\t\t\t\t\t(accum, context) => {\n\t\t\t\t\t\t\t\t\t\tlet _attributeNames = attributeNames;\n\t\t\t\t\t\t\t\t\t\tlet _attributeIds = attributeIds;\n\t\t\t\t\t\t\t\t\t\tif (context === 'sortAttributes') {\n\t\t\t\t\t\t\t\t\t\t\tconst filtered = assetAttributes.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t(attr) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t!attr.get('system') ||\n\t\t\t\t\t\t\t\t\t\t\t\t\tSEARCH_SORT_SYSTEM_ATTRIBUTES.includes(attr.id),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t_attributeNames = filtered.map((attr) =>\n\t\t\t\t\t\t\t\t\t\t\t\tattr.get('name'),\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t_attributeIds = filtered.map((attr) => attr.id);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\t\t...accum,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattributeNames: _attributeNames,\n\t\t\t\t\t\t\t\t\t\t\t\tattributeIds: _attributeIds,\n\t\t\t\t\t\t\t\t\t\t\t\tid: context,\n\t\t\t\t\t\t\t\t\t\t\t\tname: PORTAL_ATTRIBUTE_CONTEXT_LABELS[context],\n\t\t\t\t\t\t\t\t\t\t\t\tactive: 1,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.forEach((model) => model.populateAttributes());\n\t\t\t\t\t}\n\n\t\t\t\t\t// Concat our data and add the \"All\" attribute set\n\t\t\t\t\tconst data = systemSets.concat(\n\t\t\t\t\t\tuserSets.concat([\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattributeNames: assetAttributes.pluck('name'),\n\t\t\t\t\t\t\t\tattributeIds: assetAttributes.ids(),\n\t\t\t\t\t\t\t\tid: 'all',\n\t\t\t\t\t\t\t\tname: i18n.t('i18n.allAttributes'),\n\t\t\t\t\t\t\t\tactive: 1,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]),\n\t\t\t\t\t);\n\n\t\t\t\t\t// Update some things first\n\t\t\t\t\t// Get all the attribute ids in our sets\n\t\t\t\t\tthis.allAttributeIds = [\n\t\t\t\t\t\t...new Set(\n\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t\t.map((m) => {\n\t\t\t\t\t\t\t\t\t// Do not inlcude these client side sets\n\t\t\t\t\t\t\t\t\tif (m.id === 'all' || m.id === 'mandatory') return;\n\t\t\t\t\t\t\t\t\treturn m.attributeIds;\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.flat()\n\t\t\t\t\t\t\t\t.filter((id) => id != null),\n\t\t\t\t\t\t),\n\t\t\t\t\t];\n\n\t\t\t\t\t// If we have any mandatory attributes - put them first\n\t\t\t\t\tconst mandatoryAttrs = this.getMandatoryAttributes(false, true);\n\t\t\t\t\tif (mandatoryAttrs.length) {\n\t\t\t\t\t\tthis.hasMandatoryAttributes = true;\n\t\t\t\t\t\tdata.unshift({\n\t\t\t\t\t\t\tid: 'mandatory',\n\t\t\t\t\t\t\tname: i18n.t('i18n.mandatory'),\n\t\t\t\t\t\t\tattributeNames: mandatoryAttrs.pluck('name'),\n\t\t\t\t\t\t\tattributeIds: mandatoryAttrs.ids(),\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.hasMandatoryAttributes = false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attributes\n\t * @param {object} opts Collection options\n\t * @listens module:user#user:attributeSet:edit:success\n\t */\n\tconstructor(models, opts = {}) {\n\t\topts.model = opts.model || Model;\n\n\t\tsuper(models, opts);\n\n\t\t// Debounced methods\n\t\tthis.attributesChanged = _.debounce(this.attributesChanged, 50);\n\n\t\t/**\n\t\t * Contains all avialable attribute templates\n\t\t * @memberOf Netx.Collections.AssetAttributeSetsFiltered\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t */\n\t\tthis.assetAttributes =\n\t\t\topts.assetAttributes || Netx.getAttributesByObjectType('asset');\n\n\t\t/**\n\t\t * Store all attribute ids in sets\n\t\t * This way we can quickly check if an attribute template is not in any of the attribute sets\n\t\t * @memberOf Netx.Collections.AssetAttributeSets\n\t\t * @alias allAttributeIds\n\t\t * @type {array}\n\t\t */\n\t\tthis.allAttributeIds = [];\n\n\t\t/**\n\t\t * Do we have any mandatory attributes in sets\n\t\t * @memberOf Netx.Collections.AssetAttributeSets\n\t\t * @alias hasMandatoryAttributes\n\t\t * @type {boolean}\n\t\t */\n\t\tthis.hasMandatoryAttributes = false;\n\n\t\t/**\n\t\t * A collection containg our system sets\n\t\t * @memberOf Netx.Collections.AssetAttributeSets\n\t\t * @alias system\n\t\t * @type {Netx.Collections.AssetAttributeSets_system}\n\t\t */\n\t\tthis.system = new SystemAssetAttributeSetsCollection([], {\n\t\t\tassetAttributes: this.assetAttributes,\n\t\t});\n\t\tthis.addSubCollection(this.system);\n\n\t\t/**\n\t\t * A collection containg our user sets\n\t\t * @memberOf Netx.Collections.AssetAttributeSets\n\t\t * @alias user\n\t\t * @type {Netx.Collections.AssetAttributeSets_user}\n\t\t */\n\t\tthis.user = new UserAssetAttributeSetsCollection([], {\n\t\t\tassetAttributes: this.assetAttributes,\n\t\t});\n\t\tthis.addSubCollection(this.user);\n\n\t\tthis.filters = new FilterAttributeSetCollection([], {\n\t\t\tassetAttributes: this.assetAttributes,\n\t\t});\n\t\tthis.addSubCollection(this.filters);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'add remove', _.debounce(this.attributeSetsChanged, 50))\n\t\t\t.listenTo(this, 'change:attributeIds', (model, attributeIds, opts) => {\n\t\t\t\t// Ignore if this change was the result of a fetch\n\t\t\t\tif (opts.duplicateQueryPolicy) return;\n\t\t\t\tthis.attributeSetsChanged(model);\n\t\t\t})\n\t\t\t.listenTo(\n\t\t\t\tdispatcher,\n\t\t\t\t'user:attributeSet:edit:success',\n\t\t\t\t(model, isNew) => {\n\t\t\t\t\t// TODO: Check mode filters first once we introduce filters/paging in the UI\n\t\t\t\t\tif (!isNew) return;\n\t\t\t\t\t// TODO: This is a hack until the user and system sets are unified - see todo in class description\n\t\t\t\t\t// Bandaids for the fractured system vs user (shared resource) sets\n\t\t\t\t\tconst defaults = {\n\t\t\t\t\t\t...Model.GetDefaults(),\n\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\tcontentCount: 0,\n\t\t\t\t\t};\n\t\t\t\t\tconst picked = _.pick.apply(\n\t\t\t\t\t\t_,\n\t\t\t\t\t\t[model.attributes].concat(Object.keys(defaults)),\n\t\t\t\t\t);\n\t\t\t\t\tconst attributes = {\n\t\t\t\t\t\t...picked,\n\t\t\t\t\t\tid: `user-${model.id}`,\n\t\t\t\t\t\t// Banaids for the fractured system vs user (shared resource) sets\n\t\t\t\t\t\tname: model.get('name') || model.get('title'),\n\t\t\t\t\t\ttitle: model.get('title') || model.get('name'),\n\t\t\t\t\t\tactive: 1,\n\t\t\t\t\t};\n\t\t\t\t\tthis.add(attributes);\n\t\t\t\t},\n\t\t\t);\n\n\t\t// This collection depends on attributes being available\n\t\tthis.listenTo(\n\t\t\tthis.assetAttributes,\n\t\t\t'sync',\n\t\t\tthis.attributesChanged,\n\t\t).listenTo(this, 'sync', () => {\n\t\t\tthis.stopListening(this.assetAttributes, 'add change remove')\n\t\t\t\t.listenTo(this.assetAttributes, 'add remove', this.attributesChanged)\n\t\t\t\t.listenTo(\n\t\t\t\t\tthis.assetAttributes,\n\t\t\t\t\t[\n\t\t\t\t\t\t'change:facet',\n\t\t\t\t\t\t'change:objectTypes',\n\t\t\t\t\t\t'change:mandatory',\n\t\t\t\t\t\t'change:restrictedUserLevel',\n\t\t\t\t\t\t'change:spec1',\n\t\t\t\t\t\t'change:spec2',\n\t\t\t\t\t\t'change:value',\n\t\t\t\t\t].join(' '),\n\t\t\t\t\tthis.attributesChanged,\n\t\t\t\t);\n\t\t});\n\n\t\t// Populate if our attributes\n\t\tthis.assetAttributes.syncedOnce && this.attributesChanged();\n\t}\n\n\t/**\n\t * @override\n\t * @param {array} models An array of models or model attributes\n\t * @param {object} opts Set options\n\t */\n\tset(models, opts = {}) {\n\t\t// Make sure our models get this:\n\t\tObject.assign(opts, {\n\t\t\tassetAttributes: this.assetAttributes,\n\t\t});\n\t\treturn super.set(models, opts);\n\t}\n\n\t/**\n\t * Keep track of all attribute ids that belong to sets\n\t * @method\n\t * @param {module:asset/models/assetAttributeSet} model Attribute set (if responsible for change)\n\t */\n\tattributeSetsChanged(model) {\n\t\t// Get all the attribute ids in our sets\n\t\tthis.allAttributeIds = [\n\t\t\t// Get a unique array of attribute ids\n\t\t\t...new Set(\n\t\t\t\tthis.map((attrSet) => {\n\t\t\t\t\t// Do not inlcude these client side sets\n\t\t\t\t\tif (attrSet.id === 'all' || attrSet.id === 'mandatory') return;\n\t\t\t\t\treturn attrSet.get('attributeIds');\n\t\t\t\t})\n\t\t\t\t\t.flat()\n\t\t\t\t\t.filter((attrSet) => attrSet != null),\n\t\t\t),\n\t\t];\n\n\t\t// Update mandatory attrs\n\t\tthis.updateMandatory();\n\n\t\t// Fire custom event - think of this as the actual sync for attribute sets (this can be the result of a fetch or changes to our underlying sets)\n\t\tthis.trigger('nx:change:attributeSets', this.assetAttributes, this, model);\n\t}\n\n\t/**\n\t * @method\n\t * @param {Netx.Models.Attribute} attr Attribute model\n\t */\n\tattributesChanged(attr) {\n\t\treturn this.fetch({duplicateQueryPolicy: 'abort', reset: true});\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Attribute set type\n\t * @param {object} opts Request options\n\t */\n\tfetchSets(type, opts) {\n\t\tconst attributeSets = this[type];\n\n\t\tif (!attributeSets || Netx.getUserLevel() <= 0) {\n\t\t\treturn new $.Deferred().resolve([]);\n\t\t}\n\n\t\t// Bandaids for the fractured system vs user (shared resource) sets\n\t\tconst defaults = {\n\t\t\t...this.model.GetDefaults(),\n\t\t\ttitle: '',\n\t\t\tcontentCount: 0,\n\t\t};\n\t\tconst defaultKeys = Object.keys(defaults);\n\n\t\t// This will take the data and only set set what is on the generic model's attributes as well as a custom id\n\t\tconst getGenericAttributes = (model) => {\n\t\t\tif (!model.id) return null;\n\t\t\tconst picked = _.pick.apply(_, [model.attributes].concat(defaultKeys));\n\t\t\treturn {\n\t\t\t\t...picked,\n\t\t\t\tid: `${type}-${model.id}`,\n\t\t\t\t// Banaids for the fractured system vs user (shared resource) sets\n\t\t\t\tname: model.get('name') || model.get('title'),\n\t\t\t\ttitle: model.get('title') || model.get('name'),\n\t\t\t};\n\t\t};\n\n\t\t// Stop listening\n\t\tthis.stopListening(attributeSets);\n\n\t\treturn attributeSets\n\t\t\t.fetch({duplicateQueryPolicy: 'abort', ...opts})\n\t\t\t.then((collection) => {\n\t\t\t\t// Listen again\n\t\t\t\tthis\n\t\t\t\t\t// When they add one, we add one\n\t\t\t\t\t.listenTo(attributeSets, 'add', (model, collection, opts) => {\n\t\t\t\t\t\t// console.log(\"add\", type, model, collection );\n\t\t\t\t\t\tmodel.id && this.add(getGenericAttributes(model));\n\t\t\t\t\t})\n\t\t\t\t\t// When they change, we change\n\t\t\t\t\t.listenTo(attributeSets, 'change', (model, opts) => {\n\t\t\t\t\t\tconst m = this.get(`${type}-${model.id}`);\n\t\t\t\t\t\tm && m.set(getGenericAttributes(model));\n\t\t\t\t\t})\n\t\t\t\t\t// When they remove one, we remove one\n\t\t\t\t\t.listenTo(attributeSets, 'remove', (model, collection, opts) => {\n\t\t\t\t\t\t// console.log(\"remove\", type, model, collection );\n\t\t\t\t\t\tthis.remove(`${type}-${model.id}`);\n\t\t\t\t\t})\n\t\t\t\t\t// When they reset, we \"reset\"\n\t\t\t\t\t.listenTo(attributeSets, 'reset', (collection, opts) => {\n\t\t\t\t\t\t// console.log(\"reset\", type, collection );\n\t\t\t\t\t\tthis.remove(this.filter((m) => m.id.includes(`${type}-`)));\n\t\t\t\t\t\tthis.set(\n\t\t\t\t\t\t\tcollection\n\t\t\t\t\t\t\t\t.map(getGenericAttributes)\n\t\t\t\t\t\t\t\t.filter((attrSet) => attrSet != null),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tremove: false,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t// When they sync, we sync\n\t\t\t\t\t.listenTo(attributeSets, 'sync', (collection, response, opts) => {\n\t\t\t\t\t\t// It was actually an attribute set model that synced\n\t\t\t\t\t\tif (collection.isModel) {\n\t\t\t\t\t\t\treturn this.add(getGenericAttributes(collection), {merge: true});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (collection !== attributeSets) return;\n\t\t\t\t\t\t// console.log(\"sync\", type, collection );\n\t\t\t\t\t\tthis.remove(this.filter((m) => m.id.includes(`${type}-`)));\n\t\t\t\t\t\tthis.set(\n\t\t\t\t\t\t\tcollection\n\t\t\t\t\t\t\t\t.map(getGenericAttributes)\n\t\t\t\t\t\t\t\t.filter((attrSet) => attrSet != null),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tremove: false,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn this.trigger('sync', this, response, opts);\n\t\t\t\t\t});\n\n\t\t\t\treturn attributeSets.map(getGenericAttributes);\n\t\t\t});\n\t}\n\n\t/**\n\t * Get an array of mandatory attribute names\n\t * @method\n\t * @param {boolean} withoutDefaultValues Only return attributes without default values\n\t * @return {array}\n\t */\n\tgetMandatoryAttributeNames(withoutDefaultValues) {\n\t\tconst attrs = this.getMandatoryAttributes(withoutDefaultValues);\n\t\treturn (attrs && attrs.pluck('name')) || [];\n\t}\n\n\t/**\n\t * Get a collection of the mandatory attributes\n\t * @method\n\t * @param {boolean} withoutDefaultValues Only return attributes without default values\n\t * @return {Netx.Collections.Attributes}\n\t */\n\tgetMandatoryAttributes(withoutDefaultValues, withoutSystem) {\n\t\t// Go through and get our mandatory attributes\n\t\treturn this.assetAttributes.getMandatory(\n\t\t\twithoutDefaultValues,\n\t\t\twithoutSystem,\n\t\t);\n\t}\n\n\t/**\n\t * Get all selectable attribute sets\n\t * @method\n\t * @param {boolean} forEditing The sets are for editing (omit system attributes)\n\t * @returns {object} Selectable sets by type\n\t */\n\tselectableSets(forEditing) {\n\t\t// Convert system defined sets to generic sets\n\t\tconst systemSets = this.system\n\t\t\t.selectableSets(forEditing)\n\t\t\t.map((attrSet) => this.get(`system-${attrSet.id}`))\n\t\t\t.filter((attrSet) => attrSet != null);\n\n\t\t// Convert user defined sets to generic sets\n\t\tconst userSets = this.user\n\t\t\t.selectableSets(forEditing)\n\t\t\t.map((attrSet) => this.get(`user-${attrSet.id}`))\n\t\t\t.filter((attrSet) => attrSet != null);\n\n\t\t// Concat them all\n\t\tconst selectableSets = systemSets.concat(userSets);\n\t\tselectableSets.unshift(this.get('all'));\n\n\t\treturn {\n\t\t\tall: selectableSets,\n\t\t\tclient: [this.get('all')],\n\t\t\tsystem: systemSets,\n\t\t\tuser: userSets,\n\t\t};\n\t}\n\n\t/**\n\t * Update our mandatory set\n\t * @method\n\t */\n\tupdateMandatory() {\n\t\tconst attrs = this.getMandatoryAttributes();\n\n\t\tif (!attrs.length) {\n\t\t\tthis.hasMandatoryAttributes = false;\n\t\t\tthis.remove('mandatory');\n\t\t\treturn;\n\t\t}\n\n\t\t// If we have any mandatory attributes - put them first\n\t\tthis.hasMandatoryAttributes = true;\n\t\tthis.set(\n\t\t\t{\n\t\t\t\tid: 'mandatory',\n\t\t\t\tname: i18n.t('i18n.mandatory'),\n\t\t\t\tattributeIds: attrs.ids(),\n\t\t\t},\n\t\t\t{remove: false, merge: true},\n\t\t);\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSets';\n\t}\n}\n","import {SEARCH_SORT_SYSTEM_ATTRIBUTES} from '@netx/core-search-rules/constants';\nimport hasUpdatedAttributesSystem from './hasUpdatedAttributesSystem';\nimport {ATTRIBUTE_CONTEXT, DEFAULT_ATTRIBUTE_IDS} from '../constants';\nimport type {AttributeContext, BrandPortal} from '../types';\n\nimport {assetAttributes} from '@netx/core-asset/collections/singleton/attributes';\n\n// TODO: right now this is supporting the brand portal model and the new brand portal settings context\n// the items using this right now are in js and will not care but eventually need to get the two as the same\n// Maybe keeping goo was a mistake on my part... but spreading it on the top of the model also doesn't strike\n// me as the \"correct\" move but ¯\\_(ツ)_/¯\n// So throughout this we will first check the top level and then check the goo\n\n/**\n * Get attribute ids for context\n * @param portal Brand portal\n * @param context Attribute context\n * @param attributeIds Use these attribute ids over the main collection's (will still filter down in the end to make sure no erroneous ids are in there)\n * @return Attribute ids\n */\nexport const getAttributesIdsForContext = (\n\tportal: BrandPortal,\n\tcontext: AttributeContext,\n\tattributeIds?: number[],\n) => {\n\tlet attrIds: number[] = [];\n\n\t// Trust that they have selected exactly what they wanted\n\tif (hasUpdatedAttributesSystem(portal)) {\n\t\tattrIds = portal[context] || portal.goo[context] || [];\n\t}\n\t// Still have not updated the portal since upgrade\n\telse {\n\t\tswitch (context) {\n\t\t\tcase ATTRIBUTE_CONTEXT.DETAIL: {\n\t\t\t\tconst ctx =\n\t\t\t\t\tportal[ATTRIBUTE_CONTEXT.DETAIL] ||\n\t\t\t\t\tportal.goo[ATTRIBUTE_CONTEXT.DETAIL];\n\t\t\t\t// Apply defaults if none are set\n\t\t\t\tattrIds = ctx.length ? ctx : DEFAULT_ATTRIBUTE_IDS;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase ATTRIBUTE_CONTEXT.SORT:\n\t\t\t\t// Just return all of them (within reason)\n\t\t\t\tattrIds = attributeIds || portal.attributeIds;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn attrIds.filter(\n\t\t(id) =>\n\t\t\tassetAttributes.get(id) != null &&\n\t\t\t(context !== ATTRIBUTE_CONTEXT.SORT ||\n\t\t\t\tid > 0 ||\n\t\t\t\tSEARCH_SORT_SYSTEM_ATTRIBUTES.includes(id)),\n\t);\n};\n\nexport default getAttributesIdsForContext;\n","import type {\n\tAttributeContext,\n\tBrandPortal,\n\tBrandPortalSettingsData,\n\tGooSettingKey,\n\tSettingKey,\n} from '../types';\nimport {ATTRIBUTE_CONTEXT, GOO_SETTING_KEYS, SETTING_KEYS} from '../constants';\nimport getAttributesIdsForContext from './getAttributesIdsForContext';\n\n/**\n * Destructure brand portal into editable data\n * @param brandPortal Brand portal\n * @param attributeIds Attribute ids invloved\n */\nexport const brandPortalToSettingsData = (\n\tbrandPortal: BrandPortal,\n\tattributeIds: number[],\n): BrandPortalSettingsData => {\n\treturn {\n\t\t...SETTING_KEYS.reduce(\n\t\t\t(accum, key) => ({\n\t\t\t\t...accum,\n\t\t\t\t[key]: brandPortal[key],\n\t\t\t}),\n\t\t\t{} as Pick,\n\t\t),\n\n\t\t...GOO_SETTING_KEYS.reduce(\n\t\t\t(accum, key) => ({\n\t\t\t\t...accum,\n\t\t\t\t[key]: Object.values(ATTRIBUTE_CONTEXT).includes(key as any)\n\t\t\t\t\t? getAttributesIdsForContext(\n\t\t\t\t\t\t\tbrandPortal,\n\t\t\t\t\t\t\tkey as AttributeContext,\n\t\t\t\t\t\t\tattributeIds,\n\t\t\t\t\t )\n\t\t\t\t\t: brandPortal.goo[key],\n\t\t\t}),\n\t\t\t{} as Pick,\n\t\t),\n\t};\n};\n\nexport default brandPortalToSettingsData;\n","import type {BrandPortal} from '../types';\n\nexport const getBrandPortalDataForModel = (brandPortal: BrandPortal) => {\n\tconst {goo, categoryName, categoryPath, ...rest} = brandPortal;\n\tconst {searchCategoryName, searchCategoryPath, ...sendGoo} = goo;\n\treturn {\n\t\t...rest,\n\t\t...sendGoo,\n\t};\n};\nexport default getBrandPortalDataForModel;\n","import type {\n\tBrandPortal,\n\tBrandPortalSettingsData,\n\tGooSettingKey,\n\tSettingKey,\n} from '../types';\nimport {GOO_SETTING_KEYS, SETTING_KEYS} from '../constants';\n\n/**\n * Destructure editable data back into a brand portal\n * @param brandPortal Brand portal\n * @param settingsData Settings data\n */\nexport const settingsDataToBrandPortal = (\n\tbrandPortal: BrandPortal,\n\tsettingsData: Partial,\n): BrandPortal => ({\n\t...brandPortal,\n\t...SETTING_KEYS.reduce(\n\t\t(accum, key) => ({\n\t\t\t...accum,\n\t\t\t[key]: settingsData[key],\n\t\t}),\n\t\t{} as Pick,\n\t),\n\tgoo: {\n\t\t...brandPortal.goo,\n\t\t...GOO_SETTING_KEYS.reduce(\n\t\t\t(accum, key) => ({\n\t\t\t\t...accum,\n\t\t\t\t[key]: settingsData[key],\n\t\t\t}),\n\t\t\t{} as Pick,\n\t\t),\n\t},\n});\n\nexport default settingsDataToBrandPortal;\n","import {i18n} from '@netx/core/i18n';\n\nexport let types = {\n\tasset: 'asset',\n\tattributeSet: 'attributeSet',\n\tcart: 'cart',\n\tsavedCart: 'savedCart',\n\tcategory: 'category',\n\tconstituent: 'constituent',\n\t//search: 'search'\n\tsavedSearch: 'savedSearch',\n\t// NOTE: this got changed to 'assets' but these are not strings to i18n, these are DAM symbols. Use share:i18n.asssetSet or similar instead.\n\tassetSet: 'assetSet',\n};\n\nexport let organizeByTypes = {\n\tnone: {\n\t\tvalue: 0,\n\t\tlabel: i18n.t('i18n.noOrganization'),\n\t},\n\tfileType: {\n\t\tvalue: -105,\n\t\tlabel: i18n.t('i18n.fileType'),\n\t},\n\tfileFormatFamily: {\n\t\tvalue: -106,\n\t\tlabel: i18n.t('i18n.fileFormatFamily'),\n\t},\n\tfolderPath: {\n\t\tvalue: -108,\n\t\tlabel: i18n.t('i18n.categoryPath'),\n\t},\n};\n\nexport default {organizeByTypes, types};\n","/**\n * System attribute sets (managed by admin)\n * @class\n * @todo DAM-11838 and then delete this class\n */\nimport Base from './assetAttributeSet';\n\nexport default class AssetAttributeSet_System extends Base {\n\t/** @type {string} */\n\tget idAttribute() {\n\t\treturn 'collectionid';\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {number} defaults.collectionid - The default system attribute set `id`\n\t * @property {number} defaults.active - The default system attribute `active` state (boolean as number)\n\t * @property {array} defaults.attributeNames - The default attribute template names\n\t * @property {array} defaults.triggerIds - The default `trigger ids` for system attribute set (deprecated)\n\t * @property {number} defaults.triggerType - The default `trigger type` for system attribute set (deprecated)\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\t// collectionid: 0,\n\t\t\tactive: 1,\n\t\t\tattributeNames: [],\n\t\t\ttriggerIds: [],\n\t\t\ttriggerType: 0,\n\t\t});\n\t}\n\n\t/**\n\t * @property {object} methods - Model RPC methods\n\t * @property {array} methods.create - Create new system attribute set\n\t * @property {array} methods.read - Fetch system attribute set\n\t * @property {array} methods.remove - Destroy system attribute set\n\t * @property {array} methods.update - Update system attribute set\n\t */\n\tget methods() {\n\t\treturn _.extend(super.methods, {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate(opts) {\n\t\t\t\treturn ['setCollection', this.self()];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(opts) {\n\t\t\t\treturn ['getCollectionObjects', [this.id]];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tremove(opts) {\n\t\t\t\treturn ['deleteCollection', this.id];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tupdate(opts) {\n\t\t\t\treturn ['setCollection', this.self()];\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @property {object} parsers - Model parsers\n\t * @property {function} parsers.read - Parse the return of our fetch, it is an array with a single record\n\t * @property {function} parsers.create - Parse the return of our create (we need to get full beans returned on creations and updates)\n\t */\n\tget parsers() {\n\t\treturn _.extend(super.parsers, {\n\t\t\t/**\n\t\t\t * Because there is no call to get a single result (well a result that isn't within an array)\n\t\t\t * @function\n\t\t\t * @param {array} data An array containing a single system attribute set\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tread(data, opts) {\n\t\t\t\treturn Array.isArray(data) ? data[0] : null;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Because we do not get back full beans\n\t\t\t * @function\n\t\t\t * @param {object} data An object containing validation and the new records's `id`\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate(data, opts) {\n\t\t\t\t// We get an id back now - one day it would be nice for all of our update/create calls to return the full bean\n\t\t\t\tthis.set({collectionid: data.id});\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attr Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(this, 'change:attributeIds', this.attributeIdsUpdated);\n\t}\n\n\t/** @method */\n\tattributeIdsUpdated() {\n\t\tconst assetAttributes = this.assetAttributes;\n\t\t// Update names array (should be going away one day...)\n\t\tthis.set({\n\t\t\tattributeNames: this.get('attributeIds')\n\t\t\t\t.map(id => {\n\t\t\t\t\tconst attr = assetAttributes.get(parseInt(id));\n\t\t\t\t\treturn attr && attr.get('name');\n\t\t\t\t})\n\t\t\t\t.filter(id => id != null),\n\t\t});\n\t}\n\n\t/**\n\t * @method\n\t * @param {object} data Data\n\t * @param {object} opts Options\n\t */\n\tparseAndSave(data, opts) {\n\t\t// We cannot currently save attributes at creation\n\t\t// must create first and then save attributes\n\t\tif (this.isNew()) {\n\t\t\treturn this.save(\n\t\t\t\t{\n\t\t\t\t\tactive: data.active ? 1 : 0,\n\t\t\t\t\tname: data.name,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t).then(() => {\n\t\t\t\t// Update attributes if passed\n\t\t\t\tif (data.attributeIds != null) {\n\t\t\t\t\treturn this.save(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tattributeIds: data.attributeIds,\n\t\t\t\t\t\t},\n\t\t\t\t\t\topts,\n\t\t\t\t\t).then(() => {\n\t\t\t\t\t\t// Refetch since we do not get full beans back on create\n\t\t\t\t\t\tthis.fetch(opts);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Refetch since we do not get full beans back on create\n\t\t\t\treturn this.fetch(opts);\n\t\t\t});\n\t\t}\n\n\t\treturn this.save(\n\t\t\t{\n\t\t\t\tattributeIds: data.attributeIds || [],\n\t\t\t\tactive: data.active ? 1 : 0,\n\t\t\t\tname: data.name,\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * Provided with an parallel arrays of attribute names and ids, set them on this model and populate\n\t * @method\n\t * @param {array} attributeNames An array of attibute names\n\t * @param {array} attributeIds An array of attribute ids\n\t */\n\tsetAttributes(attributeNames, attributeIds) {\n\t\tthis.set({\n\t\t\tattributeIds: attributeIds,\n\t\t\tattributeNames: attributeNames,\n\t\t});\n\t\tthis.populateAttributes();\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSet_System';\n\t}\n}\n","/**\n * User attribute set\n * @class\n * @todo DAM-11838 This collection is recreating everything in module:asset/models/assetAttributeSet due to the fact in 8.12\n * we have to maintain the system sets (collections) - the system sets do not relate to a shared resource at all and\n * so cannot extend the shared resource model. When we are able to deprecate the system sets this model will\n * be renamed to AssetAttributeSet and be the only model for attribute sets (period).\n */\nimport Base from '@netx/core-share/models/sharedResource';\n\nimport AssetSetModel from '@netx/core-asset/models/assetSet';\nimport AttributesCollection from '../collections/attributes';\n\nimport {types as assetSetTypes} from '../properties/assetSets';\n\nexport default class AssetAttributeSet_User extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {array} defaults.attributeIds - The default attribute template ids\n\t * @property {string} defaults.name - The default attribute set name\n\t * @property {Netx.Collections.AssetAttributes} defaults.attributes - The default collection of attribute templates (client side)\n\t * @property {number} defaults.userId - The default user id for user attribute set\n\t * @property {string} defaults.description - The default description (client side)\n\t */\n\tget defaults() {\n\t\treturn _.extend(super.defaults, {\n\t\t\tattributeIds: [],\n\t\t\tname: '',\n\t\t\tuserId: 0,\n\t\t\t// Client attributes\n\t\t\tdescription: '',\n\t\t});\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn super.clientAttrs.concat(['attributes', 'description']);\n\t}\n\n\t/**\n\t * @property {object} methods - Methods for this model\n\t * @property {array} methods.create - Create new attribute field set\n\t * @property {array} methods.remove - Destroy attribute field set\n\t * @property {array} methods.update - Update attribute field set\n\t *\n\t * @property {array} methods.fetchBean - Fetch attribute field set bean\n\t * @property {array} methods.saveAttributeFieldSet - Set attribute field set data\n\t */\n\tget methods() {\n\t\treturn _.extend(super.methods, {\n\t\t\t/**\n\t\t\t * Create new attribute field set\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tcreate(opts) {\n\t\t\t\treturn this.saveAttributeFieldSet(opts).then(data => {\n\t\t\t\t\tthis.set(data, opts);\n\t\t\t\t\treturn this.fetch(opts);\n\t\t\t\t});\n\t\t\t},\n\t\t\t/**\n\t\t\t * Destroy attribute field set\n\t\t\t * @method\n\t\t\t */\n\t\t\tremove: ['deleteAttributeFieldSet', 'id'],\n\t\t\t/**\n\t\t\t * Update attribute field set\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tupdate(opts) {\n\t\t\t\treturn this.saveAttributeFieldSet(opts).then(data => {\n\t\t\t\t\treturn this.fetch(opts);\n\t\t\t\t});\n\t\t\t},\n\t\t\t/**\n\t\t\t * Fetch attribute field set bean\n\t\t\t * @method\n\t\t\t */\n\t\t\tfetchBean: ['getAttributeFieldSet', 'id'],\n\t\t\t/**\n\t\t\t * Set attribute field set data\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tsaveAttributeFieldSet(opts) {\n\t\t\t\treturn ['saveAttributeFieldSet', this.self()];\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attr Model attributes\n\t * @param {object} opts Model options\n\t * @listens module:user#user:attributeSet:edit:success\n\t */\n\tconstructor(attr, opts = {}) {\n\t\t/**\n\t\t * Resource type name\n\t\t * @type {string}\n\t\t */\n\t\topts.resourceName = 'attributeSet';\n\n\t\tsuper(attr, opts);\n\n\t\t/**\n\t\t * Contains all avialable asset attribute templates\n\t\t * @memberOf module:asset/models/assetAttributeSet\n\t\t * @alias assetAttributes\n\t\t * @type {module:asset/collections/attributes}\n\t\t * @todo we need to find a good way of passing additonal arguments to our models\n\t\t */\n\t\tthis.assetAttributes = opts.assetAttributes || Netx.asset.attributes;\n\n\t\t/**\n\t\t * Contains all attribute templates for this set\n\t\t * @memberOf module:asset/models/assetAttributeSet\n\t\t * @alias setAttributes\n\t\t */\n\t\tthis.attributeTemplates = new AttributesCollection([], {comparator: null});\n\n\t\t// Hey, listen!\n\t\tthis.listenTo(\n\t\t\tthis,\n\t\t\t'change:attributeIds',\n\t\t\tthis.populateAttributes,\n\t\t).listenTo(\n\t\t\tdispatcher,\n\t\t\t'user:attributeSet:edit:success',\n\t\t\t(attributeSet, isNew) => {\n\t\t\t\tif (attributeSet.id === this.id && attributeSet !== this) {\n\t\t\t\t\tthis.set(_.clone(_.omit(attributeSet.attributes, 'id')));\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Return an array of assetAttribute models (attribute templates, in DAM parlance) defined by this model\n\t * @method\n\t * @return {array}\n\t */\n\tgetAttributes() {\n\t\tconst assetAttributes = this.assetAttributes;\n\t\treturn [\n\t\t\t...new Set(\n\t\t\t\t(this.get('attributeIds') || [])\n\t\t\t\t\t.map(id => assetAttributes.get(id))\n\t\t\t\t\t.filter(attr => attr != null),\n\t\t\t),\n\t\t];\n\t}\n\n\t/**\n\t * @method\n\t * @return {number} Attribute count\n\t */\n\tgetAttributeCount() {\n\t\treturn this.get('contentCount') || (this.get('attributeIds') || []).length;\n\t}\n\n\t/**\n\t * Get a collection of only the mandatory attributes in this set\n\t * @method\n\t * @param {boolean} withDefaultValue Return even those mandatory attributes that have default values\n\t * @return {Netx.Collections.AssetAttributes}\n\t */\n\tgetMandatoryAttributes(withDefaultValue) {\n\t\treturn new AttributesCollection(\n\t\t\tthis.attributeTemplates.filter(\n\t\t\t\tm =>\n\t\t\t\t\tm.get('mandatory') == 1 &&\n\t\t\t\t\t(m.get('value') == false || withDefaultValue),\n\t\t\t),\n\t\t);\n\t}\n\n\t/**\n\t * Populate the attribute templates in this set\n\t * @method\n\t */\n\tpopulateAttributes() {\n\t\tconst assetAttributes = this.assetAttributes;\n\n\t\tthis.attributeTemplates.set(\n\t\t\tthis.get('attributeIds')\n\t\t\t\t.map(id => assetAttributes.get(id))\n\t\t\t\t.filter(attr => attr != null),\n\t\t);\n\t\t// Fire custom event\n\t\tthis.trigger('nx:change:attributes', this, this.attributeTemplates);\n\t}\n\n\t/**\n\t * Provided with an array of attribute ids, set them on this model and populate the attributes\n\t * @method\n\t * @param {array} attributeIds An array of attribute ids\n\t */\n\tsetAttributes(attributeIds) {\n\t\tthis.set({\n\t\t\tattributeIds: _.unique(attributeIds),\n\t\t});\n\t\tthis.populateAttributes();\n\t}\n\n\t/**\n\t * Get an assetSet model\n\t * @method\n\t * @return {module:asset/models/assetSet} Asset set\n\t */\n\ttoAssetSet() {\n\t\treturn new AssetSetModel({\n\t\t\ttype: assetSetTypes.attributeSet,\n\t\t\tids: [this.id],\n\t\t\tmodels: [this],\n\t\t\tlabel: this.getLabel(),\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetAttributeSet_User';\n\t}\n}\n","import React from 'react';\n\nimport SelectField, {SelectFieldProps} from './components/Select';\nimport {ReadOnlySelectField, ReadOnlySelectFieldProps} from './components';\nexport {default as SelectField} from './components/Select';\nexport * from './components/Select';\n\nexport type FieldRef = React.ForwardedRef;\n\ntype ExternalProps<\n\tT = any,\n\tMultiple extends boolean | undefined = false,\n\tDisableClearable extends boolean | undefined = false,\n\tFreeSolo extends boolean | undefined = false\n> =\n\t| SelectFieldProps\n\t| ReadOnlySelectFieldProps;\n\ntype InternalProps = {\n\treadOnly?: boolean;\n};\n\nconst FieldInner = <\n\tT,\n\tMultiple extends boolean | undefined = false,\n\tDisableClearable extends boolean | undefined = false,\n\tFreeSolo extends boolean | undefined = false\n>(\n\t{\n\t\treadOnly,\n\t\t...props\n\t}: InternalProps & ExternalProps,\n\tref: FieldRef,\n) => {\n\treturn !readOnly ? (\n\t\t\n\t\t\tref={ref}\n\t\t\t{...(props as SelectFieldProps)}\n\t\t/>\n\t) : (\n\t\t\n\t);\n};\n\nexport const FieldPrimitive = React.forwardRef(FieldInner) as <\n\tT,\n\tMultiple extends boolean | undefined = false,\n\tDisableClearable extends boolean | undefined = false,\n\tFreeSolo extends boolean | undefined = false\n>(\n\tprops: InternalProps & ExternalProps,\n) => JSX.Element;\n\nexport const Field = FieldPrimitive;\n\nexport default Field;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Displays a single asset constituent\n * @class\n */\nimport Base from '@netx/core/lib/netx-view';\nimport Template from '../templates/assetConstituentView.html';\n\nexport default class AssetConstituentView extends Base {\n\t/**\n\t * @method\n\t * @param {object} opts View options\n\t */\n\tconstructor(opts = {}) {\n\t\topts.template = opts.template || Template;\n\t\tsuper(opts);\n\t\topts.asset = this.asset;\n\n\t\t// Hey, listen!\n\t\tif (this.asset) {\n\t\t\tthis.listenTo(\n\t\t\t\tthis.asset,\n\t\t\t\t'change:permissionMatrix',\n\t\t\t\tthis.debouncedRender,\n\t\t\t);\n\t\t}\n\t}\n\n\t/** @override */\n\tbindModelEvents() {\n\t\tsuper.bindModelEvents();\n\t\treturn this.listenTo(this.model, 'change', this.debouncedRender);\n\t}\n\n\t/**\n\t * @override\n\t */\n\tpreRender() {\n\t\tsuper.preRender();\n\t\t// add to template vars\n\t\t_.extend(this.templateVars, {\n\t\t\tselected: this.model.get('display') === 1,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetConstituentView';\n\t}\n}\n","var map = {\n\t\"./de\": 411,\n\t\"./de-at\": 412,\n\t\"./de-at.js\": 412,\n\t\"./de-ch\": 413,\n\t\"./de-ch.js\": 413,\n\t\"./de.js\": 411,\n\t\"./en-au\": 414,\n\t\"./en-au.js\": 414,\n\t\"./en-ca\": 415,\n\t\"./en-ca.js\": 415,\n\t\"./en-gb\": 416,\n\t\"./en-gb.js\": 416,\n\t\"./en-ie\": 417,\n\t\"./en-ie.js\": 417,\n\t\"./en-il\": 418,\n\t\"./en-il.js\": 418,\n\t\"./en-in\": 419,\n\t\"./en-in.js\": 419,\n\t\"./en-nz\": 420,\n\t\"./en-nz.js\": 420,\n\t\"./en-sg\": 421,\n\t\"./en-sg.js\": 421,\n\t\"./es\": 422,\n\t\"./es-do\": 423,\n\t\"./es-do.js\": 423,\n\t\"./es-us\": 424,\n\t\"./es-us.js\": 424,\n\t\"./es.js\": 422,\n\t\"./fr\": 425,\n\t\"./fr-ca\": 426,\n\t\"./fr-ca.js\": 426,\n\t\"./fr-ch\": 427,\n\t\"./fr-ch.js\": 427,\n\t\"./fr.js\": 425,\n\t\"./gom-deva\": 428,\n\t\"./gom-deva.js\": 428,\n\t\"./ja\": 429,\n\t\"./ja.js\": 429,\n\t\"./ko\": 430,\n\t\"./ko.js\": 430,\n\t\"./nl\": 431,\n\t\"./nl-be\": 432,\n\t\"./nl-be.js\": 432,\n\t\"./nl.js\": 431,\n\t\"./zh-cn\": 433,\n\t\"./zh-cn.js\": 433\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 844;","// TODO: This only works for dragging right to left\n\nimport React, {\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport _ from 'underscore';\nimport clsx from 'clsx';\n\nimport {createStyles, makeStyles, withStyles, WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nconst body = document.body;\n\nconst DEFAULT_WIDTH = 400;\nconst MIN_WIDTH = 265;\n\nconst useStyles = (dragging = false) =>\n\tmakeStyles(() => {\n\t\tif (!dragging) return {};\n\t\treturn createStyles({\n\t\t\t'@global': {\n\t\t\t\thtml: {\n\t\t\t\t\tcursor: 'col-resize !important',\n\t\t\t\t},\n\t\t\t\tbody: {\n\t\t\t\t\t'& *': {\n\t\t\t\t\t\tuserSelect: 'none !important',\n\t\t\t\t\t\tpointerEvents: 'none !important',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t});\n\nconst dragHandleStyles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tbackground: 'rgba(0, 0, 0, 0.02)',\n\t\t\tborderLeft: '1px solid transparent',\n\t\t\twidth: 8,\n\t\t\tcursor: 'col-resize',\n\t\t\toverflow: 'hidden',\n\t\t\tposition: 'absolute',\n\t\t\ttransition: 'opacity 0.3s ease',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tbottom: 0,\n\t\t\tzIndex: 1201,\n\t\t\tuserSelect: 'none',\n\t\t\t'&:hover': {\n\t\t\t\tborderColor: theme.palette.secondary.main,\n\t\t\t\topacity: 1,\n\t\t\t},\n\t\t\t'&$dragging': {\n\t\t\t\tborderColor: theme.palette.secondary.main,\n\t\t\t\topacity: 1,\n\t\t\t},\n\t\t\t'& .ellipsis': {\n\t\t\t\tcolor:\n\t\t\t\t\ttheme.palette.mode === 'light'\n\t\t\t\t\t\t? 'rgba(0, 0, 0, 0.2)'\n\t\t\t\t\t\t: 'rgba(255, 255, 255, 0.2)',\n\t\t\t\tfontSize: '20px',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tleft: -1,\n\t\t\t\tmarginTop: -8.5,\n\t\t\t\theight: 17,\n\t\t\t\ttop: '50%',\n\t\t\t\ttransform: 'rotate(90deg)',\n\t\t\t},\n\t\t},\n\t\tdragging: {\n\t\t\tborderColor: theme.palette.secondary.main,\n\t\t},\n\t});\n\ninterface DragHandleProps {\n\tisDragging?: boolean;\n\tonMouseDown(event: React.MouseEvent): void;\n}\n\nconst DragHandle: React.FunctionComponent<\n\tWithStyles & DragHandleProps\n> = React.memo(({classes, isDragging, ...props}) => {\n\tuseStyles(isDragging)();\n\treturn (\n\t\t\n\t\t\t
\n\t\t
\n\t);\n});\nconst StyledDragHandle = withStyles(dragHandleStyles)(DragHandle);\nconst withDragHandle = ({isDragging, onMouseDown}: DragHandleProps) => {\n\treturn (props) => (\n\t\t\n\t);\n};\n\ntype Dims = {\n\tbodyLeft: number;\n\tbodyWidth: number;\n\twidth: number;\n};\n\nexport interface UseDragResizeElementProps {\n\tclassName?: string;\n\tchildren?: React.ReactNode;\n\toverflowParent: React.RefObject;\n\tdefaultWidth?: number;\n\tminWidth?: number;\n\twidth?: number;\n\tonResize?: (width: number) => void;\n\tonResizeStarted?: () => void;\n\tonResizeEnded?: (width: number) => void;\n}\n\nexport default function useDragResizeElement({\n\toverflowParent,\n\tdefaultWidth = DEFAULT_WIDTH,\n\tminWidth = MIN_WIDTH,\n\twidth,\n\tonResize,\n\tonResizeEnded,\n\tonResizeStarted,\n}: UseDragResizeElementProps) {\n\tconst [dims, setDims] = useState({\n\t\tbodyLeft: 0,\n\t\tbodyWidth: 0,\n\t\twidth: Math.max(width || defaultWidth, minWidth),\n\t});\n\tconst [isDragging, setIsDragging] = useState(false);\n\tconst isDraggingRef = useRef(isDragging);\n\tconst lastMouseDownRef = useRef(Date.now());\n\tconst lastWidthRef = useRef(dims.width);\n\tconst maxWidthRef = useRef(0);\n\tconst initialWidthRef = useRef(0);\n\tconst xStartRef = useRef(0);\n\n\tuseEffect(() => {\n\t\tif (lastWidthRef.current === dims.width) return;\n\t\tlastWidthRef.current = dims.width;\n\t\tonResize && onResize(dims.width);\n\t});\n\tuseLayoutEffect(() => {\n\t\tif (isDraggingRef.current === isDragging) return;\n\t\tisDraggingRef.current = isDragging;\n\t\tisDragging\n\t\t\t? onResizeStarted && onResizeStarted()\n\t\t\t: onResizeEnded && onResizeEnded(dims.width);\n\t});\n\n\t// When the width or overflow parent is changed\n\tuseLayoutEffect(() => {\n\t\tif (!overflowParent.current) return;\n\t\tconst clientWidth = overflowParent.current.clientWidth;\n\t\tif (\n\t\t\tclientWidth < overflowParent.current.scrollWidth ||\n\t\t\tdims.width >= clientWidth\n\t\t) {\n\t\t\tsetDims((dims) => {\n\t\t\t\tif (!overflowParent.current) return dims;\n\t\t\t\tlet newWidth =\n\t\t\t\t\tdims.width -\n\t\t\t\t\t(overflowParent.current.scrollWidth -\n\t\t\t\t\t\toverflowParent.current.clientWidth +\n\t\t\t\t\t\t2);\n\t\t\t\tif (newWidth < minWidth) newWidth = minWidth;\n\t\t\t\tmaxWidthRef.current = Math.min(newWidth, clientWidth);\n\t\t\t\treturn {\n\t\t\t\t\t...dims,\n\t\t\t\t\twidth: newWidth,\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t}, [dims.width]);\n\n\t// When we start/stop dragging\n\tuseLayoutEffect(() => {\n\t\tif (!isDragging) return;\n\n\t\tlet width: number;\n\t\tconst mousemove = _.throttle(\n\t\t\t(event: MouseEvent): void => {\n\t\t\t\tconst maxWidth = maxWidthRef.current;\n\t\t\t\t// dragging left\n\t\t\t\twidth = initialWidthRef.current - (event.clientX - xStartRef.current);\n\t\t\t\t// dragging right\n\t\t\t\t// width = initialWidthRef.current + (event.clientX - xStartRef.current),\n\t\t\t\tif (maxWidth > 0 && width > maxWidth) {\n\t\t\t\t\twidth = maxWidth;\n\t\t\t\t} else if (minWidth > width) {\n\t\t\t\t\twidth = minWidth;\n\t\t\t\t}\n\t\t\t\tsetDims((dims) => ({\n\t\t\t\t\t...dims,\n\t\t\t\t\twidth,\n\t\t\t\t}));\n\t\t\t},\n\t\t\t16,\n\t\t\t{trailing: true},\n\t\t);\n\n\t\tconst mouseup = () => setIsDragging(false);\n\t\tdocument.addEventListener('mousemove', mousemove);\n\t\tdocument.addEventListener('mouseup', mouseup);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousemove', mousemove);\n\t\t\tdocument.removeEventListener('mouseup', mouseup);\n\t\t\tmaxWidthRef.current = 0;\n\t\t};\n\t}, [isDragging]);\n\n\tconst handleMouseDown = useCallback(\n\t\t(event: React.MouseEvent) => {\n\t\t\tevent.stopPropagation();\n\t\t\tif (Date.now() - lastMouseDownRef.current < 300) {\n\t\t\t\tsetDims((dims) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...dims,\n\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinitialWidthRef.current =\n\t\t\t\t\t(event.target as HTMLElement)?.parentElement?.offsetWidth || 0;\n\t\t\t\txStartRef.current = event.clientX;\n\t\t\t\tsetIsDragging(true);\n\t\t\t}\n\t\t\tlastMouseDownRef.current = Date.now();\n\t\t},\n\t\t[],\n\t);\n\n\treturn {\n\t\thandleMouseDown,\n\t\tisDragging,\n\t\twidth: dims.width,\n\t\tDragHandle: withDragHandle({onMouseDown: handleMouseDown, isDragging}),\n\t};\n}\n\nconst useDragStyles = makeStyles({\n\troot: {\n\t\twidth: DEFAULT_WIDTH,\n\t\t'&:not(:hover):not($dragging) .use-drag-resize__handle': {\n\t\t\topacity: 0,\n\t\t},\n\t},\n\tdragging: {},\n});\n\nexport function WithDragResize(Component: React.ComponentType) {\n\treturn React.memo(\n\t\t({\n\t\t\tchildren,\n\t\t\tdefaultWidth,\n\t\t\tminWidth,\n\t\t\tonResize,\n\t\t\tonResizeEnded,\n\t\t\tonResizeStarted,\n\t\t\toverflowParent,\n\t\t\twidth,\n\t\t\t...props\n\t\t}: UseDragResizeElementProps & T) => {\n\t\t\tconst classes = useDragStyles();\n\n\t\t\tconst {DragHandle, ...dragResize} = useDragResizeElement({\n\t\t\t\tdefaultWidth,\n\t\t\t\tminWidth,\n\t\t\t\tonResize,\n\t\t\t\tonResizeEnded,\n\t\t\t\tonResizeStarted,\n\t\t\t\toverflowParent,\n\t\t\t\twidth,\n\t\t\t});\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t);\n}\n","import React from 'react';\nimport {useEffect, useRef, useState} from 'react';\n\ntype UseLoadingParams = {\n\tisLoading?: boolean;\n\tonLoading?: () => void;\n\tonLoaded?: () => void;\n};\n\nexport default function useLoading({\n\tisLoading,\n\tonLoading,\n\tonLoaded,\n}: UseLoadingParams = {}) {\n\tconst [loading, setLoading] = useState(isLoading);\n\tconst loadingRef = useRef(loading);\n\n\tuseEffect(() => {\n\t\tsetLoading(isLoading);\n\t}, [isLoading]);\n\n\tuseEffect(() => {\n\t\tif (loadingRef.current === loading) return;\n\t\tloadingRef.current = loading;\n\t\tloading ? onLoading && onLoading() : onLoaded && onLoaded();\n\t});\n\n\treturn {\n\t\tloading,\n\t\tsetLoading,\n\t};\n}\n","import React from 'react';\nimport {useEffect, useRef} from 'react';\n\nexport default function useMemoCompare(next, compare) {\n\t// Ref for storing previous value\n\tconst previousRef = useRef();\n\tconst previous = previousRef.current;\n\n\t// Pass previous and next value to compare function\n\t// to determine whether to consider them equal.\n\tconst isEqual = compare(previous, next);\n\n\t// If not equal update previousRef to next value.\n\t// We only update if not equal so that this hook continues to return\n\t// the same old value if compare keeps returning true.\n\tuseEffect(() => {\n\t\tif (!isEqual) {\n\t\t\tpreviousRef.current = next;\n\t\t}\n\t});\n\n\t// Finally, if equal then return the previous value\n\treturn isEqual ? previous : next;\n}\n","import {useRef, useEffect} from 'react';\n\nexport const usePrevious = (value: T): T | undefined => {\n\tconst ref = useRef();\n\n\tuseEffect(() => {\n\t\tref.current = value;\n\t}, [value]);\n\n\t// Return previous value (happens before update in useEffect above)\n\treturn ref.current;\n};\nexport default usePrevious;\n","import React from 'react';\nimport {useCallback, useRef, useState} from 'react';\n\nfunction useRefState(\n\tinitialValue: S | (() => S),\n): [S, React.MutableRefObject, React.Dispatch>] {\n\tconst [state, setState] = useState(initialValue);\n\tconst stateRef = useRef(state);\n\n\tconst _setState = useCallback((value: S | ((state: S) => S)) => {\n\t\tsetState((state: S) => {\n\t\t\tconst newState =\n\t\t\t\ttypeof value === 'function' ? (value as Function)(state) : value;\n\t\t\tstateRef.current = newState;\n\t\t\treturn newState;\n\t\t});\n\t}, []);\n\n\treturn [state, stateRef, _setState];\n}\n\nexport default useRefState;\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.esm.js';\nimport { notifyManager } from './notifyManager.esm.js';\nimport { focusManager } from './focusManager.esm.js';\nimport { Subscribable } from './subscribable.esm.js';\nimport { canFetch, isCancelledError } from './retryer.esm.js';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = [];\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n return this.createResult(query, options);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n\n if (notifyOnChangeProps === 'all' || !notifyOnChangeProps && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangeProps != null ? notifyOnChangeProps : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(listener => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.esm.js.map\n","/**\n * This object allows us to specify assets in one of the four Asset Set types\n * we know how to download: a cart, a search, a category or some bare assets.\n * (Other types may be added in the future.)\n * @class\n * @extends Netx.Model\n * @todo Finish documentation of defaults, methods and parsers\n */\nimport Base from '@netx/core/lib/netx-model';\n\nimport DownloadOptionsCollection from '@netx/core-share/collections/downloadOptions';\nimport ShareableModel from '@netx/core-share/models/shareable';\n\nimport Rpc from 'core-libs/backbone.rpc';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {types as assetSetTypes} from '../properties/assetSets';\nimport {types as downloadOptionTypes} from '@netx/core-share/properties/downloadOptions';\n\nexport default class AssetSet extends Base {\n\t/**\n\t * @type {Netx.Rpc}\n\t * @private\n\t */\n\tget rpc() {\n\t\treturn true;\n\t}\n\t/**\n\t * @type {Netx.URL}\n\t * @private\n\t */\n\tget url() {\n\t\treturn Netx.URL.api;\n\t}\n\n\t/**\n\t * @property {object} defaults - The default attribute values\n\t * @property {array} defaults.ids - The default ids\n\t * @property {boolean} defaults.recursive - The default recursiveness. For completeness, the `category` type needs this extra info. Other types ignore this property.\n\t * @property {string} defaults.type - The default type. See assetSetProps.types\n\t *\n\t * @property {array} defaults.assetIds - The default asset ids belonging to set (client side)\n\t * @property {string} defaults.label - The default label. It's useful to set a label for the set when it's created, since it feeds into a generic system (client side)\n\t * @property {array} defaults.models - The default models. Handy to attach the original models/collections, if we had them (client side)\n\t * @property {boolean} defaults.canCreateLink - The default description (client side)\n\t * @property {boolean} defaults.canEmail - The default description (client side)\n\t */\n\tget defaults() {\n\t\treturn {\n\t\t\tids: [],\n\t\t\trecursive: false,\n\t\t\ttype: '',\n\n\t\t\t// Client\n\t\t\tassetCount: 0,\n\t\t\tassetIds: [],\n\t\t\tcanCreateLink: null,\n\t\t\tcanEmail: null,\n\t\t\tlabel: '',\n\t\t\tmodels: [],\n\t\t};\n\t}\n\n\t/** @type {array} */\n\tget clientAttrs() {\n\t\treturn [\n\t\t\t'assetIds',\n\t\t\t'assetCount',\n\t\t\t'label',\n\t\t\t'models',\n\t\t\t'canCreateLink',\n\t\t\t'canEmail',\n\t\t];\n\t}\n\n\t/**\n\t * @property {object} methods - Model RPC methods\n\t * @property {method} methods.getAssetIdsInSets - Get all asset ids in asset set\n\t * @property {method} methods.getDownloadWarnings - Get any download warnings for asset set\n\t * @property {method} methods.getDownloadOptions - Get any download options for asset set\n\t * @property {method} methods.prepareDownload - Prepare asset set download\n\t */\n\tget methods() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAssetIdsInSets(opts) {\n\t\t\t\treturn ['getAssetIdsInSets', [this.self()]];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetDownloadWarnings(opts) {\n\t\t\t\treturn ['getDownloadWarnings', [this.self()]];\n\t\t\t},\n\t\t\t/**\n\t\t\t * @method\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetDownloadOptions(opts) {\n\t\t\t\treturn ['getDownloadOptions', [this.self()]];\n\t\t\t},\n\t\t\t/**\n\t\t\t * Request the DAM prepare a set of assets (asset lists, categories, saved searches, carts) in any of several formats (as originals, proxies, views or preset processes).\n\t\t\t * If download is authorized, this returns a progress UUID for tracking the progress of this request.\n\t\t\t * If download is prohibited due to a missing justification, this throws an exception that becomes a JSON-RPC error object.\n\t\t\t * If download is prohibited due to approval, this triggers the server-side asset approval processes for the requested assets\n\t\t\t * (sending email, creating categories, etc -- all the things that requestDownloadApproval does),\n\t\t\t * then throws an exception that becomes a JSON-RPC error object.\n\t\t\t * @function\n\t\t\t * @param {*} assets -- an AssetSets collection, a single AssetSet model, or raw object/array data to instantiate one of those\n\t\t\t * @param {*} options -- a DownloadOptions collection, a single DownloadOption model, or raw object/array data to instantiate one of those\n\t\t\t * @param {String} archiveName -- String of archive name to create\n\t\t\t * @param {String} justification -- Download justification data. Can be null or empty if no justification is needed.\n\t\t\t * @param {Object} syncOptions -- any options for Backbone.Sync\n\t\t\t * @throws JustificationRequired -- if a justification data is required for this download, and none was provided\n\t\t\t * @throws ApprovalRequired -- if approval is required for this download.\n\t\t\t * @return {String} It returns a promise that resolves to a Progress UUID (as String)\n\t\t\t * @todo: the API call works with an array of assetSets. The AssetSets collection should have this method, and then the model\n\t\t\t * method can use the collection version (since we're creating a collection anyway (for some reason).)\n\t\t\t */\n\t\t\tprepareDownload(downloadOptions, archiveName, justification, opts) {\n\t\t\t\tconst assetSets = [this.self()];\n\t\t\t\tdownloadOptions = _.toCollection(\n\t\t\t\t\tdownloadOptions,\n\t\t\t\t\tDownloadOptionsCollection,\n\t\t\t\t);\n\t\t\t\tjustification = justification || '';\n\n\t\t\t\treturn [\n\t\t\t\t\t'prepareDownload',\n\t\t\t\t\tassetSets,\n\t\t\t\t\tdownloadOptions,\n\t\t\t\t\tarchiveName,\n\t\t\t\t\tjustification,\n\t\t\t\t];\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @property {object} parsers - Model parsers\n\t * @property {function} parsers.getAssetIdsInSets - Parse the return of asset ids\n\t * @property {function} parsers.getDownloadOptions - Parse the return of download options\n\t */\n\tget parsers() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * @functon\n\t\t\t * @param {array} results Asset ids\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetAssetIdsInSets(results, opts) {\n\t\t\t\tif (!_.isArray(results)) {\n\t\t\t\t\tthrow new Rpc.ParseError('getAssetIdsInSets() returned non-array');\n\t\t\t\t}\n\t\t\t\tthis.set({assetIds: results});\n\t\t\t},\n\t\t\t/**\n\t\t\t * Filters the download options to only include the ones in displayedDownloadOptionTypes and turns the results into a collection\n\t\t\t * @function\n\t\t\t * @param {array} downloadOptions array of download options\n\t\t\t * @param {object} opts Request options\n\t\t\t * @return {Netx.Collections.DownloadOptions} Download options collection\n\t\t\t */\n\t\t\tgetDownloadOptions(downloadOptions, opts) {\n\t\t\t\t// this should never be a null array.\n\t\t\t\tif (downloadOptions == null || !downloadOptions.length) {\n\t\t\t\t\tthrow new Rpc.ParseError('bad response from getDownloadOptions');\n\t\t\t\t}\n\t\t\t\t// Filter returned download options by the array of options types we want to show the user\n\t\t\t\t// TODO: Currently \"manualRepurpose\" is not in this list - though we may not want to show it, it still counts as a downloadOption\n\t\t\t\t// I am forcing it into `displayedDownloadOptionTypes` when the `assetSet` is created for the image being repurposed\n\t\t\t\t// I think that `displayedDownloadOptionTypes` should be taken into consideration in the controller or view and not be causing\n\t\t\t\t// data to not get back from the server that is needed. The model should not be concerned with what is displayed in the UI\n\t\t\t\t// Maybe it is the wrong name for the property - maybe it should be `supportedDownloadOptionTypes`?\n\t\t\t\tdownloadOptions = _.filter(downloadOptions, (downloadOption) =>\n\t\t\t\t\t_.contains(this.displayedDownloadOptionTypes, downloadOption.type),\n\t\t\t\t);\n\t\t\t\t// Turn into a proper collection\n\t\t\t\tthis.downloadOptions.set(downloadOptions);\n\t\t\t\treturn this.downloadOptions;\n\t\t\t},\n\t\t\t/**\n\t\t\t * Check that we have any assets left to download/create a link with\n\t\t\t * @function\n\t\t\t * @param {object} warnings Warnings\n\t\t\t * @param {object} opts Request options\n\t\t\t */\n\t\t\tgetDownloadWarnings(warnings, opts) {\n\t\t\t\tif (!warnings.messageCount) return warnings;\n\n\t\t\t\tconst assetsUnavailableCount = _.unique(\n\t\t\t\t\t_.map(warnings.progressMessages, (message) => message.objectId),\n\t\t\t\t).length;\n\n\t\t\t\t// TODO: we need to be passing the thing that made the assetSet\n\t\t\t\t// as a target arguments\n\t\t\t\t// Then we can pass some logic off to the collection/model that\n\t\t\t\t// the asset set spawned from\n\t\t\t\tif (assetsUnavailableCount) {\n\t\t\t\t\tlet abort = false;\n\t\t\t\t\tconst assetCount = this.get('assetCount') || 0;\n\t\t\t\t\tconst ids = this.get('ids') || [];\n\t\t\t\t\tconst type = this.get('type');\n\t\t\t\t\tconst types = assetSetTypes;\n\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase types.cart: {\n\t\t\t\t\t\t\tabort =\n\t\t\t\t\t\t\t\tNetx.getCurrentCart().getTotal() <= assetsUnavailableCount;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase types.category:\n\t\t\t\t\t\t\tabort = assetCount <= assetsUnavailableCount;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase types.savedCart: {\n\t\t\t\t\t\t\tconst cart = Netx.cart.saved.all.get(ids[0]);\n\t\t\t\t\t\t\tabort =\n\t\t\t\t\t\t\t\tcart && cart.get('contentCount') <= assetsUnavailableCount;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase types.savedSearch: {\n\t\t\t\t\t\t\tconst search = Netx.search.saved.all.get(ids[0]);\n\t\t\t\t\t\t\tabort =\n\t\t\t\t\t\t\t\tsearch && search.get('contentCount') <= assetsUnavailableCount;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tabort = ids.length <= assetsUnavailableCount;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (abort) {\n\t\t\t\t\t\twarnings.abort = new Error(\n\t\t\t\t\t\t\ti18n.t('i18n.noAssetsAvailableForDownload'),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn warnings;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @override\n\t * @param {object} attrs Model attributes\n\t * @param {object} opts Model options\n\t */\n\tconstructor(attrs, opts = {}) {\n\t\tsuper(attrs, opts);\n\n\t\t/**\n\t\t * Contains the downloadOptions returned by getDownloadOptions\n\t\t * @memberOf module:asset/models/assetSet\n\t\t * @alias downloadOptions\n\t\t * @type {Netx.Collections.DownloadOptions}\n\t\t */\n\t\tthis.downloadOptions =\n\t\t\topts.downloadOptions || new DownloadOptionsCollection([]);\n\t\t/**\n\t\t * All of the download option types to filter by after getting download options. Set to all by default(but will only show what the user has permission for).\n\t\t * @memberOf module:asset/models/assetSet\n\t\t * @type {Array}\n\t\t */\n\t\tthis.displayedDownloadOptionTypes =\n\t\t\topts.displayedDownloadOptionTypes || _.values(downloadOptionTypes);\n\t}\n\t/**\n\t * @override\n\t * @return {object}\n\t */\n\tself() {\n\t\tconst attrs = super.self();\n\n\t\t// getDownloadOptions does not work with type assetSet however it does work with asset and will accept multiple ids.\n\t\tif (attrs.type === 'assetSet') {\n\t\t\tattrs.type = 'asset';\n\t\t}\n\t\treturn attrs;\n\t}\n\n\t/**\n\t * @method\n\t * @param {string} type Option type\n\t * @return {boolean} Has option\n\t */\n\thasOption(type) {\n\t\treturn !!this.downloadOptions.findWhere({type: type});\n\t}\n\n\t/**\n\t * For backwards compatibility with the shareways system, this method returns a new Shareable model\n\t * based on the content of this assetSet model.\n\t * @method\n\t * @returns {Netx.Models.Shareable}\n\t */\n\ttoShareable() {\n\t\tlet sType;\n\t\tswitch (this.get('type')) {\n\t\t\tcase 'cart':\n\t\t\t\tsType = 'current cart';\n\t\t\t\tbreak;\n\t\t\tcase 'savedCart':\n\t\t\t\tsType = 'saved cart';\n\t\t\t\tbreak;\n\t\t\tcase 'savedSearch':\n\t\t\t\tsType = 'saved search';\n\t\t\t\tbreak;\n\t\t\tcase 'asset':\n\t\t\t\tsType = 'assets';\n\t\t\t\tbreak;\n\t\t\tcase 'category':\n\t\t\t\t// No shareable for catagory!\n\t\t\t\treturn undefined;\n\t\t}\n\n\t\treturn new ShareableModel({\n\t\t\tids: this.get('ids'),\n\t\t\tmodel: this.get('models')[0],\n\t\t\tmodels: this.get('models'),\n\t\t\tlabel: this.get('label'),\n\t\t\ttype: sType,\n\t\t});\n\t}\n\n\t/** @type {string} */\n\tstatic get __name__() {\n\t\treturn 'AssetSet';\n\t}\n}\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {\n\tFontAwesomeIcon,\n\tFontAwesomeIconProps,\n} from '@fortawesome/react-fontawesome';\nimport {faTimesCircle as TimesCircleIcon} from '@fortawesome/pro-solid-svg-icons';\nimport {\n\tChip as MuiChip,\n\tChipProps as MuiChipProps,\n\tchipClasses as muiChipClasses,\n} from '@mui/material';\nimport {alpha} from '@mui/system';\nimport {\n\tcomposeClasses,\n\tstyled,\n\tWithMuiPropOverrides,\n\tWithClasses,\n} from '../Theme';\nimport Tooltip from '../Tooltip';\nimport {ChipSkeleton} from './components/Skeleton';\nimport {\n\tchipClasses,\n\tgetChipUtilityClass,\n\tChipClasses,\n\tCHIP_CLASS_NAME,\n} from './chipClasses';\n\nexport type ChipRef = React.ForwardedRef;\n\nexport type ChipUtilityProps = WithClasses<\n\tChipClasses,\n\t{\n\t\tdisabled?: boolean;\n\t\tmeshAvatar?: boolean;\n\t\tcolor?:\n\t\t\t| 'default'\n\t\t\t| 'primary'\n\t\t\t| 'secondary'\n\t\t\t| 'error'\n\t\t\t| 'info'\n\t\t\t| 'success'\n\t\t\t| 'warning';\n\t\tvariant?: MuiChipProps['variant'];\n\t}\n>;\n\nconst useUtilityClasses = (props: ChipUtilityProps) => {\n\tconst {classes} = props;\n\tconst slots = {\n\t\troot: ['root'],\n\t\tdeleteIcon: ['deleteIcon'],\n\t\ticonWrapper: ['iconWrapper'],\n\t};\n\treturn composeClasses(slots, getChipUtilityClass, classes);\n};\n\nconst ChipRoot = styled(MuiChip, {\n\tname: CHIP_CLASS_NAME,\n\tslot: 'Root',\n})(({theme, ownerState}) => {\n\tconst {meshAvatar, color = 'default'} = ownerState as ChipUtilityProps;\n\n\tconst palette = {\n\t\t...theme.palette,\n\t\tdefault: theme.palette.secondary,\n\t};\n\n\treturn {\n\t\t...(color !== 'default'\n\t\t\t? {\n\t\t\t\t\t[`&.${muiChipClasses.outlined}`]: {\n\t\t\t\t\t\tborderColor: palette[color].main,\n\t\t\t\t\t\t[`& .${muiChipClasses.avatar}`]: {\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t\tbackgroundColor: palette[color].main,\n\t\t\t\t\t\t\tcolor: `#fff !important`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[`& .${muiChipClasses.icon}`]: {\n\t\t\t\t\t\t\tcolor: `${palette[color].main}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[`& .${chipClasses.deleteIcon}`]: {\n\t\t\t\t\t\t\tcolor: `${palette[color].main} !important`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\t[`&.${muiChipClasses.outlined}`]: {\n\t\t\t\t\t\t[`& .${muiChipClasses.avatar}`]: {\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t }),\n\t\t// [`&.${muiChipClasses.outlined}`]: {\n\t\t// \t// borderColor: color !== 'default' ? `${palette[color].main} !important` : undefined,\n\t\t// \t[`& .${muiChipClasses.avatar}`]: {\n\t\t// \t\t// backgroundColor: `${theme.palette.secondary.main} !important`,\n\t\t// \t\t// color: `${theme.palette.secondary.contrastText} !important`,\n\t\t// \t\tfontWeight: 600,\n\t\t// \t\tbackgroundColor: color !== 'default' ? `${palette[color].main} !important` : undefined,\n\t\t// \t\tcolor: `#fff !important`,\n\t\t// \t},\n\t\t// \t[`& .${muiChipClasses.icon}`]: {\n\t\t// \t\tcolor: `${palette[color].main}`,\n\t\t// \t},\n\t\t// \t[`& .${chipClasses.deleteIcon}`]: {\n\t\t// \t\tcolor: `${palette[color].main} !important`,\n\t\t// \t},\n\t\t// },\n\t\t[`&:not(.${muiChipClasses.outlined})`]: {\n\t\t\t[`& .${muiChipClasses.avatar}`]: {\n\t\t\t\tbackgroundColor: `${palette[color].dark} !important`,\n\t\t\t\tcolor: `#fff !important`,\n\t\t\t},\n\t\t},\n\t\t...(meshAvatar\n\t\t\t? {\n\t\t\t\t\t[`& .${muiChipClasses.avatar}`]: {\n\t\t\t\t\t\tmarginLeft: 0,\n\t\t\t\t\t\twidth: 32,\n\t\t\t\t\t\theight: 32,\n\t\t\t\t\t},\n\t\t\t }\n\t\t\t: null),\n\t};\n});\n\nconst ChipDeleteIcon = styled('div', {\n\tname: CHIP_CLASS_NAME,\n\tslot: 'DeleteIcon',\n})(({theme}) => {\n\tconst deleteIconColor = alpha(theme.palette.text.primary, 0.26);\n\treturn {\n\t\t// Adjust for font-awesome\n\t\theight: `20px !important`,\n\t\tfontSize: `20px !important`,\n\t\tlineHeight: 1,\n\t\t// Make focusable\n\t\t'&:focus': {\n\t\t\tcolor: alpha(deleteIconColor, 0.34),\n\t\t\toutline: 'none',\n\t\t\toutlineStyle: 'none',\n\t\t\tboxShadow: 'none',\n\t\t\tborderColor: 'transparent',\n\t\t},\n\t};\n});\n\nconst ChipIconWrapper = styled('div', {\n\tname: CHIP_CLASS_NAME,\n\tslot: 'IconWrapper',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tpadding: theme.spacing(0, 0, 0, 0.75),\n}));\n\nexport type ChipProps = WithMuiPropOverrides<\n\tOmit\n> &\n\tWithClasses<\n\t\tChipClasses,\n\t\t{\n\t\t\tloading?: boolean;\n\t\t\tmeshAvatar?: boolean;\n\t\t\tdeleteTabbable?: boolean;\n\t\t\tdeleteTitle?: string;\n\t\t\ticon?: FontAwesomeIconProps['icon'] | null;\n\t\t\ttitle?: string;\n\t\t}\n\t>;\n\nconst ChipInner = (\n\t{\n\t\tclasses: _classes,\n\t\tclassName,\n\t\tcolor,\n\t\tdeleteTabbable,\n\t\tdeleteTitle,\n\t\tdisabled = false,\n\t\ticon,\n\t\tloading,\n\t\tmeshAvatar = false,\n\t\tvariant,\n\t\ttitle,\n\t\tonBlur,\n\t\tonFocus,\n\t\t...props\n\t}: ChipProps,\n\tref: ChipRef,\n) => {\n\tconst deleteIconRef = useRef(null);\n\tconst [focused, setFocused] = useState(false);\n\n\tconst ownerState: ChipUtilityProps = {\n\t\tclasses: _classes,\n\t\tclassName,\n\t\tcolor,\n\t\tdisabled,\n\t\tmeshAvatar,\n\t\tvariant,\n\t};\n\n\tconst classes = useUtilityClasses(ownerState);\n\n\tconst [disableTitle, setDisableTitle] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!focused || deleteTabbable) return;\n\t\tdeleteIconRef.current?.focus();\n\t});\n\n\tconst handleBlur = useCallback(\n\t\t(event) => {\n\t\t\tsetFocused(false);\n\t\t\tonBlur?.(event);\n\t\t},\n\t\t[onBlur],\n\t);\n\n\tconst handleFocus = useCallback(\n\t\t(event) => {\n\t\t\tsetFocused(true);\n\t\t\tonFocus?.(event);\n\t\t},\n\t\t[deleteTabbable, onFocus],\n\t);\n\n\tconst handleDeleteIconKeydown = useCallback(\n\t\t(event: React.KeyboardEvent) => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst code = event.keyCode || event.which;\n\t\t\t// enter/space keys\n\t\t\tif (code === 13 || code === 32) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tdeleteIconRef.current?.click();\n\t\t\t}\n\t\t},\n\t\t[disabled],\n\t);\n\n\treturn (\n\t\t\n\t\t\t{loading ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetDisableTitle(true);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonExited: () => {\n\t\t\t\t\t\t\t\t\tsetDisableTitle(false);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\ttitle={deleteTitle != null ? deleteTitle : i18n.t('i18n.remove')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\ticon={\n\t\t\t\t\t\ticon ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : undefined\n\t\t\t\t\t}\n\t\t\t\t\townerState={ownerState}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tonFocus={handleFocus}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport const ChipPrimitive = React.forwardRef(\n\tChipInner,\n) as React.ForwardRefExoticComponent;\n\nexport const Chip = ChipPrimitive;\n\nexport default Chip;\n","(function(){\n/*\n\n Copyright (c) 2020 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at\n http://polymer.github.io/LICENSE.txt The complete set of authors may be found\n at http://polymer.github.io/AUTHORS.txt The complete set of contributors may\n be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by\n Google as part of the polymer project is also subject to an additional IP\n rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n'use strict';/*\n\n Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at\n http://polymer.github.io/LICENSE.txt The complete set of authors may be found\n at http://polymer.github.io/AUTHORS.txt The complete set of contributors may\n be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by\n Google as part of the polymer project is also subject to an additional IP\n rights grant found at http://polymer.github.io/PATENTS.txt\n*/\nvar n=window.Document.prototype.createElement,p=window.Document.prototype.createElementNS,aa=window.Document.prototype.importNode,ba=window.Document.prototype.prepend,ca=window.Document.prototype.append,da=window.DocumentFragment.prototype.prepend,ea=window.DocumentFragment.prototype.append,q=window.Node.prototype.cloneNode,r=window.Node.prototype.appendChild,t=window.Node.prototype.insertBefore,u=window.Node.prototype.removeChild,v=window.Node.prototype.replaceChild,w=Object.getOwnPropertyDescriptor(window.Node.prototype,\n\"textContent\"),y=window.Element.prototype.attachShadow,z=Object.getOwnPropertyDescriptor(window.Element.prototype,\"innerHTML\"),A=window.Element.prototype.getAttribute,B=window.Element.prototype.setAttribute,C=window.Element.prototype.removeAttribute,D=window.Element.prototype.getAttributeNS,E=window.Element.prototype.setAttributeNS,F=window.Element.prototype.removeAttributeNS,G=window.Element.prototype.insertAdjacentElement,H=window.Element.prototype.insertAdjacentHTML,fa=window.Element.prototype.prepend,\nha=window.Element.prototype.append,ia=window.Element.prototype.before,ja=window.Element.prototype.after,ka=window.Element.prototype.replaceWith,la=window.Element.prototype.remove,ma=window.HTMLElement,I=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,\"innerHTML\"),na=window.HTMLElement.prototype.insertAdjacentElement,oa=window.HTMLElement.prototype.insertAdjacentHTML;var pa=new Set;\"annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph\".split(\" \").forEach(function(a){return pa.add(a)});function qa(a){var b=pa.has(a);a=/^[a-z][.0-9_a-z]*-[-.0-9_a-z]*$/.test(a);return!b&&a}var ra=document.contains?document.contains.bind(document):document.documentElement.contains.bind(document.documentElement);\nfunction J(a){var b=a.isConnected;if(void 0!==b)return b;if(ra(a))return!0;for(;a&&!(a.__CE_isImportDocument||a instanceof Document);)a=a.parentNode||(window.ShadowRoot&&a instanceof ShadowRoot?a.host:void 0);return!(!a||!(a.__CE_isImportDocument||a instanceof Document))}function K(a){var b=a.children;if(b)return Array.prototype.slice.call(b);b=[];for(a=a.firstChild;a;a=a.nextSibling)a.nodeType===Node.ELEMENT_NODE&&b.push(a);return b}\nfunction L(a,b){for(;b&&b!==a&&!b.nextSibling;)b=b.parentNode;return b&&b!==a?b.nextSibling:null}\nfunction M(a,b,c){for(var f=a;f;){if(f.nodeType===Node.ELEMENT_NODE){var d=f;b(d);var e=d.localName;if(\"link\"===e&&\"import\"===d.getAttribute(\"rel\")){f=d.import;void 0===c&&(c=new Set);if(f instanceof Node&&!c.has(f))for(c.add(f),f=f.firstChild;f;f=f.nextSibling)M(f,b,c);f=L(a,d);continue}else if(\"template\"===e){f=L(a,d);continue}if(d=d.__CE_shadowRoot)for(d=d.firstChild;d;d=d.nextSibling)M(d,b,c)}f=f.firstChild?f.firstChild:L(a,f)}};function N(){var a=!(null===O||void 0===O||!O.noDocumentConstructionObserver),b=!(null===O||void 0===O||!O.shadyDomFastWalk);this.h=[];this.a=[];this.f=!1;this.shadyDomFastWalk=b;this.C=!a}function P(a,b,c,f){var d=window.ShadyDom;if(a.shadyDomFastWalk&&d&&d.inUse){if(b.nodeType===Node.ELEMENT_NODE&&c(b),b.querySelectorAll)for(a=d.nativeMethods.querySelectorAll.call(b,\"*\"),b=0;b